320 likes | 631 Views
自动控制原理 Matlab 仿真. 第 2 章 数学模型的 MATLAB 描述. 2.1 控制系统的数学模型 2.2 数学模型的建立 2.3 数学模型参数的获取 2.4 数学模型的连接. 2.1 控制系统的数学模型. 线性定常连续系统 1. 微分方程模型 设单输入单输出( SISO )线性定常连续系统的输入信号为 r ( t ),输出信号为 c ( t ),则其微分方程的一般形式为. ( 2.1 ). 式中,系数 a 0 , a 1 , … , a n , b 0 , b 1 , … , b m 为实常数,且 m ≤ n 。.
E N D
第2章 数学模型的MATLAB描述 2.1 控制系统的数学模型 2.2 数学模型的建立 2.3 数学模型参数的获取 2.4 数学模型的连接
2.1 控制系统的数学模型 线性定常连续系统 1. 微分方程模型 设单输入单输出(SISO)线性定常连续系统的输入信号为r(t),输出信号为c(t),则其微分方程的一般形式为 (2.1) 式中,系数a0,a1,…,an,b0,b1,…,bm为实常数,且m≤n。
2. 传递函数(Transfer Function:TF)模型 对式(2.1)在零初始条件下求拉氏变换,并根据传递函数的定义可得单输入单输出系统传递函数的一般形式为 式中: M(s)=b0sm+b1sm-1+…+bm-1s+bm为传递函数的分子多项式; N(s)=a0sn+a1sn-1+…+an-1s+an为传递函数的分母多项式,也称为系统的特征多项式。
在MATLAB中,控制系统的分子多项式系数和分母多项式系数分别用向量num和den表示,即 在MATLAB中,控制系统的分子多项式系数和分母多项式系数分别用向量num和den表示,即 num=[b0,b1,…,bm-1,bm], den=[a0,a1,…,an-1,an]
3. 零极点增益(Zero-Pole-Gain:ZPK)模型 式(2.2)所示传递函数的分子多项式和分母多项式经因式分解后, 可写为如下形式: (2.3) 对于单输入单输出系统,z1,z2,…,zm为G(s)的零点,p1, p2,…,pn为G(s)的极点,K为系统的增益。 在MATLAB中, 控制系统的零点和极点分别用向量Z和P表示, 即 Z=[z1,z2, …, zm], P=[p1, p2, …, pn]
说明:零极点增益模型有时还可写为如下形式:说明:零极点增益模型有时还可写为如下形式: (2.3a) 式(2.3a)与式(2.3)形式完全相同,只是两者的零点向量Z和极点向量P均相差一个负号。MATLAB规定的零极点增益模型形式为式(2.3)。
2.2 数学模型的建立 表2.1 线性定常系统数学模型的生成及转换函数
2.2.1 传递函数模型 在MATLAB中,使用函数tf()建立或转换控制系统的传递函数模型。其功能和主要格式如下。 功能:生成线性定常连续/离散系统的传递函数模型, 或者将状态空间模型或零极点增益模型转换成传递函数模型。 格式: sys=tf(num, den) 生成传递函数模型sys sys=tf(num,den,′Property1′,Value1,…,′PropertyN′,ValueN) 生成传递函数模型sys。模型sys的属性(Property)及属性值(Value)用′Property′,Value指定
【例2.1】已知控制系统的传递函数为 用MATLAB建立其数学模型 【解】(1)生成连续传递函数模型。在MATLAB命令窗口中输入: >> num=[1 3 2]; >> den=[1 5 7 3]; >> sys=tf(num, den) 运行结果为: Transfer function: s^2+3s+2 ---------------------- s^3+5s^2+7s+3
(2) 直接生成传递函数模型。在MATLAB命令窗口中输入: • >> sys=tf([1 3 2],[1 5 7 3]) • 运行结果为: • Transfer function: • s^2+3s+2 • s^3+5s^2+7s+3
(3) 生成连续时间系统传递函数模型,指定自变量为p。 在MATLAB命令窗口中输入: • >> num=[1 3 2]; • >> den=[1 5 7 3]; • >> sys=tf(num, den, ′variable′, ′p′) • 运行结果为: • Transfer function: • p^2+3p+2 • p^3+5p^2+7p+3
>> s=tf(′s′); %指定使用拉氏变换算子s生成传递函数 >> G=(2*s^2+4*s+5)/(s^4+7*s^3+2*s^2+6*s+6) 运行结果为: Transfer function: 2s^2+4s+5 s^4+7s^3+2s^2+6s+6 【例2.2】系统的传递函数为 应用MATLAB建立其数学模型。 【解】(1)建立连续时间系统传递函数。在MATLAB命令窗口中输入:
2.2 零极点增益模型 在MATLAB中,使用函数zpk()建立或转换线性定常系统的零极点增益模型。其主要功能和格式如下: 功能:建立线性定常连续/离散系统的零极点增益模型, 或者将传递函数模型或状态空间模型转换成零极点增益模型。 格式: sys=zpk(z, p, k) % 建立连续系统的零极点增益模型sys。z,p, k分别对应系统的零点向量, 极点向量和增益 sys=zpk(z, p, k, ′Property1′,Value1,…,′PropertyN′, ValueN)建立连续系统的零极点增益模型sys。模 型sys的属性(Property)及属性值 (Value)用′Property′,Value指定
【例2.3】系统的零极点增益模型为 用MATLAB建立其传递函数模型。 【解】 在MATLAB命令窗口中输入: >> z=[-0.1, -0.2];p=[-0.3, -0.3];k=1; >> sys=zpk(z,p,k)%建立系统的零极点增益模型
运行结果为: Zero/pole/gain: (s+0.1)(s+0.2) (s+0.3)^2 >> sys2=tf(sys)%将零极点增益模型转换为传递函数模型 运行结果为: Transfer function: s^2+0.3s+0.02 s^2+0.6s+0.09
应用MATLAB建立其零极点增益模型。 【解】 在MATLAB命令窗口中输入: >> G=tf([-10 20 0], [1 7 20 28 19 5])%建立传递函数模型 >> sys=zpk(G) 运行结果为: Zero/pole/gain: -10s(s-2) (s+1)^3(s^2+4s+5) 【例2.4】线性定常连续系统的传递函数为
2.3 数学模型参数的获取 应用MATLAB建立了系统模型后,MATLAB会以单个变量形式存储该模型的数据。 有时需要从已经建立的线性定常系统模型(如传递函数模型、零极点增益模型、状态空间模型或频率响应数据模型)中获取模型参数等信息,此时除了使用函数set()和函数get()以外,还可以采用模型参数来达到目的。由线性定常系统的一种模型可以直接得到其他几种模型的参数,而不必进行模型之间的转换。这些函数的名称及功能如表2.2所示。
【例2.5】系统的传递函数模型为 用MATLAB建立其传递函数模型,并获取其零点向量、极点向量和增益等参数。 【解】 在MATLAB命令窗口中输入: >> num=[3, 2, 5, 4, 6]; >> den=[1, 3, 4, 2, 7, 2]; >> [z,p,k]=zpkdata(tf(num,den))
缺省情况下,函数tfdata() 和zpkdata()以元胞数组形式返回参数(例如num,den,z,p等)。 • 运行结果为: • z= • [4x1 double] • p= • [5x1 double] • k= • 3 对于单输入单输出模型而言,可在调用函数时应用第二个输入变量′v′,指定调用该函数时返回的是向量(Vector)数据而不是元胞数组
>> [z1,p1,k]=zpkdata(tf(num,den),′v′) 运行结果为: z1= 0.4019+1.1965i 0.4019-1.1965i -0.7352+0.8455i -0.7352-0.8455i p1= -1.7680+1.2673i -1.7680-1.2673i 0.4176+1.1130i 0.4176-1.1130i - 0.2991
2.4 数学模型的连接 表2.4 模型连接函数
2.4 串联连接 两个系统(或环节)sys1,sys2进行连接时,如果sys1的输出量作为sys2的输入量,则系统(或环节)sys1和sys2称为串连连接(见图2.1)。它分为单输入单输出系统和多输入多输出系统两种形式。MATLAB使用函数series()实现模型的串联连接。 图2.1 两个线性定常系统模型串联连接的基本形式
功能: 将两个线性定常系统的模型串联连接。 格式: sys=series(sys1, sys2) 将sys1和sys2进行串联连接,形成如图2.1所示的基本串联连接形式。 此时的连接方式相当于sys=sys1×sys2
>> G1=tf([1], [1 3]) >> G2=tf([1], [1 5]) >> G=series(G1,G2) Transfer function: 1 -------------- s^2 + 8 s + 15
2.4.2 并联连接 两个系统(或环节)sys1和sys2连接时,如果它们具有相同的输入量,且输出量是sys1输出量和sys2输出量的代数和, 则系统(或环节)sys1和sys2称为并联连接(见图2.3)。它分为单输入单输出系统和多输入多输出系统两种形式。MATLAB使用函数parallel()实现模型的并联连接。
图2.3 两个线性定常系统模型并联连接的基本形式
功能: 将两个线性定常系统的模型并联连接。 格式: sys=parallel(sys1, sys2) 将sys1和sys2进行并联连接, 构成如图2.3所示的基本并联连接形式。 此时的连接方式相当于sys=sys1+sys2
2.4.3 反馈连接 两个系统(或环节)按照图2.5 所示的形式连接称为反馈连接。它分为单输入单输出系统和多输入多输出系统两种形式。MATLAB使用函数feedback()实现模型的反馈连接。 图2.5 两个线性定常系统系统的模型反馈连接的基本形式
功能: 将两个线性定常系统模型进行反馈连接。 格式: sys=feedback(sys1,sys2) 将sys1和sys2按照图3.5所示形式进行负反馈连接 sys=feedback(sys1,sys2,sign) 按字符串 “sign”指定的反馈方式将sys1和sys2进行反馈连接 字符串“sign”用以指定反馈的极性,正反馈时sign=+1,负反馈时sign=-1, 且负反馈时可忽略sign的值。
>> G1=tf([1], [1 3]) >> G2=tf([1], [1 5]) >> G=feedback(G1,G2,+1) Transfer function: s + 5 -------------- s^2 + 8 s + 14