发明名称 一种炼油工业过程的部分解耦非最小化模型预测控制方法
摘要 本发明涉及一种炼油工业过程的部分解耦非最小化模型预测控制方法。传统的控制手段精度不高,导致后续生产控制参数不稳定、产品合格率和装置效率较低。本发明方法首先基于炼油工业过程模型建立部分解耦状态空间模型,挖掘出基本的过程特性;然后基于该部分解耦状态空间模型建立预测控制回路;最后通过计算预测控制器的参数,将过程对象整体实施预测控制。本发明方法弥补了传统控制的不足,方便了控制器的设计,保证控制性能的提升,同时满足给定的生产性能指标。本发明提出的控制技术可以有效减少工艺参数与实际工艺参数之间的误差,进一步弥补了传统控制器的不足,同时保证控制装置操作在最佳状态,使生产过程的工艺参数达到严格控制。
申请公布号 CN102520617B 申请公布日期 2014.05.07
申请号 CN201110454456.1 申请日期 2011.12.30
申请人 杭州电子科技大学 发明人 张日东;薛安克;陈云;杨成忠;彭冬亮
分类号 G05B13/04(2006.01)I 主分类号 G05B13/04(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 杜军
主权项 1.一种炼油工业过程的部分解耦非最小化模型预测控制方法,其特征在于该方法包括以下步骤:(1)利用炼油工业过程模型建立部分解耦状态空间模型,具体方法是:首先采集炼油工业过程的输入输出数据,利用该数据建立输入输出模型如下:<maths num="0001"><![CDATA[<math><mrow><mover><mi>F</mi><mo>&OverBar;</mo></mover><mi>Y</mi><mo>=</mo><mover><mi>H</mi><mo>&OverBar;</mo></mover></mrow></math>]]></maths>其中<img file="FDA0000372975570000012.GIF" wi="78" he="66" />Y、<img file="FDA0000372975570000013.GIF" wi="58" he="65" />为三个变量,分别是:<img file="FDA0000372975570000014.GIF" wi="847" he="313" /><maths num="0002"><![CDATA[<math><mrow><mi>Y</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>y</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>2</mn></msub><mrow><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>N</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><mover><mi>H</mi><mo>&OverBar;</mo></mover><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mover><mi>H</mi><mo>&OverBar;</mo></mover><mn>11</mn></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><msub><mi>u</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><msub><mover><mi>H</mi><mo>&OverBar;</mo></mover><mn>12</mn></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><msub><mi>u</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msub><mover><mi>H</mi><mo>&OverBar;</mo></mover><mrow><mn>1</mn><mi>N</mi></mrow></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><msub><mi>u</mi><mi>N</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mover><mi>H</mi><mo>&OverBar;</mo></mover><mn>21</mn></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><msub><mi>u</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><msub><mover><mi>H</mi><mo>&OverBar;</mo></mover><mn>22</mn></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><msub><mi>u</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msub><mover><mi>H</mi><mo>&OverBar;</mo></mover><mrow><mn>2</mn><mi>N</mi></mrow></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><msub><mi>u</mi><mi>N</mi></msub><mrow><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><mover><mi>H</mi><mo>&OverBar;</mo></mover><mrow><mi>N</mi><mn>1</mn></mrow></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><msub><mi>u</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><msub><mover><mi>H</mi><mo>&OverBar;</mo></mover><mrow><mi>N</mi><mn>2</mn></mrow></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><msub><mi>u</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msub><mover><mi>H</mi><mo>&OverBar;</mo></mover><mi>NN</mi></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><msub><mi>u</mi><mi>N</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>,</mo></msup></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><msub><mover><mi>F</mi><mo>&OverBar;</mo></mover><mn>11</mn></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><mo>,</mo><msub><mover><mi>F</mi><mo>&OverBar;</mo></mover><mn>12</mn></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mover><mi>F</mi><mo>&OverBar;</mo></mover><mi>NN</mi></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><mo>,</mo><msub><mover><mi>H</mi><mo>&OverBar;</mo></mover><mn>11</mn></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><mo>,</mo><msub><mover><mi>H</mi><mo>&OverBar;</mo></mover><mn>12</mn></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mover><mi>H</mi><mo>&OverBar;</mo></mover><mi>NN</mi></msub><mrow><mo>(</mo><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>)</mo></mrow></mrow></math>]]></maths>表示过程的多项式方程,u<sub>i</sub>(k)、y<sub>i</sub>(k),i=1,2,...,N,分别为输入、输出数据,所述的输入输出数据为数据采集器中存储的数据;进一步将上述方程通过克莱姆方程处理为<maths num="0005"><![CDATA[<math><mrow><msub><mi>y</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfrac><msub><mi>D</mi><mi>i</mi></msub><mi>D</mi></mfrac></mrow></math>]]></maths>其中,D是<img file="FDA0000372975570000018.GIF" wi="54" he="63" />的行列式数值,D<sub>i</sub>是将D的第i列替换成<img file="FDA0000372975570000019.GIF" wi="50" he="65" />获得的行列式数值;将上述过程模型展开得到:F(z<sup>-1</sup>)y(k)=H(z<sup>-1</sup>)u(k)其中,n是得到的模型阶次,F<sub>i</sub>(k),i=1,2,...,n和I为对角矩阵,y(k)=[y<sub>1</sub>(k),y<sub>2</sub>(k),...,y<sub>N</sub>(k)]<sup>T</sup>,u(k)=[u<sub>1</sub>(k),u<sub>2</sub>(k),...,u<sub>N</sub>(k)]<sup>T</sup>,F(z<sup>-1</sup>)=I+F<sub>1</sub>z<sup>-1</sup>+F<sub>2</sub>z<sup>-2</sup>+...+F<sub>n</sub>z<sup>-n</sup>H(z<sup>-1</sup>)=H<sub>1</sub>z<sup>-1</sup>+H<sub>2</sub>z<sup>-2</sup>+...+H<sub>n</sub>z<sup>-n</sup>将过程模型通过后移算子Δ处理成过程的状态空间表示方式:Δx<sub>m</sub>(k+1)=A<sub>m</sub>Δx<sub>m</sub>(k)+B<sub>m</sub>Δu(k)Δy(k+1)=C<sub>m</sub>Δx<sub>m</sub>(k+1)其中,Δx<sub>m</sub>(k+1)、Δy(k+1)分别是第k+1时刻的变量值,Δx<sub>m</sub>(k)<sup>T</sup>=[Δy(k)<sup>T</sup>Δy(k-1)<sup>T</sup>...Δy(k-n+1)<sup>T</sup>Δu(k-1)<sup>T</sup>Δu(k-2)<sup>T</sup>...Δu(k-n+1)<sup>T</sup>],T为取转置符号;<maths num="0006"><![CDATA[<math><mrow><msub><mi>A</mi><mi>m</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mrow><mo>-</mo><mi>F</mi></mrow><mn>1</mn></msub></mtd><mtd><msub><mrow><mo>-</mo><mi>F</mi></mrow><mn>2</mn></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mrow><mo>-</mo><mi>F</mi></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mrow><mo>-</mo><mi>F</mi></mrow><mi>n</mi></msub></mtd><mtd><msub><mi>H</mi><mn>2</mn></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>H</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>H</mi><mi>n</mi></msub></mtd></mtr><mtr><mtd><msub><mi>I</mi><mi>N</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>I</mi><mi>N</mi></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>I</mi><mi>N</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>I</mi><mi>N</mi></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></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><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><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></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>I</mi><mi>N</mi></msub></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><msub><mi>B</mi><mi>m</mi></msub><mo>=</mo><msup><mfenced open='[' close=']'><mtable><mtr><mtd><msubsup><mi>H</mi><mn>1</mn><mi>T</mi></msubsup></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd><mtd><msub><mi>I</mi><mi>N</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mi>T</mi></msup></mrow></math>]]></maths><maths num="0008"><![CDATA[<math><mrow><msub><mi>C</mi><mi>m</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>I</mi><mi>N</mi></msub></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>I<sub>N</sub>为一单位矩阵;定义一过程期望输出为r(k),并且输出误差e(k)为:e(k)=y(k)-r(k)进一步得到第k+1时刻的输出误差e(k+1)为:e(k+1)=e(k)+C<sub>m</sub>A<sub>m</sub>Δx<sub>m</sub>(k)+C<sub>m</sub>B<sub>m</sub>Δu(k)-Δr(k+1)其中,r(k+1)为第k+1时刻的过程期望输出;最后定义一个新的复合状态变量:<maths num="0009"><![CDATA[<math><mrow><mi>z</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mi>&Delta;</mi><msub><mi>x</mi><mi>m</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>e</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>将上述处理过程综合为一个部分解耦的过程模型:z(k+1)=Az(k)+BΔu(k)+CΔr(k+1)其中,z(k+1)为第k+1时刻的复合状态变量,并且<maths num="0010"><![CDATA[<math><mrow><mi>A</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>A</mi><mi>m</mi></msub></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><msub><mi>C</mi><mi>m</mi></msub><msub><mi>A</mi><mi>m</mi></msub></mtd><mtd><msub><mi>I</mi><mi>N</mi></msub></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths><maths num="0011"><![CDATA[<math><mrow><mi>B</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>B</mi><mi>m</mi></msub></mtd></mtr><mtr><mtd><msub><mi>C</mi><mi>m</mi></msub><msub><mi>B</mi><mi>m</mi></msub></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths><maths num="0012"><![CDATA[<math><mrow><mi>C</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><msub><mrow><mo>-</mo><mi>I</mi></mrow><mi>N</mi></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>(2)基于该部分解耦状态空间模型设计预测控制器,具体方法是:a.定义该预测函数控制器的目标函数为:<maths num="0013"><![CDATA[<math><mrow><mi>J</mi><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>P</mi></munderover><msup><mi>z</mi><mi>T</mi></msup><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>j</mi><mo>)</mo></mrow><msub><mi>Q</mi><mi>j</mi></msub><mi>z</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>j</mi><mo>)</mo></mrow><mo>+</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></munderover><msup><mi>&Delta;u</mi><mi>T</mi></msup><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>j</mi><mo>)</mo></mrow><msub><mi>L</mi><mi>j</mi></msub><mi>&Delta;u</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>j</mi><mo>)</mo></mrow></mrow></math>]]></maths>其中,P是预测步长,M是预测步长,Q<sub>j</sub>、L<sub>j</sub>是加权矩阵,z(k+j),u(k+j)分别为第k+j时刻的复合变量和输入变量;b.定义控制变量的作用范围为Δu(k+j)=0 j≥Mc.计算控制器的参数,具体是:首先定义<img file="FDA0000372975570000031.GIF" wi="1158" he="333" /><img file="FDA0000372975570000032.GIF" wi="775" he="346" />然后依据下式计算控制向量ΔU:ΔU=-(Φ<sup>T</sup>QΦ+L)<sup>-1</sup>Φ<sup>T</sup>Q(Fz(k)+SΔR)其中,Q,L是依据控制要求设定的两个矩阵,ΔR是依据过程期望输出设定的输出向量。
地址 310018 浙江省杭州市下沙高教园区2号大街