Discrete systems using s-function
2 views (last 30 days)
Show older comments
Hi,
i have this discrete function, and try to simulate it using s-function level 2, where k represent simulation length from 1 to 50sec.
x(k) = 0.5*x(k-1) + 25*x(k-1) /(1 + x(k-1)^2) + 8 cos(1.2(k-1))
here how i put it in the s-function level 2:
function Update(block)
Q=1;
xplus = 0.5 * xminus + 25 * xminus / (1 + xminus^2) + 8 * cos(1.2*(k-1))
block.Dwork(1).Data = xplus;
where xplus = x(k) xminus=x(k-1)
but i am not sure about cos(1.2*(k-1)). Can anyone pls advise how should i implement this? Thanks.
0 Comments
Accepted Answer
Kaustubha Govind
on 23 Jan 2012
Is (k-1) basically "t" at the previous step, where t is the current simulation time-step? If yes, you can store "t" in a Dwork by using block.CurrentTime and use it in the next time step as (k-1).
3 Comments
Kaustubha Govind
on 23 Jan 2012
Same way you are storing 'xplus' in your example:
% Register two DWorks in DoPostPropSetup
block.NumDworks = 2;
% In Update
block.Dwork(2).Data = block.CurrentTime;
More Answers (0)
See Also
Categories
Find more on View and Analyze Simulation Results in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!