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

卡尔曼滤波基本方程

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    %Title卡尔曼滤波基本方程: N/ E3 R7 _: d( Q
    %A1初始化
    6 ^$ C" V- i3 S# N. S/ V2 T+ o" H# ]# ]" @6 o
    %A1.1参数初始化' w+ B2 U& b  `* M: t. v) R3 G6 W
    N=200;5 }8 G" U. k) [% O

    8 l* v3 S% H3 ?2 b% ^Xa=zeros(N,1);%预估值; S" d: N; L$ R. X3 p, S4 Q
    X=zeros(N,1);%当前时刻最优估计值
    ( s  t3 ]5 T- H4 p  lPa=zeros(N,1);%Xa的方差矩阵* I! T$ N5 M& y* y1 [! D: S9 k
    P=zeros(N,1);%X的方差矩阵9 o% S  j; D& o& d3 ?' c8 ~8 e
    Kg=ones(N,1);%卡尔曼增益
    ' ~: I! |# {+ \+ ^* P& O1 N) C& x& r6 j/ D1 ~& L
    Z=zeros(N,1);%观测值9 ~& b* t  N( _5 F0 A" I' y; l

    - z" r0 M4 E. S) k6 MW=randn(N,1);%过程噪声1 P3 h) V; W% k. f# u$ U+ E1 _# K; ^
    stdW=std(W);%标准差9 v! J; L7 f! y5 ?
    varW=stdW.^2;%方差/ C  o4 d% j+ X" G0 t$ t
    V=0.5*randn(N,1);%观测噪声
    9 w! \4 j& K4 M- j  V6 wstdV=std(V);%标准差# ?3 O- c9 A. Z2 P9 A" \. G
    varV=stdV.^2;%方差5 i# W2 [9 X, Z; }8 e4 d
    % b( ~; {6 {2 p3 x) g6 ?
    A=1;! H1 I9 P$ a8 t
    H=1;
    ) W( k, A4 H7 H% C- ]
    ' K+ z7 F4 b. y/ j( q" e%A1.2状态初始化
      j8 y2 x" t* O- b6 K7 sX(1)=23;%初始估计温度& W' X1 _  v: a. j  y
    P(1)=10;%初始估计方差
    % P7 N* l$ r3 f" E/ E+ \Z(1)=25+V(1);
    # ]# \  q. P$ C4 p: rXa(1)=23+W(1);
    ; L* K# e' x2 W: B
    ' k8 X' ?& z5 s8 H3 q" A* |* I%卡尔曼滤波
    & ^9 l' l& H' b& Y7 c: qfor k=2:N
    8 N9 F7 Z; Z: K/ v% c    %预估
    " ^# `5 [" k# v& Q! B, l    Xa(k)=A*X(k-1);5 ?7 e& J3 ^# q- S) n; s
        Pa(k)=A*P(k-1)*A'+varW;$ A) C) h& ?/ G5 w; |. u5 I
    0 O& t' A$ {5 T' P+ z
        %校正
    9 Q$ a$ ]. k! M    Kg(k)=Pa(k)*H'/(H*Pa(k)*H'+varV);3 \( v% Y5 ?7 Q7 Q( Q, P! t+ n
        Z(k)=25+V(k);%25是真实温度值
    . k& |1 }" E; L8 b    X(k)=Xa(k)+Kg(k)*(Z(k)-H*Xa(k));# Y+ [: g  T5 P3 d  E5 O& ]" B
        P(k)=(1-Kg(k)*H)*Pa(k);
    ; Q& ~) w( p, ^( u( ?/ r) D; eend" Z8 Z3 c, y: d9 ]

    4 I( z- s: b/ L$ L; I- Nt=1:N;
    6 B- D- w( s2 q' ZrealVal=25*ones(N,1);9 k# m; @1 v, b- g2 s

    ' R& ?: r- F! w* g: yplot(t,realVal,'y',t,Z,'c',t,Xa,'b',t,X,'r');
    . j" W' t: t/ kaxis([0 N 20 30]);
    ! Q9 v- i0 w/ d' `. A! D( }legend('真实值','观测值','预估值','估计值');
      M( [) Z1 h/ ~" B/ I2 o. Ugrid on;# w+ N) N! G5 Z/ ]9 ^' v

    1 s+ ^8 y  v2 r5 J6 Ltitle('Kalman Filter');7 E( S! B4 Q* X9 z7 c

    % U. I$ Z9 C" W%realVal真实值;Z观测值;Xa预估值;X最优估计值;W过程噪声;V观测噪声
    8 n, |- L' A  a( X. U1 _3 m! n4 X2 j  V" i3 p& Y# n
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-18 00:02 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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