发明名称 一种分数阶模型预测控制的加热炉温度控制方法
摘要 本发明公开了一种扩展状态空间分数阶模型预测控制的加热炉温度控制方法,以维持分数阶系统的稳定性并保障良好的控制性能。本发明首先采用Oustaloup近似方法将分数阶模型近似为整数阶高阶模型,基于近似高阶模型建立扩展状态空间模型,然后将分数阶微积分算子引入目标函数,进而基于扩展状态空间模型和选取的目标函数设计了分数阶预测函数控制器。本发明可以很好地运用于分数阶模型描述的实际过程对象,改善了整数阶MPC方法控制分数阶系统的不足之处,同时增加了调节控制器参数的自由度,获得了良好的控制性能,并能很好地满足实际工业过程的需要。
申请公布号 CN105334736A 申请公布日期 2016.02.17
申请号 CN201510844115.3 申请日期 2015.11.26
申请人 杭州电子科技大学 发明人 邹琴;张日东
分类号 G05B13/04(2006.01)I 主分类号 G05B13/04(2006.01)I
代理机构 浙江杭州金通专利事务所有限公司 33100 代理人 王佳健
主权项 1.一种分数阶模型预测控制的加热炉温度控制方法,其特征在于该方法的具体步骤是:步骤1、建立实际过程中被控对象的扩展状态空间模型,具体是:1.1采集实际过程对象的实时阶跃响应数据,利用该数据建立被控对象的分数阶传递函数模型,形式如下:<maths num="0001"><![CDATA[<math><mrow><mi>G</mi><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msup><mi>Ke</mi><mrow><mo>-</mo><mi>&tau;</mi><mi>s</mi></mrow></msup></mrow><mrow><msub><mi>c</mi><mn>1</mn></msub><msup><mi>s</mi><msub><mi>&alpha;</mi><mn>1</mn></msub></msup><mo>+</mo><msub><mi>c</mi><mn>0</mn></msub></mrow></mfrac></mrow></math>]]></maths>其中,α<sub>1</sub>为微分阶次,c<sub>0</sub>,c<sub>1</sub>为相应的系数,s为拉普拉斯变换算子,K为模型增益,τ为模型的滞后时间;1.2由Oustaloup近似方法得到微分算子s<sup>α</sup>的近似表达形式如下:<maths num="0002"><![CDATA[<math><mrow><msup><mi>s</mi><mi>&alpha;</mi></msup><mo>&ap;</mo><msub><mi>K</mi><mi>&alpha;</mi></msub><munderover><mo>&Pi;</mo><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mfrac><mrow><mi>s</mi><mo>+</mo><msubsup><mi>w</mi><mi>n</mi><mo>&prime;</mo></msubsup></mrow><mrow><mi>s</mi><mo>+</mo><msub><mi>w</mi><mi>n</mi></msub></mrow></mfrac></mrow></math>]]></maths>其中,α为分数阶微分阶次,0<α<1,N为选定的近似阶次,<maths num="0003"><![CDATA[<math><mrow><msub><mi>K</mi><mi>&alpha;</mi></msub><mo>=</mo><msubsup><mi>w</mi><mi>h</mi><mi>&alpha;</mi></msubsup><mo>,</mo></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><msubsup><mi>w</mi><mi>n</mi><mo>&prime;</mo></msubsup><mo>=</mo><msub><mi>w</mi><mi>b</mi></msub><msubsup><mi>w</mi><mi>u</mi><mrow><mo>(</mo><mn>2</mn><mi>n</mi><mo>-</mo><mn>1</mn><mo>-</mo><mi>&alpha;</mi><mo>)</mo><mo>/</mo><mi>N</mi></mrow></msubsup><mo>,</mo></mrow></math>]]></maths><maths num="0005"><![CDATA[<math><mrow><msub><mi>w</mi><mi>n</mi></msub><mo>=</mo><msub><mi>w</mi><mi>b</mi></msub><msubsup><mi>w</mi><mi>u</mi><mrow><mo>(</mo><mn>2</mn><mi>n</mi><mo>-</mo><mn>1</mn><mo>+</mo><mi>&alpha;</mi><mo>)</mo><mo>/</mo><mi>N</mi></mrow></msubsup><mo>,</mo></mrow></math>]]></maths><maths num="0006"><![CDATA[<math><mrow><msub><mi>w</mi><mi>u</mi></msub><mo>=</mo><msqrt><mrow><msub><mi>w</mi><mi>h</mi></msub><mo>/</mo><msub><mi>w</mi><mi>b</mi></msub></mrow></msqrt><mo>,</mo></mrow></math>]]></maths>w<sub>b</sub>和w<sub>h</sub>分别为选定的拟合频率的下限和上限;1.3根据步骤1.2中的方法,将步骤1.1中的分数阶传递函数模型近似为整数阶高阶模型,进而将其在采样时间T<sub>s</sub>下加零阶保持器离散化,得到如下形式的离散模型:<maths num="0007"><![CDATA[<math><mfenced open = "" close = ""><mtable><mtr><mtd><mrow><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mo>-</mo><msub><mi>F</mi><mn>1</mn></msub><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><msub><mi>F</mi><mn>2</mn></msub><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>2</mn><mo>)</mo></mrow><mo>-</mo><mo>...</mo><mo>-</mo><msub><mi>F</mi><msub><mi>L</mi><mi>S</mi></msub></msub><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><msub><mi>L</mi><mi>S</mi></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>+</mo><msub><mi>H</mi><mn>1</mn></msub><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>-</mo><mi>d</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>H</mi><mn>2</mn></msub><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>2</mn><mo>-</mo><mi>d</mi><mo>)</mo></mrow><mo>+</mo><mo>...</mo><mo>+</mo><msub><mi>H</mi><msub><mi>L</mi><mi>S</mi></msub></msub><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><msub><mi>L</mi><mi>S</mi></msub><mo>-</mo><mi>d</mi><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced></math>]]></maths>其中,F<sub>j</sub>,H<sub>j</sub>(j=1,2,…,L<sub>S</sub>)均为离散近似后得到的系数,实际过程的时滞d=τ/T<sub>s</sub>,L<sub>S</sub>为离散模型的长度,y(k)为k时刻的实际过程对象的模型输出,u(k-d-1)为实际过程对象在k-d-1时刻的输入值;进一步将上述模型取一阶向后差分,得到如下形式:<maths num="0008"><![CDATA[<math><mfenced open = "" close = ""><mtable><mtr><mtd><mrow><mi>&Delta;</mi><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mi>+</mi><msub><mi>F</mi><mn>1</mn></msub><mi>&Delta;</mi><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>+</mi><msub><mi>F</mi><mn>2</mn></msub><mi>&Delta;</mi><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>2</mn><mo>)</mo></mrow><mi>+</mi><mo>...</mo><mi>+</mi><msub><mi>F</mi><msub><mi>L</mi><mi>S</mi></msub></msub><mi>&Delta;</mi><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><msub><mi>L</mi><mi>S</mi></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>=</mi><msub><mi>H</mi><mn>1</mn></msub><mi>&Delta;</mi><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>-</mo><mi>d</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>H</mi><mn>2</mn></msub><mi>&Delta;</mi><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>2</mn><mo>-</mo><mi>d</mi><mo>)</mo></mrow><mo>+</mo><mo>...</mo><mo>+</mo><msub><mi>H</mi><msub><mi>L</mi><mi>S</mi></msub></msub><mi>&Delta;</mi><mi>u</mi><mrow><mo>(</mo><mi>k</mi><mo>-</mo><msub><mi>L</mi><mi>S</mi></msub><mo>-</mo><mi>d</mi><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced></math>]]></maths>其中,Δ是差分算子;1.4选取如下状态变量:Δx<sub>m</sub>(k)=[Δy(k),Δy(k-1),…,Δy(k-L<sub>S</sub>+1),Δu(k-1),…,Δu(k-L<sub>S</sub>+1-d)]<sup>T</sup>结合步骤1.3,得到被控对象的状态空间模型,形式如下:Δ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)其中,T为矩阵的转置符号,Δx<sub>m</sub>(k)的维数为(2L<sub>S</sub>+d-1)×1;<img file="FDA0000859303700000021.GIF" wi="1577" he="983" />B<sub>m</sub>=[0…010…0]<sup>T</sup>C<sub>m</sub>=[100…0000]1.5将步骤1.4中得到的状态空间模型转换成包含状态变量和输出跟踪误差的扩展状态空间模型,形式如下:z(k+1)=Az(k)+BΔu(k)+CΔr(k+1)其中,<maths num="0009"><![CDATA[<math><mrow><mi>z</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>e</mi><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mtd></mtr><mtr><mtd><mi>&Delta;</mi><msub><mi>x</mi><mi>m</mi></msub><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mtd></mtr></mtable></mfenced><mo>;</mo><mi>z</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>e</mi><mo>(</mo><mi>k</mi><mo>)</mo></mtd></mtr><mtr><mtd><mi>&Delta;</mi><msub><mi>x</mi><mi>m</mi></msub><mo>(</mo><mi>k</mi><mo>)</mo></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>e(k)=y(k)-r(k)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)<maths num="0010"><![CDATA[<math><mrow><mi>A</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mrow><msub><mi>C</mi><mi>m</mi></msub><msub><mi>A</mi><mi>m</mi></msub></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>A</mi><mi>m</mi></msub></mtd></mtr></mtable></mfenced><mo>;</mo><mi>B</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>C</mi><mi>m</mi></msub><msub><mi>B</mi><mi>m</mi></msub></mtd></mtr><mtr><mtd><msub><mi>B</mi><mi>m</mi></msub></mtd></mtr></mtable></mfenced><mo>;</mo><mi>C</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mo>-</mo><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>r(k)为k时刻的跟踪设定值,e(k)为k时刻的输出误差,0为(2L<sub>S</sub>+d-1)×1维的零矩阵,A为(2L<sub>S</sub>+d)×(2L<sub>S</sub>+d)维矩阵,B,C均为(2L<sub>S</sub>+d)×1维矩阵;步骤2、基于扩展状态空间模型设计被控对象的分数阶模型预测控制器,具体如下:2.1预测未来k+i时刻模型输出的向量形式,Z=Gz(k)+SΔU+ΨΔR其中,<maths num="0011"><![CDATA[<math><mrow><mi>Z</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mi>z</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>z</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>2</mn><mo>)</mo></mrow></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><mrow><mi>z</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mi>P</mi><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><mo>;</mo><mi>G</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mi>A</mi></mtd></mtr><mtr><mtd><msup><mi>A</mi><mn>2</mn></msup></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><msup><mi>A</mi><mi>P</mi></msup></mtd></mtr></mtable></mfenced></mrow></math>]]></maths><img file="FDA0000859303700000032.GIF" wi="779" he="327" /><img file="FDA0000859303700000033.GIF" wi="685" he="327" />ΔU=[Δu(k)Δu(k+1)…Δu(k+M-1)]<sup>T</sup>ΔR=[Δr(k+1)Δr(k+2)…Δr(k+P)]<sup>T</sup>r(k+i)=λ<sup>i</sup>y(k)+(1-λ<sup>i</sup>)c(k)c(k)为k时刻的设定值,λ为柔化因子,P为预测时域,M为控制时域,y(k+i)为k+i时刻过程的预测模型输出,i=1,2,…,P;2.2选取被控对象的目标函数J,其形式如下:<maths num="0012"><![CDATA[<math><mfenced open = "" close = ""><mtable><mtr><mtd><mrow><mi>J</mi><mo>=</mo><mmultiscripts><mi>I</mi><msub><mi>T</mi><mi>S</mi></msub><mrow><msub><mi>PT</mi><mi>S</mi></msub></mrow><mprescripts/><none/><msub><mi>&gamma;</mi><mn>1</mn></msub></mmultiscripts><mi>z</mi><msup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mi>T</mi></msup><mi>z</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mmultiscripts><mi>I</mi><msub><mi>T</mi><mi>S</mi></msub><mrow><msub><mi>MT</mi><mi>S</mi></msub></mrow><mprescripts/><none/><msub><mi>&gamma;</mi><mn>2</mn></msub></mmultiscripts><mi>&Delta;</mi><mi>u</mi><msup><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mn>2</mn></msup></mrow></mtd></mtr><mtr><mtd><mrow><mo>=</mo><msubsup><mo>&Integral;</mo><msub><mi>T</mi><mi>S</mi></msub><mrow><msub><mi>PT</mi><mi>S</mi></msub></mrow></msubsup><msup><mi>D</mi><mrow><mn>1</mn><mo>-</mo><msub><mi>&gamma;</mi><mn>1</mn></msub></mrow></msup><mi>z</mi><msup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mi>T</mi></msup><mi>z</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mi>d</mi><mi>t</mi><mo>+</mo><msubsup><mo>&Integral;</mo><msub><mi>T</mi><mi>S</mi></msub><mrow><msub><mi>MT</mi><mi>S</mi></msub></mrow></msubsup><msup><mi>D</mi><mrow><mn>1</mn><mo>-</mo><msub><mi>&gamma;</mi><mn>2</mn></msub></mrow></msup><mi>&Delta;</mi><mi>u</mi><msup><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mn>2</mn></msup><mi>d</mi><mi>t</mi></mrow></mtd></mtr></mtable></mfenced></math>]]></maths>其中,γ<sub>1</sub>,γ<sub>2</sub>为任意实数,<img file="FDA0000859303700000035.GIF" wi="103" he="86" />f(t)表示函数f(t)在[t<sub>1</sub>,t<sub>2</sub>]上的γ次积分,D为微分符号;依据Grünwald-Letnikov分数阶微积分定义,对上述目标函数在采样时间T<sub>S</sub>进行离散化,得到:J=Z<sup>T</sup>Λ(γ<sub>1</sub>,T<sub>s</sub>)Z+ΔU<sup>T</sup>Λ(γ<sub>2</sub>,T<sub>s</sub>)ΔU其中,<img file="FDA0000859303700000037.GIF" wi="1013" he="79" /><maths num="0013"><![CDATA[<math><mrow><msub><mi>w</mi><mi>q</mi></msub><mo>=</mo><msubsup><mi>&omega;</mi><mi>q</mi><mrow><mo>(</mo><msub><mi>&gamma;</mi><mi>&epsiv;</mi></msub><mo>)</mo></mrow></msubsup><mo>-</mo><msubsup><mi>&omega;</mi><mrow><mi>q</mi><mo>-</mo><mrow><mo>(</mo><mi>P</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><mo>(</mo><msub><mi>&gamma;</mi><mi>&epsiv;</mi></msub><mo>)</mo></mrow></msubsup></mrow></math>]]></maths><maths num="0014"><![CDATA[<math><mrow><msubsup><mi>&omega;</mi><mn>0</mn><mrow><mo>(</mo><msub><mi>&gamma;</mi><mi>&epsiv;</mi></msub><mo>)</mo></mrow></msubsup><mo>=</mo><mn>1</mn><mo>,</mo></mrow></math>]]></maths><maths num="0015"><![CDATA[<math><mrow><mo>&ForAll;</mo><mi>q</mi><mo>></mo><mn>0</mn></mrow></math>]]></maths>时,<maths num="0016"><![CDATA[<math><mrow><msubsup><mi>&omega;</mi><mi>q</mi><mrow><mo>(</mo><msub><mi>&gamma;</mi><mi>&epsiv;</mi></msub><mo>)</mo></mrow></msubsup><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mfrac><mrow><mn>1</mn><mo>+</mo><msub><mi>&gamma;</mi><mi>&epsiv;</mi></msub></mrow><mi>q</mi></mfrac><mo>)</mo></mrow><msubsup><mi>&omega;</mi><mrow><mi>q</mi><mo>-</mo><mn>1</mn></mrow><mrow><mo>(</mo><msub><mi>&gamma;</mi><mi>&epsiv;</mi></msub><mo>)</mo></mrow></msubsup><mo>,</mo></mrow></math>]]></maths>对q<0,<maths num="0017"><![CDATA[<math><mrow><msubsup><mi>&omega;</mi><mi>q</mi><mrow><mo>(</mo><msub><mi>&gamma;</mi><mi>&epsiv;</mi></msub><mo>)</mo></mrow></msubsup><mo>=</mo><mn>0</mn><mo>,</mo></mrow></math>]]></maths>ε=1,2;2.3依据步骤2.2中的目标函数求解<img file="FDA0000859303700000045.GIF" wi="231" he="135" />得到控制量,形式如下:ΔU=-(S<sup>T</sup>Λ(γ<sub>1</sub>,T<sub>s</sub>)S+Λ(γ<sub>2</sub>,T<sub>s</sub>))<sup>-1</sup>SΛ(γ<sub>1</sub>,T<sub>s</sub>)(Gz(k)+ΨΔR)Δu(k)=[1,0,…,0]ΔUu(k)=u(k-1)+Δu(k)2.4在k+l时刻,l=1,2,3,…,依照2.1到2.3中的步骤依次循环求解分数阶模型预测控制器的控制量u(k+l),再将其作用于被控对象。
地址 310018 浙江省杭州市下沙高教园区2号大街