发明名称 人工鱼群粒子滤波方法
摘要 本发明人工鱼群粒子滤波方法,将人工鱼群算法引入粒子滤波,其基本思路是在选取目标函数即量测函数和调整重要性权值时,引入人工鱼群算法的聚群行为和觅食行为,引导先验粒子不断向高似然域移动,从而改善粒子分布,增加粒子的多样性,提高算法的滤波精度。此外,在人工鱼群算法中,当寻优的域较大或处于变化平坦的区域时,一部分人工鱼将处于无目的的随机移动中,影响了寻优效率,本发明进一步提出了一种自适应步长方法对人工鱼视野选取的随机性进行改进,不仅减轻了算法的计算负担,而且保证了算法的收敛性。
申请公布号 CN102360451A 申请公布日期 2012.02.22
申请号 CN201110308010.8 申请日期 2011.10.11
申请人 江苏科技大学 发明人 朱志宇;李阳;李冀;张冰;刘维亭;魏海峰;赵强;袁文华
分类号 G06N3/00(2006.01)I 主分类号 G06N3/00(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 楼高潮
主权项 1.一种人工鱼群粒子滤波方法,其特征在于包括如下步骤:Step1:取得量测值<maths num="0001"><![CDATA[<math><mrow><msub><mi>Z</mi><mi>k</mi></msub><mo>:</mo><msup><mrow><mo>[</mo><mrow><mo>(</mo><mn>2</mn><mi>&pi;</mi><mo>)</mo></mrow><msubsup><mi>&sigma;</mi><mi>v</mi><mn>2</mn></msubsup><mo>]</mo></mrow><mrow><mo>-</mo><mn>1</mn><mo>/</mo><mn>2</mn></mrow></msup><msup><mi>e</mi><mrow><mo>-</mo><mfrac><mn>1</mn><mrow><mn>2</mn><msubsup><mi>&sigma;</mi><mi>v</mi><mn>2</mn></msubsup></mrow></mfrac><mo>[</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mi>k</mi></msub><mo>-</mo><msubsup><mover><mi>z</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mo>)</mo></mrow><mn>2</mn></msup><mo>]</mo></mrow></msup></mrow></math>]]></maths>其中Z<sub>k</sub>为最新量测值,<img file="FDA0000097695490000012.GIF" wi="113" he="67" />为预测量测值,k表示时刻;Step2:初始化在k=0时刻,从重要性函数采样取N个粒子,抽样出的粒子用<img file="FDA0000097695490000013.GIF" wi="214" he="72" />表示,重要性密度函数取转移先验:<maths num="0002"><![CDATA[<math><mrow><msubsup><mi>X</mi><mi>k</mi><mi>i</mi></msubsup><mo>:</mo><mi>q</mi><mrow><mo>(</mo><msubsup><mi>X</mi><mi>k</mi><mi>i</mi></msubsup><mo>|</mo><msubsup><mi>X</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mo>,</mo><msub><mi>Z</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>=</mo><mi>p</mi><mrow><mo>(</mo><msubsup><mi>X</mi><mi>k</mi><mi>i</mi></msubsup><mo>|</mo><msubsup><mi>X</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><msubsup><mi>X</mi><mi>k</mi><mi>i</mi></msubsup><mo>=</mo><mrow><mo>(</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mn>1</mn></msubsup><mo>,</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></msubsup><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>n</mi></msubsup><mo>)</mo></mrow></mrow></math>]]></maths>Step3:重要性权值计算<maths num="0004"><![CDATA[<math><mrow><msubsup><mi>w</mi><mi>k</mi><mi>i</mi></msubsup><mo>=</mo><msubsup><mi>w</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mi>p</mi><mrow><mo>(</mo><msub><mi>Z</mi><mi>k</mi></msub><mo>|</mo><msubsup><mi>X</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mo>)</mo></mrow><mo>=</mo><msubsup><mi>w</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mfrac><mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>Z</mi><mi>k</mi></msub><mo>|</mo><msubsup><mi>X</mi><mi>k</mi><mi>i</mi></msubsup><mo>)</mo></mrow><mi>p</mi><mrow><mo>(</mo><msubsup><mi>X</mi><mi>k</mi><mi>i</mi></msubsup><mo>|</mo><msubsup><mi>X</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mo>)</mo></mrow></mrow><mrow><mi>q</mi><mrow><mo>(</mo><msubsup><mi>X</mi><mi>k</mi><mi>i</mi></msubsup><mo>|</mo><msubsup><mi>X</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mo>,</mo><msub><mi>Z</mi><mi>k</mi></msub><mo>)</mo></mrow></mrow></mfrac></mrow></math>]]></maths><maths num="0005"><![CDATA[<math><mrow><mo>=</mo><msubsup><mi>w</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mi>p</mi><mrow><mo>(</mo><msub><mi>Z</mi><mi>k</mi></msub><mo>|</mo><msubsup><mi>X</mi><mi>k</mi><mi>i</mi></msubsup><mo>)</mo></mrow><mo>=</mo><msubsup><mi>w</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><msup><mrow><mo>[</mo><mrow><mo>(</mo><mn>2</mn><mi>&pi;</mi><mo>)</mo></mrow><msubsup><mi>&sigma;</mi><mi>v</mi><mn>2</mn></msubsup><mo>]</mo></mrow><mrow><mo>-</mo><mn>1</mn><mo>/</mo><mn>2</mn></mrow></msup><msup><mi>e</mi><mrow><mo>-</mo><mfrac><mn>1</mn><mrow><mn>2</mn><msubsup><mi>&sigma;</mi><mi>v</mi><mn>2</mn></msubsup></mrow></mfrac><mo>[</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mi>k</mi></msub><mo>-</mo><msubsup><mover><mi>z</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mo>)</mo></mrow><mn>2</mn></msup><mo>]</mo></mrow></msup></mrow></math>]]></maths>令目标函数<maths num="0006"><![CDATA[<math><mrow><mi>Y</mi><mo>=</mo><msup><mrow><mo>[</mo><mrow><mo>(</mo><mn>2</mn><mi>&pi;</mi><mo>)</mo></mrow><msubsup><mi>&sigma;</mi><mi>v</mi><mn>2</mn></msubsup><mo>]</mo></mrow><mrow><mo>-</mo><mn>1</mn><mo>/</mo><mn>2</mn></mrow></msup><msup><mi>e</mi><mrow><mo>-</mo><mfrac><mn>1</mn><mrow><mn>2</mn><msubsup><mi>&sigma;</mi><mi>v</mi><mn>2</mn></msubsup></mrow></mfrac><mo>[</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mi>k</mi></msub><mo>-</mo><msubsup><mover><mi>z</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mo>)</mo></mrow><mn>2</mn></msup><mo>]</mo></mrow></msup><mo>;</mo></mrow></math>]]></maths>(1)觅食行为当Y<sub>i</sub><Y<sub>j</sub>时,粒子通过比较目标函数不断更新自己向更真实的状态靠近:<maths num="0007"><![CDATA[<math><mrow><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><msub><mi>i</mi><mi>m</mi></msub></msubsup><mo>=</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><msub><mi>i</mi><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msub></msubsup><mo>+</mo><mi>r</mi><mo>&CenterDot;</mo><mi>s</mi><mfrac><mrow><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>j</mi></msubsup><mo>-</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><msub><mi>i</mi><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msub></msubsup></mrow><mrow><mo>|</mo><mo>|</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>j</mi></msubsup><mo>-</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><msub><mi>i</mi><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msub></msubsup><mo>|</mo><mo>|</mo></mrow></mfrac><mo>&CenterDot;</mo><mo>|</mo><mn>1</mn><mo>-</mo><mfrac><msub><mi>Y</mi><mi>j</mi></msub><msub><mi>Y</mi><mi>i</mi></msub></mfrac><mo>|</mo></mrow></math>]]></maths>(求解极小值)其中<img file="FDA00000976954900000110.GIF" wi="101" he="55" />为对<img file="FDA00000976954900000111.GIF" wi="98" he="55" />第m∈{1,2,…,n}次后的迭代值,否则<maths num="0008"><![CDATA[<math><mrow><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><msub><mi>i</mi><mi>m</mi></msub></msubsup><mo>=</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><msub><mi>i</mi><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msub></msubsup><mo>+</mo><mi>r</mi><mo>&CenterDot;</mo><mi>s</mi><mo>&CenterDot;</mo><mfrac><mrow><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>j</mi></msubsup><mo>-</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><msub><mi>i</mi><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msub></msubsup></mrow><mrow><mo>|</mo><mo>|</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>j</mi></msubsup><mo>-</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><msub><mi>i</mi><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msub></msubsup><mo>|</mo><mo>|</mo></mrow></mfrac><mo>&CenterDot;</mo><mo>|</mo><mn>1</mn><mo>-</mo><mfrac><msub><mi>Y</mi><mi>i</mi></msub><msub><mi>Y</mi><mi>j</mi></msub></mfrac><mo>|</mo></mrow></math>]]></maths>(求解极大值)(2)聚群行为设<img file="FDA00000976954900000113.GIF" wi="91" he="55" />在范围v内的其他预测观测值集合为A<sub>v</sub>,|A<sub>v</sub>|为集合A<sub>v</sub>的势,则其中心为<maths num="0009"><![CDATA[<math><mrow><msubsup><mover><mi>Z</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>ic</mi></msubsup><mo>=</mo><mfrac><mn>1</mn><mrow><mo>|</mo><msub><mi>A</mi><mi>v</mi></msub><mo>|</mo></mrow></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>&NotEqual;</mo><mi>i</mi></mrow><mrow><mo>|</mo><msub><mi>A</mi><mi>v</mi></msub><mo>|</mo></mrow></munderover><msubsup><mover><mi>Z</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>j</mi></msubsup><mo>,</mo></mrow></math>]]></maths>若<maths num="0010"><![CDATA[<math><mrow><mfrac><msub><mi>Y</mi><mi>ic</mi></msub><mrow><mo>|</mo><msub><mi>A</mi><mi>v</mi></msub><mo>|</mo></mrow></mfrac><mo>></mo><mi>&delta;</mi><mo>&CenterDot;</mo><msub><mi>Y</mi><mi>i</mi></msub><mo>,</mo></mrow></math>]]></maths>则<maths num="0011"><![CDATA[<math><mrow><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><msub><mi>i</mi><mi>m</mi></msub></msubsup><mo>=</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><msub><mi>i</mi><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msub></msubsup><mo>+</mo><mi>r</mi><mo>&CenterDot;</mo><mi>s</mi><mfrac><mrow><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>ic</mi></msubsup><mo>-</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><msub><mi>i</mi><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msub></msubsup></mrow><mrow><mo>|</mo><mo>|</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>ic</mi></msubsup><mo>-</mo><msubsup><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><msub><mi>i</mi><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msub></msubsup><mo>|</mo><mo>|</mo></mrow></mfrac><mo>,</mo></mrow></math>]]></maths>否则转(1);Step4:权值更新并归一化权值根据<maths num="0012"><![CDATA[<math><mrow><msubsup><mi>w</mi><mi>k</mi><mi>i</mi></msubsup><mo>=</mo><msubsup><mi>w</mi><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow><mi>i</mi></msubsup><mi>p</mi><mrow><mo>(</mo><msub><mi>Z</mi><mi>k</mi></msub><mo>|</mo><msubsup><mi>X</mi><mi>k</mi><mi>i</mi></msubsup><mo>)</mo></mrow></mrow></math>]]></maths>更新权值;根据<img file="FDA0000097695490000023.GIF" wi="247" he="105" />对取出的N<sub>1</sub>个粒子的权值归一化;Step5:输出状态估计:<maths num="0013"><![CDATA[<math><mrow><msub><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msubsup><mi>w</mi><mi>k</mi><mi>i</mi></msubsup><msubsup><mi>X</mi><mi>k</mi><mi>i</mi></msubsup><mo>;</mo></mrow></math>]]></maths>方差估计:<maths num="0014"><![CDATA[<math><mrow><msub><mi>P</mi><mi>k</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msubsup><mi>w</mi><mi>k</mi><mi>i</mi></msubsup><mrow><mo>(</mo><msubsup><mi>X</mi><mi>k</mi><mi>i</mi></msubsup><mo>-</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi></msub><mo>)</mo></mrow><msup><mrow><mo>(</mo><msubsup><mi>X</mi><mi>k</mi><mi>i</mi></msubsup><mo>-</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi></msub><mo>)</mo></mrow><mi>T</mi></msup><mo>;</mo></mrow></math>]]></maths>Step6:判断是否结束,当达到设置的迭代次数n或者目标函数前后偏差小于设定的阈值则退出本算法;否则返回step2。
地址 212003 江苏省镇江市梦溪路2号