第07讲 控制系统的数学模型及其相互转换
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
17
4. 状态空间表达式 设线性定常连续系统的状态空间表达式为
& x(t) = Ax(t) + Bu(t) y(t) = Cx(t) + Du(t)
式中 A:n×n;B:n×r;C:m×n;D:m×r : : : : 如果传递函数( 各元素为严格真有理分式, 如果传递函数(阵)各元素为严格真有理分式, 则D=0,此时上式可写为 = ,
14
例 已知系统传递函数为 5( s + 20) G ( s) = s ( s + 4.6)( s + 1) 利用MATLAB将上述模型表示出来。 将上述模型表示出来。 利用 将上述模型表示出来 解:>>k=5;z=-20;p=[0;-4.6;-1]; >>sys=zpk(z,p,k) 运行结果为: 运行结果为: Zero/pole/gain: 5 (s+20) --------------s (s+4.6) (s+1)
printsys:显示 : 或打印系统
7
当传递函数的分子或分母由若干个多项式乘 积表示时,它可由MATLAB提供的多项式乘法运算 积表示时,它可由 提供的多项式乘法运算 函数conv( 来处理, 函数 conv( ) 来处理 , 以便获得分子和分母多项式 系数向量, 系数向量,此函数的调用格式为 c=conv(a,b) 其中: 分别为由两个多项式系数构成的向量, 其中:a和b分别为由两个多项式系数构成的向量, 多项式的乘积多项式系数向量。 而c为a和b多项式的乘积多项式系数向量。conv( ) 函数的调用是允许多级嵌套的。 函数的调用是允许多级嵌套的。
9
对具有r个输入和m个输出的多变量系统, 对具有r 个输入和m个输出的多变量系统, 可把m 的传递函数矩阵G(s)写成和单变量 可把 m×r 的传递函数矩阵 写成和单变量 系统传递函数相类似的形式, 系统传递函数相类似的形式,即
式中: 均为m 实常数矩阵, 式中:B0,B1,…,Bn均为m×r 实常数矩阵,分 母多项式为该传递函数矩阵的特征多项式。 母多项式为该传递函数矩阵的特征多项式。
10
控制系统工具箱中, 在MATLAB控制系统工具箱中,提供了 控制系统工具箱中 表示单输入多输出系统的表示方法, 单输入多输出系统的表示方法 表示单输入多输出系统的表示方法,即 num=[B0 B1 … Bn]; den=[1 a1 a2 … an] 其中:分子系数包含在矩阵num中,num行数 其中: 分子系数包含在矩阵num中 num行数 num 与输出y的维数一致 每行对应一个输出, 的维数一致, 与输出 的维数一致 , 每行对应一个输出 , den是行向量 是行向量, den是行向量 为传递函数矩阵公分母多项式 系数。 系数。
11
例2-3 对于单输入多输出系统
则可将其用下列MATLAB语句表示 解 则可将其用下列 语句表示 >>num=[0 0 3 2;1 0 2 5];den=[3 5 2 1]; >>printsys(num,den) num(1)/den = 3s+2 ----------------------3 s^3 + 5 s^2 + 2 s + 1 num(2)/den = s^3 + 2 s + 5 ----------------------3 s^3 + 5 s^2 + 2 s + 1
j =1 n i=1
∏(s − z j )
m
式中: (j=1 (i=1 ,n)称 式中 : zj(j=1,2,…,m) 和 pi(i=1,2,…,n) 称 ,m) ,n) 为系统的零点和极点, 为系统的零点和极点,它们既可以为实数又 可以为复数, 称为系统的增益。 可以为复数,而K称为系统的增益。 称为系统的增益
3
在线性定常系统(连续系统、离散系统) 在线性定常系统(连续系统、离散系统) 理论中,一般常用的数学模型形式有: 理论中,一般常用的数学模型形式有: 传递函数模型(系统的外部模型) 传递函数模型(系统的外部模型) 状态空间模型(系统的内部模型) 状态空间模型(系统的内部模型) 零极点增益模型 部分分式模型 这些模型之间都有着内在的联系, 这些模型之间都有着内在的联系,可以 相互进行转换。 相互进行转换。
4
为了对系统的性能进行分析首先要建立 其数学模型 ,在MATLAB中提供了四种数 中提供了四种数 学模型描述形式: 学模型描述形式: (1)传递函数模型tf( ) 传递函数模型tf( (2)零极点增益模型zpk( ) 零极点增益模型zpk( (3)状态空间模型ss( ) 状态空间模型ss( (4)部分分式模型residue( ) 部分分式模型residue(
2
本章内容
(1) 利用 利用MATLAB描述控制系统中常见的几种数学 描述控制系统中常见的几种数学 模型; 模型; (2) 利用 利用MATLAB实现任意数学模型之间的相互转 实现任意数学模型之间的相互转 换; (3) 利用 利用MATLAB求解经过串联、并联和反馈连接 求解经过串联、 求解经过串联 后的系统模型; 后的系统模型; (4) 利用 利用MATLAB获取一些典型系统的模型; 获取一些典型系统的模型; 获取一些典型系统的模型 (5) 利用 利用MATLAB实现连续系统的离散化和离散系 实现连续系统的离散化和离散系 统的连续化; 统的连续化; (6) 利用 利用MATLAB求取系统的特性函数。 求取系统的特性函数。 求取系统的特性函数
3s + 2 s3 + 2s + 5 G(s) = 3 2 3s + 5s + 2s +1
12
2. 零极点增益形式 单输入单输出系统的零极点模型可表示 为
(s − z1)(s − z2 )L(s − zm ) =K G(s) = K (s − p1)(s − p2 )L(s − pn ) ∏(s − pi )
6
den=[1 a1 a2 … an]
Y(s) 6s3 +12s2 + 6s +10 例2-1 若给定系统的传递函数为 G(s) = = 4 U(s) s + 2s3 + 3s2 + s +1
可以将其用下列MATLAB语句表示 解 可以将其用下列 语句表示 >>num=[6 12 6 10];den=[1 2 3 1 1]; >>printsys(num,den) num/den = 6 s^3 + 12 s^2 + 6 s + 10 ---------------------------s^4 + 2 s^3 + 3 s^2 + s + 1 >>sys=tf(num,den) Transfer function: 6 s^3 + 12 s^2 + 6 s + 10 --------------------------s^4 + 2 s^3 + 3 s^2 + s + 1
15
MATLAB工具箱中的函数 poly( ) 和roots( ) 工具箱中的函数 可用来实现多项式和零极点间的转换, 可用来实现多项式和零极点间的转换,例如在命令 窗口中进行如下操作可实现互相转换。 窗口中进行如下操作可实现互相转换。 >>P=[1 3 5 2]; >>R=roots(P) R= -1.2267+1.4677i -1.2267-1.4677i -0.5466 >>P1=poly(R) P1= 1.0000 3.0000 5.0000 2.0000 16
23表21数学模型转换函数及其功能函数名函数功能ss2tf将系统状态空间模型转换为传递函数模型ss2zp将系统状态空间模型转换为零极点增益模型tf2ss将系统传递函数模型转换为状态空间模型tf2zp将系统传递函数模型转换为零极点增益模型zp2ss将系统零极点增益模型换为状态空间模型zp2tf零极点增益模型换为传递函数模型residue将传递函数形式与部分分式形式的数学模型相互转换的函数24如果系统的状态空间表达式为
5
2.1 线性系统数学模型的基本描述 方法
1. 传递函数
b0sm + b1sm−1 +L+ bm Y(s) G(s) = = n n−1 U(s) s + a1s +L+ an
传递函数在MATLAB下可以方便的由其分子和 下可以方便的由其分子和 传递函数在 分母多项式系数所构成的两个向量唯一确定出来。 分母多项式系数所构成的两个向量唯一确定出来。 即 num=[b0 b1 … bm]; sys=tf(num,den)
3. 部分分式形式 传递函数也可表示成部分分式或留数形式, 传递函数也可表示成部分分式或留数形式,即 n ri G(s) = ∑ + h(s) i=1 s − pi 式 中 : pi(i=1,2,…,n) 为 该 系 统 的 n 个 极 点 , ri (i=1,2,…,n)是对应各极点的留数; h(s)则表示传递 是对应各极点的留数; 是对应各极点的留数 则表示传递 函数分子多项式除以分母多项式的余式。 函数分子多项式除以分母多项式的余式。 下它也可由系统的极点 在 MATLAB下它也可由系统的 极点 、 留数和 下它也可由系统的 极点、 余式系数所构成的向量唯一确定出来, 余式系数所构成的向量唯一确定出来,即 P=[p1;p2;…;pn];R=[r1;r2;…;rn]; ; ; ; ; H=[h0 h1 … hm-n]
第2章 控制系统的数学模型 章 及其转换
控制系统的数学模型在控制系统的研究 中有着相当重要的地位, 中有着相当重要的地位,要对系统进行仿真 处理,首先应当知道系统的数学模型, 处理,首先应当知道系统的数学模型,然后 才可以对系统进行模拟。 才可以对系统进行模拟。 同样,如果知道了系统的模型, 同样,如果知道了系统的模型,才可以 在此基础上设计一个合适的控制器, 在此基础上设计一个合适的控制器,使得系 统响应达到预期的效果, 统响应达到预期的效果,从而符合工程实际 的需要。 的需要。
& x(t) = Ax(t) + Bx(t) y(t) = Cx(t)
它们可分别简记为Σ(A,B,C,D) 和 Σ(A,B,C系统的状态空间表达式在MATLAB下可以用一 下可以用一 系统的状态空间表达式在 个矩阵组Σ(A,B,C,D) Σ(A,B,C)来唯一确定 Σ(A,B,C,D)和 来唯一确定。 个矩阵组Σ(A,B,C,D)和Σ(A,B,C)来唯一确定。 用函数ss( )来建立控制系统的状态空间模型 来建立控制系统的状态空间模型, 用函数ss( )来建立控制系统的状态空间模型, )函数的调用格式为 函数的调用格式为: ss( )函数的调用格式为: sys=ss(a,b,c,d) 函数的返回变量sys为连续系统的状态空间模 函数的返回变量sys为连续系统的状态空间模 sys 函数输入参数a,b,c,d分别对应于系统的A a,b,c,d分别对应于系统的 型。函数输入参数a,b,c,d分别对应于系统的A,B, 参数矩阵。 C,D参数矩阵。
8
例2-2 已知系统传递函数为 利用MATLAB将上述模型表示出来。 将上述模型表示出来。 利用 将上述模型表示出来 命令为: 解:其MATLAB命令为: 命令为 >>num=7*[2,3]; >>den=conv(conv(conv([1,0,0,0],[3,1]),conv([1,2],[1,2])),[ 5,0,3,8]); >>sys=tf(num,den) 运行结果: 运行结果: Transfer function: 14 s + 21 ----------------------------------------------------------------------------15s^9+65s^8+89s^7+83 s^6 +152 s^5 +140 s^4 + 32 s^3 或 >>den=conv([1 0 0 0],conv([3 1],conv([1 2],conv([1 2],[5 0 3 8]))));
13
下零极点增益模型可以由增益K和 在 MATLAB下零极点增益模型可以由增益 和 下零极点增益模型可以由增益 极点所构成的列向量唯一确定出来。 列向量唯一确定出来 零、极点所构成的列向量唯一确定出来。即 Z=[z1;z2;…;zm]; P=[p1;p2;…;pn] sys=zpk(z,p,k) 对于单输入多输出系统,列向量 中储存为系 对于单输入多输出系统,列向量P中储存为系 统的极点;零点储存在矩阵Z的列中 Z的列数等于 统的极点;零点储存在矩阵 的列中, 的列数等于 的列中 输出向量的维数,每列对应一个输出, 输出向量的维数,每列对应一个输出,对应增益则 在列向量K中 在列向量 中。
4. 状态空间表达式 设线性定常连续系统的状态空间表达式为
& x(t) = Ax(t) + Bu(t) y(t) = Cx(t) + Du(t)
式中 A:n×n;B:n×r;C:m×n;D:m×r : : : : 如果传递函数( 各元素为严格真有理分式, 如果传递函数(阵)各元素为严格真有理分式, 则D=0,此时上式可写为 = ,
14
例 已知系统传递函数为 5( s + 20) G ( s) = s ( s + 4.6)( s + 1) 利用MATLAB将上述模型表示出来。 将上述模型表示出来。 利用 将上述模型表示出来 解:>>k=5;z=-20;p=[0;-4.6;-1]; >>sys=zpk(z,p,k) 运行结果为: 运行结果为: Zero/pole/gain: 5 (s+20) --------------s (s+4.6) (s+1)
printsys:显示 : 或打印系统
7
当传递函数的分子或分母由若干个多项式乘 积表示时,它可由MATLAB提供的多项式乘法运算 积表示时,它可由 提供的多项式乘法运算 函数conv( 来处理, 函数 conv( ) 来处理 , 以便获得分子和分母多项式 系数向量, 系数向量,此函数的调用格式为 c=conv(a,b) 其中: 分别为由两个多项式系数构成的向量, 其中:a和b分别为由两个多项式系数构成的向量, 多项式的乘积多项式系数向量。 而c为a和b多项式的乘积多项式系数向量。conv( ) 函数的调用是允许多级嵌套的。 函数的调用是允许多级嵌套的。
9
对具有r个输入和m个输出的多变量系统, 对具有r 个输入和m个输出的多变量系统, 可把m 的传递函数矩阵G(s)写成和单变量 可把 m×r 的传递函数矩阵 写成和单变量 系统传递函数相类似的形式, 系统传递函数相类似的形式,即
式中: 均为m 实常数矩阵, 式中:B0,B1,…,Bn均为m×r 实常数矩阵,分 母多项式为该传递函数矩阵的特征多项式。 母多项式为该传递函数矩阵的特征多项式。
10
控制系统工具箱中, 在MATLAB控制系统工具箱中,提供了 控制系统工具箱中 表示单输入多输出系统的表示方法, 单输入多输出系统的表示方法 表示单输入多输出系统的表示方法,即 num=[B0 B1 … Bn]; den=[1 a1 a2 … an] 其中:分子系数包含在矩阵num中,num行数 其中: 分子系数包含在矩阵num中 num行数 num 与输出y的维数一致 每行对应一个输出, 的维数一致, 与输出 的维数一致 , 每行对应一个输出 , den是行向量 是行向量, den是行向量 为传递函数矩阵公分母多项式 系数。 系数。
11
例2-3 对于单输入多输出系统
则可将其用下列MATLAB语句表示 解 则可将其用下列 语句表示 >>num=[0 0 3 2;1 0 2 5];den=[3 5 2 1]; >>printsys(num,den) num(1)/den = 3s+2 ----------------------3 s^3 + 5 s^2 + 2 s + 1 num(2)/den = s^3 + 2 s + 5 ----------------------3 s^3 + 5 s^2 + 2 s + 1
j =1 n i=1
∏(s − z j )
m
式中: (j=1 (i=1 ,n)称 式中 : zj(j=1,2,…,m) 和 pi(i=1,2,…,n) 称 ,m) ,n) 为系统的零点和极点, 为系统的零点和极点,它们既可以为实数又 可以为复数, 称为系统的增益。 可以为复数,而K称为系统的增益。 称为系统的增益
3
在线性定常系统(连续系统、离散系统) 在线性定常系统(连续系统、离散系统) 理论中,一般常用的数学模型形式有: 理论中,一般常用的数学模型形式有: 传递函数模型(系统的外部模型) 传递函数模型(系统的外部模型) 状态空间模型(系统的内部模型) 状态空间模型(系统的内部模型) 零极点增益模型 部分分式模型 这些模型之间都有着内在的联系, 这些模型之间都有着内在的联系,可以 相互进行转换。 相互进行转换。
4
为了对系统的性能进行分析首先要建立 其数学模型 ,在MATLAB中提供了四种数 中提供了四种数 学模型描述形式: 学模型描述形式: (1)传递函数模型tf( ) 传递函数模型tf( (2)零极点增益模型zpk( ) 零极点增益模型zpk( (3)状态空间模型ss( ) 状态空间模型ss( (4)部分分式模型residue( ) 部分分式模型residue(
2
本章内容
(1) 利用 利用MATLAB描述控制系统中常见的几种数学 描述控制系统中常见的几种数学 模型; 模型; (2) 利用 利用MATLAB实现任意数学模型之间的相互转 实现任意数学模型之间的相互转 换; (3) 利用 利用MATLAB求解经过串联、并联和反馈连接 求解经过串联、 求解经过串联 后的系统模型; 后的系统模型; (4) 利用 利用MATLAB获取一些典型系统的模型; 获取一些典型系统的模型; 获取一些典型系统的模型 (5) 利用 利用MATLAB实现连续系统的离散化和离散系 实现连续系统的离散化和离散系 统的连续化; 统的连续化; (6) 利用 利用MATLAB求取系统的特性函数。 求取系统的特性函数。 求取系统的特性函数
3s + 2 s3 + 2s + 5 G(s) = 3 2 3s + 5s + 2s +1
12
2. 零极点增益形式 单输入单输出系统的零极点模型可表示 为
(s − z1)(s − z2 )L(s − zm ) =K G(s) = K (s − p1)(s − p2 )L(s − pn ) ∏(s − pi )
6
den=[1 a1 a2 … an]
Y(s) 6s3 +12s2 + 6s +10 例2-1 若给定系统的传递函数为 G(s) = = 4 U(s) s + 2s3 + 3s2 + s +1
可以将其用下列MATLAB语句表示 解 可以将其用下列 语句表示 >>num=[6 12 6 10];den=[1 2 3 1 1]; >>printsys(num,den) num/den = 6 s^3 + 12 s^2 + 6 s + 10 ---------------------------s^4 + 2 s^3 + 3 s^2 + s + 1 >>sys=tf(num,den) Transfer function: 6 s^3 + 12 s^2 + 6 s + 10 --------------------------s^4 + 2 s^3 + 3 s^2 + s + 1
15
MATLAB工具箱中的函数 poly( ) 和roots( ) 工具箱中的函数 可用来实现多项式和零极点间的转换, 可用来实现多项式和零极点间的转换,例如在命令 窗口中进行如下操作可实现互相转换。 窗口中进行如下操作可实现互相转换。 >>P=[1 3 5 2]; >>R=roots(P) R= -1.2267+1.4677i -1.2267-1.4677i -0.5466 >>P1=poly(R) P1= 1.0000 3.0000 5.0000 2.0000 16
23表21数学模型转换函数及其功能函数名函数功能ss2tf将系统状态空间模型转换为传递函数模型ss2zp将系统状态空间模型转换为零极点增益模型tf2ss将系统传递函数模型转换为状态空间模型tf2zp将系统传递函数模型转换为零极点增益模型zp2ss将系统零极点增益模型换为状态空间模型zp2tf零极点增益模型换为传递函数模型residue将传递函数形式与部分分式形式的数学模型相互转换的函数24如果系统的状态空间表达式为
5
2.1 线性系统数学模型的基本描述 方法
1. 传递函数
b0sm + b1sm−1 +L+ bm Y(s) G(s) = = n n−1 U(s) s + a1s +L+ an
传递函数在MATLAB下可以方便的由其分子和 下可以方便的由其分子和 传递函数在 分母多项式系数所构成的两个向量唯一确定出来。 分母多项式系数所构成的两个向量唯一确定出来。 即 num=[b0 b1 … bm]; sys=tf(num,den)
3. 部分分式形式 传递函数也可表示成部分分式或留数形式, 传递函数也可表示成部分分式或留数形式,即 n ri G(s) = ∑ + h(s) i=1 s − pi 式 中 : pi(i=1,2,…,n) 为 该 系 统 的 n 个 极 点 , ri (i=1,2,…,n)是对应各极点的留数; h(s)则表示传递 是对应各极点的留数; 是对应各极点的留数 则表示传递 函数分子多项式除以分母多项式的余式。 函数分子多项式除以分母多项式的余式。 下它也可由系统的极点 在 MATLAB下它也可由系统的 极点 、 留数和 下它也可由系统的 极点、 余式系数所构成的向量唯一确定出来, 余式系数所构成的向量唯一确定出来,即 P=[p1;p2;…;pn];R=[r1;r2;…;rn]; ; ; ; ; H=[h0 h1 … hm-n]
第2章 控制系统的数学模型 章 及其转换
控制系统的数学模型在控制系统的研究 中有着相当重要的地位, 中有着相当重要的地位,要对系统进行仿真 处理,首先应当知道系统的数学模型, 处理,首先应当知道系统的数学模型,然后 才可以对系统进行模拟。 才可以对系统进行模拟。 同样,如果知道了系统的模型, 同样,如果知道了系统的模型,才可以 在此基础上设计一个合适的控制器, 在此基础上设计一个合适的控制器,使得系 统响应达到预期的效果, 统响应达到预期的效果,从而符合工程实际 的需要。 的需要。
& x(t) = Ax(t) + Bx(t) y(t) = Cx(t)
它们可分别简记为Σ(A,B,C,D) 和 Σ(A,B,C系统的状态空间表达式在MATLAB下可以用一 下可以用一 系统的状态空间表达式在 个矩阵组Σ(A,B,C,D) Σ(A,B,C)来唯一确定 Σ(A,B,C,D)和 来唯一确定。 个矩阵组Σ(A,B,C,D)和Σ(A,B,C)来唯一确定。 用函数ss( )来建立控制系统的状态空间模型 来建立控制系统的状态空间模型, 用函数ss( )来建立控制系统的状态空间模型, )函数的调用格式为 函数的调用格式为: ss( )函数的调用格式为: sys=ss(a,b,c,d) 函数的返回变量sys为连续系统的状态空间模 函数的返回变量sys为连续系统的状态空间模 sys 函数输入参数a,b,c,d分别对应于系统的A a,b,c,d分别对应于系统的 型。函数输入参数a,b,c,d分别对应于系统的A,B, 参数矩阵。 C,D参数矩阵。
8
例2-2 已知系统传递函数为 利用MATLAB将上述模型表示出来。 将上述模型表示出来。 利用 将上述模型表示出来 命令为: 解:其MATLAB命令为: 命令为 >>num=7*[2,3]; >>den=conv(conv(conv([1,0,0,0],[3,1]),conv([1,2],[1,2])),[ 5,0,3,8]); >>sys=tf(num,den) 运行结果: 运行结果: Transfer function: 14 s + 21 ----------------------------------------------------------------------------15s^9+65s^8+89s^7+83 s^6 +152 s^5 +140 s^4 + 32 s^3 或 >>den=conv([1 0 0 0],conv([3 1],conv([1 2],conv([1 2],[5 0 3 8]))));
13
下零极点增益模型可以由增益K和 在 MATLAB下零极点增益模型可以由增益 和 下零极点增益模型可以由增益 极点所构成的列向量唯一确定出来。 列向量唯一确定出来 零、极点所构成的列向量唯一确定出来。即 Z=[z1;z2;…;zm]; P=[p1;p2;…;pn] sys=zpk(z,p,k) 对于单输入多输出系统,列向量 中储存为系 对于单输入多输出系统,列向量P中储存为系 统的极点;零点储存在矩阵Z的列中 Z的列数等于 统的极点;零点储存在矩阵 的列中, 的列数等于 的列中 输出向量的维数,每列对应一个输出, 输出向量的维数,每列对应一个输出,对应增益则 在列向量K中 在列向量 中。