控制系统的数学模型
一.数学模型的建立
在线性系统中,常用的数学模型有传递函数模型、零极点模型以及状态空间模型等
(1)传递函数模型
传递函数的一般形式
G(s)=C(s)R(s)=b0sm+b1sm−1+⋯+bm−1s+bma0sn+a1sn−1+⋯+an−1s+an G(s)=\frac{C(s)}{R(s)}=\frac{b_{0} s^{m}+b_{1} s^{m-1}+\cdots+b_{m-1} s+b_{m}}{a_{0} s^{n}+a_{1} s^{n-1}+\cdots+a_{n-1} s+a_{n}} G(s)=R(s)C(s)=a0sn+a1sn−1+⋯+an−1s+anb0sm+b1sm−1+⋯+bm−1s+bm
函数调用格式
sys=tf(num,den);
- tf–transfer function(传递函数模型)
- num–numerator(传递函数分子的多项式系数向量) 一定要降幂排列,缺项补零!
- den–denominator(传递函数分母的多项式系数向量)同上
实例
请构建如下传递函数
G(s)=7s2+8s+19s3+8s2+3s+1
G(s)=\frac{7s^2+8s+1}{9s^3+8s^2+3s+1}
G(s)=9s3+8s2+3s+17s2+8s+1
num=[7 8 1];
den=[9 8 3 1];
sys=tf(num,den)
拓展:(结合卷积函数conv构建多项式—适用于未展开且比较复杂的多项式)
请构建如下传递函数
G(s)=(s+1)(7s+1)(3s+1)(2s+1)(7s+1)
G(s)=\frac{(s+1)(7s+1)}{(3s+1)(2s+1)(7s+1)}
G(s)=(3s+1)(2s+1)(7s+1)(s+1)(7s+1)
num=conv([1,1],[7,1]);
den=conv(conv([3 1],[2,1]),[7,1]);
sys=tf(num,den)
(2)零极点模型
零极点式一般形式
G(s)=C(s)R(s)=K∗(s−z1)(s−z2)⋯(s−zj)(s−zm)(s−p1)(s−p2)⋯(s−pi)(s−pn) G(s)=\frac{C(s)}{R(s)}=K^*\frac{\left(s-z_{1}\right)\left(s-z_{2}\right) \cdots\left(s-z_{j}\right)\left(s-z_{m}\right)}{\left(s-p_{1}\right)\left(s-p_{2}\right) \cdots\left(s-p_{i}\right)\left(s-p_{n}\right)} G(s)=R(s)C(s)=K∗(s−p1)(s−p2)⋯(s−pi)(s−pn)(s−z1)(s−z2)⋯(s−zj)(s−zm)
-
z1,z2,…,zm为系统的m个零点,p1、p2、…pn为系统的n个极点,K∗K^*K∗称为根轨迹增益
-
零极点式等价于首一式,对应根轨迹增益;而相对应于尾一式(典型环节),对应开环增益
尾一式的数学表达如下
G(s)=K(τ1s+1)(τ22s2+2ζ1τ2s+1)⋯(τls+1)sν(T1s+1)(T22s2+2ζ2T2s+1)⋯(Tjs+1) G(s)=\frac{K\left(\tau_{1} s+1\right)\left(\tau_{2}^{2} s^{2}+2 \zeta_{1} \tau_{2} s+1\right) \cdots\left(\tau_{l} s+1\right)}{s^{\nu}\left(T_{1} s+1\right)\left(T_{2}^{2} s^{2}+2 \zeta_{2} T_{2} s+1\right) \cdots\left(T_{j} s+1\right)} G(s)=sν(T1s+1)(T22s2+2ζ2T2s+1)⋯(Tjs+1)K(τ1s+1)(τ22s2+2ζ1τ2s+1)⋯(τls+1)
其中K为开环增益,v为系统型别
函数调用格式
sys=zpk(z,p,k);
- z(zero)–由零点构成的向量
- p(polar)–由极点构成的向量
- k–根轨迹增益
实例
请构造如下传递函数
G(s)=20(s+1)(s+2)(s+4)(s+5)(s+6)
G(s)=\frac{20(s+1)(s+2)}{(s+4)(s+5)(s+6)}
G(s)=(s+4)(s+5)(s+6)20(s+1)(s+2)
z=[-1 -2];
p=[-4 -5 -6];
k=20;
sys=zpk(z,p,k)
二.数学模型的转换
零极点形式和传递函数一般形式之间可以相互转换
(1)零极点到传递函数
函数调用格式
[num,den]=zp2tf(z,p,k);
- 一定注意函数名不是 zpk2tf !!!
实例
将如下零极点格式模型转化为传递函数标准形式
G(s)=20(s+1)(s+2)(s+4)(s+5)(s+6)
G(s)=\frac{20(s+1)(s+2)}{(s+4)(s+5)(s+6)}
G(s)=(s+4)(s+5)(s+6)20(s+1)(s+2)
z=[-1;-2]; %此处的z一定是一个列向量。感觉以后也记不住,可以记忆个大概结合报错来修改自己的程序
p=[-4 -5 -6];
k=20;
[num,den]=zp2tf(z,p,k)
(2)传递函数到零极点
函数调用格式
[z,p,k]=tf2zp(num,den);
- 一定注意函数名不是 tf2zpk !!!
实例
将如下传递函数标准形式转化为零极点格式模型
G(s)=20s2+60s+40s3+15s2+74s+120
G(s)=\frac{20s^2+60s+40}{s^3+15s^2+74s+120}
G(s)=s3+15s2+74s+12020s2+60s+40
num=[20 60 40];
den=[1 15 74 120];
[z,p,k]=tf2zp(num,den);
运行之后就会发现(1)和(2)的实例中的模型是一致的
三.数学模型的连接
数学模型经过连接便可以构成控制系统的结构图,如何用matlab实现语句的连接便显得格外重要
按照连接方式,可以分为如下几类


9281

被折叠的 条评论
为什么被折叠?



