我正在使用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');
输出图:
答案 0 :(得分:2)
根据step
的文档,输出向量y
是系统的输出响应(y = C*x + D*u
),而不是状态轨迹。通过step
的第三输出获取状态轨迹。此外,为了使step
返回轨迹,输入必须是状态空间(ss
)模型,但您需要输入传递函数(tf
)形式系统的。从这两点来看,以下内容应该提供您想要的输出:
[y,t,x] = step(sys);
plot(t, x);
legend('x1', 'x2');