300 likes | 448 Views
控制系统的数学描述与建模. MATLAB 技术应用. 控制系统的数学模型在控制系统的研究中有着相当重要的地位,要对系统进行仿真处理,首先应当知道系统的数学模型,然后才可以对系统进行模拟。同样,如果知道了系统的模型,才可以在此基础上设计一个合适的控制器,使得系统响应达到预期的效果,从而符合工程实际的需要。 在线性系统理论中,一般常用的数学模型形式有:传递函数模型(系统的外部模型)、状态方程模型(系统的内部模型)、零极点增益模型和部分分式模型等。这些模型之间都有着内在的联系,可以相互进行转换。. 控制系统的数学描述与建模.
E N D
控制系统的数学描述与建模 MATLAB技术应用
控制系统的数学模型在控制系统的研究中有着相当重要的地位,要对系统进行仿真处理,首先应当知道系统的数学模型,然后才可以对系统进行模拟。同样,如果知道了系统的模型,才可以在此基础上设计一个合适的控制器,使得系统响应达到预期的效果,从而符合工程实际的需要。控制系统的数学模型在控制系统的研究中有着相当重要的地位,要对系统进行仿真处理,首先应当知道系统的数学模型,然后才可以对系统进行模拟。同样,如果知道了系统的模型,才可以在此基础上设计一个合适的控制器,使得系统响应达到预期的效果,从而符合工程实际的需要。 在线性系统理论中,一般常用的数学模型形式有:传递函数模型(系统的外部模型)、状态方程模型(系统的内部模型)、零极点增益模型和部分分式模型等。这些模型之间都有着内在的联系,可以相互进行转换。 控制系统的数学描述与建模
按系统性能分:线性系统和非线性系统;连续系统和离散系统;定常系统和时变系统;确定系统和不确定系统。按系统性能分:线性系统和非线性系统;连续系统和离散系统;定常系统和时变系统;确定系统和不确定系统。 线性连续系统:用线性微分方程式来描述,如果微分方程的系数为常数,则为定常系统;如果系数随时间而变化,则为时变系统。今后我们所讨论的系统主要以线性定常连续系统为主。 线性定常离散系统:离散系统指系统的某处或多处的信号为脉冲序列或数码形式。这类系统用差分方程来描述。 非线性系统:系统中有一个元部件的输入输出特性为非线性的系统。 系统的分类
微分方程是控制系统模型的基础,一般来讲,利用机械学、电学、力学等物理规律,便可以得到控制系统的动态方程,这些方程对于线性定常连续系统而言是一种常系数的线性微分方程。微分方程是控制系统模型的基础,一般来讲,利用机械学、电学、力学等物理规律,便可以得到控制系统的动态方程,这些方程对于线性定常连续系统而言是一种常系数的线性微分方程。 如果已知输入量及变量的初始条件,对微分方程进行求解,就可以得到系统输出量的表达式,并由此对系统进行性能分析。 通过拉氏变换和反变换,可以得到线性定常系统的解析解,这种方法通常只适用于常系数的线性微分方程,解析解是精确的,然而通常寻找解析解是困难的。MATLAB提供了ode23、ode45等微分方程的数值解法函数,不仅适用于线性定常系统,也适用于非线性及时变系统。 线性定常连续系统的微分方程模型
电路图如图,R=1.4欧,L=2亨,C=0.32法,初始状态:电感电流为零,电容电压为0.5V,t=0时刻接入1V的电压,求0<t<15s时,i(t),vo(t)的值,并且画出电流与电容电压的关系曲线。电路图如图,R=1.4欧,L=2亨,C=0.32法,初始状态:电感电流为零,电容电压为0.5V,t=0时刻接入1V的电压,求0<t<15s时,i(t),vo(t)的值,并且画出电流与电容电压的关系曲线。
对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。对线性定常系统,式中s的系数均为常数,且a1不等于零,这时系统在MATLAB中可以方便地由分子和分母系数构成的两个向量唯一地确定出来,这两个向量分别用num和den表示。 num=[b1,b2,…,bm,bm+1] den=[a1,a2,…,an,an+1] 注意:它们都是按s的降幂进行排列的。 传递函数描述 连续系统的传递函数模型 连续系统的传递函数如下:
传递函数 • MATLAB中创建传递函数(TF)对象 • 创建两个行向量,按降阶顺序分别包含分子和分母多项式中s各次幂的系数 • 使用tf命令建立TF对象 例如: >> numG=[4 3];denG=[1 6 5]; >> G1=tf(numG,denG) 或 >> G1=tf([4 3],[1 5 6])
零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。 零极点增益模型 K为系统增益,zi为零点,pj为极点 • 在MATLAB中零极点增益模型用[z,p,K]矢量组表示。即: • z=[z1,z2,…,zm] • p=[p1,p2,...,pn] • K=[k] • 函数tf2zp()可以用来求传递函数的零极点和增益。
零极点增益模型 • 零点、极点、增益形式(ZPK)表示 • 输入零点和极点列向量及标量形式的增益 • 使用zpk命令建立ZPK对象 例: >> zG=-0.75;pG=[-1;-5];kG=4; >> G2=zpk(zG,pG,kG) 或者: >> G2=zpk(-0.75,[-1;-5],4)
传递函数 两种形式互换 • TF形式变换为ZPK形式 • Gzpk=zpk(Gtf) • [zz,pp,kk]=zpkdata(Gzpk,’v’) • %获得G(s)的零点、极点和增益 • ZPK形式变换为TF形式 • Svv=tf(Sxx) • [nn,dd]=tfdata(Svv,’v’) • %获得分子分母多项式系数
控制系统常用到并联系统,这时就要对系统函数进行分解,使其表现为一些基本控制单元的和的形式。控制系统常用到并联系统,这时就要对系统函数进行分解,使其表现为一些基本控制单元的和的形式。 [resG,polG,otherG]=residue(numG,denG) resG留数 polG极点 otherG 常数函数[r,p,k]=residue(b,a)对两个多项式的比进行部分展开,以及把传函分解为微分单元的形式。 向量b和a是按s的降幂排列的多项式系数。部分分式展开后,余数返回到向量r,极点返回到列向量p,常数项返回到k。 [b,a]=residue(r,p,k)可以将部分分式转化为多项式比p(s)/q(s)。 部分分式展开
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])))); 举例:传递函数描述
零极点增益模型: 》num=[1,11,30,0]; 》den=[1,9,45,87,50]; [z,p,k]=tf2zp(num,den) 》 p= -3.0000+4.0000i -3.0000-4.0000i -2.0000 -1.0000 k= 1 z= 0 -6 -5 结果表达式:
部分分式展开: 》num=[2,0,9,1]; 》den=[1,1,4,4]; [r,p,k]=residue(num,den) 》 r= 0.0000-0.2500i 0.0000+0.2500i -2.0000 p= 0.0000+2.0000i 0.0000-2.0000i -1.0000 k= 2 结果表达式:
状态方程与输出方程的组合称为状态空间表达式,又称为动态方程,经典控制理论用传递函数将输入—输出关系表达出来,而现代控制理论则用状态方程和输出方程来表达输入—输出关系,揭示了系统内部状态对系统性能的影响。状态方程与输出方程的组合称为状态空间表达式,又称为动态方程,经典控制理论用传递函数将输入—输出关系表达出来,而现代控制理论则用状态方程和输出方程来表达输入—输出关系,揭示了系统内部状态对系统性能的影响。 状态空间描述 • 在MATLAB中,系统状态空间用(A,B,C,D)矩阵组表示。
系统为一个两输入两输出系统: 》A=[1 6 9 10; 3 12 6 8; 4 7 9 11; 5 12 13 14]; 》B=[4 6; 2 4; 2 2; 1 0]; 》C=[0 0 2 1; 8 0 2 2]; 》D=zeros(2,2); 举例
在一些场合下需要用到某种模型,而在另外一些场合下可能需要另外的模型,这就需要进行模型的转换。在一些场合下需要用到某种模型,而在另外一些场合下可能需要另外的模型,这就需要进行模型的转换。 模型转换的函数包括: residue:传递函数模型与部分分式模型互换 ss2tf: 状态空间模型转换为传递函数模型 ss2zp: 状态空间模型转换为零极点增益模型 tf2ss: 传递函数模型转换为状态空间模型 tf2zp: 传递函数模型转换为零极点增益模型 zp2ss: 零极点增益模型转换为状态空间模型 zp2tf: 零极点增益模型转换为传递函数模型 模型的转换与连接 • 模型的转换
已知系统状态空间模型为: 》A=[0 1; -1 -2]; B=[0;1]; 》C=[1,3]; D=[1]; 》[num,den]=ss2tf(A,B,C,D,iu) %iu用来指定第n个输入,当只有一个输入时可忽略。 》num=1 5 2; den=1 2 1; 》[z,p,k]=ss2zp(A,B,C,D,iu) 》z= -4.5616 p= -1 k=1 -0.4384 -1 用法举例
已知一个单输入三输出系统的传递函数模型为:已知一个单输入三输出系统的传递函数模型为: 》num=[0 0 -2;0 -1 -5;1 2 0];den=[1 6 11 6]; 》[A,B,C,D]=tf2ss(num,den) 》A= -6 -11 -6 B= 1 C= 0 0 -2 D= 0 1 0 0 0 0 -1 -5 0 0 1 0 0 1 2 0 0
系统的零极点增益模型: 》z=[-3];p=[-1,-2,-5];k=6; 》[num,den]=zp2tf(z,p,k) 》num= 0 0 6 18 den= 1 8 17 10 》[a,b,c,d]=zp2ss(z,p,k) 》a= -1.0000 0 0 b=1 2.0000 -7.0000 -3.1623 1 0 3.1623 0 0 c= 0 0 1.8974 d=0 • 注意:零极点的输入可以写出行向量,也可以写出列向量。
已知部分分式: 》r=[-0.25i,0.25i,-2]; 》p=[2i,-2i,-1];k=2; 》[num,den]=residue(r,p,k) 》num= 2 0 9 1 》den= 1 1 4 4 注意余式一定要与极点相对应。
1、并联:parallel 格式:[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2) %并联连接两个状态空间系统。 [a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2,inp1,inp2,out1,out2) %inp1和inp2分别指定两系统中要连接在一起的输入端编号,从u1,u2,…,un依次编号为1,2,…,n; out1和out2分别指定要作相加的输出端编号,编号方式与输入类似。inp1和inp2既可以是标量也可以是向量。out1和out2用法与之相同。如inp1=1,inp2=3表示系统1的第一个输入端与系统2的第三个输入端相连接。 若inp1=[1 3],inp2=[2 1]则表示系统1的第一个输入与系统2的第二个输入连接,以及系统1的第三个输入与系统2的第一个输入连接。 [num,den]=parallel(num1,den1,num2,den2) %将并联连接的传递函数进行相加。 模型的连接
用重载符号+ T(s)=G1(s)+G2(s)
2、串联:series 格式:[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2) %串联连接两个状态空间系统。 [a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2,out1,in2) %out1和in2分别指定系统1的部分输出和系统2的部分输入进行连接。 [num,den]=series(num1,den1,num2,den2) %将串联连接的传递函数进行相乘。
用重载符号* T(s)=G1(s)*G2(s)
3、反馈:feedback 格式:[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2) • %将两个系统按反馈方式连接,一般而言,系统1为对象,系统2为反馈控制器。 [a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,sign) • %系统1的所有输出连接到系统2的输入,系统2的所有输出连接到系统1的输入,sign用来指示系统2输出到系统1输入的连接符号,sign缺省时,默认为负,即sign= -1。总系统的输入/输出数等同于系统1。 [a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,inp1,out1) • %部分反馈连接,将系统1的指定输出out1连接到系统2的输入,系统2的输出连接到系统1的指定输入inp1,以此构成 闭环系统。 [num,den]=feedback(num1,den1,num2,den2,sign) • %可以得到类似的连接,只是子系统和闭环系统均以传递函数的形式表示。sign的含义与前述相同。
4、闭环:cloop(单位反馈) 格式:[ac,bc,cc,dc]=cloop(a,b,c,d,sign) • %通过将所有的输出反馈到输入,从而产生闭环系统的状态空间模型。当sign=1时采用正反馈;当sign= -1时采用负反馈;sign缺省时,默认为负反馈。 [ac,bc,cc,dc]=cloop(a,b,c,d,outputs,inputs) • %表示将指定的输出outputs反馈到指定的输入inputs,以此构成闭环系统的状态空间模型。一般为正反馈,形成负反馈时应在inputs中采用负值。 [numc,denc]=cloop(num,den,sign) • %表示由传递函数表示的开环系统构成闭环系统,sign意义与上述相同。
ctrb和obsv函数可以求出状态空间系统的可控性和可观性矩阵。ctrb和obsv函数可以求出状态空间系统的可控性和可观性矩阵。 格式:co=ctrb(a,b) ob=obsv(a,c) 对于n×n矩阵a,n×m矩阵b和p×n矩阵c ctrb(a,b)可以得到n×nm的可控性矩阵 co=[b ab a2b … an-1b] obsv(a,c)可以得到nm×n的可观性矩阵 ob=[c ca ca2 … can-1]’ 当co的秩为n时,系统可控;当ob的秩为n时,系统可观。 模型的属性
在进行控制系统的仿真之前,建立系统的模型表达式是关键的一步。在进行控制系统的仿真之前,建立系统的模型表达式是关键的一步。 对于控制系统,有不同的分类,在本课程中主要讨论的是线性定常连续系统 系统的描述有不同的方法:微分方程;传递函数;零极点增益模式;部分分式展开;状态空间模型等。 系统的模型之间可以相互转换,要求熟练掌握各种模型之间转换的命令。 模型之间可以进行连接,要求掌握常用的模型连接命令:串联、并联、反馈及闭环。 本章小结