发明名称 基于自适应蚁群智能的非线性PID控制参数整定方法
摘要 本发明提供了一种基于自适应蚁群智能的非线性PID控制参数整定方法。它包括如下步骤:估计非线性PID控制器中待定系数最优解的范围;在变量区域内打网格,分成多个空间区域;设定蚁群算法的初始参数及禁忌表索引指针,每两只蚂蚁作为一个派对共同选择某一节点作为起点;两只蚂蚁分别根据状态转移概率选择最优解空间节点并前进;修改禁忌表指针,根据蚂蚁所走过的路径,计算该路径对应的非线性PID控制的待定系数,并计算蚂蚁所对应的目标函数值,且记录本次循环周期中ITAE最小性能指标;随后将其对应的非线性PID控制参数存入控制系数中,同时自适应调节信息素残留系数,并更新每条路径上的信息素轨迹。如此循环,直至得到最优结果。
申请公布号 CN101118421A 申请公布日期 2008.02.06
申请号 CN200710121775.4 申请日期 2007.09.13
申请人 北京航空航天大学 发明人 段海滨;王道波;于秀芬
分类号 G05B13/02(2006.01) 主分类号 G05B13/02(2006.01)
代理机构 北京慧泉知识产权代理有限公司 代理人 王顺荣;唐爱华
主权项 1.基于自适应蚁群智能的非线性PID控制参数整定方法,其特征在于:该方法的具体步骤如下:第一步:根据实际控制系统模型特征确定非线性PID控制器中的参数ρ<sub>0</sub>、α′、δ、δ<sub>1</sub>、δ<sub>2</sub>、R<sub>1</sub>及R<sub>2</sub>,并估计非线性PID控制器中系数β<sub>0</sub>、β<sub>1</sub>、β<sub>2</sub>最优解的范围,然后在变量区域内打网格,分成<img file="A2007101217750002C1.GIF" wi="25" he="44" />个小的空间区域;令时间t=0和循环次数N<sub>C</sub>=0,设置蚂蚁数目m及最大循环次数N<sub>Cmax</sub>,将m个蚂蚁置于n个小的空间区域的节点上,令最优解空间区域内每条边(i,j)的初始化信息量τ<sub>ij</sub>=const,ρ<sub>min</sub>=const,且初始时刻Δτ<sub>ij</sub>=0,其中const表示常数;第二步:循环次数N<sub>C</sub>←N<sub>C</sub>+1;第三步:蚂蚁的禁忌表索引号k=1;第四步:蚂蚁数目k←k+2;第五步:每两只蚂蚁作为一个派对共同选择一个最优解空间节点作为起点;第六步:蚂蚁甲根据状态转移概率公式<img file="A2007101217750002C2.GIF" wi="1055" he="334" />式中,allowed<sub>l</sub>表示蚂蚁l下一步允许走过的空间网格路径点的集合,τ<sub>ij</sub>为蚂蚁l邻域内的信息素数量,α为信息启发式因子,β为期望启发式因子;以该公式计算的概率选择最优解空间节点j<sub>1</sub>并前进,j<sub>1</sub>∈{C-tabu<sub>k</sub>);蚂蚁乙也根据该状态转移概率公式计算的概率选择最优解空间节点j<sub>2</sub>并前进,j<sub>2</sub>∈{C-tabu<sub>k</sub>-j<sub>1</sub>};第七步:当前路径长度大于本次m只蚂蚁相遇循环的最短路径,则终止此次相遇循环;第八步:修改禁忌表指针,即选择好之后将蚂蚁移动到新的最优解空间节点,并把该最优解空间节点移动到该蚂蚁个体的禁忌表中;第九步:若集合C中最优解空间节点未遍历完,即k<m,则跳转到第四步,否则继续到下一第十步;第十步:根据蚂蚁所走过的路径,利用下列公式<maths num="0001"><math>&lt;mrow&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/msub&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;/msub&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;/msub&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;mo&gt;&amp;CenterDot;&lt;/mo&gt;&lt;mo&gt;&amp;CenterDot;&lt;/mo&gt;&lt;mo&gt;&amp;CenterDot;&lt;/mo&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mi&gt;n&lt;/mi&gt;&lt;/msub&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mrow&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mi&gt;lower&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mfrac&gt;&lt;mrow&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mrow&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mi&gt;upper&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;mo&gt;-&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mrow&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mi&gt;lower&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;/mfrac&gt;&lt;mo&gt;&amp;times;&lt;/mo&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mrow&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;mi&gt;lower&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mfrac&gt;&lt;mrow&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mrow&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;mi&gt;upper&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;mo&gt;-&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mrow&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;mi&gt;lower&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;/mfrac&gt;&lt;mo&gt;&amp;times;&lt;/mo&gt;&lt;mn&gt;4&lt;/mn&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;/mrow&gt;&lt;/mrow&gt;</math></maths><maths num="0002"><math>&lt;mrow&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mrow&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;mi&gt;lower&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mfrac&gt;&lt;mrow&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mrow&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;mi&gt;upper&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;mo&gt;-&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mrow&gt;&lt;mn&gt;3&lt;/mn&gt;&lt;mi&gt;lower&lt;/mi&gt;&lt;/mrow&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;/mfrac&gt;&lt;mo&gt;&amp;times;&lt;/mo&gt;&lt;mn&gt;2&lt;/mn&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;mo&gt;&amp;CenterDot;&lt;/mo&gt;&lt;mo&gt;&amp;CenterDot;&lt;/mo&gt;&lt;mo&gt;&amp;CenterDot;&lt;/mo&gt;&lt;mo&gt;,&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mi&gt;nlower&lt;/mi&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;mfrac&gt;&lt;mrow&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mi&gt;nupper&lt;/mi&gt;&lt;/msub&gt;&lt;mo&gt;-&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;x&lt;/mi&gt;&lt;mi&gt;nlower&lt;/mi&gt;&lt;/msub&gt;&lt;/mrow&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;/mfrac&gt;&lt;mo&gt;&amp;times;&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;</math></maths>计算该路径对应的非线性PID控制系数β<sub>0</sub>、β<sub>1</sub>及β<sub>2</sub>,利用公式<maths num="0003"><math>&lt;mrow&gt;&lt;msub&gt;&lt;mi&gt;J&lt;/mi&gt;&lt;mi&gt;ITAE&lt;/mi&gt;&lt;/msub&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;munderover&gt;&lt;mi&gt;&amp;Sigma;&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;k&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;0&lt;/mn&gt;&lt;/mrow&gt;&lt;mi&gt;N&lt;/mi&gt;&lt;/munderover&gt;&lt;mo&gt;|&lt;/mo&gt;&lt;mi&gt;e&lt;/mi&gt;&lt;mrow&gt;&lt;mo&gt;(&lt;/mo&gt;&lt;mi&gt;kT&lt;/mi&gt;&lt;mo&gt;)&lt;/mo&gt;&lt;/mrow&gt;&lt;mo&gt;|&lt;/mo&gt;&lt;mi&gt;kT&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;min&lt;/mi&gt;&lt;/mrow&gt;</math></maths>式中,T表示仿真计算步长,N表示仿真计算的总点数;设蚂蚁总数为m,寻优时,将蚂蚁按照随机原则散布在空间网格点上,对于每个蚂蚁l,定义其评价函数值为i点的目标函数J<sub>i</sub>和相邻为j点的目标函数J<sub>j</sub>的差值,并记:ΔJ<sub>ij</sub>=J<sub>i</sub>-J<sub>j</sub>,i,j利用上列公式计算蚂蚁所对应的目标函数值,记录对应着本次循环周期中ITAE最小性能指标的最优路径,并将其对应的NLPID控制参数存入控制系数β<sub>0</sub>、β<sub>1</sub>及β<sub>2</sub>中;第十一步:按照公式<img file="A2007101217750003C4.GIF" wi="1000" he="159" />自适应调节信息素残留系数ρ;第十二步:根据下列公式<maths num="0004"><math>&lt;mfenced open='{' close=''&gt;&lt;mtable&gt;&lt;mtr&gt;&lt;mtd&gt;&lt;msub&gt;&lt;mi&gt;&amp;tau;&lt;/mi&gt;&lt;mi&gt;ijNew&lt;/mi&gt;&lt;/msub&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mi&gt;&amp;rho;&lt;/mi&gt;&lt;msub&gt;&lt;mi&gt;&amp;tau;&lt;/mi&gt;&lt;mi&gt;ij&lt;/mi&gt;&lt;/msub&gt;&lt;mo&gt;+&lt;/mo&gt;&lt;msub&gt;&lt;mi&gt;&amp;Delta;&amp;tau;&lt;/mi&gt;&lt;mi&gt;ij&lt;/mi&gt;&lt;/msub&gt;&lt;/mtd&gt;&lt;/mtr&gt;&lt;mtr&gt;&lt;mtd&gt;&lt;msub&gt;&lt;mi&gt;&amp;Delta;&amp;tau;&lt;/mi&gt;&lt;mi&gt;ij&lt;/mi&gt;&lt;/msub&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;munderover&gt;&lt;mi&gt;&amp;Sigma;&lt;/mi&gt;&lt;mrow&gt;&lt;mi&gt;l&lt;/mi&gt;&lt;mo&gt;=&lt;/mo&gt;&lt;mn&gt;1&lt;/mn&gt;&lt;/mrow&gt;&lt;mi&gt;m&lt;/mi&gt;&lt;/munderover&gt;&lt;msubsup&gt;&lt;mi&gt;&amp;Delta;&amp;tau;&lt;/mi&gt;&lt;mi&gt;ij&lt;/mi&gt;&lt;mi&gt;l&lt;/mi&gt;&lt;/msubsup&gt;&lt;/mtd&gt;&lt;/mtr&gt;&lt;/mtable&gt;&lt;/mfenced&gt;</math></maths>式中,ρ为信息素的残留系数,Δτ<sub>ij</sub><sup>l</sup>表示第l只蚂蚁本次循环中在路径ij上留下的单位长度的信息素物质,可用下式来进行计算:<img file="A2007101217750004C2.GIF" wi="1233" he="251" />式中,Q是常数,J<sub>l</sub>表示第l只蚂蚁在本次循环中的目标函数计算值;按照上列公式更新每条路径上的信息素轨迹;第十三步:如果循环次数N<sub>C</sub>≥N<sub>Cmax</sub>或整个蚁群已经收敛到同一条路径,则循环结束并输出最优空间节点路径及其所对应的非线性PID控制系数β<sub>0</sub>、β<sub>1</sub>及β<sub>2</sub>,否则清空禁忌表并跳转到第二步。
地址 100083北京市海淀区学院路37号北京航空航天大学自动化学院