《第七章控制系统MATLAB》由会员分享,可在线阅读,更多相关《第七章控制系统MATLAB(13页珍藏版)》请在金锄头文库上搜索。
1、数学模型是控制系统仿真的基础。在数学模型是控制系统仿真的基础。在MATLAB中,可用中,可用4种种数学模型表示控制系统:传递函数模型、零极点增益模型、状态数学模型表示控制系统:传递函数模型、零极点增益模型、状态空间模型与空间模型与Simulink结构图。结构图。第七章第七章 控制系统数学模型的控制系统数学模型的MATLAB描述描述7.1 控制系统数学模型的种类及转换控制系统数学模型的种类及转换一、传递函数模型一、传递函数模型线性定常系统线性定常系统(LTI)可以是连续时间系统,也可以是离散时间可以是连续时间系统,也可以是离散时间系统。对于连续单输入单输出系统。对于连续单输入单输出(SISO)L
2、TI系统,其传递函数为:系统,其传递函数为:1对于离散的单输入单输出对于离散的单输入单输出LTI系统,它的脉冲传递函数为:系统,它的脉冲传递函数为:无论是连续还是离散无论是连续还是离散LTI系统,其传递函数分子,分母均按系统,其传递函数分子,分母均按s或或z的降幂排列。在的降幂排列。在MATLAB里,可直接用分子、分母多项式系里,可直接用分子、分母多项式系数构成的两个向量数构成的两个向量num与与den表示系统。表示系统。在在MATLAB中,用中,用tf( )命令来建立控制系统的传递函数模型。命令来建立控制系统的传递函数模型。其调用格式为:其调用格式为:sys=tf (num, den):返回
3、连续系统的传递函数模型,:返回连续系统的传递函数模型,num与与den分分别为系统的分子与分母多项式系数向量;别为系统的分子与分母多项式系数向量;2离散系统脉冲传递函数离散系统脉冲传递函数(即即z-1的形式的形式)还可以用还可以用filt( )命令来建立,命令来建立,其调用格式为:其调用格式为:sys=filt (num, den):用来建立采样时间未指定的脉冲传递函数;:用来建立采样时间未指定的脉冲传递函数;sys=filt (num, den, Ts):用来建立一个采样时间由:用来建立一个采样时间由Ts指定的脉冲指定的脉冲传递函数。传递函数。num和和den分别为系统分子与分母多项式系数向
4、量。分别为系统分子与分母多项式系数向量。另外,还可以用另外,还可以用printsys ( )函数来输出控制系统的传递函数。其函数来输出控制系统的传递函数。其调用格式为:调用格式为:printsys (num, den, s):连续系统传递函数;:连续系统传递函数;printsys (num, den, z):离散系统传递函数。:离散系统传递函数。sys=tf (num, den, Ts):返回离散系统的传递函数模型,:返回离散系统的传递函数模型,num与与den分别为系统的分子与分母多项式系数向量;分别为系统的分子与分母多项式系数向量;Ts为采样周期,当为采样周期,当Ts=-1或者或者Ts=
5、时,表示系统的采样周期未定义。时,表示系统的采样周期未定义。若已知系统传递函数若已知系统传递函数G,其分子与分母多项式系数向量可分别由,其分子与分母多项式系数向量可分别由G.num1与与G.den1指令求出。指令求出。3对连续系统,它的传递函数表达式还可以用系统增益、零点对连续系统,它的传递函数表达式还可以用系统增益、零点与极点来表示,为:与极点来表示,为:二、零极点增益模型二、零极点增益模型离散系统增益、零点与极点表达式的传递函数为:离散系统增益、零点与极点表达式的传递函数为:4MATLAB中,连续系统与离散系统都可以直接用零点向量中,连续系统与离散系统都可以直接用零点向量z,极点向量,极点
6、向量p和增益量和增益量kz, p, k来表示系统来表示系统sys=zpk (z, p, k):用来建立连续系统的零极点增益模型;:用来建立连续系统的零极点增益模型;sys=zpk (z, p, k, Ts):用来建立离散系统的零极点增益模型,:用来建立离散系统的零极点增益模型,Ts为采样周期,当为采样周期,当Ts=-1或者或者Ts= 时,表示系统的采样周期未定义。时,表示系统的采样周期未定义。MATLAB中,用函数命令中,用函数命令zpk ( )来建立控制系统的零极点增来建立控制系统的零极点增益模型,其调用格式为:益模型,其调用格式为:若已知系统零极点增益模型传递函数若已知系统零极点增益模型传
7、递函数sys,其零点与极点可分别由,其零点与极点可分别由sys.z1与与sys.p1指令求出。指令求出。5连续连续LTI系统的状态空间方程为:系统的状态空间方程为:三、状态空间模型三、状态空间模型离散系统的状态空间方程为:离散系统的状态空间方程为:其中其中u (t)是控制系统输入向量,是控制系统输入向量, x (t)是系统状态变量,是系统状态变量, y (t)是系统输是系统输出向量。出向量。A为系统矩阵为系统矩阵(也称状态矩阵也称状态矩阵),B为控制矩阵为控制矩阵(也称输入矩阵也称输入矩阵),C为输出矩阵为输出矩阵(也称观测矩阵也称观测矩阵),D为输入输出矩阵为输入输出矩阵(也称直接传输矩阵也
8、称直接传输矩阵)。其中其中u (k),x (k), y (k)分别是离散系统输入向量,系统状态变量,分别是离散系统输入向量,系统状态变量,系统输出向量。系统输出向量。A、B、C、D的含义同上,的含义同上,k表示采样点。表示采样点。6sys=ss (A, B, C, D):用来建立连续系统的状态空间模型,:用来建立连续系统的状态空间模型,A、B、C、D分别对应于系统的分别对应于系统的A、B、C、D参数矩阵;参数矩阵;sys=ss (A, B, C, D, Ts):用来建立离散系统的状态空间模型,:用来建立离散系统的状态空间模型,Ts为为采样周期,当采样周期,当Ts=-1或者或者Ts= 时,表示系
9、统的采样周期未定义。时,表示系统的采样周期未定义。MATLAB中,用函数命令中,用函数命令ss ( )来建立控制系统的状态空间模型,来建立控制系统的状态空间模型,其调用格式为:其调用格式为:四、三种数学模型之间的转换四、三种数学模型之间的转换这三种数学模型之间是可以相互转换的,其格式分别为:这三种数学模型之间是可以相互转换的,其格式分别为:tf (sys):将其它:将其它LTI对象转换成传递函数模型;对象转换成传递函数模型;zpk (sys):将其它:将其它LTI对象转换成零极点增益模型;对象转换成零极点增益模型;ss (sys):将其它:将其它LTI对象转换成状态空间模型;对象转换成状态空间
10、模型;7例例7-1其其MATLAB命令如下:命令如下:已知系统的传递函数为:已知系统的传递函数为: 试用试用MATLAB创建系统传递函数模型,并求其等效的零极点增益模型。创建系统传递函数模型,并求其等效的零极点增益模型。num=8,24,16;den=1,12,47,60,0;sys=tf(num,den) 运行结果为:运行结果为:Transfer function: 8 s2 + 24 s + 16-s4 + 12 s3 + 47 s2 + 60 s将其转换为等效的零极点将其转换为等效的零极点增益模型为:增益模型为:sys1=zpk (sys) Zero/pole/gain: 8 (s+2)
11、 (s+1)-s (s+5) (s+4) (s+3)8已知系统传递函数,求解对应的零点、极点与增益,其命令为:已知系统传递函数,求解对应的零点、极点与增益,其命令为:z, p, k=tf2zp(num,den), 其中其中num和和den分别为系统传递函数模型分别为系统传递函数模型分子与分母多项式系数向量,分子与分母多项式系数向量, z, p, k分别为系统对应的零点向量、分别为系统对应的零点向量、极点向量和增益。极点向量和增益。已知系统传递函数,求解对应状态方程模型,其命令为:已知系统传递函数,求解对应状态方程模型,其命令为:A, B, C, D=tf2ss(num,den), 其中其中nu
12、m和和den分别为系统传递函数模型分分别为系统传递函数模型分子与分母多项式系数向量,子与分母多项式系数向量, A, B, C, D分别为系统对应的状态方分别为系统对应的状态方程矩阵。程矩阵。已知系统零点、极点与增益模型,求解对应的传递函数,其命令已知系统零点、极点与增益模型,求解对应的传递函数,其命令为:为:num, den=zp2tf (z, p, k), 其中其中z, p, k分别为系统的零点向量、分别为系统的零点向量、极点向量和增益。极点向量和增益。 num和和den分别为系统对应的传递函数模型分分别为系统对应的传递函数模型分子与分母多项式系数向量。子与分母多项式系数向量。注意:注意:
13、z, p必须为列向量!必须为列向量!五、求解三种数学模型系数向量五、求解三种数学模型系数向量9已知系统零点、极点与增益模型,求解对应的状态空间方程,其已知系统零点、极点与增益模型,求解对应的状态空间方程,其命令为:命令为:A, B, C, D=zp2ss (z, p, k), 其中其中z, p, k分别为系统的零点分别为系统的零点向量、极点向量和增益。向量、极点向量和增益。 A, B, C, D分别为系统的状态方程矩阵;分别为系统的状态方程矩阵;已知系统状态空间方程,求解对应传递函数,其命令为:已知系统状态空间方程,求解对应传递函数,其命令为:num, den=ss2tf(A, B, C, D
14、), 其中阵,其中阵, num和和den分别为系统对应传递分别为系统对应传递函数模型分子与分母多项式系数向量。函数模型分子与分母多项式系数向量。已知系统状态空间方程,求解对应零点、极点与增益模型,其命已知系统状态空间方程,求解对应零点、极点与增益模型,其命令为:令为:z, p, k=ss2zp(A, B, C, D)。10例例7-2其其MATLAB命令如下:命令如下:已知系统的传递函数为:已知系统的传递函数为: 根据传递函数求解零点、极点和增益值,并判断系统是否稳定。根据传递函数求解零点、极点和增益值,并判断系统是否稳定。num=2,3,4;den=3,4,5,6,7,8,9;z,p,k=tf
15、2zp(num,den) 运行结果为:运行结果为:z = -0.7500 + 1.1990i -0.7500 - 1.1990ip = 0.7099 + 0.9561i 0.7099 - 0.9561i -1.0903 + 0.5189i -1.0903 - 0.5189i -0.2863 + 1.1701i -0.2863 - 1.1701ik = 0.6667可以看出系统中包含实部为正数的极点,所以系统不稳定。可以看出系统中包含实部为正数的极点,所以系统不稳定。11控制系统框图的化简主要包括串联环节、并联环节和反馈环控制系统框图的化简主要包括串联环节、并联环节和反馈环节的化简。节的化简。7
16、.2 控制系统方框图化简控制系统方框图化简一、串联环节化简一、串联环节化简在在MATLAB中,可用命令中,可用命令series函数来实现两个系统模型的函数来实现两个系统模型的串联,其调用格式为:串联,其调用格式为:sys=series (sys1, sys2),sys1和和sys2分别表示分别表示不同的两个控制系统模型,不同的两个控制系统模型,sys表示串联后的系统模型。表示串联后的系统模型。当当n个模型串联时,还可用个模型串联时,还可用sys=sys1*sys2*sysn来求串联后来求串联后的系统模型。的系统模型。12二、并联环节化简二、并联环节化简在在MATLAB中,可用函数命令中,可用函
17、数命令parallel来实现两个系统模型来实现两个系统模型的并联,其调用格式为:的并联,其调用格式为:sys= parallel (sys1, sys2),sys1和和sys2分别分别表示不同的两个控制系统模型,表示不同的两个控制系统模型,sys表示并联后的系统模型。表示并联后的系统模型。当当n个模型并联时,还可用个模型并联时,还可用sys=sys1sys2sysn来求并联后来求并联后的系统模型。的系统模型。三、反馈环节化简三、反馈环节化简在在MATLAB中,可用函数命令中,可用函数命令feedback来实现两个系统模型来实现两个系统模型的反馈连接,其调用格式为:的反馈连接,其调用格式为:sys= feedback (sys1, sys2), sys= feedback (sys1, sys2, sign), sys1为输入环节模型,为输入环节模型,sys2为反馈环节为反馈环节模型,模型,sign为反馈极性,取为反馈极性,取-1时,为负反馈,默认值为负反馈。时,为负反馈,默认值为负反馈。取取1时,表示正反馈。时,表示正反馈。13