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

卡尔曼

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
卡尔曼
8 s) k& ^! P1 F5 |2 x; W) r, }  Y" ?  p  f5 C! m5 Q. J
clear clc;( R- j8 W3 S9 e4 |4 _$ l
N=600;%采样点的个数  
7 U; ], Z; G$ Z1 X1 B) cCON=25;%室内温度的理论值! I4 d. e: G) k# A% i( X5 y
x=zeros(1,N);%用来记录温度的最优化估算值  $ l! N( n  \5 G( k
y=randn(1,N)+CON;%温度计的观测值,其中叠加了噪声
% p# j. l9 n" x0 _/ Ex(1)=20;%为x(k)赋初值- n3 B3 {5 `4 Q
p(1)=2;%x(1)对应的协方差
$ s& |4 l% s# o& ]. G3 I7 MQ=cov(randn(1,N));%过程噪声的协方差
9 \( R, [$ D  ^. ZR=cov(randn(1,N));%测量噪声的协方差
) `% i% r0 \$ Y% Vfor k=2:N%循环里面是卡尔曼滤波的具体过程   
: m) T$ c  |- m7 ~) D9 R/ wx(k)=x(k-1);   
$ G8 C" t, W0 m3 K1 }8 Y. b0 Tp(k)=p(k-1)+Q;     : K0 Z2 V* b9 |4 s/ ?8 w
Kg(k)=p(k)/(p(k)+R);%Kg为Kalman Gain,卡尔曼增益     ( S$ |6 [( H% h
x(k)=x(k)+Kg(k)*(y(k)-x(k));       n; O+ ]/ ~& T  j7 v
p(k)=(1-Kg(k))*p(k);
+ y' b4 ~0 {, u& i9 Vend  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %这个模块起到平滑滤波作用( c/ f) w" G6 ~& A1 R4 E
Filter_Width=10;%滤波器带宽& i7 b& o: {2 c: ^, q
Smooth_Result=zeros(1,N);%用来存放滤波后的各个采样点的值
5 X( }6 O/ x7 Z/ N! x9 v3 yfor i=Filter_Width+1:N     
) p$ C% s9 v* z7 G, {5 RTemp_Sum=0;      3 o6 P6 c; b( T8 x, s
for j=i-Filter_Width: (i-1)      . \5 q! [9 Z' E' d$ i! I
Temp_Sum=x(j)+Temp_Sum;   $ e- r& [9 r, @* g
end      7 w; D) w4 d/ |2 P
Smooth_Result(i)=Temp_Sum/Filter_Width;%每一个点的采样值等于这个点之前的filter_width长度的采样点的平均值4 l' I8 E7 w, N* b  N( J. Z# B3 E
end  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%3 K; z+ X" W! Z2 D
t=1:N;  7 B2 F& l; a( L: _# K
figure('Name','Kalman Filter Simulation','NumberTitle','off');% h. l' D* @  U% z- w( r1 i, F1 S
expected_Value=zeros(1,N);3 h% d" f3 d4 Y, L+ L* A
for i=1:N      ; G- }1 d3 a% \2 u. w
expected_Value(i)=CON;
7 v: x5 w! U- U, ~end
* ^/ x$ s) q4 Z$ p) j. u3 l8 z' oplot(t,expected_Value,'-b',t,y,'-g',t,x,'-k',t,Smooth_Result,'-m');%依次输出理论值,叠加测量噪声的温度计测量值,6 U- ~2 v  V& e. w4 r7 `. [4 a* H$ k! g
legend('expected','measure','estimate','smooth result');           %经过kalman滤波后的最优化估算值,平滑滤波后的输出值
* x! n& D! }6 s: I, o' xxlabel('sample time');2 K: C; Y5 N6 g7 W) u: Y! h8 G
ylabel('temperature');  title('Kalman Filter Simulation');
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-5 15:00 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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