本博文通过实例对控制系统建模进行介绍,展示使用MATLAB对控制系统进行建模,其每个传递函数这是用作例子展示,其合理性还需完善,但其目的是让同学们学会控制系统的建模方法。
-
控制系统的方框图。
注:控制系统各传递函数如下:
G 1 ( s ) = 1 s 2 + 2 s G_1(s)=\frac{1}{s^2+2s} G1(s)=s2+2s1; G 2 ( s ) = 1 ( 0.5 s + 1 ) ( s + 6 ) G_2(s)=\frac{1}{(0.5s+1)(s+6)} G2(s)=(0.5s+1)(s+6)1; G 3 ( s ) = s + 1 s ( s + 3 ) G_3(s)=\frac{s+1}{s(s+3)} G3(s)=s(s+3)s+1;G 4 ( s ) = 1 s + 1 G_4(s)=\frac{1}{s+1} G4(s)=s+11; H 1 ( s ) = s + 2 s + 8 H_1(s)=\frac{s+2}{s+8} H1(s)=s+8s+2; H 2 ( s ) = 1 H_2(s)=1 H2(s)=1。均为负反馈。
- 控制系统代码区,求 C ( s ) / R ( s ) C(s)/R(s) C(s)/R(s)。
%建立各传递函数的模型
G1=tf([1],[1 2 0]); %传递函数为一般形式
num2=1;den2=conv([0.5 1],[1 6]);G2=tf(num2,den2); %传递函数的分子分母是连乘形式
G3=zpk([-1],[0 -3],1); %传递函数零极点形式
G4=tf([1],[1 1]);
H1=zpk([-2],[-8],1);
H2=1;
%将系统模型进行连接
G12=parallel(G1,G2); %G1和G2并联
G34=series(G3,G4); %G3和G4串联
G34_H1_feedback=feedback(G34,H1,-1); %G3和G4,H1构成局部反馈
Gk=series(G12,G34_H1_feedback);
G=feedback(Gk,H2,-1) %闭环传递函数
%结果为:
3 (s+8) (s+2)^2 (s+1)
---------------------------------------------------------------------
(s+7.847) (s+5.968) (s+3.182) (s+2)^2 (s+1) (s^2 + 0.002539s + 0.161)
Continuous-time zero/pole/gain model.
- 建立模型知识点剖析
① 传递函数为一般形式时,如 G 1 ( s ) = 1 s 2 + 2 s G_1(s)=\frac{1}{s^2+2s} G1(s)=s2+2s1,模型建立方式如下:
命令格式: s y s = t f ( n u m , d e n , T s ) sys=tf(num,den,Ts) sys=tf(num,den,Ts);
其中:
n u m num num为分子多项式降幂排列的系数向量;
d e n den den为分母多项式降幂排列的系数向量;
T s Ts Ts为采样时间,缺省时为连续传递函数;
G 1 ( s ) = 1 s 2 + 2 s G_1(s)=\frac{1}{s^2+2s} G1(s)=s2+2s1可描述为: G 1 ( s ) G_1(s) G1(s)=tf([1],[1 2 0]);
② 传递函数的分子、分母为连乘形式,如 G 2 ( s ) = 1 ( 0.5 s + 1 ) ( s + 6 ) G_2(s)=\frac{1}{(0.5s+1)(s+6)} G2(s)=(0.5s+1)(s+6)1,模型建立方式如下:
使用 c o n v conv conv命令进行多项式相乘,得到分子、分母多项式降幂排列后的系数向量,再用 t f tf tf命令,命令同上。
G 2 ( s ) = 1 ( 0.5 s + 1 ) ( s + 6 ) G_2(s)=\frac{1}{(0.5s+1)(s+6)} G2(s)=(0.5s+1)(s+6)1可描述为: n u m 2 = 1 ; num2=1; num2=1;
d e n 2 = c o n v den2=conv den2=conv([0.5 1],[1 6]); G 2 = t f ( n u m 2 , d e n 2 ) ; G2=tf(num2,den2); G2=tf(num2,den2);
③ 传递函数为零极点表示时,如 G 3 ( s ) = s + 1 s ( s + 3 ) G_3(s)=\frac{s+1}{s(s+3)} G3(s)=s(s+3)s+1,模型建立方式如下:
命令格式: s y s = z p k ( z , p , k , T s ) sys=zpk(z,p,k,Ts) sys=zpk(z,p,k,Ts)
其中:
z z z为系统的零点;
p p p为系统的极点;
k k k为系统的增益;
T s Ts Ts为采样时间,缺省表示连续系统。
- 系统连接知识点剖析
各个子控制系统基本连接方式:串联、并联、反馈,三种基本形式如下图标示:
① 系统的并联连接,如 G 1 ( s ) , G 2 ( s ) G_1(s),G_2(s) G1(s),G2(s),其命令如下:
命令格式: s y s = p a r a l l e l ( s y s 1 , s y s 2 ) sys=parallel(sys1,sys2) sys=parallel(sys1,sys2)
G 1 , G 2 并 联 : G_1,G_2并联: G1,G2并联: G 12 ( s ) = p a r a l l e l ( G 1 ( s ) , G 2 ( s ) ) G_{12}(s)=parallel(G_1(s),G_2(s)) G12(s)=parallel(G1(s),G2(s))
② 系统的串联连接,如 G 3 ( s ) , G 4 ( s ) G_3(s),G_4(s) G3(s),G4(s),其命令如下:
命令格式: s y s = s e r i e s ( s y s 1 , s y s 2 ) sys=series(sys1,sys2) sys=series(sys1,sys2)
G 3 , G 4 串 联 : G_3,G_4串联: G3,G4串联: G 34 ( s ) = s e r i e s ( G 3 ( s ) , G 4 ( s ) ) G_{34}(s)=series(G_3(s),G_4(s)) G34(s)=series(G3(s),G4(s))
③ 系统的反馈连接,如 G 3 ( s ) , G 4 ( s ) , H 1 ( s ) G_3(s),G_4(s),H_1(s) G3(s),G4(s),H1(s)构成局部反馈,其命令如下:
命令格式: s y s = f e e d b a c k ( s y s 1 , s y s 2 , s i g n ) sys=feedback(sys1,sys2,sign) sys=feedback(sys1,sys2,sign)
其中: s i g n sign sign用于说明反馈类型(负反馈还是正反馈),缺省时表示负反馈, s i g n = − 1 sign=-1 sign=−1
G 3 , G 4 , H 1 构 成 的 局 部 反 馈 如 下 : G_3,G_4,H_1构成的局部反馈如下: G3,G4,H1构成的局部反馈如下:
G H = f e e d b a c k ( s e r i e s ( G 3 ( s ) , G 4 ( s ) ) , H 1 ( s ) , − 1 ) GH=feedback(series(G_3(s),G_4(s)),H_1(s),-1) GH=feedback(series(G3(s),G4(s)),H1(s),−1)
- 模型转换知识点
命令格式:
① [ n u m , d e n ] = z p 2 t f ( z , p , k ) [num,den]=zp2tf(z,p,k) [num,den]=zp2tf(z,p,k),用于将零极点模型转换成传递函数模型;
② [ z , p , k ] = t f 2 z p ( n u m , d e n ) [z,p,k]=tf2zp(num,den) [z,p,k]=tf2zp(num,den),用于将传递函数模型转换成零极点模型。
- 延伸:传递函数框图变换规则
① 框图串联
② 框图并联
③ 反馈等效
④比较点前移
⑤ (可选部分)比较点后移
⑥ 引出点前移
⑦ (可选部分)引出点后移
- 综合训练题
已知条件: G 1 ( s ) = 1 s + 10 G_1(s)=\frac{1}{s+10} G1(s)=s+101; G 2 ( s ) = 1 s + 1 G_2(s)=\frac{1}{s+1} G2(s)=s+11; G 3 ( s ) = s 2 + 1 s 2 + 4 s + 4 G_3(s)=\frac{s^2+1}{s^2+4s+4} G3(s)=s2+4s+4s2+1; G 4 ( s ) = s + 1 s + 6 G_4(s)=\frac{s+1}{s+6} G4(s)=s+6s+1; H 1 ( s ) = s + 1 s + 2 H_1(s)=\frac{s+1}{s+2} H1(s)=s+2s+1; H 2 ( s ) = 2 H_2(s)=2 H2(s)=2; H 3 ( s ) = 1 H_3(s)=1 H3(s)=1。
- 小结
- 综合训练题提示及参考答案
① 训练题目
已知条件: G 1 ( s ) = 1 s + 10 G_1(s)=\frac{1}{s+10} G1(s)=s+101; G 2 ( s ) = 1 s + 1 G_2(s)=\frac{1}{s+1} G2(s)=s+11; G 3 ( s ) = s 2 + 1 s 2 + 4 s + 4 G_3(s)=\frac{s^2+1}{s^2+4s+4} G3(s)=s2+4s+4s2+1; G 4 ( s ) = s + 1 s + 6 G_4(s)=\frac{s+1}{s+6} G4(s)=s+6s+1; H 1 ( s ) = s + 1 s + 2 H_1(s)=\frac{s+1}{s+2} H1(s)=s+2s+1; H 2 ( s ) = 2 H_2(s)=2 H2(s)=2; H 3 ( s ) = 1 H_3(s)=1 H3(s)=1。
② 训练题目提示
③ 训练题目代码
%建立各子系统模型
G1=tf([1],[1 10]);
G2=tf([1],[1 1]);
G3=tf([1 0 1],[1 4 4]);
numG4=[1 1];denG4=[1 6];G4=tf(numG4,denG4);
H1=zpk([-1],[-2],1);
numH2=[2];denH2=[1];H3=1;
nH2=conv(numH2,denG4);dH2=conv(denH2,numG4);
H2=tf(nH2,dH2); %将H2处引出点移到G4后面
%各个子系统的连接情况
G34=series(G3,G4);
G34_H1=feedback(G34,H1,+1); %G3,G4,H1组成的子系统模型
G2_34_H1=series(G2,G34_H1);
G2_34_H1_H2=feedback(G2_34_H1,H2); %H2构成反馈回路的子系统模型
G=series(G1,G2_34_H1_H2);
GH=feedback(G,H3) %H3构成反馈回路的闭环传递函数
%代码运行的结果
GH =
0.083333 (s+1)^2 (s+2) (s^2 + 1)
---------------------------------------------------------
(s+10.12) (s+2.44) (s+2.349) (s+1) (s^2 + 1.176s + 1.023)
Continuous-time zero/pole/gain model.