matlab中的稳态响应并未显示所有状态

时间:2016-05-14 22:16:32

标签: matlab plot

我正在使用MATLAB来获得系统的稳态响应(状态响应),系统有两种状态,但MATLAB只绘制1个我做的事情。

这是我的代码:

s=tf('s');
J=0.006;
Rm=1.5;
B=0.01;
Lm=15;
Kt=0.7;
Km=0.6;

A=[-Rm/Lm -Km/Lm;Kt/J -B/J];
B=[1/Lm;0];
C=[0 1];
D=[0];
sys=ss(A,B,C,D);    
T=tf(sys); 

[y,t] = step(T);

plot(t, y);
legend('x1', 'x2');

输出图:

Plot Output

1 个答案:

答案 0 :(得分:2)

根据step的文档,输出向量y是系统的输出响应(y = C*x + D*u),而不是状态轨迹。通过step的第三输出获取状态轨迹。此外,为了使step返回轨迹,输入必须是状态空间(ss)模型,但您需要输入传递函数(tf)形式系统的。从这两点来看,以下内容应该提供您想要的输出:

[y,t,x] = step(sys);
plot(t, x);
legend('x1', 'x2');