发明名称 一种基于蚁群与扩展卡尔曼滤波相结合的多AUV协同定位方法
摘要 本发明的目的在于提供一种基于蚁群与扩展卡尔曼滤波相结合的多AUV协同定位方法,首先建立AUV运动学模型,然后线性化AUV模型,采用改进的蚁群算法对Q矩阵R矩阵进行最优估计:先采用蚁群算法进行首次遍历,产生大量解;采用粒子群算法找到全局最优值;再次利用蚁群算法,将当前解集置为蚁群初始出发点,然后根据蚁群中蚂蚁获得的解的质量的优劣,选出部分最优秀的蚂蚁按其解的优劣程度加权平均释放信息素。最终,将求解出来的Q,R运用到EKF中,从而实现对从AUV的定位。本发明巧妙地将智能算法与EKF相结合,不仅解决了噪声矩阵的不确定、难选择的问题,而且提高了EKF的滤波精度,应用于多AUV的定位系统中,大大提高了对从AUV定位的精确度。
申请公布号 CN106525042A 申请公布日期 2017.03.22
申请号 CN201610854298.1 申请日期 2016.09.27
申请人 哈尔滨工程大学 发明人 李娟;张娟;王宏健;张伟;马涛;邱军婷;张昆玉
分类号 G01C21/20(2006.01)I 主分类号 G01C21/20(2006.01)I
代理机构 代理人
主权项 一种基于蚁群与扩展卡尔曼滤波相结合的多AUV协同定位方法,其特征是:(1)建立AUV运动学模型把AUV作为一个质点运动,(x,y,z)是AUV在k时刻的坐标,z是深度,由深度传感器直接测量,AUV运动学模型描述为:<maths num="0001"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><msub><mi>x</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>x</mi><mi>k</mi></msub><mo>+</mo><mi>T</mi><mo>&CenterDot;</mo><msub><mi>V</mi><mi>k</mi></msub><mo>&CenterDot;</mo><mi>c</mi><mi>o</mi><mi>s</mi><mo>(</mo><msub><mi>&phi;</mi><mi>k</mi></msub><mo>)</mo></mtd></mtr><mtr><mtd><msub><mi>y</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>y</mi><mi>k</mi></msub><mo>+</mo><mi>T</mi><mo>&CenterDot;</mo><msub><mi>V</mi><mi>k</mi></msub><mo>&CenterDot;</mo><mi>s</mi><mi>i</mi><mi>n</mi><mo>(</mo><msub><mi>&phi;</mi><mi>k</mi></msub><mo>)</mo></mtd></mtr><mtr><mtd><msub><mi>&phi;</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>&phi;</mi><mi>k</mi></msub></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0001121226120000011.GIF" wi="507" he="223" /></maths>式中:x<sub>k</sub>、x<sub>k+1</sub>分别为k、k+1时刻x方向的位置坐标;y<sub>k</sub>、y<sub>k+1</sub>分别为k、k+1时刻y方向的位置坐标;T是采样周期,V<sub>k</sub>是由DVL测得的速度,φ<sub>k</sub>是测量的航向角;此模型中,用u<sub>k</sub>表示[V<sub>k</sub> φ<sub>k</sub>]<sup>T</sup>,则有:<maths num="0002"><math><![CDATA[<mrow><msub><mi>u</mi><mi>k</mi></msub><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><msub><mi>V</mi><mi>k</mi></msub></mtd></mtr><mtr><mtd><msub><mi>&phi;</mi><mi>k</mi></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><msub><mi>V</mi><msub><mi>m</mi><mi>k</mi></msub></msub><mo>+</mo><msub><mi>&omega;</mi><msub><mi>v</mi><mi>k</mi></msub></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>&phi;</mi><msub><mi>m</mi><mi>k</mi></msub></msub><mo>+</mo><msub><mi>&omega;</mi><msub><mi>&phi;</mi><mi>k</mi></msub></msub></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001121226120000012.GIF" wi="422" he="159" /></maths>式中:<img file="FDA0001121226120000013.GIF" wi="59" he="54" />和<img file="FDA0001121226120000014.GIF" wi="59" he="55" />是独立的零均值的高斯白噪声,即协方差<img file="FDA0001121226120000015.GIF" wi="59" he="70" />和<img file="FDA0001121226120000016.GIF" wi="59" he="71" />也是独立的;<img file="FDA0001121226120000017.GIF" wi="134" he="63" />分别表示k时刻速度和航向角的量测值;这个模型描述为:X<sub>k+1</sub>=f(x<sub>k</sub>,u<sub>k</sub>,w<sub>k</sub>)=X<sub>k</sub>+g(u<sub>k</sub>+w<sub>k</sub>)=f(X<sub>k</sub>,k)+g(u<sub>k</sub>+w<sub>k</sub>)式中:X<sub>k+1</sub>是AUV在k+1时刻的状态;X<sub>k</sub>=f(X<sub>k</sub>,k)=(x<sub>k</sub> y<sub>k</sub> φ)<sup>T</sup>是AUV在K时刻的状态;g(u<sub>k</sub>+w<sub>k</sub>)是个非线性项;w<sub>k</sub>是系统噪声,且是具有零均值的高斯白噪声;设Q为系统噪声协方差矩阵;在时刻t<sub>k</sub>,从AUV收到了主AUV的距离在水平空间中描述为:<maths num="0003"><math><![CDATA[<mrow><msub><mi>r</mi><mi>k</mi></msub><mo>=</mo><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>s</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>-</mo><msub><mi>x</mi><mrow><mi>m</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>s</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>-</mo><msub><mi>y</mi><mrow><mi>m</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt><mo>+</mo><msub><mi>l</mi><mi>k</mi></msub></mrow>]]></math><img file="FDA0001121226120000018.GIF" wi="781" he="79" /></maths>式中:x<sub>s,k</sub>,x<sub>m,k</sub>分别是从AUV和主AUV k时刻x方向的位置坐标;y<sub>s,k</sub>,y<sub>m,k</sub>分别是从AUV和主AUV k时刻y方向的位置坐标;r<sub>k</sub>是它们在水平空间中的距离;l<sub>k</sub>是量测噪声,噪声为零均值的高斯白噪声;设R为系统量测噪声方差阵。故这个模型可描述为:r<sub>k</sub>=h(X<sub>k</sub>,k)+l<sub>k</sub>式中:h(X<sub>k</sub>,k)表示主、从AUV水平面上的距离,且有<img file="FDA0001121226120000021.GIF" wi="694" he="101" />(2)线性化AUV模型:对于AUV运动模型X<sub>k+1</sub>式,首先将f(X<sub>k</sub>,k)围绕滤波值<img file="FDA0001121226120000022.GIF" wi="63" he="71" />展开成泰勒级数,<img file="FDA0001121226120000023.GIF" wi="62" he="71" />是所估计出AUV在K时刻的状态,忽略二阶以上的高阶项,得到线性化方程为:<maths num="0004"><math><![CDATA[<mrow><msub><mi>X</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi></msub><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><mo>&part;</mo><mi>f</mi></mrow><mrow><mo>&part;</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi></msub></mrow></mfrac><mo>&lsqb;</mo><msub><mi>X</mi><mi>k</mi></msub><mo>-</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi></msub><mo>&rsqb;</mo><mo>+</mo><mi>g</mi><mrow><mo>(</mo><msub><mi>u</mi><mi>k</mi></msub><mo>+</mo><msub><mi>w</mi><mi>k</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001121226120000024.GIF" wi="1118" he="143" /></maths>式中:<img file="FDA0001121226120000025.GIF" wi="98" he="127" />是<img file="FDA0001121226120000026.GIF" wi="176" he="71" />关于<img file="FDA0001121226120000027.GIF" wi="65" he="71" />的Jacobian矩阵,用F<sub>k</sub>表示,即:<maths num="0005"><math><![CDATA[<mrow><msub><mi>F</mi><mi>k</mi></msub><mo>=</mo><mfrac><mrow><mo>&part;</mo><mi>f</mi></mrow><mrow><mo>&part;</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi></msub></mrow></mfrac><mo>=</mo><mfrac><mrow><mo>&part;</mo><mi>f</mi><mrow><mo>(</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi></msub><mo>,</mo><mi>k</mi><mo>)</mo></mrow></mrow><mrow><mo>&part;</mo><msub><mi>X</mi><mi>k</mi></msub></mrow></mfrac><msub><mo>|</mo><mrow><msub><mi>X</mi><mi>k</mi></msub><mo>=</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mi>k</mi></msub></mrow></msub><mo>,</mo></mrow>]]></math><img file="FDA0001121226120000028.GIF" wi="647" he="151" /></maths>将非线性函数h(X<sub>k</sub>,k)围绕滤波值<img file="FDA0001121226120000029.GIF" wi="115" he="71" />展成泰勒级数,<img file="FDA00011212261200000210.GIF" wi="122" he="71" />是由k‑1时刻估计出的AUV在k时刻的状态,略去二阶以上项,得:<maths num="0006"><math><![CDATA[<mrow><msub><mi>r</mi><mi>k</mi></msub><mo>=</mo><mi>h</mi><mrow><mo>(</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>,</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><mfrac><mrow><mo>&part;</mo><mi>h</mi></mrow><mrow><mo>&part;</mo><msub><mi>X</mi><mi>k</mi></msub></mrow></mfrac><msub><mo>|</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub></msub><mo>&lsqb;</mo><msub><mi>X</mi><mi>k</mi></msub><mo>-</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&rsqb;</mo><mo>+</mo><msub><mi>l</mi><mi>k</mi></msub></mrow>]]></math><img file="FDA00011212261200000211.GIF" wi="1014" he="127" /></maths>式中:<img file="FDA00011212261200000212.GIF" wi="189" he="127" />是h(X<sub>k/k‑1</sub>,k)关于X<sub>k/k‑1</sub>的Jacobian矩阵,采用H<sub>k</sub>表示,即:<maths num="0007"><math><![CDATA[<mrow><msub><mi>H</mi><mi>k</mi></msub><mo>=</mo><mfrac><mrow><mo>&part;</mo><mi>h</mi></mrow><mrow><mo>&part;</mo><msub><mi>X</mi><mi>k</mi></msub></mrow></mfrac><msub><mo>|</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>/</mo><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub></msub></mrow>]]></math><img file="FDA00011212261200000213.GIF" wi="309" he="134" /></maths>(3)优化Q、R:在AUV运动学模型中有3个状态变量x<sub>k</sub>,y<sub>k</sub>,φ<sub>k</sub>和2个输出变量x<sub>k+1</sub>,y<sub>k+1</sub>,则系统噪声和量测噪声的协方差矩阵分别取Q=diag[Q1,Q2,Q3],R=diag[R1,R2],其中Q1、Q2、Q3为与x<sub>k</sub>,y<sub>k</sub>,φ<sub>k</sub>对应的系统噪声矩阵参数;R1、R2为与x<sub>k+1</sub>,y<sub>k+1</sub>对应的量测噪声矩阵参数;(4)EKF求解:状态预测:由k时刻预测k+1时刻从AUV的状态<img file="FDA0001121226120000031.GIF" wi="123" he="78" /><maths num="0008"><math><![CDATA[<mrow><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>+</mo><mn>1</mn><mo>/</mo><mi>k</mi></mrow></msub><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>k</mi></msub><mo>,</mo><msub><mi>u</mi><mi>k</mi></msub><mo>,</mo><mn>0</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001121226120000032.GIF" wi="438" he="71" /></maths>由k时刻预测k+1时刻的协方差P<sub>k+1/k</sub>:<maths num="0009"><math><![CDATA[<mrow><msub><mi>P</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn><mo>/</mo><mi>k</mi></mrow></msub><mo>=</mo><msub><mi>F</mi><mi>k</mi></msub><mo>&CenterDot;</mo><msub><mi>P</mi><mi>k</mi></msub><mo>&CenterDot;</mo><msubsup><mi>F</mi><mi>k</mi><mi>T</mi></msubsup><mo>+</mo><msub><mi>H</mi><mi>k</mi></msub><mo>&CenterDot;</mo><msub><mi>Q</mi><mi>k</mi></msub><mo>&CenterDot;</mo><msubsup><mi>H</mi><mi>k</mi><mi>T</mi></msubsup></mrow>]]></math><img file="FDA0001121226120000033.GIF" wi="814" he="63" /></maths>式中:P<sub>k</sub>为路是k时刻的协方差,Q<sub>k</sub>是k时刻的系统噪声协方差矩阵;更新等式:由预测和更新等式,提出线性估计:<maths num="0010"><math><![CDATA[<mrow><msub><mover><mi>r</mi><mo>~</mo></mover><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>r</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mover><mi>r</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>+</mo><mn>1</mn><mo>/</mo><mi>k</mi></mrow></msub></mrow>]]></math><img file="FDA0001121226120000034.GIF" wi="316" he="63" /></maths>式中:r<sub>k+1</sub>是k+1时刻的主从AUV间的量测距离;<img file="FDA0001121226120000035.GIF" wi="77" he="47" />是由k时刻估计出k+1时刻的主从AUV间的距离;<img file="FDA0001121226120000036.GIF" wi="54" he="55" />是k+1时刻量测值与k时刻估计值之差;增益K<sub>k+1</sub>等式为:<maths num="0011"><math><![CDATA[<mrow><msub><mi>K</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>P</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn><mo>/</mo><mi>k</mi></mrow></msub><msubsup><mi>H</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow><mi>T</mi></msubsup><msubsup><mi>S</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msubsup></mrow>]]></math><img file="FDA0001121226120000037.GIF" wi="510" he="71" /></maths>P<sub>k+1</sub>=(I‑K<sub>k+1</sub>H<sub>k+1</sub>)P<sub>k+1/k</sub><maths num="0012"><math><![CDATA[<mrow><msub><mi>S</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>H</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><msub><mi>P</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn><mo>/</mo><mi>k</mi></mrow></msub><msubsup><mi>H</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow><mi>T</mi></msubsup><mo>+</mo><msub><mi>R</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow>]]></math><img file="FDA0001121226120000038.GIF" wi="566" he="79" /></maths>式中:H<sub>k+1</sub>是h(X<sub>k+1/k</sub>,k+1)关于X<sub>k+1/k</sub>的Jacobian矩阵;P<sub>k+1</sub>为路是k+1时刻的协方差;S<sub>k+1</sub>表示等式右边两者之和;评估从AUV在k+1时刻的状态:<maths num="0013"><math><![CDATA[<mrow><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>k</mi><mo>+</mo><mn>1</mn><mo>/</mo><mi>k</mi></mrow></msub><mo>+</mo><msub><mi>K</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><msub><mover><mi>r</mi><mo>~</mo></mover><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>.</mo></mrow>]]></math><img file="FDA0001121226120000039.GIF" wi="499" he="87" /></maths>
地址 150001 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室