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

卡尔曼滤波基本方程

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    %Title卡尔曼滤波基本方程
    ) T$ u2 j( g9 S, f( g8 i2 Q/ w3 ?%A1初始化
    7 ~+ K" g# K/ m$ s; H- p4 i' D5 o2 F/ h1 R0 ?! s
    %A1.1参数初始化$ q) i( ]. o1 `& |+ x' l
    N=200;
    6 r. P* \( c1 ~, r6 g$ Z4 e- V
      }) f$ n) U8 q# ^Xa=zeros(N,1);%预估值
    ; x5 z2 J  d4 O  J1 b# CX=zeros(N,1);%当前时刻最优估计值3 r2 E# U  x0 u. c6 `: e5 T: J7 b
    Pa=zeros(N,1);%Xa的方差矩阵1 l  H( K7 s1 e8 e
    P=zeros(N,1);%X的方差矩阵
    0 F! a, d  p  RKg=ones(N,1);%卡尔曼增益; m0 ^4 P+ J/ K- W$ z5 d& A

    - b. G; D$ w  ~1 @8 eZ=zeros(N,1);%观测值6 A2 u7 i* P  ]1 Z( S/ f

    . ^! j0 U( z7 a& T4 ]+ O9 T# IW=randn(N,1);%过程噪声
    % |; b; j. o8 F. V" ]6 \! sstdW=std(W);%标准差1 n: w# i7 M1 \) W* A
    varW=stdW.^2;%方差  D: n+ f+ F/ p1 r% j' w- p; ~  K
    V=0.5*randn(N,1);%观测噪声( }4 B' \" U1 m& [: A9 e
    stdV=std(V);%标准差1 t, n1 e) x# W
    varV=stdV.^2;%方差
    6 {* r/ v3 o& M, @) M- M3 w$ ^- V0 Q1 s3 G6 d# w5 N8 F4 I
    A=1;: x8 X5 i8 R( L  U
    H=1;  q: e* f- r) T- q; O
      U& F0 X2 c0 K
    %A1.2状态初始化: v. ~$ ~- _8 b/ z
    X(1)=23;%初始估计温度
    2 R8 ]2 `0 ~; dP(1)=10;%初始估计方差, H  W! ?: Z$ P% Y
    Z(1)=25+V(1);
    ! |# V, C( q0 l7 iXa(1)=23+W(1);
    * h. u0 m  `9 }, s- b, T
    $ s* f* T3 X, L8 N%卡尔曼滤波- k( b2 V) Z: _8 z) ]' c
    for k=2:N
    # @& }5 h$ n$ P    %预估& i$ a% \2 p3 D. j3 y
        Xa(k)=A*X(k-1);
    . I2 }" a' R) T: ~    Pa(k)=A*P(k-1)*A'+varW;; b. k6 I7 ], E) i, H( M" p$ \( q. b$ H

    6 t, i) T. ^: l    %校正& I/ P2 d/ ^, s' ~5 I$ R7 ?  r
        Kg(k)=Pa(k)*H'/(H*Pa(k)*H'+varV);
    0 s" o- ?8 H1 W* Z, L$ N5 {& o    Z(k)=25+V(k);%25是真实温度值
    ) ^8 e& z5 x. E$ B- M  P    X(k)=Xa(k)+Kg(k)*(Z(k)-H*Xa(k));
    9 R* ~# b5 W: C5 S) u    P(k)=(1-Kg(k)*H)*Pa(k);
    : E3 S  Q' n+ w, ]9 ?5 `+ x3 Lend
    ( R' Y+ s7 f6 h6 L
    0 U+ P  @0 b- Z- y3 }" z  Nt=1:N;9 Z' c, T! x1 N; i
    realVal=25*ones(N,1);0 `  ?6 F2 o0 |' k: L: ^

    0 }5 P0 q/ x  M1 W. P3 `1 Jplot(t,realVal,'y',t,Z,'c',t,Xa,'b',t,X,'r');' v# q+ w% ~) V* i% A) U- D4 m
    axis([0 N 20 30]);
    . V' S/ S# t4 C  glegend('真实值','观测值','预估值','估计值');1 x& k& Z9 G3 w( `1 @/ H1 _% W
    grid on;
    * @" U! y% U& R' x2 C  n' c' m. l0 Q% L( N
    title('Kalman Filter');( Q8 Y& f( q& p4 I, N% q& d7 k
    / c2 W) R7 d8 D, R! ]- y
    %realVal真实值;Z观测值;Xa预估值;X最优估计值;W过程噪声;V观测噪声
    % W( ]8 ?- x( Q+ L! @4 J
    5 a" @0 M- i2 G+ a) H% X
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-6-22 20:43 , Processed in 0.078125 second(s), 23 queries , Gzip On.

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

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

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