当前位置:
文档之家› 控制系统建模的matlab方法
控制系统建模的matlab方法
借助多项式乘法函数conv来处理: 》num=4*conv([1,2],conv([1,6,6],[1,6,6])); 》den=conv([1,0],conv([1,1],conv([1,1],conv([1,1], [1,3,2,5]))));
二、零极点增益模型
• 零极点模型实际上是传递函数模型的另一种表现形式,其 原理是分别对原系统传递函数的分子、分母进行分解因式 处理,以获得系统的零点和极点的表示形式。
3、反馈:feedback 格式:[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2) • %将两个系统按反馈方式连接,一般而言,系统1为对 象,系统2为反馈控制器。 [a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,sign) • %系统1的所有输出连接到系统2的输入,系统2的所有 输出连接到系统1的输入,sign用来指示系统2输出到系 统1输入的连接符号,sign缺省时,默认为负,即sign= -1。总系统的输入/输出数等同于系统1。 [num,den]=feedback(num1,den1,num2,den2,sign) • %可以得到类似的连接,只是子系统和闭环系统均以传 递函数的形式表示。
s3 + 11s2 + 30s 零极点增益模型: G(s) = 4 s + 9s3 + 45s2 + 87s + 50 》num=[1,11,30,0];
》den=[1,9,45,87,50]; [z,p,k]=tf2zp(num,den) 》 z= p= k= 0 -6 -5 -3.0000+4.0000i -3.0000-4.0000i -2.0000 -1.0000 1
x11 y 11 0 0 1 0 y = 0 1 1 x12 + 1 12 x13 ɺ x 21 1 − 1 0 x 21 1 x = 3 − 2 1 x + 0 ɺ 22 22 x 23 1 6 − 1 x 23 0 ɺ x 21 y 21 0 1 0 1 1 y = 1 0 1 x 22 + 1 0 22 x 23
u11 1 0 u12 0 1 u13 0 0 u 21 1 0 u 22 0 1 u 23
u 21 0 u 22 1 u 23
求部分并 联后的状 态空间, 要求u11 与u22连 接,u13 与u23连 接,y11 与y21连 接。
• 例用MATLAB表示传递函数为 • 解 本题的MATLAB程序为
• 则执行后得到如下结果
三、传递函数的部分分式展开
• 当传递函数
• 时,在MATLAB中直接用分子/分母的系数表示时有
• [r,p,k]=residue(num,den) • 将求出两个多项式Y(s)和X(s)之比的由部分分式展 开的留数、极点和直接项,Y(s)/X(s)的部分分式 展开由下式给出
(2) 求单位脉冲响应 在MATLAB Command Window下键入 下列语句: num=[0 0 1]; den=[1 0.2 1]; impulse(num,den) 即在屏幕上产生该系统的单位脉冲响应曲线, 如图所示。
(3) 求单位斜坡响应
MATLAB中没有斜坡响应命令,需要利用阶跃响应命令。事实上,
小结
• 在进行控制系统的仿真之前,建立系统的模型表达式是关 键的一步。 • 对于控制系统,有不同的分类,在本课程中主要讨论的是 线性定常连续系统 • 系统的描述有不同的方法:微分方程;传递函数;零极点 增益模式;部分分式展开;状态空间模型等。 • 系统的模型之间可以相互转换,要求熟练掌握各种模型之 间转换的命令。 • 模型之间可以进行连接,要求掌握常用的模型连接命令: 串联、并联、反馈及闭环。
k= 2
结果表达式:
− 0.25i 0.25i − 2 G(s) = 2 + + + s − 2i s + 2i s + 1
模型的转换与连接
一、模型的转换Leabharlann • 在一些场合下需要用到某种模型,而在另外 一些场合下可能需要另外的模型,这就需要 进行模型的转换。
模型之间的转换
模型转换的函数包括: residue:传递函数模型与部分分式模型互换 ss2tf: 状态空间模型转换为传递函数模型 ss2zp: 状态空间模型转换为零极点增益模型 tf2ss: 传递函数模型转换为状态空间模型 tf2zp: 传递函数模型转换为零极点增益模型 zp2ss: 零极点增益模型转换为状态空间模型 zp2tf: 零极点增益模型转换为传递函数模型
C ( s ) = G ( s ) R ( s ) R ( s ) =1 / s 2 1 1 1 1 = 2 ⋅ 2 = 3 ⋅ 2 s + 0 .2 s + 1 s s + 0 .2 s + s s
在MATLAB Command Window下键入下列语句: num=[0 0 0 1]; den=[1 0.2 1 0]; step(num,den) 即可得到系统的单位斜坡响应曲线,如图所示。
4、闭环:cloop(单位反馈) 格式: [ac,bc,cc,dc]=cloop(a,b,c,d,sign) • %通过将所有的输出反馈到输入,从而产生闭环系统 的状态空间模型。当sign=1时采用正反馈;当sign= 1时采用负反馈;sign缺省时,默认为负反馈。 [ac,bc,cc,dc]=cloop(a,b,c,d,outputs,inputs) • %表示将指定的输出outputs反馈到指定的输入inputs, 以此构成闭环系统的状态空间模型。一般为正反馈, 形成负反馈时应在inputs中采用负值。 [numc,denc]=cloop(num,den,sign) • %表示由传递函数表示的开环系统构成闭环系统, sign意义与上述相同。
s(s + 6)(s + 5) G 结果表达式: (s) = (s + 1)(s + 2)(s + 3 + 4 j )(s + 3 − 4 j )
2s3 + 9s + 1 部分分式展开: G(s) = 3 2 s + s + 4s + 4 》num=[2,0,9,1];
》den=[1,1,4,4]; [r,p,k]=residue(num,den) 》 r= p= 0.0000-0.2500i 0.0000+0.2500i -2.0000 0.0000+2.0000i 0.0000-2.0000i -1.0000
举例:传递函数描述 1)
12s3 + 24s2 + 20 G(s) = 4 2s + 4s3 + 6s2 + 2s + 2
》num=[12,24,0,20];den=[2 4 6 2 2]; 2)
4(s + 2)(s2 + 6s + 6)2 G(s) = s(s + 1)3 (s3 + 3s2 + 2s + 5)
控制系统建模的matlab方法
• §微分方程求解 • §传递函数描述 • §状态空间方程描述 • §模型的转换与连接
传递函数模型
• 当传递函数为
• 时,则在MATLAB中,直接用分子/分母的系数形式 表示,即 •
• 例用MATLAB表示传递函数为 解 本题的MATLAB程序为 l
的系统
• 后得到如下结果
2)exp3_3.m
ɺ x11 1 x = 2 ɺ 12 x13 3 ɺ 4 2 6
系统1、系统2方程如下所示。
4 x11 1 x12 + 2 x13 0 1 0 1 0 0 0 u11 0 u12 1 u13
• 举例应用: 1) 系统1为:
0 1 0 ɺ x1 = x1 + 1u1 1 − 2 y1 = [1 3]x1 + u1
系统2为:
0 1 0 ɺ x2 = x2 + 1u2 − 1 − 3 y2 = [1 4]x2
求按串联、并联、正反馈、负反馈连接时的系统状态方程 及系统1按单位负反馈连接时的状态方程。
3-4-3 控制系统时域响应的 仿真方法
MATLAB中提供了一些简单的命令,可以用来求取控制系统的时域响应。
例:已知
G (s) =
试用MATLAB求其单位阶跃响应、单位脉冲响应和 单位斜坡响应。
C (s) 1 = 2 R (s) s + 0 .2 s + 1
(1) 求单位阶跃响应 在MATLAB COMMAND Window下键入下 列语句 num=[0 0 1]; den=[1 0.2 1]; step(num,den) 即在屏幕上产生该系统的单位阶跃响应曲线,如 图所示。
•
− 0.25i 0.25i − 2 4)已知部分分式: ( s) = 2 + G + + s − 2i s + 2i s + 1
》r=[-0.25i,0.25i,-2]; 》p=[2i,-2i,-1];k=2; 》[num,den]=residue(r,p,k) 》num= 2 0 9 1 》den= 1 1 4 4 注意余式一定要与极点相对应。
二、模型的连接
1)并联
• • • • • •
在MATLAB中可用parallel 函数实现 命令格式为 [nump,denp]= parallel(num1,den1, num2,den2) 其对应的结果为 Gp(s)=G1(s ) +G2(s)