State Space unit step and initial conditions

22 Ansichten (letzte 30 Tage)
David Bowden
David Bowden am 10 Apr. 2017
Beantwortet: Drishya Dinesh am 19 Apr. 2021
I am trying to get MATLAB to show a state space response with both a unit step input and initial conditions. All documentation shows only how to do one or the other, as if I try using step() or initial(), the second overrides the first. Thanks!

Antworten (3)

Daniel Stankowski
Daniel Stankowski am 7 Jan. 2020
The above method works but you can also use an lsim command.
Do the following:
lsim(sys,u,t,x0)
where;
  • sys - defines your state space
  • u defines your input signal which in case of step input can be defined as u=ones(length(t)) % cause we know for step u(t)=1 (you can see it from laplace transform tables)
  • t - time, for example; t=linspace(0,5,10)
  • x0 = is a vector of initial conditions
  2 Kommentare
shivam sahil
shivam sahil am 11 Apr. 2020
A small correction, it should be:
u=ones(length(t),1) ;
instead of
u=ones(length(t))
Xiaohan Tang
Xiaohan Tang am 3 Jan. 2021
Thank you!!!

Melden Sie sich an, um zu kommentieren.


Youngsik Kim
Youngsik Kim am 3 Nov. 2017
You can get the zero input response from initial() and zero state response from step() separately, and then you can add up later to plot the response.
[yi,ti,xi]=initial(systm,xinitial); [ystep,ts,xs]=step(systm,ti);
Then, the superposition of them is what you want. ytotal=yi+ystep; Then plot time .vs. ytotal.

Drishya Dinesh
Drishya Dinesh am 19 Apr. 2021
how to get a response with initial value of 10.
t2=400;
u_del=(0.0022*k*(s+0.06931)*(s^2+0.4852*s+0.1492))/((s+0.04833)*(s+0.004352)*(s^2+0.06012*s+0.01331));
figure
step(u_del,t2);
ylabel('Velocity,u (m/s)','fontsize',10);
title('Time Response');
grid

Kategorien

Mehr zu Dynamic System Models finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by