发明名称 一种考虑量测信号丢失的改进集合卡尔曼滤波估计方法
摘要 本发明公开了一种考虑量测信号丢失的改进集合卡尔曼滤波估计方法。该方法首先采用二项分布建立了量测信号丢失的数学模型;然后,通过对现有的集合卡尔曼滤波状态估计方法进行改进,设计出了改进集合卡尔曼滤波状态估计算法。该算法因考虑了实际工程背景中广泛存在的量测信号丢失的情况,且简单易于实现,有效的解决了量测信号丢失下的非线性系统的状态估计和参数辨识问题,具有一定的工程应用价值。
申请公布号 CN105931130A 申请公布日期 2016.09.07
申请号 CN201610226554.2 申请日期 2016.04.11
申请人 南京工业大学 发明人 沈谋全;周玉庭;孙世荣;严沈;陈爱华
分类号 G06Q50/06(2012.01)I;G06F17/50(2006.01)I 主分类号 G06Q50/06(2012.01)I
代理机构 代理人
主权项 一种考虑量测信号丢失的改进集合卡尔曼滤波估计方法,其特征在于,包含如下步骤:(1)、获取量测信号丢失的离散状态空间表达式,模型公式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>x</mi><mi>k</mi></msub><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>w</mi><mi>k</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>y</mi><mi>k</mi></msub><mo>=</mo><mi>&Xi;</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mi>h</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>v</mi><mi>k</mi></msub></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FSA0000128718060000011.GIF" wi="413" he="149" /></maths>式中,x<sub>k</sub>表示k时刻的状态向量,y<sub>k</sub>表示k时刻的输出量测向量,f(·)和h(·)是对应于具体问题中的非线性函数,w<sub>k</sub>和v<sub>k</sub>分别是系统噪声和量测噪声,Ξ(k)是符合二项分布的白噪声随机序列,即,Ξ(k)=diag{γ<sub>1</sub>(k),γ<sub>2</sub>(k),·,·γ<sub>m</sub>(k)},γ<sub>i</sub>(k)(i=1...m)是不相关的随机变量,且与w<sub>k</sub>和v<sub>k</sub>,x(0)不相关。(2)、γ<sub>i</sub>(k)的取值为0或者1,且满足如下计算公式:prob(γ<sub>i</sub>(k)=0)=1‑μ<sub>i</sub>(k)prob(γ<sub>i</sub>(k)=1)=μ<sub>i</sub>(k)式中,1‑μ<sub>i</sub>(k)是第i个量测量的丢失率。(3)、初始化,包括:设定丢包率的取值,样本采样数q,状态估计的初始值<img file="FSA0000128718060000017.GIF" wi="75" he="57" />以及过程噪声和量测噪声所满足的协方差矩阵Q和R,整体算法的最大迭代次数L。(4)、由已知的k‑1时刻的状态估计值,利用改进集合卡尔曼滤波的预测步,得到k时刻的q个采样集合的状态预测值<img file="FSA0000128718060000012.GIF" wi="91" he="66" />计算公式为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msubsup><mi>x</mi><mi>k</mi><msub><mi>f</mi><mi>i</mi></msub></msubsup><mo>=</mo><mi>f</mi><mrow><mo>(</mo><msubsup><mi>x</mi><mi>k</mi><msub><mi>a</mi><mi>i</mi></msub></msubsup><mo>,</mo><msub><mi>u</mi><mi>k</mi></msub><mo>)</mo></mrow><mo>+</mo><msubsup><mi>w</mi><mi>k</mi><mi>i</mi></msubsup></mrow>]]></math><img file="FSA0000128718060000013.GIF" wi="393" he="66" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msubsup><mi>X</mi><mi>k</mi><mi>f</mi></msubsup><mo>=</mo><mrow><mo>(</mo><msubsup><mi>x</mi><mi>k</mi><msub><mi>f</mi><mn>1</mn></msub></msubsup><mo>,</mo><mo>...</mo><mo>,</mo><msubsup><mi>x</mi><mi>k</mi><msub><mi>f</mi><mi>q</mi></msub></msubsup><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000128718060000014.GIF" wi="351" he="72" /></maths>式中,<img file="FSA0000128718060000015.GIF" wi="52" he="64" />表示k时刻的第i个样本的状态预测值。(5)、在上一步的基础上,计算样本采样预测均值和样本采样预测输出值,计算公式如下:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msubsup><mover><mi>x</mi><mo>&OverBar;</mo></mover><mi>k</mi><mi>f</mi></msubsup><mo>=</mo><mn>1</mn><mo>/</mo><mi>q</mi><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>q</mi></munderover><msubsup><mi>x</mi><mi>k</mi><msub><mi>f</mi><mi>i</mi></msub></msubsup></mrow>]]></math><img file="FSA0000128718060000016.GIF" wi="293" he="120" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msubsup><mi>y</mi><mi>k</mi><msub><mi>f</mi><mi>i</mi></msub></msubsup><mo>=</mo><mover><mi>&Xi;</mi><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mi>h</mi><mrow><mo>(</mo><msubsup><mi>x</mi><mi>k</mi><msub><mi>f</mi><mi>i</mi></msub></msubsup><mo>)</mo></mrow></mrow>]]></math><img file="FSA0000128718060000021.GIF" wi="328" he="69" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msubsup><mover><mi>y</mi><mo>&OverBar;</mo></mover><mi>k</mi><mi>f</mi></msubsup><mo>=</mo><mn>1</mn><mo>/</mo><mi>q</mi><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>q</mi></munderover><msubsup><mi>y</mi><mi>k</mi><msub><mi>f</mi><mi>i</mi></msub></msubsup></mrow>]]></math><img file="FSA0000128718060000022.GIF" wi="301" he="123" /></maths>式中,<img file="FSA0000128718060000023.GIF" wi="55" he="62" />是q个样本k时刻预测值的均值,<img file="FSA0000128718060000024.GIF" wi="55" he="63" />是第i个样本在k时刻丢包情形下的量测输出值,<img file="FSA0000128718060000025.GIF" wi="56" he="62" />是q个样本k时刻量测输出值的均值。上式中系数<img file="FSA0000128718060000026.GIF" wi="96" he="57" />的取值遵循如下规律:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mover><mi>&Xi;</mi><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mi>E</mi><mo>{</mo><mi>&Xi;</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>}</mo><mo>=</mo><mi>d</mi><mi>i</mi><mi>a</mi><mi>g</mi><mo>{</mo><mtable><mtr><mtd><mrow><msub><mi>&mu;</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msub><mi>&mu;</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd><mtd><mo>...</mo></mtd><mtd><mrow><msub><mi>&mu;</mi><mi>m</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow></mtd></mtr></mtable><mo>}</mo></mrow>]]></math><img file="FSA00001287180600000221.GIF" wi="1031" he="82" /></maths>(6)、在上一步基础上,利用改进集合卡尔曼滤波的预测步,计算k时刻的集合状态误差矩阵<img file="FSA0000128718060000027.GIF" wi="220" he="62" />以及集合输出误差矩阵<img file="FSA0000128718060000028.GIF" wi="198" he="60" />计算公式为:<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msubsup><mi>E</mi><mi>k</mi><mi>f</mi></msubsup><mo>=</mo><mo>&lsqb;</mo><mtable><mtr><mtd><mrow><msubsup><mi>x</mi><mi>k</mi><msub><mi>f</mi><mn>1</mn></msub></msubsup><mo>-</mo><msubsup><mover><mi>x</mi><mo>&OverBar;</mo></mover><mi>k</mi><mi>f</mi></msubsup></mrow></mtd><mtd><mo>...</mo></mtd><mtd><mrow><msubsup><mi>x</mi><mi>k</mi><msub><mi>f</mi><mi>q</mi></msub></msubsup><mo>-</mo><msubsup><mover><mi>x</mi><mo>&OverBar;</mo></mover><mi>k</mi><mi>f</mi></msubsup></mrow></mtd></mtr></mtable><mo>&rsqb;</mo></mrow>]]></math><img file="FSA0000128718060000029.GIF" wi="611" he="98" /></maths><maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><msubsup><mi>E</mi><mrow><mi>y</mi><mi>k</mi></mrow><mi>f</mi></msubsup><mo>=</mo><mo>&lsqb;</mo><mtable><mtr><mtd><mrow><msubsup><mi>y</mi><mi>k</mi><msub><mi>f</mi><mn>1</mn></msub></msubsup><mo>-</mo><msubsup><mover><mi>y</mi><mo>&OverBar;</mo></mover><mi>k</mi><mi>f</mi></msubsup></mrow></mtd><mtd><mo>...</mo></mtd><mtd><mrow><msubsup><mi>y</mi><mi>k</mi><msub><mi>f</mi><mi>q</mi></msub></msubsup><mo>-</mo><msubsup><mover><mi>y</mi><mo>&OverBar;</mo></mover><mi>k</mi><mi>f</mi></msubsup></mrow></mtd></mtr></mtable><mo>&rsqb;</mo></mrow>]]></math><img file="FSA00001287180600000210.GIF" wi="626" he="98" /></maths>(7)、计算k时刻的交叉协方差矩阵<img file="FSA00001287180600000211.GIF" wi="71" he="70" />和<img file="FSA00001287180600000212.GIF" wi="103" he="69" />计算公式如下:<maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><msubsup><mi>p</mi><mrow><msub><mi>xy</mi><mi>k</mi></msub></mrow><mi>f</mi></msubsup><mo>=</mo><mfrac><mn>1</mn><mrow><mi>q</mi><mo>-</mo><mn>1</mn></mrow></mfrac><msubsup><mi>E</mi><mi>k</mi><mi>f</mi></msubsup><msup><mrow><mo>(</mo><msubsup><mi>E</mi><mrow><mi>y</mi><mi>k</mi></mrow><mi>f</mi></msubsup><mo>)</mo></mrow><mi>T</mi></msup></mrow>]]></math><img file="FSA00001287180600000213.GIF" wi="410" he="119" /></maths><maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><msubsup><mi>p</mi><mrow><msub><mi>yy</mi><mi>k</mi></msub></mrow><mi>f</mi></msubsup><mo>=</mo><mfrac><mn>1</mn><mrow><mi>q</mi><mo>-</mo><mn>1</mn></mrow></mfrac><msubsup><mi>E</mi><msub><mi>y</mi><mi>k</mi></msub><mi>f</mi></msubsup><msup><mrow><mo>(</mo><msubsup><mi>E</mi><msub><mi>y</mi><mi>k</mi></msub><mi>f</mi></msubsup><mo>)</mo></mrow><mi>T</mi></msup></mrow>]]></math><img file="FSA00001287180600000214.GIF" wi="421" he="119" /></maths>上式中括号外上标T表示矩阵的转置。(8)、依据改进集合卡尔曼滤波的估计步,计算k时刻的状态估计均值<img file="FSA00001287180600000215.GIF" wi="72" he="56" />其计算步骤为:<maths num="0012" id="cmaths0012"><math><![CDATA[<mrow><msub><mi>K</mi><mi>k</mi></msub><mo>=</mo><msubsup><mi>p</mi><mrow><msub><mi>xy</mi><mi>k</mi></msub></mrow><mi>f</mi></msubsup><msup><mrow><mo>(</mo><msubsup><mi>p</mi><mrow><msub><mi>xy</mi><mi>k</mi></msub></mrow><mi>f</mi></msubsup><mo>)</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup></mrow>]]></math><img file="FSA00001287180600000216.GIF" wi="329" he="70" /></maths><maths num="0013" id="cmaths0013"><math><![CDATA[<mrow><msubsup><mi>x</mi><mi>k</mi><msub><mi>a</mi><mi>i</mi></msub></msubsup><mo>=</mo><msubsup><mi>x</mi><mi>k</mi><msub><mi>f</mi><mi>i</mi></msub></msubsup><mo>+</mo><msub><mi>K</mi><mi>k</mi></msub><mrow><mo>(</mo><msub><mi>y</mi><mi>k</mi></msub><mo>-</mo><mover><mi>&Xi;</mi><mo>&OverBar;</mo></mover><mo>(</mo><mi>k</mi><mo>)</mo><mi>h</mi><mo>(</mo><msubsup><mi>x</mi><mi>k</mi><msub><mi>f</mi><mi>i</mi></msub></msubsup><mo>)</mo><mo>)</mo></mrow></mrow>]]></math><img file="FSA00001287180600000217.GIF" wi="608" he="66" /></maths><maths num="0014" id="cmaths0014"><math><![CDATA[<mrow><msubsup><mover><mi>x</mi><mo>&OverBar;</mo></mover><mi>k</mi><mi>a</mi></msubsup><mo>=</mo><mn>1</mn><mo>/</mo><mi>q</mi><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>q</mi></munderover><msubsup><mi>x</mi><mi>k</mi><msub><mi>a</mi><mi>i</mi></msub></msubsup></mrow>]]></math><img file="FSA00001287180600000218.GIF" wi="287" he="119" /></maths>式中,K<sub>k</sub>是k时刻的改进卡尔曼滤波增益,<img file="FSA00001287180600000219.GIF" wi="50" he="56" />是第i个样本k时刻的状态估计值,<img file="FSA00001287180600000220.GIF" wi="49" he="55" />是k时刻q个样本状态估计均值,其值作为k时刻对系统的状态估计值。(9)、按照上述步骤,进行多次迭代估计,至k>L,迭代停止,输出状态估计结果。
地址 211816 江苏省南京市浦口区浦珠南路30号