Discrete systems using s-function

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.

 채택된 답변

Kaustubha Govind
Kaustubha Govind 2012년 1월 23일

0 개 추천

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

dab483
dab483 2012년 1월 23일
how to store t in Dwork using block.CurrentTime. Never use this before.
Kaustubha Govind
Kaustubha Govind 2012년 1월 23일
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;
dab483
dab483 2012년 1월 23일
Thank you very much..

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by