matlab控制系统的数学模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【例5.4】 系统的结构图如图5.3所示。
R(s)
10 s ( s 1)
C(s)
0.2s 1 0.01s 1
图5.3 反馈系统结构图
写出闭环传递函数的多项式模型。
num1=[10];den1=[1 1 0]; num2=[0.2 1];den2=[0.01 1]; [num,den]=feedback(num1,den1,num2,d en2,-1) printsys(num,den)
2.零极点模型(Zero-Pole,简称ZP) 线性定常系统的传递函数G(s)一 般可以表示为零点、极点形式,即
B ( s ) bm s m bm 1s m 1 b1s b0 G ( s) A( s ) an s n an 1s n 1 a1s a0(5.6) k ( s z1 )( s z2 ) ( s zm ) ( s p1 )( s p2 ) ( s pn )
num/den = 20 s + 20 ----------------------------s^5 + 8 s^4 + 22 s^3 + 20 s^2
例题说明: 函数conv()用于计算多项式 乘积,结果为多项式系统的降幂排 列。语句2为函数conv()的嵌套使 用。
【例5.3】 系统的开环传递函数为
num/den = 5 s + 20 ---------------------s^3 + 6 s^2 + 11 s + 6
例题说明: 函数poly()用于将多项式零点 转换为多项式。
c=conv(a,b)
向量a与向量b作卷积。如果a与b 分别为多项式的系数向量,卷积结果 等价与两个多项式的乘积。因此向量 c的长度为 length(c)=length(a)+length(b)-1
num/den = 0.1 s + 10 -----------------------------0.01 s^3 + 1.01 s^2 + 3 s + 10
例题说明: 函数[]=feedback()用于计算一 般反馈系统的闭环传递函数。前向 num1 传递函数为 G(s) den1,反馈传递函数 num2 H ( s) 为 。右变量为G(s)和H(s)的 den2 参数,左变量返回系数的闭环参数, 反馈极性1为正反馈,-1为负反馈, 省缺时作负反馈计算。
z=[-4]; p=[-1 -2 -3]; k=5; 表示该系统的零极点模型。
如果进一步想得到多项式模型, 另外还可以使用下述几种方法实现。 p=poly(A)
如果A为n×n方阵,poly(A)执 行结果得到矩阵A的特征多项式
I A 0, an 1
n n 1
a1 a(5.17) 0
即系统的多项式模型为
2s 3 16s 2 42s 36 G(s) 3 s 3s 2 18s 16
3.状态空间模型(State Space,简称 SS)
线性连续时间系统的状态方程为
x Ax Bu y Cx Du
(5.18)
其中系统矩阵为,控制矩阵为, 输出矩阵为,直耦矩阵为,且A、B、 C、D均为常数矩阵,因此可以由常 数矩阵a、b、c、d表示线性定常系 统的状态空间模型。
z [ z1 , z2 , , zm1 , zm ]
p [ p1 , p2 , , pn1 , pn ]
k=k0
用于在MATLAB中描述线 性定常系统的零极点模型。
【例5.5】 系统的传递函数为 5( s 4) G(s) ( s 1)( s 2)( s 3) 写出其零极点模型。
用于在MATLAB中描述线性定常系 统的状态空间模型。
【5.7】 线性系统的状态空间方程为
x1 0 x 2 2 y1 0 y 1 2 1 x1 0 1 u1 x 2 0 u 3 2 2 3 x1 1 0 u1 x 0 2 u 3 2 2
显示结果为
num/den = 3 s^4 + 2 s^3 + s^2 + 4 s + 2 -------------------------------------3 s^5 + 5 s^4 + s^3 + 2 s^2 + 2 s + 1
4.模型的转换 上述控制系统的3种数学模型, 可以由模型转换函数相互转换,以 满足不同的使用需要。模型转换函 数基本格式如下。
[z,p,k]=tf2zp(num,den) [num,den]=zp2tf(z,p,k)
用于多项式模型与零极点模型之间 的转换。 函数1返回零点向量z、极点向量p和 增益向量k。 函数2返回分子多项式向量num和分 母多项式向量den。
【例5.10】 已知系统的多项式模型, 求零极点模型。
num=[0 1 12 44 48]; den=[1 16 86 176 105]; [z,p,k]=tf2zp(num,den)
[numc,denc]=cloop(numo,deno,-1); printsys(numc,denc); num/den = 5s+5 --------------------s^3 + 3 s^2 + 5 s + 5
例题说明: 函数[]=cloop()用于计算单位反 馈时闭环传递函数多项式模型的参数 向量,右变量为开环参数,左变量返 回系统的闭环参数,反馈极性1为正 反馈,-1为负反馈,省缺时作负反馈 计算。
a [a11 , a12 , , a1n ; a21 , a22 , a2 n ; ; an1 , an 2 , , ann ]
b [b11 , b12 , , b1m ; b21 , b22 , b2 m ; ; bn1 , bn 2 , , bnm ]
例题说明: 函数printsys()用于显示传递 函数G(s)的多项式模型。显示变量 num/den为通用的输出显示格式, 与输出变量名称无关。
ຫໍສະໝຸດ Baidu
【例5.2】 系统的开环传递函数为
20( s 1) G ( s) 2 s ( s 2)( s 2 6s 10)
写出其多项式模型。 num=conv([20],[1 1]); den=conv([1 0 0],conv([1 2],[1 6 10])); printsys(num,den);
(5.14) (5.15)
A( s) an s n an 1s n 1 a1s a0
分别为分子多项式与分母多项 b a 式。 , j 0,1, 2, , m;i , i 0,1, 2, , n ,均为常 系数。
j
由于用 b j , j 0,1, 2, , m 和 ai , i 0,1, 2, , n 可以唯一地确定一个系统,因此在 MATLAB种可以用向量 num [bm , bm1 , b1 , b0 ] 和 den [an , an1 , , a1 , a0 ]来表示传递函数 G(s)的多项式模型。
5( s 1) G( s) 2 s ( s 3)
写出单位负反馈时,闭环传递函数的多项 式模型。 numo=conv([5],[1 1]); deno=conv([1 0 0],[1 3]); printsys(numo,deno);
num/den = 5s+5 ----------s^3 + 3 s^2
c [c11 , c12 , , c1n ; c21 , c22 , c2 n ; ; cr1 , cr 2 , , crn ]
d [d11 , d12 , , d1m ; d21 , d22 , d2 m ; ; d r1 , d r 2 , , d nm ]
则 p [1, an1 , , a1 , a0 ] 为矩阵A的特 征多项式系数向量。
如果A为向量,poly(A)执行结 果得到以向量a的元素为根的多项 式。因此,该函数可以用于零极点 模型至多项式模型的转换。
如上例,
num=k*poly(z); den=poly(p); printsys(num,den);
式中z j , j 1, 2, , m;pi , i 1, 2, , n; k分别为系统的m个零点、n个极点及 增益k,且均为常数。
由于用m个零点、n个极点及增 益k可以唯一地确定一个系统。因此, 在MATLAB中可以用向 p 量z [ z0 , z1 , , zm1 , zm ] 、 [ p1 , p2 , , pn1 , pn ]、 k=k0来表示系统G(s)的零极点模型。
输入常数矩阵
a=[0 1;-2 -3] b=[0 1;2 0] c=[0 3;1 3] d=[1 0;0 2]
用来表示系统的状态空间模型。
显示为 a= 0 -2 b= 0 2
c= 1 -3 0 1 d= 3 3
1 0
1 0
0 2
poly2str(num,'s')
用于已知多项式的系数向量 num,构造变量为S的多项式函数。
den [an , an 1 , , a1 , a0 ]
num [bm , bm1 , b1 , b0 ]
用于在MATLAB中描述线性定常系 统的多项式模型(TF)。
【例5.1】 系统的传递函数为
s 3 12s 2 44s 48 G ( s ) 4 3 s 16s 86s 2 176s 105
• • • •
在MATLAB命令平台上键入 num=[0 1 12 44 48]; den=[1 16 86 176 105]; printsys(num,den);
num/den = s^3 + 12 s^2 + 44 s + 48 ---------------------------------s^4 + 16 s^3 + 86 s^2 + 176 s + 105
B( s ) bm s m bm 1s m 1 b1s b0 G(s) , n m(5.13) n n 1 A( s ) an s an 1s a1s a0
其中
B( s) bm s m bm1s m1 b1s b0
【例5.8】 键入 num=[3,2,1,4,2]; poly2str(num, 's') 显示结果为 ans = 3 s^4 + 2 s^3 + s^2 + 4 s + 2
printsys(num,den) 用于构造传递函数G(s)并作显示。
【5.9】 键入 num=[3,2,1,4,2]; den=[3,5,1,2,2,1]; printsys(num,den);
可见,该函数也可以用于零极点 模型至多项式模型的转换。 【例5.6】 系统的零极点模型为
2( s 2)( s 3)2 G (s) ( s 1)( s 2 2s 16)
求多项式模型。
num=2*conv([1,2],conv([1,3],[1,3])) den=conv([1,1],[1,2,16]) num = 2 16 42 36 den = 1 3 18 16
控制系统的数学模型
在进行控制系统分析之前,首 要工作是建立控制系统的数学模型。
在MATLAB命令行方式仿真中, 可以用3种方法建立控制系统的参数 模型: 多项式模型 零极点模型 状态空间模型
5.2.1 控制系统的参数模型 1. 多项式模型(Transfer Function, 简称TF) 线性定常系统的传递函数G(s)一般 可以表示为