找回密码
 注册
关于网站域名变更的通知
查看: 481|回复: 1
打印 上一主题 下一主题

卡尔曼滤波基本方程

[复制链接]
  • TA的每日心情
    难过
    2019-11-19 16:03
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-1-15 13:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    %Title卡尔曼滤波基本方程9 c  W8 T  H( ^5 t' W# U5 }1 E4 N( |7 R
    %A1初始化' g+ I% e# i( |
    & ?  ~" `4 p3 r' Y- t& g# f3 D" |
    %A1.1参数初始化
    # U# d0 x$ d( P2 O! g- }N=200;
    ) P+ Y5 j' G2 h; N! |) S5 R5 V" b6 B4 p5 o  h  [/ j+ e
    Xa=zeros(N,1);%预估值9 S' Z6 ?8 L: M7 q0 _: F+ D) P6 w
    X=zeros(N,1);%当前时刻最优估计值9 }- |+ Y/ V" `- m8 Z0 p% s( n
    Pa=zeros(N,1);%Xa的方差矩阵
    + \; L: V7 Y2 G9 a0 ZP=zeros(N,1);%X的方差矩阵; B9 O9 ]0 b  x) b0 R0 `; W
    Kg=ones(N,1);%卡尔曼增益
    - {$ |7 t5 k3 u' f' y  A& \) I# c
    1 u0 j" v8 M! ?* U8 CZ=zeros(N,1);%观测值( }' W8 x6 v+ d( C2 A) F% H
      S  t; T1 s; @8 N: q
    W=randn(N,1);%过程噪声
    - t3 }0 \4 J' w  dstdW=std(W);%标准差
    2 u2 _( L7 H2 h/ @& ]0 t. v' p1 evarW=stdW.^2;%方差$ o. @$ z7 V; ~0 z
    V=0.5*randn(N,1);%观测噪声
    + Q/ F4 _6 k( p6 A- V/ ?stdV=std(V);%标准差
    5 x" P$ e( M  y5 `  xvarV=stdV.^2;%方差5 V  u: }$ z& u
    ' J% H* W$ V; P# h0 P! H8 Z* z
    A=1;) F9 l% I& }& [3 f) I' ?7 Z+ K% _7 e
    H=1;9 b4 w5 ]( f: i6 R7 ]3 m* R- O
    / D( R  t7 F) y& l, B4 @* ~
    %A1.2状态初始化
    7 S( L6 T. D0 E  @3 rX(1)=23;%初始估计温度. b4 X" e" p. ?  L4 ]; s9 u8 K
    P(1)=10;%初始估计方差
    6 l% y8 k4 R9 }) B, ?Z(1)=25+V(1);
    * D/ G* s9 J, X! \Xa(1)=23+W(1);5 B, L! ^+ V3 n/ a& E9 O
    ; Q0 M# z% k( A. V% |( u9 c
    %卡尔曼滤波: H4 c/ m3 @& M4 z1 I  U
    for k=2:N
    $ y, ]. Q" D/ k8 J/ V( [2 a    %预估
    5 H  r1 B- t+ L7 i" A9 j    Xa(k)=A*X(k-1);
    & \( m0 {( X1 U' c7 E    Pa(k)=A*P(k-1)*A'+varW;
    # ^/ ~. C# y& U; L8 G$ n$ u& h+ [+ G8 Y7 F5 X* w& I' I
        %校正
    7 u! l7 v, R' ?2 O3 S% i/ ]    Kg(k)=Pa(k)*H'/(H*Pa(k)*H'+varV);( z5 u# Y' b4 ?1 x3 l
        Z(k)=25+V(k);%25是真实温度值3 U7 ]6 m4 e' M" j
        X(k)=Xa(k)+Kg(k)*(Z(k)-H*Xa(k));9 |3 X, T5 L. h, b- m; \
        P(k)=(1-Kg(k)*H)*Pa(k);) Q) B4 _( d, n& a
    end
    + w' p  n) B  \
    9 l  @% o( A7 M* L0 d4 E) R. |8 m: h- rt=1:N;/ H7 T) A+ s7 S) \' x1 N
    realVal=25*ones(N,1);  k$ h, z# C- I1 g

    4 {7 u8 G" x& s. N4 wplot(t,realVal,'y',t,Z,'c',t,Xa,'b',t,X,'r');
    % m. D7 K, R' P& ?" maxis([0 N 20 30]);1 q# I$ N0 ]# R$ a& w6 u
    legend('真实值','观测值','预估值','估计值');
    - E' k7 O  U3 i2 n1 _/ Ugrid on;
    ' Q# w: X! r4 B6 {+ d3 R) r# r- V" C+ d" i: ?$ @6 M- z  y/ {; m" t
    title('Kalman Filter');3 u" _1 s2 C7 Z3 l" `! G8 m3 t
    - T7 n9 V& s8 c
    %realVal真实值;Z观测值;Xa预估值;X最优估计值;W过程噪声;V观测噪声
    7 L3 T6 x0 Q9 T9 D' t* H8 h4 O0 q2 C* Y  j' N/ u
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-21 17:32 , Processed in 0.078125 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表