Continuous-time model -> Discrete-time model

Hi,
I deal with 2 DOF spring-mass system, multi-inputs and multi-outputs. href=""</a>
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
chetan on 17 Oct 2011
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.
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);

Tags

Asked:

on 12 Oct 2011

Community Treasure Hunt

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

Start Hunting!