matlab设计控制理论系统模型
创建传递函数模型
使用分子分母的多项式表示
\[ H(s)=\frac{s}{s^2+2s+10}
\]
num = [ 1 0 ]; % Numerator: s
den = [ 1 2 10 ]; % Denominator: s^2 + 2 s + 10
H = tf(num,den)
也可以用拉普拉斯变量s来创建
s = tf('s'); % Create Laplace variable
H = s / (s^2 + 2*s + 10)
链接两个模型
序列链接H1和H2
H = H2 * H1
平行链接H1和H2
H = H2 + H1
反馈链接H1和H2,默认负反馈
H = feedback(H1,H2) %Assumes negative feedback by defaul
H = feedback(H1,H2,+1);
使用feedback比直接使用公式要好因为可以避免poles的丢失而保证精度。
一个闭环系统的例子:
s = tf('s');
F = 1/(s+1);
G = 100/(s^2+5*s+100);
C = 20*(s^2+s+60)/s/(s^2+40*s+400);
S = 10/(s+10);
%Compute it
T = F * feedback(G*C,S);
step(T), grid
分析时域响应
可以绘制阶跃响应和冲击响应使用step和impulse
sys = tf([8 18 32],[1 6 14 24])
subplot(2,1,1)
step(sys)
subplot(2,1,2)
impulse(sys)
使用stepinfo查看阶跃响应特征
S = stepinfo(sys)
Root Locus
绘制root locus
rlocus(sys)
sgird()