发明名称 一种基于自适应卡尔曼滤波的无刷直流电机系统辨识方法
摘要 一种基于自适应卡尔曼滤波的无刷直流电机系统辨识方法,包括采集实验数据、建立离散模型结构、辨识模型参数三个环节。首先,在输入信号为方波电压的情况下采集无刷直流电机系统的输入输出数据,其次建立无刷直流电机系统以电压为输入以角速率为输出的传递函数,将该传递函数离散化,得到其离散模型结构,然后依据无刷直流电机系统的离散模型结构建立系统状态方程和量测方程,将采集的输入输出数据代入自适应卡尔曼滤波算法进行模型参数辨识,在参数辨识结果收敛之后,停止迭代,获得无刷直流电机系统的辨识模型。本发明能够在量测噪声特性变化的情况下,获得高精度的辨识结果,并且简单易行,便于在工程实践中应用。
申请公布号 CN102779238B 申请公布日期 2015.05.27
申请号 CN201210283239.5 申请日期 2012.08.09
申请人 北京航空航天大学 发明人 魏彤;郭蕊;李海涛;刘云波;赵林;向岷
分类号 G06F19/00(2011.01)I;H02P6/00(2006.01)I 主分类号 G06F19/00(2011.01)I
代理机构 北京科迪生专利代理有限责任公司 11251 代理人 成金玉;贾玉忠
主权项 一种基于自适应卡尔曼滤波的无刷直流电机系统辨识方法,其特征在于包括下列步骤:(1)选择实验参数,并采集实验数据;以单位阶跃电压作为无刷直流电机系统的输入,得到其单位阶跃响应曲线,依据单位阶跃响应曲线得到过渡过程时间t<sub>s</sub>,根据t<sub>s</sub>选择无刷直流电机系统的输入信号周期t<sub>input</sub>和采样周期t<sub>sample</sub>,以周期为t<sub>input</sub>的方波电压作为无刷直流电机系统的输入信号,以t<sub>sample</sub>为采样周期采集无刷直流电机系统的输入电压u(k)和输出角速率ω(k),其中k表示第k个采样时刻,其取值为k=1,2,…X,X表示共采集X组数据,X通常的取值范围为X≥5000;输入信号周期t<sub>input</sub>和采样周期t<sub>sample</sub>的选择范围为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfrac><msub><mi>t</mi><mi>s</mi></msub><mn>100</mn></mfrac><mo>&le;</mo><msub><mi>t</mi><mi>input</mi></msub><mo>&le;</mo><msub><mi>t</mi><mi>s</mi></msub><mo>,</mo><mfrac><msub><mi>t</mi><mi>s</mi></msub><msup><mn>10</mn><mn>5</mn></msup></mfrac><mo>&le;</mo><msub><mi>t</mi><mi>sample</mi></msub><mo>&le;</mo><mfrac><msub><mi>t</mi><mi>s</mi></msub><mn>10</mn></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0000681841940000011.GIF" wi="748" he="125" /></maths>(2)建立无刷直流电机系统的离散模型结构;建立无刷直流电机系统以电压为输入,以角速率为输出的传递函数G(s),其中s为连续域复变量,将G(s)离散化,得到无刷直流电机系统的离散模型结构<img file="FDA0000681841940000012.GIF" wi="861" he="166" />其中z为离散域复变量,z<sup>‑1</sup>为z的倒数,n<sub>a</sub>、n<sub>b</sub>分别为分母阶次和分子阶次,d为延迟时间,a<sub>1</sub>,<img file="FDA0000681841940000013.GIF" wi="215" he="85" />b<sub>0</sub>,<img file="FDA0000681841940000014.GIF" wi="191" he="84" />为无刷直流电机系统离散模型结构的待辨识参数;(3)建立无刷直流电机系统的状态方程和量测方程,采用自适应卡尔曼滤波算法辨识电机系统模型参数;依据步骤(2)中建立的离散模型结构,以待辨识参数<img file="FDA0000681841940000021.GIF" wi="663" he="92" />为状态变量,以步骤(1)中采集的输入电压u(k)和输出角速率ω(k)作为量测值,以<img file="FDA0000681841940000022.GIF" wi="1061" he="77" /><img file="FDA0000681841940000023.GIF" wi="841" he="76" />作为量测矩阵,建立无刷直流电机系统的状态方程和量测方程为:<img file="FDA0000681841940000024.GIF" wi="624" he="161" />其中A(k)为k时刻的一步转移矩阵,ε(k‑1)为k‑1时刻的系统噪声,ξ(k)为k时刻的量测噪声,采用自适应卡尔曼滤波算法辨识模型参数,得到<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>&theta;</mi><mo>=</mo><msup><mrow><mo>[</mo><msub><mi>a</mi><mn>1</mn></msub><mo>,</mo><msub><mi>a</mi><mn>2</mn></msub><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><msub><mi>a</mi><msub><mi>n</mi><mi>a</mi></msub></msub><mo>,</mo><msub><mi>b</mi><mn>0</mn></msub><mo>,</mo><msub><mi>b</mi><mn>1</mn></msub><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><msub><mi>b</mi><msub><mi>n</mi><mi>b</mi></msub></msub><mo>]</mo></mrow><mi>T</mi></msup></mrow>]]></math><img file="FDA0000681841940000025.GIF" wi="657" he="84" /></maths>在k时刻的参数辨识结果<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mover><mi>&theta;</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mo>[</mo><msub><mover><mi>a</mi><mo>^</mo></mover><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><msub><mover><mi>a</mi><mo>^</mo></mover><mn>2</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><msub><mover><mi>a</mi><mo>^</mo></mover><msub><mi>n</mi><mi>a</mi></msub></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000681841940000026.GIF" wi="621" he="91" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mover><mi>b</mi><mo>^</mo></mover><mn>0</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>,</mo><msub><mover><mi>b</mi><mo>^</mo></mover><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><msub><mover><mi>b</mi><mo>^</mo></mover><msub><mi>n</mi><mi>b</mi></msub></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><msup><mo>]</mo><mi>T</mi></msup><mo>;</mo></mrow>]]></math><img file="FDA0000681841940000027.GIF" wi="508" he="94" /></maths>采用自适应卡尔曼滤波算法辨识模型参数的步骤为:(a)设定一个M时刻,M通常的取值范围为500≤M≤2000,k<M时为自适应卡尔曼滤波算法的启动阶段,此时采用常规的卡尔曼滤波算法进行模型参数辨识,算法为:<img file="FDA0000681841940000031.GIF" wi="1101" he="539" />其中K(k)为k时刻的滤波增益,e(k)为k时刻的新息,P<sub>k/k‑1</sub>(k)为k时刻的一步预测方差,P<sub>v</sub>(k)为k时刻e(k)的理论方差,R(k)是k时刻的量测噪声理论方差,P(k)是k时刻估计误差的方差,设定常规的卡尔曼滤波算法的初值<img file="FDA0000681841940000032.GIF" wi="220" he="96" /><img file="FDA0000681841940000033.GIF" wi="436" he="81" />其中<img file="FDA0000681841940000034.GIF" wi="142" he="78" />表示(n<sub>a</sub>+n<sub>b</sub>+1)×(n<sub>a</sub>+n<sub>b</sub>+1)的单位阵;(b)当k≥M时,采用自适应卡尔曼滤波算法进行参数辨识,方法为:首先通过第M个时刻到第k个时刻的新息计算新息的实际方差C<sub>v</sub>(k),计算方法为:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>C</mi><mi>v</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>C</mi><mi>v</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mfrac><mn>1</mn><mrow><mi>k</mi><mo>-</mo><mi>M</mi><mo>+</mo><mn>1</mn></mrow></mfrac><mo>[</mo><mi>e</mi><msup><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><msub><mi>C</mi><mi>v</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>]</mo></mrow>]]></math><img file="FDA0000681841940000035.GIF" wi="942" he="133" /></maths>其中C<sub>v</sub>(k)的初值给定为0,然后以C<sub>v</sub>(k)代替新息理论方差P<sub>v</sub>(k)在滤波增益K(k)中的位置参与迭代计算,即可实现根据量测噪声特性变化自适应调整滤波增益K(k)的值;(4)当参数辨识结果满足收敛条件后停止迭代,获得无刷直流电机系统的辨识模型<img file="FDA0000681841940000036.GIF" wi="867" he="173" />其收敛条件以及获得无刷直流电机系统的辨识模型的方法为:(a)在参数辨识过程中,如果有连续N个时刻的<img file="FDA0000681841940000037.GIF" wi="524" he="89" />则认为参数收敛,停止迭代,N通常取大于等于3000的数值;(b)对最后N个时刻的参数辨识结果取平均值,将该平均值作为辨识模型的参数<img file="FDA0000681841940000041.GIF" wi="630" he="100" />从而得到辨识模型<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mover><mi>G</mi><mo>^</mo></mover><mrow><mo>(</mo><mi>z</mi><mo>)</mo></mrow><mo>=</mo><msup><mi>z</mi><mrow><mo>-</mo><mi>d</mi></mrow></msup><mfrac><mrow><msub><mover><mi>b</mi><mo>^</mo></mover><mn>0</mn></msub><mo>+</mo><msub><mover><mi>b</mi><mo>^</mo></mover><mn>1</mn></msub><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><msub><mover><mi>b</mi><mo>^</mo></mover><mn>2</mn></msub><msup><mi>z</mi><mrow><mo>-</mo><mn>2</mn></mrow></msup><mo>+</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>+</mo><msub><mover><mi>b</mi><mo>^</mo></mover><msub><mi>n</mi><mi>b</mi></msub></msub><msup><mi>z</mi><mrow><mo>-</mo><msub><mi>n</mi><mi>b</mi></msub></mrow></msup></mrow><mrow><mn>1</mn><mo>+</mo><msub><mover><mi>a</mi><mo>^</mo></mover><mn>1</mn></msub><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><msub><mover><mi>a</mi><mo>^</mo></mover><mn>2</mn></msub><msup><mi>z</mi><mrow><mo>-</mo><mn>2</mn></mrow></msup><mo>+</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>+</mo><msub><mover><mi>a</mi><mo>^</mo></mover><msub><mi>n</mi><mi>a</mi></msub></msub><msup><mi>z</mi><mrow><mo>-</mo><msub><mi>n</mi><mi>a</mi></msub></mrow></msup></mrow></mfrac><mo>.</mo></mrow>]]></math><img file="FDA0000681841940000042.GIF" wi="855" he="173" /></maths>
地址 100191 北京市海淀区学院路37号