Continuous-time model -> Discrete-time model
Show older comments
Hi,
In state space equation, A matrix is A = [0 0 1 0;0 0 0 1;-4 2 -.8 .4;2 -4 .4 -.8], B = [0 0;0 0;0.2 0;0 0.2], C = [0 0 1 0;1 0 0 0], and D = [0 0;0 0]. Using function 'ss' I make system, SYS = ss(A,B,C,D) which is continuous-time model. And I draw impulse response using function 'impulse'. But when I try to make the system as discrete-time model, the impulse response drawing is weird. What I did is SYSd = ss(A,B,C,D,0.1), 0.1 is my chosen sampling time. But the impulse response of discrete-time model is totally different from the continuous-time model's one. I already try to change the sampling rate, just like 0.01, 0.001 even 10 and 100. href=""</a>
This is probably rather simple - but I am not sure how to do it so any help would be great. href=""</a>
Thank you.
Answers (2)
chetan
on 17 Oct 2011
0 votes
Hi Danny, I am also having the same problem... So if in future, any time, if u come to know how to tackle this problem, do share it...
Thanks... :-) Bye and have a nice day.
Fangjun Jiang
on 17 Oct 2011
SYS = ss(A,B,C,D) and SYSd = ss(A,B,C,D,0.1) are not the same. To discretize your continuous model, you need to use c2d(). Also, impulse() is slightly different between continuous and discrete systems. To verify the conversion is correct, use step().
A = [0 0 1 0;0 0 0 1;-4 2 -.8 .4;2 -4 .4 -.8];
B = [0 0;0 0;0.2 0;0 0.2];
C = [0 0 1 0;1 0 0 0];
D = [0 0;0 0];
figure(1);
SYS = ss(A,B,C,D);
step(SYS)
figure(2);
SysD=c2d(SYS,0.1);
step(SysD);
Categories
Find more on Discretization in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!