330 likes | 500 Views
第二章 控制系统的数学描述. 第一节 控制系统的数学模型. 第二节 常微分方程的数值解法. 第一节 控制系统的数学模型. 控制系统的数学模型在控制系统的研究中有着相当重要的地位,要对系统进行仿真处理,首先应当知道系统的数学模型,然后才可以对系统进行模拟。同样,如果知道了系统的模型,才可以在此基础上设计一个合适的控制器,使得系统响应达到预期的效果,从而符合工程实际的需要。.
E N D
第二章 控制系统的数学描述 第一节 控制系统的数学模型 第二节 常微分方程的数值解法
第一节 控制系统的数学模型 • 控制系统的数学模型在控制系统的研究中有着相当重要的地位,要对系统进行仿真处理,首先应当知道系统的数学模型,然后才可以对系统进行模拟。同样,如果知道了系统的模型,才可以在此基础上设计一个合适的控制器,使得系统响应达到预期的效果,从而符合工程实际的需要。
在线性系统理论中,一般常用的数学模型形式有:微分方程模型、传递函数模型(系统的外部模型)、状态方程模型(系统的内部模型)、零极点增益模型和部分分式模型等。这些模型之间都有着内在的联系,可以相互进行转换。在线性系统理论中,一般常用的数学模型形式有:微分方程模型、传递函数模型(系统的外部模型)、状态方程模型(系统的内部模型)、零极点增益模型和部分分式模型等。这些模型之间都有着内在的联系,可以相互进行转换。 • 微分方程模型是控制系统模型的基础,一般来讲,利用机械学、电学、力学等物理规律,便可以得到控制系统的动态方程,这些方程对于线性定常连续系统而言是一种常系数的线性微分方程。
1.1 控制系统数学模型的表示形式 • 微分方程形式 系统在MATLAB中可以方便地由输入和输出系数构成的 两个向量唯一地确定出来,这两个向量分别用num和den 表示。 num=[b1, b2,…,bm, bm+1] den=[1, a1, a2,…, an]
传递函数形式 系统在MATLAB中可以方便地由分子和分母系数 构成 的两个向量 唯一地确定出来,这两个向量分别用num和den表示。 num=[b1,b2,…,bm,bm+1] den=[1,a1,…,an-1,an] 注意:它们都是按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]))));
零极点增益形式 • 零极点模型实际上是传递函数模型的另一种表现形式,其原理是分别对原系统传递函数的分子、分母进行分解因式处理,以获得系统的零点和极点的表示形式。 在MATLAB中零极点增益模型用[Z,P,K]矢量组表示。即:Z=[z1,z2,…,zm] P=[p1,p2,...,pn] K=[k]
部分分式形式 在MATLAB中部分分式模型用[R,P,H]矢量组表示。 即:R=[r1,r2,…,rn] P=[p1,p2,...,pn] H=[h0,h1,…,h]
状态方程形式 系统状态空间用(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);
1.2 模型的转换与连接 1.2.1 模型的转换 • 模型转换的函数包括: residue:传递函数模型与部分分式模型互换 ss2tf: 状态空间模型转换为传递函数模型 ss2zp: 状态空间模型转换为零极点增益模型 tf2ss: 传递函数模型转换为状态空间模型 tf2zp: 传递函数模型转换为零极点增益模型 zp2ss: 零极点增益模型转换为状态空间模型 zp2tf: 零极点增益模型转换为传递函数模型
ss2tf 状态空间SS 传递函数tf tf2ss ss2zp zp2tf residue zp2ss tf2zp 零极点ZP 极点留数
用法举例: 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 结果表达式:
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
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
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 • 注意:零极点的输入可以写出行向量,也可以写出列向量。
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
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) %将并联连接的传递函数进行相加。
(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) %将串联连接的传递函数进行相乘。
(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意义与上述相同。
第二节 常微分方程的数值解法 • 数字仿真就是对系统的数学模型即微分方程求数值解的过程,常用的方法: 常微分方程数值解; 连续系统离散相似法
2.1 常微分方程数值解 设常微分方程: 求解微分方程满足初始条件的特解问题,即常微分方程的 初值问题。
使用数值解法求常微分方程的初值问题的方法:使用数值解法求常微分方程的初值问题的方法: • 离散点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)的递推公式,称为计算格式。
足够小时,由差商代替微商: 当 2.2 数值积分法 2.2.1 欧拉法 设 从微分的定义出发:取增量;求比值;取极限
整理得到: 将初始条件代入:
欧拉法迭代公式 如何提高精度?
将 简写: 2.2.2 预估-校正法 先用欧拉法预估: 再用梯形公式校正: 平均斜率
2.2.3 龙格-库塔法 四阶龙格库塔法迭代公式:
2.2.4 关于数值积分法的几点说明 • 单步法和多步法 • 显式和隐式 • 稳定性
计算结果 变步长积分 误差估计 + 允许误差 2.2.5 数值算法的应用 关键:如何选择步长 • 保证计算稳定 • 计算精度 如RK-4: 如RK-4,保证精度为0.5%: