本文格式为Word版,下载可任意编辑预测控制翻译14 1.4.1 闭环操纵系统 例1.4还可以说明另一个方面的问题,假设我们留心地检查这个例子就会察觉给定一个时间ki,最优参数ΔU可以通过下式求解: ΔU??T??R?1?????1TRs??TFx?ki? ?其中??T??R??TRs为设定量变化,??T??R?TF为在预料操纵框架下的状态 ?1??反应操纵两项都凭借与系统参数,因此时不变系统的常数矩阵,由于要遵循滚动时域操纵原那么,我们只选取ΔU在时间ki时的第一片面作为增量操纵,因此, Nc?????Δu?ki??10?0?T??R?????1TRsr?ki???TFx?ki???1.29??Kyr?ki??Kmpcx?ki?, 其中ky是第一片面的????R??T?1TR,Kmpc是第一行里的????R?T?1s?TF 【17页】 式(1.29)是线性是不变状态反应的一个标准形式状态反应增量为Kmpc因此,由广义设计模型: x?k?1??Ax?k??BΔu?k? 将式(1.29)代入广义系统模型里就可以得到闭环系统;将ki换成k导出闭环等式如下: x?k?1??Ax?k??BKyr?k???A?BKmpc?x?k??BKyr?k??1.30??1.31? 这样,闭环系统的特征值可以通过闭环特征方程det??I??A?BKmpc???0计算出来。
由于矩阵C和A的特殊布局,使得F的结果一列与Rs一致,等于?11?1?, T所以Ky就等于Kmpc的结果一个元素指定状态变量向x?ki??Δxm?k?且由Ky的定义,我们可以写成Kmpc?kx?Ty?k?, ?T?ky,其中kx是与Δxm?k?有关的反应 ?增益向量,Ky是与y(k)有关的反应增益从而我们可以得到如图(1.3)所示的预料操纵系统的闭环方框图,其中q?1表示向后移位算子这个图形说明了具有 积分作用的离散模型预料操纵(DMPC)的状态反应布局,其中时间模块 1表示离散?11?q 例1.5 这个例子将用来检验由例1.2产生的闭环反应增益矩阵,以及闭环系统在rw=0和rw=10两种处境下的特征值 解:当rw=0时,我们有 ??1???????1?T1?T Ky??1000????R??????10 ???????????1????Kmpc??1000??T??R????F???8?1T10? 从而,通过计算矩阵A-BKmpc的特征值来计算闭环系统的特征值,通过例1.2 ?0.80?A????0.81? ?0.1?B??? ?0.1? 图(1.3)离散时间预料操纵系统方块图 可以得出?1??6.409?10?7,?2?6.409?10?1,约莫在复平面的起始位置。
当rw=1-时,我们有: ??1???????1?T1?TKy??1000????R??????0.2453 ????????1???????Kmpc??1000??T??R????F???0.6939?1T0.2453? 由此增益向量得闭环系统的特征值为:?1,2?0,8530?j0,0542,这说明闭环系统比rw=0时有更慢的动态响应 例1.6 设拉普拉斯传递函数描述的连续时间系统如下: w2G?s??2 s?0.1ws?w2其中w=10系统的采样间隔为Δt=0.01在设计参数的选取上检验系统的灵敏度,令Nc=3,Np=20和200;R?0.5I 解:我们首先用MATLAB函数(如下所示)来得到连续时间状态空间模型,然后根据接下来的提示1.1获得离散时间状态空间模型 【19页】 omega=10; numc=omega^2; denc =[1 0.1*omega omega^2]; [Ac ,Bc,Cc,Dc]=tf2ss(numc,denc) 这里,广义离散时间状态空间模型为: x(k?1)?Ax?k??BΔu?k?, y?k??Cx?k? ?0.9851?0.99340??0.0099?其中,A??0.00990.99500?,B??0.0000?,C??001?。
???????0.993499.5021???0.0050??让我们先看一下预料域在解ΔU时的作用假设在采样时刻k=10,初始条件 为x(10)=[0.1 0.2 0.3]T当Np=20时的解为ΔU=[-144.9984 -65.4710 1.203]T,根据滚动域操纵规律,状态反应操纵增益为Kmpc=[45.468 705.6132 0.9513],闭环特征值为0.6974 0.8959?0.1429j然而,当Np=200时ΔU=[-645.5885 -0.4664 629.0276]T与之前使用的较短的预料域相对比,ΔU发生了显著的变化,同时,状态反应增益Kmpc=[80.6 3190 0.79],闭环特征值为0.9749,0.5207?j0.2919对比研究说明现有的灵敏度与预料域的选取有关进一步分析,我们可以察觉海森矩阵?T??R的一个函数例如,当Np=20时, ?9.87968.93878.0099?? ?T???8.93878.10217.2737????8.00997.27376.5425??条件数K(?T??0.5I)=49.98 然而,当Np=200时, ?236.0557235.5010234.5466?? ?T???235.5010235.3753234.8473?????234.5466234.8473234.7473?条件数K(?T??0.5I)=1410 。
在预料域Np增加到200的过程中海森条件数大大增加较长预料域中海森条件数更大的【20页】理由是引起长短预料域之间不同的数字敏感度 有了短预料操纵,闭环预料操纵系统不确定是稳定的通常处境下,这些都被看作闭环系统稳定性和性能的调理参数,在第四章中我们将提出一种新方法,用对比大的预料和操纵域来保证闭环系统的稳定 1.4.2 MATLAB提示:滚动域操纵的实现 提示1.3 此提示的目的是学习怎样用滚动域操纵的方法实现预料操纵设备状态空间模型如下: ?11??0.5???xm?k?1???xk?u?k?m????01??1?y?k???10?xm?k? ?1.32? 步骤: 1、建立一个新的文件reced.m 2、第一步是定义设备,输入预料域和操纵域的值设备属于双积分器操纵系统(1.32)操纵域Nc=4,预料域Np=20输入下面的程序: Ap=[1 1;0 1]; Bp=[0.5;1]; Cp=[1 0] Dp=0; Np=20; Nc=4; 3、程序调用函数mpcgain.m来产生所需的增益矩阵,同时指定实现滚动域操纵的初始条件。
初始状态变量为xm=0;初始状态反应变量为xf=0;设定点信号被设定且模拟信号的值被设置为100 4、持续输入一下程序: [phi_Phi,Phi_F,Phi_R,A-e,B-e,C-e] =mpcgain(Ap,Bp,Cp,Nc,Np); [n,n_in]=size(B_e); xm=[0;0]; xf=zeros(n,1); N_sim=100; 【21页】 r=ones(N_sim,1) u=0;%u(k-1)=0 y=0; 5、由滚动时域操纵原理,在采样时刻kk,ΔU向量用设定点信号r(kk)来计算,状态向量用xf来计算Δu(kk)取ΔU向量的第一个元素;且u(kk)=u(kk-1)+Δu(k)加权因子设为0.1 6、持续输入一下代码: for kk=1:N_sim; deltav=inv(Phi_Phi+0.1*eye(Nc,Nc)*(Phi_R*r(kk)_Phi_F*xf)); deltau=Deltav(1,1); u=u+delau; u1(kk)=u; y1(kk)=y; 7、设备状态和输出都是用操纵信号的产生来模拟的;反应机构中的状态变量用xf来校正。
8、持续输入下面的程序: xm_old=xm; xm=Ap*xm+Bp*u; y=Cp*xm xf=[xm_xm_old;y] end 9、输入和输出信号与采样信号独立划分 10、持续输入下面的程序: k=0:(N_sim_1); figure subplot(2 1 1) plot(k,y) xlabel(‘Sampling Instant’) legend(‘Output’) subplot(2 1 2) plot(k,u1) xlabel(‘Sample Instant’) legend(‘control’) 11、将以上程序保存在同名函数的路径下,运行程序 12、将设计中的rw变成2并查看得出闭环响应速度变慢 13、设置不同的Ap,Bp,Cp值建立自己的设备模型,并用不同的预料和操纵域举行验证 【22页】 — 7 —。