发明名称 动态矩阵控制优化的油气水卧式三相分离器压力控制方法
摘要 本发明公开了一种动态矩阵控制优化的油气水卧式三相分离器压力控制方法。本发明方法首先基于油气水卧式三相分离器内的压力对象的阶跃响应数据建立油气水卧式三相分离器内压力对象的模型,挖掘出基本的对象特性;然后依据动态矩阵控制的特性去整定相应PI-PD控制器的参数;最后对油气水卧式三相分离器内的压力对象实施PI-PD控制。本发明结合了PI-PD控制和动态矩阵控制的良好的控制性能,有效地提高了传统控制方法的不足。
申请公布号 CN103760931A 申请公布日期 2014.04.30
申请号 CN201410029644.3 申请日期 2014.01.22
申请人 杭州电子科技大学 发明人 薛安克;李海生;张日东;王俊宏;王建中
分类号 G05D16/20(2006.01)I;G05B13/04(2006.01)I 主分类号 G05D16/20(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>与a<sub>N</sub>的误差和测量误差有相同的数量级时,即可认为a<sub>N</sub>近似等于阶跃响应的稳态值,i>N;建立对象的模型向量a:a=[a<sub>1</sub>,a<sub>2</sub>,…a<sub>N</sub>]<sup>Τ</sup>其中Τ为矩阵的转置符号,a<sub>i</sub>是过程对象阶跃响应的数据,N为建模时域;步骤(2).设计被控对象的PIPD控制器,具体方法是:2-a建立被控对象的动态矩阵利用步骤1-b获得的模型向量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>.</mo><mo>.</mo><mo>.</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>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</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>.</mo><mo>.</mo><mo>.</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阶动态矩阵,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>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</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>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>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</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><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>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>a</mi><mi>N</mi></msub></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):ess(k)=y(k)-y<sub>1</sub>(k|k-1)其中,y(k)表示k时刻测得的被控对象的实际输出值,y<sub>1</sub>(k|k-1)表示加入了控制增量Δu(k-1)后,被控对象在k-1时刻对k时刻的模型预测值;③.计算k时刻模型输出的修正值y<sub>cor</sub>(k):y<sub>cor</sub>(k)=y<sub>M</sub>(k-1)+h*ess(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>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</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>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</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="FDA0000460399790000022.GIF" wi="507" he="377" />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>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</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>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</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>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</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>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时刻的模型预测输出值,y<sub>0</sub>(k+1|k),y<sub>0</sub>(k+2|k-1),…y<sub>0</sub>(k+N|k)表示k时刻对k+1,k+2,…k+P时刻的初始预测值;2-d.令被控对象的控制时域M=1,选取被控对象的目标函数J(k),形式如下:<maths num="0005"><![CDATA[<math><mrow><mi>min</mi><mi>J</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msup><msub><mrow><mo>|</mo><mo>|</mo><mrow><mo>(</mo><mi>ref</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>y</mi><mi>PM</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow><mi>Q</mi></msub><mn>2</mn></msup><mo>+</mo><msubsup><mrow><mo>|</mo><mo>|</mo><mi>&Delta;u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>|</mo><mo>|</mo></mrow><mi>r</mi><mn>2</mn></msubsup><mo>=</mo><mi>Q</mi><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><mi>A&Delta;u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mi>r&Delta;u</mi><mn>2</mn></msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></math>]]></maths>ref(k)=[ref<sub>1</sub>(k),ref<sub>2</sub>(k),…,ref<sub>P</sub>(k)]<sup>Τ</sup>Q=diag(q<sub>1</sub>,q<sub>2</sub>,…q<sub>P</sub>)r=diag(r<sub>1</sub>,r<sub>2</sub>,…r<sub>M</sub>)ref<sub>i</sub>(k)=β<sup>i</sup>y(k)+(1-β<sup>i</sup>)c(k)其中,Q为误差加权矩阵,q<sub>1</sub>,q<sub>2</sub>,…,q<sub>P</sub>为加权矩阵的加权系数;β为柔化系数,c(k)为过程对象的设定值;r为控制加权矩阵,r<sub>1</sub>,r<sub>2</sub>,…r<sub>M</sub>为控制加权矩阵的加权系数,ref(k)为系统的参考轨迹,ref<sub>i</sub>(k)为参考轨迹中第i个参考点的值;2-e.将控制量u(k)进行变换:e(k)=c(k)-y(k)u(k)=u(k-1)+K<sub>p</sub>(k)(e(k)-e(k-1))+K<sub>i</sub>(k)e(k)-K<sub>f</sub>(k)(y(k)-y(k-1)-Kd(y(k)-2y(k-1)+y(k-2))=u(k-1)+K<sub>p</sub>(k)(e(k)-e(k-1))+K<sub>i</sub>(k)e(k)-K<sub>f</sub>(k)(y(k)-y(k-1)-Kd(y(k)-y(k-1))+Kd(y(k-1)-y(k-2))将u(k)进一步处理,可得u(k)=u(k-1)+w(k)<sup>Τ</sup>E(k)其中,w(:,k)=[K<sub>p</sub>(k)+K<sub>i</sub>(k),-K<sub>p</sub>(k),-K<sub>f</sub>(k)-K<sub>d</sub>(k),K<sub>d</sub>(k)]<sup>Τ</sup>E(k)=(e(k),e(k-1),y(k)-y(k-1),y(k-1)-y(k-2))<sup>Τ</sup>Kp(k)、K<sub>i</sub>(k)、K<sub>f</sub>(k)、K<sub>d</sub>(k)分别为k时刻PI-PD控制器外环的比例、外环的积分、内环的比例、内环的微分参数,e(k)为k时刻参考轨迹值与实际输出值之间的误差,Τ为矩阵的转置符号,w(:,k)为四行k列矩阵;2-f.将u(k)代入到步骤2-d中的目标函数求解PI-PD控制器中的参数,可得:<maths num="0006"><![CDATA[<math><mrow><mi>w</mi><mrow><mo>(</mo><mo>:</mo><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><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>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(1,k)+w(2,k)K<sub>i</sub>(k)=-w(2,k)K<sub>f</sub>(k)=-w(3,k)-w(4,k)K<sub>d</sub>(k)=w(4,k)2-g.得到PI-PD控制器的参数K<sub>p</sub>(k)、K<sub>i</sub>(k)、K<sub>f</sub>(k)、K<sub>d</sub>(k)以后构成控制量u(k)作用于被控对象u(k)=u(k-1)+K<sub>p</sub>(k)(e(k)-e(k-1))+K<sub>i</sub>(k)e(k)-K<sub>f</sub>(k)(y(k)-y(k-1)-K<sub>d</sub>(y(k)-2y(k-1)+y(k-2));2-h.在下一时刻,依照步骤2-b到2-g继续求解PI-PD控制器新的参数k<sub>P</sub>(k+1)、k<sub>i</sub>(k+1)、k<sub>f</sub>(k+1)、k<sub>d</sub>(k+1)的值,依次循环。
地址 310018 浙江省杭州市下沙高教园区2号大街