发明名称 动态矩阵控制优化的分馏塔液位控制方法
摘要 本发明公开了动态矩阵控制优化的分馏塔液位控制方法。本发明方法首先基于分馏塔液位对象的阶跃响应数据建立分馏塔液位对象的模型,挖掘出基本的对象特性;然后依据动态矩阵控制的特性去整定相应P控制器的参数;最后对分馏塔液位对象实施P控制。本发明提出了一种基于动态矩阵控制优化的分馏塔液位P控制方法,结合了P控制和动态矩阵控制的良好的控制性能,有效地提高了传统控制方法的不足,同时也促进了先进控制算法的发展与应用。
申请公布号 CN103605381A 申请公布日期 2014.02.26
申请号 CN201310567019.X 申请日期 2013.11.14
申请人 杭州电子科技大学 发明人 薛安克;张日东;左燕;王建中
分类号 G05D9/00(2006.01)I;G05B13/04(2006.01)I 主分类号 G05D9/00(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 杜军
主权项 1.动态矩阵控制优化的分馏塔液位控制方法,其特征在于该方法的具体步骤是:步骤(1).通过过程对象的实时阶跃响应数据建立被控对象的模型,具体方法是:1-a.给被控对象一个阶跃输入信号,记录被控对象的阶跃响应曲线;1-b.将步骤1-a得到的阶跃响应曲线进行滤波处理,然后拟合成一条光滑曲线,记录光滑曲线上每个采样时刻对应的阶跃响应数据,第一个采样时刻为T<sub>s</sub>,相邻两个采样时刻间隔的时间为T<sub>s</sub>,采样时刻顺序为T<sub>s</sub>、2T<sub>s</sub>、3T<sub>s</sub>……;被控对象的阶跃响应将在某一个时刻t<sub>N</sub>=NT后趋于平稳,当a<sub>i</sub>,i>N,与a<sub>N</sub>的误差和测量误差有相同的数量级时,即可认为a<sub>N</sub>近似等于阶跃响应的稳态值;建立对象的模型向量a:a=[a<sub>1</sub>,a<sub>2</sub>,…a<sub>N</sub>]<sup>Τ</sup>其中Τ为矩阵的转置符号,N为建模时域;步骤(2).设计被控对象的P控制器,具体方法是:2-a.利用上面获得的模型向量a建立被控对象的动态矩阵,其形式如下:<maths num="0001"><![CDATA[<math><mrow><mi>A</mi><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><msub><mi>a</mi><mn>1</mn></msub></mtd><mtd><mn>0</mn></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><msub><mi>a</mi><mn>2</mn></msub></mtd><mtd><msub><mi>a</mi><mn>1</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>a</mi><mi>P</mi></msub></mtd><mtd><msub><mi>a</mi><mrow><mi>P</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>a</mi><mrow><mi>P</mi><mo>-</mo><mi>M</mi><mo>+</mo><mn>1</mn></mrow></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中,A是被控对象的P×M阶动态矩阵,a<sub>i</sub>是阶跃响应的数据,P为动态矩阵控制算法的优化时域,M为动态矩阵控制算法的控制时域,M<P<N;2-b.建立被控对象当前k时刻的模型预测初始响应值y<sub>M</sub>(k)先得到k-1时刻加入控制增量Δu(k-1)后的模型预测值y<sub>p</sub>(k-1):y<sub>P</sub>(k-1)=y<sub>M</sub>(k-1)+A<sub>0</sub>Δu(k-1)其中,<maths num="0002"><![CDATA[<math><mrow><msub><mi>y</mi><mi>P</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>y</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>|</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>N</mi><mo>-</mo><mn>1</mn><mo>|</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><msub><mi>A</mi><mn>0</mn></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>a</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>a</mi><mn>2</mn></msub></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>a</mi><mi>N</mi></msub></mtd></mtr></mtable></mfenced><mo>,</mo><msub><mi>y</mi><mi>M</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>y</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>|</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>N</mi><mo>-</mo><mn>1</mn><mo>|</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>y<sub>1</sub>(k|k-1),y<sub>1</sub>(k+1|k-1),…,y<sub>1</sub>(k+N-1|k-1)分别表示被控对象在k-1时刻对k,k+1,…,k+N-1时刻加入控制增量Δu(k-1)后的模型预测值,y<sub>0</sub>(k|k-1),y<sub>0</sub>(k|k-1),…y<sub>0</sub>(k+N-1|k-1)表示k-1时刻对k,k+1,…,k+N-1时刻的初始预测值,A<sub>0</sub>为阶跃响应数据建立的矩阵,Δu(k-1)为k-1时刻的输入控制增量;接着得到k时刻被控对象的模型预测误差值e(k):e(k)=y(k)-y<sub>1</sub>(k|k-1)其中,y(k)表示k时刻测得的被控对象的实际输出值;进一步得到k时刻模型输出的修正值y<sub>cor</sub>(k):y<sub>cor</sub>(k)=y<sub>M</sub>(k-1)+h*e(k)其中,<maths num="0003"><![CDATA[<math><mrow><msub><mi>y</mi><mi>cor</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>y</mi><mi>cor</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>|</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>cor</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>|</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>cor</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>N</mi><mo>-</mo><mn>1</mn><mo>|</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><mi>h</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mi>&alpha;</mi></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mi>&alpha;</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>y<sub>cor</sub>(k|k),y<sub>cor</sub>(k+1|k),…y<sub>cor</sub>(k+N-1|k)分别表示被控对象在k时刻模型的修正值,h为误差补偿的权矩阵,α为误差校正系数;最后的得到k时刻的模型预测的初始响应值y<sub>M</sub>(k):y<sub>M</sub>(k)=Sy<sub>cor</sub>(k)其中,S为N×N阶的状态转移矩阵,<img file="FDA0000413666830000022.GIF" wi="506" he="378" />2-c.计算被控对象在M个连续的控制增量Δu(k),…,Δu(k+M-1)下的预测输出值y<sub>PM</sub>,具体方法是:y<sub>PM</sub>(k)=y<sub>p0</sub>(k)+AΔu<sub>M</sub>(k)<maths num="0004"><![CDATA[<math><mrow><msub><mi>y</mi><mi>PM</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>y</mi><mi>M</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>M</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>2</mn><mo>|</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>M</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>P</mi><mo>|</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><msub><mi>y</mi><mrow><mi>P</mi><mn>0</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>y</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>2</mn><mo>|</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>0</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>P</mi><mo>|</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>,</mo><msub><mi>&Delta;u</mi><mi>M</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>&Delta;u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>&Delta;u</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mi>&Delta;u</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>M</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中,y<sub>P0</sub>(k)是y<sub>M</sub>(k)的前P项,y<sub>M</sub>(k+1|k),y<sub>M</sub>(k+2|k),…,y<sub>M</sub>(k+P|k)为k时刻对k+1,k+2,…,k+P时刻的模型预测输出值;2-d.令被控对象的控制时域M=1,选取被控对象的目标函数J(k),J(k)形式如下:minJ(k)=Q(ref(k)-y<sub>PM</sub>(k))<sup>2</sup>+rΔu<sup>2</sup>(k)=Q(ref(k)-y<sub>P0</sub>(k)-AΔu(k))<sup>2</sup>+rΔu<sup>2</sup>(k)ref(k)=[ref<sub>1</sub>(k),ref<sub>2</sub>(k),…,ref<sub>P</sub>(k)]<sup>Τ</sup>ref<sub>i</sub>(k)=β<sup>i</sup>y(k)+(1-β<sup>i</sup>)c(k),Q=diag(q<sub>1</sub>,q<sub>2</sub>,…,q<sub>P</sub>)其中,Q为误差加权矩阵,q<sub>1</sub>,q<sub>2</sub>,…,q<sub>P</sub>为加权矩阵的参数值;β为柔化系数,c(k)为设定值;r=diag(r<sub>1</sub>,r<sub>2</sub>,…r<sub>M</sub>)为控制加权矩阵,r<sub>1</sub>,r<sub>2</sub>,…r<sub>M</sub>为控制加权矩阵的参数,ref(k)为系统的参考轨迹,ref<sub>i</sub>(k)为参考轨迹中第i个参考点的值;2-e.将控制量u(k)进行变换:u(k)=u(k-1)+K<sub>p</sub>(k)(e<sub>1</sub>(k)-e<sub>1</sub>(k-1))e(k)=c(k)-y(k)将u(k)代入到步骤d中的目标函数求解P控制器中的参数得:u(k)=u(k-1)+w(k)<sup>Τ</sup>E(k)w(k)=[w<sub>1</sub>(k),w<sub>2</sub>(k)]<sup>Τ</sup>w<sub>1</sub>(k)=K<sub>p</sub>(k),w<sub>2</sub>(k)=-K<sub>p</sub>(k)E(k)=[e<sub>1</sub>(k),e<sub>1</sub>(k-1)]<sup>Τ</sup>其中,Kp(k)分别为k时刻P控制器的比例参数,e<sub>1</sub>(k)为k时刻参考轨迹值与实际输出值之间的误差,Τ为矩阵的转置符号;综合上述式子,可得:<maths num="0005"><![CDATA[<math><mrow><mi>w</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msup><mrow><mo>(</mo><mi>ref</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>y</mi><mrow><mi>P</mi><mn>0</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>)</mo></mrow><mi>T</mi></msup><mi>QAE</mi></mrow><mrow><mrow><mo>(</mo><msup><mi>A</mi><mi>T</mi></msup><mi>QA</mi><mo>+</mo><mi>r</mi><mo>)</mo></mrow><msup><mi>E</mi><mi>T</mi></msup><mi>E</mi></mrow></mfrac></mrow></math>]]></maths>进一步可以得到:K<sub>p</sub>(k)=-w<sub>2</sub>(k)2-f.得到P控制器的参数K<sub>p</sub>(k)以后构成控制量u(k)作用于被控对象,u(k)=u(k-1)+K<sub>p</sub>(k)(e<sub>1</sub>(k)-e<sub>1</sub>(k-1));2-h.在下一时刻,依照2-b到2-f中的步骤继续求解P控制器新的参数K<sub>p</sub>(k+1)的值,依次循环。
地址 310018 浙江省杭州市下沙高教园区2号大街