matlab第4章

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
num [bn , bn1,...b0 ] den [an , an1,...a0 ]
执行命令 [r,p,k]=residue(num,den),
给出部分分式展开式的留数r、极点p和余数k:
15
s 4 11s 3 39s 2 52s 26 F ( s) s 4 10s 3 35s 24
在MATLAB中,系统状态空间用[A,B,C,D]矩阵 组表示,即系统表示为ss(A,B,C,D)
1.建立状态空间模型的函数ss ( )
常见的wk.baidu.com用格式为:
sys=ss(A,B,C,D) 其中,(A, B, C, D)为系统状态空间的矩阵组表示, sys是建立的状态空间模型。
17
2.提取模型状态空间矩阵的函数ssdata ( )
39
【例】已知两系统的传递函数
s2 2 G1 ( s) 2 G2 ( s ) s3 s s 10 分别求两系统串联、并联时的传递函数。
40
41
42
求闭环传递函数的MATLAB函数有两个: cloop( )和feedback( )
其中cloop( )函数只能用于H(s)=1(即单位反馈)
A s 3s 2
2
5
3.由根创建多项式函数 poly( )
已知多项式的特征根r,用函数 poly( ) 求出多 项式系数向量p。 格式为:p=poly(r)
p s 3s 2
2
6
4.5.2 建立传递函数相关的函数 传递函数模型 bm s m bm1 s m1 ... b 1s b0 X o ( s) G( s) X i (s) an s n an1s n1 ... a1s a0
第4章 控制系统数学模型
控制系统常用的数学模型有: 传递函数模型、状态方程模型、零极点增益模型 等。 这些模型之间可以相互转换。 本章主要介绍如何利用MATLAB/Simulink建模和 对模型进行转换。
1
4.5 MATLAB/Simulink在模型中的应用
4.5.1 与多项式相关的函数
MATLAB中多项式用行向量表示,
G (s)
5s 3 s 3 6 s 2 11s 6
13
3.部分分式展开函数residue ( ) 功能:对两个多项式的比进行部分展开。 格式:[r, p, k]=residue(b, a) 求B(s)/A(s)的部分分式展开式 向量b和a是按s降幂排列的多项式系数。
14
B( s) bn s n bn1s n1 ...b0 F ( s) A( s) an s n an1s n1 ...a0
已经建立的状态空间模型,函数ssdata( ), 可以提取状态空间矩阵. 常见的调用格式为:
[A,B,C,D ] =ssdata(sys)
其中,sys是建立的状态空间模型,
[A, B, C, D]为系统状态空间的矩阵。
18
4.5.5 Simulink中的控制系统模型表示
图标
表4.3 连续模块的名称及功能 模块名 功能
35
%系统的零点、极点和增益
%零极点模型转换为传递函数模型
36
%建立传递函数模型
%建立零极点模型
37
4.6.2 模型连接
1.串联 G(s)=G1(s)G2(s) 模型串联函数 series 格式:[num, den]=series(num1, den1, num2, den2) num1, den1:G1(s)的分子、分母多项式 num2, den2:G2(s)的分子、分母多项式 num, den:G(s)的分子、分母多项式
建立常规系统的传递函数。
8
【例】用MATLAB建立系统传递函数模型。
s2 G (s) 2 s s 10
方法1:
方法2:
9
2.从传递函数模型中提取分子分母多项式 系数的函数tfdata( )
格式:[num,den]=tfdata(sys, „v‟)
sys:传递函数 v功能:返回分子分母多项式系数向量。
对线性定常系统,s的系数均为常数,且a0不等于0。
MATLAB中,传递函数由分子多项式系数向量num 和分母多项式系数向量den构成。 num=[bm,bm-1, …,b0], den=[an,an-1, …,a0]
则传递函数表示为: G ( s) num( s)
den( s)
7
1.建立传递函数模型的函数 tf( ) 格式:sys= tf (num, den) % sys是建立的传递函数
[z,p k]=tf2zp(num,den) 从传递函数模型获取零极点增益
[num,den]=zp2tf(z,p,k)从零极点模型获取分子分母多项式
34
6( s 2) 【例4.10】系统的零极点模型G(s) ( s 1)(s 3)(s 5)
求其传递函数模型。
解:MATLAB程序代码:
3.反馈函数feedback
格式:
[num, den]=feedback(num1, den1, num2, den2, sign) num1, den1:G(s)的分子、分母多项式 num2, den2:H(s)的分子、分母多项式 sign= -1为负反馈(默认值),sign=1为正反馈
26
%提取零极点和增益
1
27
【例4.9】单位负反馈系统的开环传递函数为 2s 10 G( s) 2 s 3s 分别利用simulink中的传递函数 模型和零极点模型建立系统模型。 1、利用传递函数模型建立系统模型
步骤1:新建一个模型窗口
步骤2:为模型添加所需模块 传递函数: continuous →transfer Fcn 相加器: math operations →sum 输入口模块:ports&subsystems→in1
3
注意:一个conv 只能用于两个多项式的运算。 如果有多个多项式,则要用多个conv。 用多个conv嵌套使用,记得加括号。
B (s 3)(2s 5)(2s 5) 4s3 32s 2 85s 75
4
2.多项式求根函数 roots( ) 格式为: r= roots (p) 其中,p为多项式,r为所求的根。 可对传递函数分子和分母求根,求出系统的零极点。
s 4 11s 3 39s 2 52s 26 1 2.5 3 0.5 F ( s) 1 4 3 s 10s 35s 24 s 4 s 3 s 2 s 1
16
4.5.4 建立状态空间模型相关的函数
状态空间表达式
X AX Bu Y CX Du
x:操作点处的状态向量
u:操作点处的输入向量
x,u缺省值为0。
20
( s 1)(s 2 2s 6) 2 【例4.4】 求传递函数 G(s) 2 s (s 3)(s 3 2s 2 3s 4)
的分子和分母多项式,并求传递函数的特征 根。
21
% num 分子多项式 % conv( ) 采用嵌套形式
使用MATLAB建立传递函数模型。
解:建立模型的MATLAB程序代码:
%分子、分母多项式系数
%建立传递函数模型
24
s 4s 8 【例4.6】 传递函数 G ( s) 3 s 11s 2 11s 10
2
求其分子分母多项式,零极点。
25
%建立传递函数模型 %提取分子、分母多项式
s 5 5s 4 20s 3 40s 2 60s 36
%den分母多项式
s 6 5s 5 9s 4 13s 3 12s 2
22
% r为分母多项式的根
23
【例4.5】 一系统微分方程如下:
y (3) 11y ( 2) 11y (1) 10y u ( 2) 4u (1) 8u
38
2.并联 G(s)=G1(s)+G2(s) 模型并联函数 parallel 格式:[num, den]=parallel(num1, den1, num2, den2) num1, den1:G1(s) 的分子、分母多项式 num2, den2:G2(s)的分子、分母多项式 num, den:G(s) 的分子、分母多项式
11
1.建立零极点数学模型的函数 zpk( )
格式:sys= zpk (z, p, k) 【例】用MATLAB建立系统零极点增益模型。
G( s) 18( s 2) ( s 4)(s 15)(s 25)
12
2.提取模型零极点增益向量的函数zpkdata ( ) 格式:[z, p, k]=zpkdata(sys, „v‟) v功能:返回零极点和增益向量。
行向量元素为按降幂排列的多项式系数。
1.多项式乘法函数 conv ( )
格式:C= conv (A, B) %求多项式A和B的乘积
A、B是两个多项式的系数向量,按降幂排列。 conv( ) 把两个多项式相乘合并成一个多项式。
2
p1 2s 3;
2
p2 s 2 4
3 2
A (2s 3)(s 4) 2s 3s 8s 12
输出口模块:ports&subsystems→out1
28
步骤3:将模块连接好 步骤4:打开相加器参数设置对话框,设置为“+-” 步骤5:打开传递函数Transfer Fcn参数设置对话框, numerator设置为“[2 10]”,denominator设置为“[1 3 0]”。 步骤6:将模型存为“untitled1.mdl”文件。
32
图4.9 模型转换关系图
33
表4.4 模型转换函数
函数名 ss2tf 功能 状态空间模型转换为传递函数模型
ss2zp
tf2zp tf2ss zp2tf
状态空间模型转换为零极点模型
传递函数模型转换为零极点模型 传递函数模型转换为状态空间模型 零极点模型转换为传递函数模型
zp2ss
零极点模型转换为状态空间模型
10
4.5.3 建立零极点形式的数学模型相关函数
单输入单输出系统的零 极点模型表示为: ( s z1 )(s z 2 ) ( s zm ) G(s) K ( s p1 )(s p2 ) ( s pn ) 其中z i为系统的零点,]为系统的零点向量; [z p i为系统的极点, ]为系统的极点向量; [p K为系统增益,]为系统的增益向量。 [k
Derivative
Integrator Transfer Fcn Zero-Pole State Space Transport Delay
输入信号微分
输入信号积分 传递函数模型 零极点模型 状态空间系统模型 固定时间传输延迟
19
4.5.6 Simulink 模型与状态空间模型的转化
以状态空间形式线性化模型的函数linmod 格式为:[A,B,C,D]=linmod(„sys‟,x,u) sys: 需要进行线性化的simulink模型的名称 linmod命令返回sys系统在操作点处的状态空间矩阵。
图4.8 simulink中的零极点表示模型
31
4.6 系统模型转换及连接
4.6.1 模型转换 线性时不变系统(LTI)的模型包括 传递函数(Transfer Function)模型TF 零极点增益(ZPK)模型ZPK 状态空间(State Space)模型SS 在一些场合需要某种模型,在另一些场合可能需 要另外一种模型,这就需要进行模型的转换。
相加器: math operations →sum 输入口模块:ports&subsystems→in1 输出口模块:ports&subsystems→out1
30
步骤3:将模块连接好 步骤4:打开相加器参数设置对话框,设置为“+-” 步骤5:打开零极点模型参数设置对话框, zero设置为“[-5]”,poles设置为“[0 -3]”,Gain设 置为“[2]” 步骤6:将模型存为“untitled1.mdl”文件。
图4.7 simulink中的传递函数模型
29
2、利用零极点模型建立系统模型 系统开环传递函数零极点形式为 G ( s) 2( s 5)
s( s 3)
零点为-5;极点为0和-3,增益为2。
步骤1:新建一个模型窗口
步骤2:为模型添加所需模块
零极点模型: continuous →Zero-Pole
相关文档
最新文档