1、第 9 章 动态矩阵控制9.1 阶跃响应模型及其辨识9.2 算法原理 9.2.1 单入单出情形单入单出情形 9.2.2 单入单出情形:另一种推导方式 9.2.3 多入多出情形 9.2.4 MATLAB工具箱的说明9.3 约束的处理 动态矩阵控制和模型算法控制有很多共同之处。因为它是基于系统阶跃响应的算法,模型算法控制基于脉冲响应模型,而得到了脉冲响应模型等价于得到了阶跃响应模型。但是,动态矩阵控制采用增增量算法量算法,因此在消除稳态余差方面非常有效。当然,与动态矩阵控制相比,模型算法控制也有其优点,如抗干扰能力。9.1 9.1 阶跃响应模型及其辨识阶跃响应模型及其辨识 假设系统处于稳态,在单位
2、阶跃输入 作用下,时不变SISO系统的输出响应如下:这里假设系统输出恰好在变化N步后达到稳态,这样对象的动态信息就可以近似地用有限集 加以描述。这个集合的参数构成了DMC的模型参数,向量 称为模型向量,N则称为建模时域。阶跃响应曲线如图9.1.1所示。u1210,NNs sss12,Ns ssT12,Ns sss9.1 9.1 阶跃响应模型及其辨识阶跃响应模型及其辨识 据此,可以计算在任意输入下的系统输出为图9.1.1 阶跃响应曲线11()()(1)NlNly ksu klsu kN(9.1.1)9.1 9.1 阶跃响应模型及其辨识阶跃响应模型及其辨识 其中 。注意:当 时式(9.1.1)等价
3、于 阶跃响应模型式(9.1.1)只能用于开环稳定对象。对具有个 输入和 个输出的MIMO过程,可以 得到如下的阶跃响应系数矩阵:其中 为针对第 个输入和第 个输出的第个阶跃响应系数。()()(1)u klu klu kl 1NNss11()()()NlNly ksu kls u kN(9.1.2)mr111212122212llmlllmllr lr lrmlsssssssssSijlsji9.1 9.1 阶跃响应模型及其辨识阶跃响应模型及其辨识 在MATLAB MPC Toolbox中,给出了MISO模型的辨识方法。给定输出 和输入 的历史数据为 ,可估计系统的阶跃响应 ()iy k12()
4、,(),()mu k ukuk(1)(2)(3)iiiiyyyy121212(1)(1)(1)(2)(2)(2)(3)(3)(3)mmmuuuuuuuuuu112111222212iiimiiimi li limlsssssssss9.1 9.1 阶跃响应模型及其辨识阶跃响应模型及其辨识 为估计阶跃响应系数,可将系统(以SISO为例)写成如式(9.1.3)的形式并首先估计 。其中,。由式(9.1.4)给出。为估计参数,一般建议将一些变量成比例地放大或缩小,使得所有变量的值在一个数量级上。然后将数据写成式(9.1.5)的形式:其中 包含所有输出信息(对开环稳定过程为 );包含所有输入信息();包
5、含所有要估计的参数。lh1()()Nlly khu kl(9.1.3)()()(1)y ky ky k1lllhssls1lljjsh(9.1.4)YX(9.1.5)Y()y kX()u k9.2 9.2 算法原理算法原理 考虑开环稳定系统。在每一时刻 ,要确定从该时刻起的 个控制增量 使被控对象在其作用下未来 个时刻的输出预测值 尽可能接近给定的期望值 。这里,、分别称为控制时域与优化时域。为了使问题有意义,通常规定 。尽管求得了 个控制输入增量,仅仅第一个值 是实际实施的。(),u kkM(1|),u kk(1|)u kMkP(1|),(2|),(|)y kky kky kP k(),1,
6、sy kiiPMPMPNM()u k9.2.1 9.2.1 单入单出情形单入单出情形 在时刻 ,利用式(9.1.1)可得到未来 个时刻的模型输出预测值为kP01(1|)(1|1)()y kky kksu k011(|)(|1)()(1|)(1|)MMy kM ky kM ksu ksu kksu kMk011(|)(|1)()(1|)(1|)PPP My kP ky kP ksu ksu kksu kMk012(1|)(1|1)()(1|)(1|)MMy kMky kMksu ksu kksu kMk9.2.1 9.2.1 单入单出情形单入单出情形 其中 为假设当前和未来时刻控制作用不变时的输
7、出预测值。另记 其中011(|1)()(1)NjNj iy ki ksu kijsu kiN 11()(1)N iijNjsu kjsu kiN 112(1)()(),1,2,N iiijijjs u kssu kjiP(9.2.1)0()()(|1)ky ky k k(9.2.2)0112(|1)(1)()()Njjjy k ks u kssu kj(9.2.3)9.2.1 9.2.1 单入单出情形单入单出情形 记 将经式(9.2.4)式(9.2.5)校正后的输出预测值写成矢量形式为 其中00(|)(|1)(),iy ki ky ki kfk1,2,iP(9.2.4)(|)(|)(),iy
8、ki ky ki kfk1,2,iP(9.2.5)0(|)(|)(|)k kk kk kyyA u(9.2.6)T(|)(1|),(2|),(|)k ky kky kky kP kyT0000(|)(1|),(2|),(|)k ky kky kky kP ky(|)(),(1|),(1|)k ku ku kku kMk u9.2.1 9.2.1 单入单出情形单入单出情形 假设优化的准则是最小化如下性能指标:其中:为跟踪误差;为未来输出参考值(设定值);1211111000MMPPP Msssssssss A2211()(|)(1|)PMijijJ kwe ki krukjk(9.2.7)(|)
9、()(|)se ki ky kiy ki k()sy ki9.2.1 9.2.1 单入单出情形单入单出情形 和 都是非负的标量,它们分别表示对跟踪误差及控制量变化的抑制;和 为由权系数构成的对角阵,分别称为误差权矩阵和控制权矩阵。性能指标式(9.2.7)中的第二项主要用于抑制过于剧烈的控制增量,以防止系统超出限制范围或发生剧烈振荡。使 取极小的 可以通过极值必要条件 求得 其中(|)k k u()(|)0dJ kdk k uT1T0(|)()()k kkuA WARA We(9.2.8)12diag,Mr rrRiwjr12diag,Pw wwW()J k00()()(|)skkk keyy9
10、.2.1 9.2.1 单入单出情形单入单出情形 为当前时刻及以后控制作用不变时由实测输出 和历史的控制作用预测的未来时刻的跟踪误差值。式(9.2.8)给出了 的最优值。但DMC并不把它们都当做应实现的解,而只是取其中的即时控制增量 构成实际控制 作用于对象。到下一时刻,它又求解类似的优化问题,得到 。这就是所谓的“滚动优化”的策略。T0000()(1),(2),()ke ke ke kPeT()(1),(2),()ssssky ky ky kPy 0e()y k(),(1|),(1|)u ku kku kMk()u k()(1)()u ku ku k(1)u k9.2.1 9.2.1 单入单出
11、情形单入单出情形 因此在每个时刻 ,实施如下的控制量:其中,维行矢量 ,维行矢量 表示取首元素的运算。一旦优化策略确定(即 、已定),则 可以一次离线算出。这样,若不考虑约束,优化问题的在线求解简化为直接计算控制律(见式9.2.9)。利用式(9.2.1)可得到如下矢量形式:其中(9.2.9)kT0()()(|)su kkk kdyy 0(|1)()ppk kkyA u(9.2.10)T0000(|1)(1|1),(2|1),(|1)k ky kky kky kP kyT()(1),(2),(1)pku ku ku kNupTTT1T1P(),dddcA WARA WmT1,0,0cTTT1T(
12、)dcA WARA WPMWR9.2.1 9.2.1 单入单出情形单入单出情形 则根据式(9.2.4)和式(9.2.5)可得到 其中232121111211211000N PN PN PN PNNpPPPNNNNPPPNNsssssssssssssssssssss A0(|)()(|)k kkk keeA u(9.2.11)0()()()()sppkkkkeyA uf(9.2.12)T(|)(1|),(2|),(|)k ke kk e kke kP keT12,Pffff9.2.1 9.2.1 单入单出情形单入单出情形 这样,在每个时刻,实施如下的控制量:式(9.2.13)与式(9.2.9)是
13、等价的。通过以上推导可以看出,DMC算法与MAC算法的推导十分相似,其中有些不同之处,如参考轨迹的引入,但可相互借鉴。(9.2.13)T()()()()sppu kkkkdyA uf9.2.1 9.2.1 单入单出情形单入单出情形 算法算法9.2.1(I-型无约束DMC)Step 0.获得 。计算 。选择 。获得 。Step 1.在每个时刻 ,Step 1.1.测量输出 ;Step 1.2.确定 (可采用第章MAC的做法);Step 1.3.用式(9.2.2)式(9.2.3)计算 ;Step 1.4.计算式(9.2.10)中的 ;Step 1.5.用式(9.2.13)计算 ;Step 1.6.实施 。12,Ns ssTdf(),(1),uN uN,(1)u 0k()y k()sk y()k()ppkA u()u k()u k