发明名称 基于ARM的嵌入式模型预测控制方法和装置
摘要 本发明公开了一套工业模型预测控制应用的解决方案,包括一种简化模型预测控制算法、利用该算法所实现的ARM嵌入式控制器及上位机监控软件。本发明改进的动态矩阵控制算法,通过限定控制增量在M步以内以不同的函数形式逐步趋近于0,可以使得控制增量求解过程中M维矩阵求逆的运算转化成数值求倒数的运算,大大减小了运算量,从而可以在嵌入式ARM平台上实现,把模型预测控制应用到现场的每个控制器中,实现现场控制、现场和远程监控,大大降低了工业模型预测控制应用的成本。上位机作为人机交互的一个终端,可以实现对多个控制器的控制和维护。
申请公布号 CN102156407A 申请公布日期 2011.08.17
申请号 CN201110087204.X 申请日期 2011.04.08
申请人 南京师范大学 发明人 祝雪妹;矫晓龙
分类号 G05B13/04(2006.01)I 主分类号 G05B13/04(2006.01)I
代理机构 南京知识律师事务所 32207 代理人 汪旭东
主权项 1.基于ARM的嵌入式模型预测控制方法,采用动态矩阵控制算法,其特征在于,所述动态矩阵控制算法包括以下步骤:(1)首先采集被控对象的单位阶跃响应数据a<sub>i</sub>=a(iT),i=1,2,L,如果这个被控对象是渐近稳定的,那么这个响应的数据在N个采样周期(t<sub>N</sub>=NT)之后趋近于一个常数,因此,a=[a<sub>1</sub> L a<sub>N</sub>]<sup>T</sup>描述了被控对象的动态信息,N为建模时域;(2)在连续的控制增量作用下,未来时刻的输出可表示为<img file="FDA0000054313770000011.GIF" wi="922" he="117" />i=1,2,L,N,其中,<img file="FDA0000054313770000012.GIF" wi="186" he="63" />是自由响应,y的下标表示控制作用变化的次数,k+i|k表述k时刻对k+i时刻的预测,M是控制时域;(3)求解优化控制目标<img file="FDA0000054313770000013.GIF" wi="895" he="88" />可得<img file="FDA0000054313770000014.GIF" wi="578" he="62" />其中,ω<sub>p</sub>(k)=[ω(k+1)L ω(k+P)]<sup>T</sup>,P是预测时域,误差加权矩阵Q=diag(q<sub>1</sub>,L,q<sub>P</sub>),控制作用加权矩阵R=diag(r<sub>1</sub>,L,r<sub>M</sub>),d<sup>T</sup>=C<sup>T</sup>(A<sup>T</sup>QA+R)<sup>-1</sup>A<sup>T</sup>Q=[d<sub>1</sub> L d<sub>p</sub>],C<sup>T</sup>=[1 0 L 0];带校正加权阵的求解结果为<img file="FDA0000054313770000015.GIF" wi="736" he="62" />其中,h=[h<sub>i</sub> L h<sub>N</sub>]<sup>T</sup>称为校正向量;(4)在步骤(3)的基础上,设定控制增量Δu,L Δu(k+M-1)在M步内向0收敛,M步以后的控制增量为0,这样控制增量将重新表示为ΔU(k)=A<sub>x</sub>Δu(k),预测输出表示为<maths num="0001"><![CDATA[<math><mrow><msub><mover><mi>y</mi><mo>^</mo></mover><mi>pM</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msub><mover><mi>y</mi><mo>^</mo></mover><mrow><mi>p</mi><mn>0</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><mi>A&Delta;</mi><msub><mi>U</mi><mi>M</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><mi>he</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msub><mover><mi>y</mi><mo>^</mo></mover><mrow><mi>p</mi><mn>0</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>A</mi><mi>u</mi></msub><mi>&Delta;</mi><msub><mi>u</mi><mi>M</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><mi>he</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></math>]]></maths>其中,A<sub>u</sub>=A·A<sub>x</sub>,A<sub>x</sub>是转换矩阵;利用以下三种收敛方式分别进行收敛:第一种收敛方式是指数收敛,指数函数为Δu(k+i)=γ<sup>i</sup>Δu(k),其中i=0,1,L M-1,γ∈(0,1)为收敛因子,则转换矩阵A<sub>x</sub>=A<sub>γ</sub>=[1 γ γ<sup>2</sup> L γ<sup>M-1</sup>]<sup>T</sup>,控制增量可表示为<maths num="0002"><![CDATA[<math><mrow><mi>&Delta;u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msup><mrow><mo>(</mo><msubsup><mi>A</mi><mi>u</mi><mi>T</mi></msubsup><mi>Q</mi><msub><mi>A</mi><mi>u</mi></msub><mo>+</mo><msubsup><mi>A</mi><mi>&gamma;</mi><mi>T</mi></msubsup><mi>R</mi><msub><mi>A</mi><mi>&gamma;</mi></msub><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><msubsup><mi>A</mi><mi>&gamma;</mi><mi>T</mi></msubsup><mi>Q</mi><mo>[</mo><msub><mi>&omega;</mi><mi>p</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><msub><mover><mi>y</mi><mo>^</mo></mover><mrow><mi>p</mi><mn>0</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><mi>he</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>]</mo><mo>;</mo></mrow></math>]]></maths>第二种收敛方式是幂收敛,包括两种方法:(a)幂函数为<img file="FDA0000054313770000022.GIF" wi="432" he="78" />i=0,1,L M-1,收敛因子α>1,则转换矩阵<img file="FDA0000054313770000023.GIF" wi="983" he="117" />控制增量可表示为<maths num="0003"><![CDATA[<math><mrow><mi>&Delta;u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msup><mrow><mo>(</mo><msubsup><mi>A</mi><mi>u</mi><mi>T</mi></msubsup><mi>Q</mi><msub><mi>A</mi><mi>u</mi></msub><mo>+</mo><msubsup><mi>A</mi><mi>&alpha;</mi><mi>T</mi></msubsup><mi>R</mi><msub><mi>A</mi><mi>&alpha;</mi></msub><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><msubsup><mi>A</mi><mi>&alpha;</mi><mi>T</mi></msubsup><mi>Q</mi><mo>[</mo><msub><mi>&omega;</mi><mi>p</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><msub><mover><mi>y</mi><mo>^</mo></mover><mrow><mi>p</mi><mn>0</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><mi>he</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>]</mo><mo>;</mo></mrow></math>]]></maths>(b)幂函数为<img file="FDA0000054313770000025.GIF" wi="407" he="80" />其中i=0,1,L M-1,收敛因子β>1,则转换矩阵<img file="FDA0000054313770000026.GIF" wi="808" he="117" />控制增量可表示为<maths num="0004"><![CDATA[<math><mrow><mi>&Delta;u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msup><mrow><mo>(</mo><msubsup><mi>A</mi><mi>u</mi><mi>T</mi></msubsup><mi>Q</mi><msub><mi>A</mi><mi>u</mi></msub><mo>+</mo><msubsup><mi>A</mi><mi>&beta;</mi><mi>T</mi></msubsup><mi>R</mi><msub><mi>A</mi><mi>&beta;</mi></msub><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><msubsup><mi>A</mi><mi>&beta;</mi><mi>T</mi></msubsup><mi>Q</mi><mo>[</mo><msub><mi>&omega;</mi><mi>p</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><msub><mover><mi>y</mi><mo>^</mo></mover><mrow><mi>p</mi><mn>0</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><mi>he</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>]</mo><mo>;</mo></mrow></math>]]></maths>第三种收敛方式是反正切收敛,反正切函数<img file="FDA0000054313770000028.GIF" wi="515" he="80" />其中i=0,1,L M-1,收敛因子θ∈(0,1],则转换矩阵<img file="FDA0000054313770000029.GIF" wi="1297" he="119" />控制增量可表示为<maths num="0005"><![CDATA[<math><mrow><mi>&Delta;u</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msup><mrow><mo>(</mo><msubsup><mi>A</mi><mi>u</mi><mi>T</mi></msubsup><mi>Q</mi><msub><mi>A</mi><mi>u</mi></msub><mo>+</mo><msubsup><mi>A</mi><mi>&theta;</mi><mi>T</mi></msubsup><mi>R</mi><msub><mi>A</mi><mi>&theta;</mi></msub><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><msubsup><mi>A</mi><mi>&theta;</mi><mi>T</mi></msubsup><mi>Q</mi><mo>[</mo><msub><mi>&omega;</mi><mi>p</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><msub><mover><mi>y</mi><mo>^</mo></mover><mrow><mi>p</mi><mn>0</mn></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>-</mo><mi>he</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>]</mo><mo>.</mo></mrow></math>]]></maths>
地址 210046 江苏省南京市栖霞区文苑路1号