1、第 3章 控制系统的数学模型第 3章 控制系统的数学模型本章主要内容(1) 利用 MATLAB描述在控制系统中常见的几种数学模型;(2) 利用 MATLAB实现任意数学模型之间的相互转换;(3) 利用 MATLAB求解系统经过串联、并联和反馈连接后的系统模型;(4) 利用 MATLAB获取一些典型系统的模型;(5) 利用 MATLAB求取系统的特性函数。 第 3章 控制系统的数学模型v3.1 线性系统数学模型的基本描述方法v3.2 模型的转换 与连接v3.3 典型系统的生成v3.4 系统的特性值第 3章 控制系统的数学模型第 3章 控制系统的数学模型u控制系统的数学模型在控制系统的研究中有着相
2、当重要的地位,要对系统进行仿真处理,首先应当知道系统的数学模型,然后才可以对系统进行模拟。同样,如果知道了系统的模型,才可以在此基础上设计一个合适的控制器,使得系统响应达到预期的效果,从而符合工程实际的需要。u在线性系统理论中,一般常用的数学模型形式有:传递函数模型 (系统的外部模型)、状态方程模型(系统的内部模型)、 零极点增益模型 和 部分分式模型 等。这些模型之间都有着内在的联系,可以相互进行转换。第 3章 控制系统的数学模型按系统性能分:线性系统和非线性系统;连续系统和离散系统;定常系统和时变系统。v线性连续系统:用线性微分方程式来描述,如果微分方程的系数为常数,则为定常系统;如果系数
3、随时间而变化,则为时变系统。今后我们所讨论的系统主要以 线性定常连续系统为主。v线性定常离散系统:离散系统指系统的某处或多处的信号为脉冲序列或数码形式。这类系统用差分方程来描述。v非线性系统:系统中有一个元部件的输入输出特性为非线性的系统。3.1 线性系统数学模型的基本描述方法3.1.1 系统的分类第 3章 控制系统的数学模型v微分方程是控制系统模型的基础,一般来讲,利用机械学、电学、力学等物理规律,便可以得到控制系统的动态方程,这些方程对于线性定常连续系统而言是一种常系数的线性微分方程。v如果已知输入量及变量的初始条件,对微分方程进行求解,就可以得到系统输出量的表达式,并由此对系统进行性能分
4、析。v通过拉氏变换和反变换,可以得到线性定常系统的解析解,这种方法通常只适用于常系数的线性微分方程,解析解是精确的,然而通常寻找解析解是困难的。 MATLAB提供了 ode23、 ode45等微分方程的数值解法函数,不仅适用于线性定常系统,也适用于非线性及时变系统。3.1.2 微分方程模型第 3章 控制系统的数学模型例 exp3_1RLC网络如图所示,试求以 Uc作输出,以 Ur作输入的微分方程与传递函数模型。 求微分方程clear;syms ai aip ur ucpp ucp uc R L C;aip=C*ucpp;ul=L*aip;ur=R*ai+ul+uc;ur=subs(ur,ai,
5、C*ucp)程序运行结果:Ur=R*C*ucp+L*C*ucpp+uc即有微分方程为:求传递函数模型:clear;syms R L C s Ur Uc;Uc=simple(Ur*(1/(s*C)/(R+s*L+1/(s*C);G=factor(Uc/Ur)程序运行结果:G=1/(R*s*C+s2*L*C+1)第 3章 控制系统的数学模型对线性定常系统,式中 s的系数均为常数,且 a1不等于零,这时系统在 MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用 num和 den表示 :num=b1,b2,b m,bm+1den=a1,a2,a n,an+1注意:它
6、们都是按 s的降幂进行排列的。1)连续系统的传递函数连续系统的传递函数如下:3.1.3 传递函数模型第 3章 控制系统的数学模型零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。v在 MATLAB中零极点增益模型用 z,p,K矢量组表示。即:z=z1,z2, zmp=p1,p2,.,pnK=kv函数 tf2zp()可以用来求传递函数的零极点和增益。2)零极点增益模型K为系统增益, zi为零点, pj为极点第 3章 控制系统的数学模型v控制系统常用到并联系统,这时就要对系统函数进行分解,使其表现为一些基本控
7、制单元的和的形式。v函数 r,p,k=residue(num,den)对两个多项式的比进行部分展开,以及把传函分解为微分单元的形式。v向量 b和 a是按 s的降幂排列的多项式系数。部分分式展开后,余数返回到向量 r,极点返回到列向量 p,常数项返回到 k。vnum,den=residue(r,p,k)可以将部分分式转化为多项式比p(s)/q(s)。3)部分分式展开 (零极点留数模型 )第 3章 控制系统的数学模型举例:传递函数描述 (1) num=12,24,0,20;den=2 4 6 2 2;(2)借助多项式乘法函数 conv来处理: num=4*conv(1,2,conv(1,6,6,1,6,6); den=conv(1,0,conv(1,1,conv(1,1,conv(1,1,1,3,2,5)