1 / 33

第二章 控制系统的数学描述

第二章 控制系统的数学描述. 第一节 控制系统的数学模型. 第二节 常微分方程的数值解法. 第一节 控制系统的数学模型. 控制系统的数学模型在控制系统的研究中有着相当重要的地位,要对系统进行仿真处理,首先应当知道系统的数学模型,然后才可以对系统进行模拟。同样,如果知道了系统的模型,才可以在此基础上设计一个合适的控制器,使得系统响应达到预期的效果,从而符合工程实际的需要。.

edna
Download Presentation

第二章 控制系统的数学描述

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章 控制系统的数学描述 第一节 控制系统的数学模型 第二节 常微分方程的数值解法

  2. 第一节 控制系统的数学模型 • 控制系统的数学模型在控制系统的研究中有着相当重要的地位,要对系统进行仿真处理,首先应当知道系统的数学模型,然后才可以对系统进行模拟。同样,如果知道了系统的模型,才可以在此基础上设计一个合适的控制器,使得系统响应达到预期的效果,从而符合工程实际的需要。

  3. 在线性系统理论中,一般常用的数学模型形式有:微分方程模型、传递函数模型(系统的外部模型)、状态方程模型(系统的内部模型)、零极点增益模型和部分分式模型等。这些模型之间都有着内在的联系,可以相互进行转换。在线性系统理论中,一般常用的数学模型形式有:微分方程模型、传递函数模型(系统的外部模型)、状态方程模型(系统的内部模型)、零极点增益模型和部分分式模型等。这些模型之间都有着内在的联系,可以相互进行转换。 • 微分方程模型是控制系统模型的基础,一般来讲,利用机械学、电学、力学等物理规律,便可以得到控制系统的动态方程,这些方程对于线性定常连续系统而言是一种常系数的线性微分方程。

  4. 1.1 控制系统数学模型的表示形式 • 微分方程形式 系统在MATLAB中可以方便地由输入和输出系数构成的 两个向量唯一地确定出来,这两个向量分别用num和den 表示。 num=[b1, b2,…,bm, bm+1] den=[1, a1, a2,…, an]

  5. 传递函数形式 系统在MATLAB中可以方便地由分子和分母系数 构成 的两个向量 唯一地确定出来,这两个向量分别用num和den表示。 num=[b1,b2,…,bm,bm+1] den=[1,a1,…,an-1,an] 注意:它们都是按s的降幂进行排列的。 可见,微分方程形式的模型和传递函数模型是一致的

  6. 举例:传递函数描述 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]))));

  7. 零极点增益形式 • 零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。 在MATLAB中零极点增益模型用[Z,P,K]矢量组表示。即:Z=[z1,z2,…,zm] P=[p1,p2,...,pn] K=[k]

  8. 部分分式形式 在MATLAB中部分分式模型用[R,P,H]矢量组表示。 即:R=[r1,r2,…,rn] P=[p1,p2,...,pn] H=[h0,h1,…,h]

  9. 状态方程形式 系统状态空间用(A,B,C,D)矩阵组表示

  10. 举例: 系统为一个两输入两输出系统 》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);

  11. 1.2 模型的转换与连接 1.2.1 模型的转换 • 模型转换的函数包括: residue:传递函数模型与部分分式模型互换 ss2tf: 状态空间模型转换为传递函数模型 ss2zp: 状态空间模型转换为零极点增益模型 tf2ss: 传递函数模型转换为状态空间模型 tf2zp: 传递函数模型转换为零极点增益模型 zp2ss: 零极点增益模型转换为状态空间模型 zp2tf: 零极点增益模型转换为传递函数模型

  12. ss2tf 状态空间SS 传递函数tf tf2ss ss2zp zp2tf residue zp2ss tf2zp 零极点ZP 极点留数

  13. 用法举例: 1)部分分式展开: 》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 结果表达式:

  14. 2)已知系统状态空间模型为: 》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

  15. 3)已知一个单输入三输出系统的传递函数模型为:3)已知一个单输入三输出系统的传递函数模型为: 》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

  16. 4)系统的零极点增益模型: 》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 • 注意:零极点的输入可以写出行向量,也可以写出列向量。

  17. 5)已知部分分式: 》r=[-0.25i,0.25i,-2]; 》p=[2i,-2i,-1];h=2; 》[num,den]=residue(r,p,h) 》num= 2 0 9 1 》den= 1 1 4 4

  18. 1.2.2 模型的连接 (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) %将并联连接的传递函数进行相加。

  19. (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) %将串联连接的传递函数进行相乘。

  20. (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的含义与前述相同。

  21. (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意义与上述相同。

  22. 第二节 常微分方程的数值解法 • 数字仿真就是对系统的数学模型即微分方程求数值解的过程,常用的方法: 常微分方程数值解; 连续系统离散相似法

  23. 2.1 常微分方程数值解 设常微分方程: 求解微分方程满足初始条件的特解问题,即常微分方程的 初值问题。

  24. 使用数值解法求常微分方程的初值问题的方法:使用数值解法求常微分方程的初值问题的方法: • 离散点tk(k=1,2,…n),为计算方便,通常假设t1<t2<…<tn-1<tn;相邻两点的距离为步长,即h=tk-1-tk • 求近似解是一步一步进行的,依据给定的(t0,y0)求y1,再由(t1,y1)求y2,然后求y3,称为步进法。 • 寻求数值解的方法,就是寻求由yk计算出yk+1(K=0,1,…,n)的递推公式,称为计算格式。

  25. 足够小时,由差商代替微商: 当 2.2 数值积分法 2.2.1 欧拉法 设 从微分的定义出发:取增量;求比值;取极限

  26. 整理得到: 将初始条件代入:

  27. 例:

  28. 欧拉法迭代公式 如何提高精度?

  29. 将 简写: 2.2.2 预估-校正法 先用欧拉法预估: 再用梯形公式校正: 平均斜率

  30. 2.2.3 龙格-库塔法 四阶龙格库塔法迭代公式:

  31. 2.2.4 关于数值积分法的几点说明 • 单步法和多步法 • 显式和隐式 • 稳定性

  32. 计算结果 变步长积分 误差估计 + 允许误差 2.2.5 数值算法的应用 关键:如何选择步长 • 保证计算稳定 • 计算精度 如RK-4: 如RK-4,保证精度为0.5%:

More Related