发明名称 一种用于自动控制的比例积分微分控制器的设计方法
摘要 本发明涉及一种用于自动控制的比例积分微分控制器的设计方法,属于自动控制技术领域。本设计方法包括两个迭代的设计步骤,第一个步骤是定义各个采样点的控制效果及累积控制效果逼近函数的基函数向量,通过最小二乘方法计算累积控制效果逼近函数的参数向量;第二个步骤是根据累积控制效果逼近函数更新比例增益、积分增益和微分增益。本设计方法可以在被控对象的在线运行中进行,无需停机就可以进行控制器的参数设计;可以根据用户设定的控制效果评价函数,优化比例积分微分控制器的性能;本方法减少了比例积分微分控制器参数设计的难度和复杂度;对控制对象的工作点变化和模型变化具有自适应能力。
申请公布号 CN103809432A 申请公布日期 2014.05.21
申请号 CN201410026093.5 申请日期 2014.01.20
申请人 清华大学 发明人 刘锋;郭文涛;刘璋玮;梅生伟
分类号 G05B11/42(2006.01)I 主分类号 G05B11/42(2006.01)I
代理机构 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人 罗文群
主权项 1.一种用于自动控制的比例积分微分控制器的设计方法,其特征在于该设计方法包括以下步骤:(1)设比例积分微分控制器的控制对象为:x<sub>k+1</sub>=f(x<sub>k</sub>)+g(x<sub>k</sub>)u<sub>k</sub>其中,x为控制对象的状态,k为对控制对象状态的采样时间,x<sub>k</sub>为控制对象在第k个采样点的状态向量,k=1,2,3…,f(x<sub>k</sub>)为控制对象的当前时刻状态与下一时刻状态的关系函数,g(x<sub>k</sub>)为控制对象的当前时刻控制与下一时刻状态的关系函数,u<sub>k</sub>为比例积分微分控制器的控制参数,<maths num="0001"><![CDATA[<math><mrow><msub><mi>u</mi><mi>k</mi></msub><mo>=</mo><mi>u</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>=</mo><msubsup><mi>K</mi><mi>P</mi><mi>T</mi></msubsup><msub><mi>x</mi><mi>k</mi></msub><mo>+</mo><msubsup><mi>K</mi><mi>I</mi><mi>T</mi></msubsup><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mi>k</mi><mo>-</mo><msub><mi>N</mi><mi>W</mi></msub><mo>+</mo><mn>1</mn></mrow><mi>k</mi></munderover><msub><mi>x</mi><mi>i</mi></msub><mo>+</mo><msubsup><mi>K</mi><mi>D</mi><mi>T</mi></msubsup><mrow><mo>(</mo><msub><mi>x</mi><mi>k</mi></msub><mo>-</mo><msub><mi>x</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>其中N<sub>W</sub>为比例积分微分控制器的积分时间长度,K<sub>P</sub>,K<sub>I</sub>,K<sub>D</sub>分别为比例积分微分控制器的比例增益、积分增益和微分增益,上标T为矩阵转置;(2)将比例积分微分控制器初始化为一个使控制对象稳定的控制器,u<sub>k</sub>=u<sup>(0)</sup>(x<sub>k</sub>),迭代次数i=0;(3)利用下式计算在比例积分微分控制器的作用下控制对象在第k个采样点的控制效果U(x<sub>k</sub>,u<sub>k</sub>):U(x<sub>k</sub>,u<sub>k</sub>)=Q(x<sub>k</sub>)+u<sub>k</sub><sup>T</sup>Ru<sub>k</sub>其中,Q(x<sub>k</sub>)为与控制对象的状态有关的控制效果,Q(x<sub>k</sub>)是状态向量x<sub>k</sub>的正定函数,Q(x<sub>k</sub>)≥0Q(x<sub>k</sub>)=0当且仅当x<sub>k</sub>=0时成立;<img file="FDA0000459242590000012.GIF" wi="142" he="84" />为与控制对象的控制参数有关的控制效果,R是一个正定矩阵,u<sub>k</sub><sup>T</sup>Ru<sub>k</sub>≥0且u<sub>k</sub><sup>T</sup>Ru<sub>k</sub>=0当且仅当u<sub>k</sub>=0时成立;根据上述计算结果,得到控制对象从第k个采样点开始的累积控制效果为:<maths num="0002"><![CDATA[<math><mrow><msup><mi>V</mi><mi>u</mi></msup><mrow><mo>(</mo><msub><mi>x</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mi>k</mi></mrow><mo>&infin;</mo></munderover><mi>U</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><mi>u</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>(4)建立一个控制对象的累积控制效果逼近函数如下:V(x<sub>k</sub>)=W<sup>T</sup>Φ(x<sub>k</sub>)其中,Φ(x<sub>k</sub>)是累积控制效果逼近函数的基函数向量,基函数向量为控制对象的状态向量中状态分量的偶次多项式组合,W为控制效果逼近函数的参数向量,参数向量的计算过程如下:(4-1)采集控制对象的N个状态向量,根据N个状态向量,计算得到控制效果逼近函数的基函数向量Φ(x<sub>k</sub>),并分别计算每相邻两个采样点的基函数向量之差Φ(x<sub>k</sub>)-Φ(x<sub>k+1</sub>),将计算得到的多个基函数向量之差Φ(x<sub>k</sub>)-Φ(x<sub>k+1</sub>)按时间顺序按行排列成矩阵,记为Ψ(x<sub>k</sub>);计算控制对象在N个状态时每个状态向量的控制效果U(x<sub>k</sub>,u<sup>(i)</sup>(x<sub>k</sub>)),将计算得到的控制效果U(x<sub>k</sub>,u<sup>(i)</sup>(x<sub>k</sub>))按时间顺序按行排列成向量,记为Ω(x<sub>k</sub>,u<sup>(i)</sup>(x<sub>k</sub>));(4-2)通过下式计算第i次迭代的累积控制效果函数V<sup>(i)</sup>(x<sub>k</sub>)的参数W<sup>(i)</sup>:W<sup>(i)</sup>=[Ψ(x<sub>k</sub>)<sup>+</sup>]<sup>T</sup>[Ω(x<sub>k</sub>,u<sup>(i)</sup>(x<sub>k</sub>))]<sup>T</sup>其中Ψ(x<sub>k</sub>)<sup>+</sup>是Ψ(x<sub>k</sub>)的伪逆;(5)设定一个控制对象的累积控制效果逼近函数的训练精度ε<sub>V</sub>,若控制对象在相邻两次迭代的累积控制效果逼近函数之差的绝对值小于训练精度ε<sub>V</sub>,则进行步骤(8),若控制对象在相邻两个状态向量的累积控制效果逼近函数之差的绝对值大于或等于训练精度ε<sub>V</sub>,则进行步骤(6);(6)更新迭代次数,使i=i+1;(7)更新比例积分微分控制器的设计参数,具体过程包括以下步骤:(7-1)设比例积分微分控制器设计参数的更新次数指标为j,初始化时使j=0;(7-2)采用当前比例积分微分控制器对控制对象进行控制,采集控制对象的状态向量;(7-3)更新比例积分微分控制器设计参数的更新次数指标,使j=j+1;(7-4)采用下式,分别对比例积分微分控制器设计参数中的比例增益K<sub>P</sub>、积分增益K<sub>I</sub>和微分增益K<sub>D</sub>进行计算:<maths num="0003"><![CDATA[<math><mrow><msubsup><mi>K</mi><mrow><mi>P</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>=</mo><msubsup><mi>K</mi><mrow><mi>P</mi><mo>,</mo><mi>j</mi></mrow><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>-</mo><msub><mi>l</mi><mi>P</mi></msub><msub><mi>x</mi><mi>k</mi></msub><msup><mrow><mo>[</mo><mn>2</mn><mi>R</mi><msub><mi>u</mi><mi>k</mi></msub><mo>+</mo><msup><mi>g</mi><mi>T</mi></msup><mrow><mo>(</mo><msub><mi>x</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>&dtri;</mo><msup><mi>&Phi;</mi><mi>T</mi></msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><msup><mi>W</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msup><mo>]</mo></mrow><mi>T</mi></msup></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><msubsup><mi>K</mi><mrow><mi>I</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>=</mo><msubsup><mi>K</mi><mrow><mi>I</mi><mo>,</mo><mi>j</mi></mrow><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>-</mo><msub><mi>l</mi><mi>I</mi></msub><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mi>k</mi><mo>-</mo><msub><mi>N</mi><mi>W</mi></msub><mo>+</mo><mn>1</mn></mrow><mi>k</mi></munderover><msub><mi>x</mi><mi>i</mi></msub><msup><mrow><mo>[</mo><mn>2</mn><msub><mi>Ru</mi><mi>k</mi></msub><mo>+</mo><msup><mi>g</mi><mi>T</mi></msup><mrow><mo>(</mo><msub><mi>x</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>&dtri;</mo><msup><mi>&Phi;</mi><mi>T</mi></msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><msup><mi>W</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msup><mo>]</mo></mrow><mi>T</mi></msup><mo>,</mo></mrow></math>]]></maths><maths num="0005"><![CDATA[<math><mrow><msubsup><mi>K</mi><mrow><mi>D</mi><mo>,</mo><mi>j</mi><mo>+</mo><mn>1</mn></mrow><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>=</mo><msubsup><mi>K</mi><mrow><mi>D</mi><mo>,</mo><mi>j</mi></mrow><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msubsup><mo>-</mo><msub><mi>l</mi><mi>D</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>k</mi></msub><mo>-</mo><msub><mi>x</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><msup><mrow><mo>[</mo><mn>2</mn><msub><mi>Ru</mi><mi>k</mi></msub><mo>+</mo><msup><mi>g</mi><mi>T</mi></msup><mrow><mo>(</mo><msub><mi>x</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>&dtri;</mo><msup><mi>&Phi;</mi><mi>T</mi></msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><msup><mi>W</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></msup><mo>]</mo></mrow><mi>T</mi></msup></mrow></math>]]></maths>其中<maths num="0006"><![CDATA[<math><mrow><msub><mi>u</mi><mi>k</mi></msub><mo>=</mo><msubsup><mi>K</mi><mrow><mi>P</mi><mo>,</mo><mi>j</mi></mrow><mrow><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>,</mo><mi>T</mi></mrow></msubsup><msub><mi>x</mi><mi>k</mi></msub><mo>+</mo><msubsup><mi>K</mi><mrow><mi>I</mi><mo>,</mo><mi>j</mi></mrow><mrow><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>,</mo><mi>T</mi></mrow></msubsup><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mi>k</mi><mo>-</mo><msub><mi>N</mi><mi>W</mi></msub><mo>+</mo><mn>1</mn></mrow><mi>k</mi></munderover><msub><mi>x</mi><mi>i</mi></msub><mo>+</mo><msubsup><mi>K</mi><mrow><mi>D</mi><mo>,</mo><mi>j</mi></mrow><mrow><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>,</mo><mi>T</mi></mrow></msubsup><mrow><mo>(</mo><msub><mi>x</mi><mi>k</mi></msub><mo>-</mo><msub><mi>x</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>,</mo></mrow></math>]]></maths>比例增益、积分增益和微分增益的上标(i)表示第i次迭代,比例增益、积分增益和微分增益的下标j或j+1表示第j或第j+1次参数更新,l<sub>P</sub>、l<sub>I</sub>、l<sub>D</sub>分别为比例增益、积分增益和微分增益的学习因子,取值范围为0.001-0.1,▽是梯度算子;(7-5)并设定一个比例积分微分控制器参数的训练精度ε<sub>K</sub>,设比例积分微分控制器参数更新的最大迭代次数为T<sub>M</sub>,将第j次计算得到的比例增益、积分增益和微分增益量与第j-1次计算得到的比例增益、积分增益和微分增益量作差,若差值绝对值的最大值小于训练精度ε<sub>K</sub>,则进行步骤(4);将更新次数j与最大迭代次数T<sub>M</sub>比较,若更新次数j大于最大迭代次数T<sub>M</sub>,则进行步骤(4);若比例增益、积分增益和微分增益的更新差值绝对值的最大值大于或等于训练精度ε<sub>K</sub>,且更新次数j小于或等于最大迭代次数T<sub>M</sub>,则进行步骤(7-2);(8)输出当前比例积分微分控制器设计参数。
地址 100084 北京市海淀区清华园1号