How to obtain State space model response ?

83 views (last 30 days)
Anand
Anand on 2 Feb 2011
Commented: Rik on 29 Dec 2021
Hello friends i need one help on matab M-file programming. I have a Transfer function, it is easy to converter into state-space(A,B,C,D). For step and impulse signals inbuilt commands are available(like step(u*ss), impulse(u*ss)). But suppose my input is time varying other than step and impulse, how to obtain the output response. I am confused which ccommand is to use to get output response !
Assume TF = 1/(s+2) , i/p signal =square or sine or any time varing input. How to write M-file for this case?

Answers (3)

Paulo Silva
Paulo Silva on 2 Feb 2011
[A,B,C,D]=tf2ss([1],[1 2]) %[1] or 1 is the same thing in this case
t = 0:0.01:2; %do the simulation from 0 to 2 seconds with step 0.01
%3 possible inputs, you can test with other inputs
%just be sure that u is the same size has t
%u = [1 zeros(1,numel(t)-1)]; %impulse
u = ones(1,numel(t)); %step
%u = t; %ramp
x0 = 0; %initial condition of system states
[y,x] = lsim(A,B,C,D,u,t,x0); %do the simulation
plot(t,y,t,u)
legend('Response','Input')
  1 Comment
Rik
Rik on 29 Dec 2021
Comment posted as flag by @Hamid Reza Ashrafi:
great example for explaining the algorithm to extract a response of space state model to a specific input

Sign in to comment.


Rajiv Singh
Rajiv Singh on 17 Sep 2012
see LSIM

Jamie
Jamie on 28 Aug 2012
In the ofchance that others are also having a little bit or trouble plotting the system response a couple of simple examples are provided in the matlab documentation in the appended link (both forced and unforced MIMO and SISO)

Community Treasure Hunt

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

Start Hunting!