3第3章-控制系统数学模型及其转换_第1页
3第3章-控制系统数学模型及其转换_第2页
3第3章-控制系统数学模型及其转换_第3页
3第3章-控制系统数学模型及其转换_第4页
3第3章-控制系统数学模型及其转换_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

返回总目录第3章

控制系统数学模型及其转换

仿真是对数学模型进行的试验,建模是仿真的基础,系统模型化技术是系统仿真的核心。本章首先给出控制系统数学模型的分类,介绍控制系统常用的数学模型的描述形式,最后给出各种数学模型,如微分方程、传递函数、状态空间等之间转换和MATLAB实现。一.连续和离散系统系统类型根据系统变量是时间连续函数还是时间离散函数,系统分为连续系统和离散系统。(1)连续系统——系统输入、输出信号都是连续时间信号。(一般L、R、C电路)(2)离散系统——系统输入、输出信号都是离散时间信号。(数字计算机)(3)混合系统——系统输入、输出信号包含连续信号和离散信号。(计算机控制系统

)连续时间系统的数学模型用微分方程描述。离散时间系统的数学模型用差分方程描述。二.线性和非线性系统

根据输入输出关系是否同时满足齐次性和叠加性,系统分为线性和非线性。假设系统在没有外界信号作用之前处于静止状态,在输入信号u1和u2或a1u1和a2u2作用下,有式中,为任意实数,为输入输出之间函数关系。那么,该系统称为线性系统,否则是非线性系统。系统类型系统类型线性时变系统:非线性定常系统:线性定常系统:根据模型参数是否随时间变化,线性系统又可细分为线性定常系统和线性时变系统。参数不随时间变化的系统,称为时不变系统或定常系统,否则称为时变系统。三.确定和随机系统

系统类型根据系统输入、输出和内部状态呈现的规律,系统分为确定性系统与随机性系统。输入输出之间函数关系能够用确定性模型描述的系统,称为确定性系统,否则称为随机系统(或不确定性系统)。例如式中,

分别为状态变量和输出变量,为噪声。控制系统常用数学模型一.连续系统

式中,分别为系统输入量、输出量,n为系统的阶次,及各阶导数的的初始值为为参数,均为实常数。已知输出变量1.微分方程一个连续系统可以表示成高阶微分方程,即控制系统常用数学模型稍加整理,并记 2.传递函数若系统的初始条件为零,那么对微分方程两边取拉普拉斯变换后可得称为系统的传递函数。控制系统常用数学模型

=AX+BU

状态方程Y=CX+DU

输出方程系统的动态特性是用由状态变量构成的一阶微分方程组来描述。状态空间表达式包括状态方程和输出方程。线性定常系统的状态空间描述为3.状态空间描述r维输入向量

n维状态向量m维输出向量

控制系统常用数学模型维输出矩阵

维直接传递矩阵

维系统矩阵维输入矩阵

控制系统常用数学模型

对于线性时变系统,系数矩阵A,B,C,D,均与时间t有关,状态空间描述为控制系统常用数学模型1.差分方程设系统差分方程为引进后移算子可得二.离散系统控制系统常用数学模型2.离散传递函数(Z传函)假设系统的初始条件为零,即则得系统传递函数为

在初始条件为零时,与等价。控制系统常用数学模型

3.离散状态空间描述多变量离散状态空间表达式控制系统常用数学模型三.MATLAB模型表示MATLAB的控制系统工具箱提供传递函数模型、零极点增益模型、状态空间模型的生成函数。函数功能Sys=tf(num,den)生成传递函数模型Sys=zpk(z,p,k)生成零极点增益模型Sys=ss(a,b,c,d)生成状态空间模型线性模型生成函数控制系统常用数学模型

1.传递函数模型(transferfunctionmodel:TF)已知传递函数模型由分子和分母多项式系数可以唯一确定传递函数。分子向量num=分母向量den=控制系统常用数学模型

用命令tf()可建立传递函数模型,或将零极点增益模型和状态空间模型化为传递函数模型。sys=tf(num,den);%用于生成连续传递函数;sys=tf(num,den,Ts);%用于生成离散传递函数;sys=tf(num,den,'Property1',Value1,...,'PropertyN',ValueN);%用于生成具有LTI模型属性的连续传递函数;sys=tf(num,den,Ts,‘Property1’,Value1,...,‘PropertyN’,ValueN);%用于生成具有LTI模型属性的离散传递函数;tfsys=tf(sys);%用于将任意状态空间模型SS或零极点增益模型ZPK的LTI对象sys转换成传递函数形式控制系统常用数学模型给定SISO系统传递函数为使用MATLAB表示该传递函数num=[21];den=[341];sys1=tf(num,den)运行结果:Transferfunction:2s+1---------------3s^2+4s+1控制系统常用数学模型

给定SISO系统传递函数为使用MATLAB表示该传递函数num=[1.322.5];den=[10.51.21];sys2=tf(num,den,'inputdelay',2)运行结果:Transferfunction:

1.3s^2+2s+2.5exp(-2*s)*-------------------------s^3+0.5s^2+1.2s+1控制系统常用数学模型

给定多输入-多输出MIMO系统MATLAB命令:num={11;2[11]};den={[11],[12];1,[12]};sys3=tf(num,den)控制系统常用数学模型

结果为:Transferfunctionfrominput1tooutput...1#1:-------s+1

#2:2

Transferfunctionfrominput2tooutput...1#1:-------s+2

s+1#2:-------s+2控制系统常用数学模型

若一采样周期为0.2s的离散MIMO传递函数为MATLAB命令如下:num={[11],[10];1,2};%分子den={[121],[102];[21],[11]};%分母sys4=tf(num,den,0.2)控制系统常用数学模型Transferfunctionfrominput1tooutput...z+1#1:-------------z^2+2z+11#2:-------2z+1

Transferfunctionfrominput2tooutput...z#1:-------z^2+22#2:-----z+1Samplingtime:0.2控制系统常用数学模型

2.零极点增益模型(zero-pole-gainmodel:ZPK)零极点模型是传递函数的一种特殊形式离散系统连续系统控制系统常用数学模型用命令zpk()可以建立零极点增益模型,或将传递函数模型和状态空间模型变化为零极点增益模型。语法格式sys=zpk(z,p,k)sys=zpk(z,p,k,Ts)sys=zpk(z,p,k,'Property1',Value1,...,'PropertyN',ValueN)sys=zpk(z,p,k,Ts,'Property1',Value1,...,'PropertyN',ValueN)zsys=zpk(sys)zpk()函数调用方法与tf()一致。控制系统常用数学模型

给定一零极点增益模型使用MATLAB表示该传递函数。MATLAB命令如下:z={0;-0.5};p={0.3;[0.1-j,0.1+j]};k=[1;2];sys=zpk(z,p,k,[])控制系统常用数学模型

Zero/pole/gainfrominputtooutput...z#1:----------(z-0.3)2(z+0.5)#2:-----------------------(z^2-0.2z+1.01)Samplingtime:unspecified控制系统常用数学模型将传递函数化为零极点增益模型Matlab命令:num=[1.322.5];den=[10.51.21];sys2=tf(num,den,'inputdelay',2)sys6=zpk(sys2) 控制系统常用数学模型

Transferfunction:1.3s^2+2s+2.5exp(-2*s)*------------------------------s^3+0.5s^2+1.2s+1Zero/pole/gain:1.3(s^2+1.538s+1.923)exp(-2*s)*---------------------------------------------(s+0.7307)(s^2-0.2307s+1.369)控制系统常用数学模型

3.状态空间模型(state-spacemodel:SS)

线性定常状态空间模型描述为式中,为状态向量,为输入向量,是输出向量。控制系统常用数学模型

用命令ss()可以建立状态空间模型,或将传递函数模型和零极点增益模型转化为状态空间模型。语法调用格式:sys=ss(a,b,c,d)sys=ss(a,b,c,d,Ts)sys=ss(a,b,c,d,'Property1',Value1,...,'PropertyN',ValueN)sys=ss(a,b,c,d,Ts,'Property1',Value1,...,'PropertyN',ValueN)sys_ss=ss(sys)sys_ss=ss(sys,'minimal');%最小阶实现ss函数的调用方法与tf()、zpk()一致。控制系统常用数学模型

状态空间模型用MATLAB表示为A=[010;001;-5-20-1];B=[0;0;1];C=[100];D=0;sys=ss(A,B,C,D)控制系统常用数学模型

结果为:a=x1x2x3x1010x2001x3-5-20-1b=u1x10x20x31c=x1x2x3y1100d=u1y10Continuous-timemodel。利用MATLAB实现数学模型之间的转换

MATLAB实现模型转换有两种不同的方式。方式1:简单的模型转换首先生成任一指定的模型对象(tf,ss,zpk),然后将该模型对象类作为输入,调用欲转换的模型函数即可。例如:欲将传递函数转换为状态空间模型sys=tf(num,den);[a,b,c,d]=ss(sys)利用MATLAB实现数学模型之间的转换

方式2:直接调用模型转换函数连续模型之间三种形式的数学模型相互转换函数类型包括tf2ss、ss2tf、zp2tf、tf2zp、ss2zp、zp2ss,共六个函数。利用MATLAB实现数学模型之间的转换一.化传递函数为状态空间模型函数tf2ss用于将传递函数化成状态空间模型,调用格式如[A,B,C,D]=tf2ss(num,den);其中,输入num,den分别为传递函数分子和分母多项式系数;输出A,B,C,D为状态空间模型系数矩阵。利用MATLAB实现数学模型之间的转换

将传递函数化成状态空间表达式方式1:num={[023];[121]};%分子多项式系数den={[10.41];[10.41]};%分母多项式系数tfsys=tf(num,den);%生成传递函数sssys=ss(tfsys);%转化为状态空间模型利用MATLAB实现数学模型之间的转换

结果为:a=x1x2x1-0.4-0.5x220b=u1x12x20c=x1x2y110.75y20.80d=u1y10y21利用MATLAB实现数学模型之间的转换

方式2:num=[023;121];den=[10.41];[A,B,C,D]=tf2ss(num,den)结果为:A=-0.4000-1.00001.00000B=10C=2.00003.00001.60000D=01利用MATLAB实现数学模型之间的转换

二.化传递函数为零极点增益模型函数tf2zp用于将传递函数化成零极点增益模型形式

[z,p,k]=tf2zp(num,den)其中,num,den分别为传递函数的分子和分母多项式系数;z,p,k为零极点增益模型的零点、极点和增益向量。利用MATLAB实现数学模型之间的转换将传递函数化为零极点增益模型。方式1:zpk(tf([21],[341]))Zero/pole/gain:0.66667(s+0.5)----------------(s+1)(s+0.3333)方式2:[z,p,k]=tf2zp([21],[341])z=-0.5000p=-1.0000-0.3333k=0.6667因此零极点增益模型为利用MATLAB实现数学模型之间的转换三.化零极点增益模型为状态空间模型函数zp2ss用于将零极点增益模型化成状态空间模型,zp2ss调用格式[A,B,C,D]=zp2ss(z,p,k)其中,输入z,p,k为零极点增益模型的零点、极点和增益向量。输出A,B,C,D为状态空间模型系数矩阵。利用MATLAB实现数学模型之间的转换零极点增益模型化成状态空间表达式方式1:z=[-2];p=[-1-3-3];k=2;zpksys=zpk(z,p,k);sssys=ss(zpksys)方式2:z=[-2];p=[-1-3-3];k=2;[A,B,C,D]=zp2ss(z,p,k)利用MATLAB实现数学模型之间的转换四.化连续状态方程为离散状态方程设连续系统状态空间方程为假设输入端加上虚拟采样开关和虚拟信号重构器,输出端加一个虚拟采样开关,虚拟采样周期为T,两者同步。利用MATLAB实现数学模型之间的转换1.采用零阶保持器的离散状态方程设kT及(k+1)T为两个依次相连的采样瞬时,保持器为零阶保持器,u(t)在kT及(k+1)T之间保持不变式(2)-式(1)乘以eAT,可得(1)(2)利用MATLAB实现数学模型之间的转换离散的状态空间表达式为式中,不变;为采样周期。利用MATLAB实现数学模型之间的转换2.采用一阶保持器的离散状态方程保持器使为斜坡函数(梯形近似),则对离散的状态空间表达式为式中,不变。利用MATLAB实现数学模型之间的转换

3.连续系统离散化的MATLAB方法c2d()可以将连续系统化成等价的离散化模型,格式如下:sysd=c2d(sys,Ts)sysd=c2d(sys,Ts,method)其中,sys为连续时间系统模型,Ts为采样周期,单位为秒(s)。method定义离散化方法,method的取(1)‘zoh’——采用零阶保持器。(2)‘foh’——采用一阶保持器。(3)‘tustin’——采用双线性(tustin)逼近方法。(4)‘matched’——采用SISO系统的零极点匹配法。默认时,method=‘zoh’。利用MATLAB实现数学模型之间的转换

采用一阶保持器,采样周期为0.5s,离散化下列状态方程MATLAB程序:sys=ss([01;0-2],[01]',[10],0);dss=c2d(sys,0.5,'foh')利用MATLAB实现数学模型之间的转换结果为:a=x1x2x110.3161x200.3679b=u1x10.1501x20.1998Samplingtime:0.5Discrete-timemodel

利用MATLAB实现数学模型之间的转换

五.化状态空间模型为传递函数消去中间项后,可得系统的传递函数矩阵

对方程式两端分别取拉普拉斯变换(设初始条件为零),得假设状态空间表达式利用MATLAB实现数学模型之间的转换

将状态空间方程化为传递函数的方法有:1如果系统只有一个输入,则可采用[num,den]=ss2tf(A,B,C,D)或[num,den]=ss2tf(A,B,C,D,1)2对多输入的系统,则可采用[num,den]=ss2tf[A,B,C,D,iu]这里,iu是输入的标号。例如,如果系统有三个输入(u1,u2,u3),则iu必须为1、2或3中的一个,其中1表示u1,2表示u2,3表示u3。利用MATLAB实现数学模型之间的转换将状态空间模型转换为传递函数和零极点增益模型利用MATLAB实现数学模型之间的转换MATLAB命令:A=[010;001;-5-20-1];B=[0;0;1];C=[100];D=0;[num,den]=ss2tf(A,B,C,D); tf(num,den) [z,p,k]=ss2zp(A,B,C,D); zpk(z,p,k) 利用MATLAB实现数学模型之间的转换

Transferfunction:-1.11e-015s^2+1.421e-014s+1---------------------------------s^3+s^2+20s+5Zero/pole/gain:1----------------------------------(s+0.2524)(s^2+0.7476s+19.81)利用MATLAB实现数学模型之间的转换

多入单出系统状态空间表达式包括两个传递函数:Y1(s)/U1(s)、Y1(s)/U2(s)(当考虑输入u1时,可设u2为零。反之亦然),试将其化成传递函数形式利用MATLAB实现数学模型之间的转换

MATLAB命令:A=[010;0 11;-5.008 25.1026-5.032471];B=[01;25.042;121.0053];C=[100];D=[00];[num,den]=ss2tf(A,B,C,D,1);Sys1=tf(num,den)传递函数Y1(s)/U1(s)为Transferfunction:-3.553e-015s^2+25.04s+247-------------------------------------------s^3+4.032s^2–30.14s+5.008利用MATLAB实现数学模型之间的转换

[num,den]=ss2tf(A,B,C,D,2);Sys2=tf(num,den)传递函数Y1(s)/U2(s)为Transferfunction:

s^2+6.032s–17.07---------

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论