卡尔曼滤波仿真模型源代码MATLAB算法原理资料kalman实现温度资料

内容分享1周前发布
11 1 0

卡尔曼滤波仿真模型源代码资料

一共有43个文件,格式是pdf/word/ppt/rar,仿真模型是m、c等格式,总容量是8.75M。宝贝是全天自动发货,无需咨询,直接购买即可,下单后1分钟内自动发百度网盘连接和提取码给您哦

本宝贝包含以下文件:

1-卡尔曼实战一—C和C++语言实现

2-卡尔曼滤波学习细节

3-MATLAB卡尔曼滤波应用——运动目标检测估计

4-Simulink卡尔曼仿真实现

5-卡尔曼滤波温度MATLAB代码

6-卡尔曼滤波——陀螺仪加速度计MATLAB仿真

Kalman滤波器的特点

1.卡尔曼滤波器是以最小均方误差为准则的最佳线性估计和滤波。

2.卡尔曼滤波器只需要前一个状态的估计值和当前的观测值就可以估计当前状态,是一种递推的方法。

3.卡尔曼增益矩阵K的计算与观测值无关,因此可以事先计算增益矩阵,然后有一套观测值,就可以得到估计值,便于实时计算。

4.模型误差的问题、A,B,C模型非线性问题。

5.影响实时计算的障碍:状态维数n和增益矩阵的计算。

3、kalman滤波算法

由上一节的新息过程的相关知识和信息后,即可转入kalman滤波算法的核心问题的讨论:如何利用新息过程估计状态向量的预测?最自然的方法是用新息过程序列a(1)…a(n)的线性组合直接构造状态向量的一步预测:

$hat x_1 (n) = hat x (n+1|y(1),…,y(n)) = sum_{i=1}^n W_1(k) alpha (k)$

式中$W_1(k)$表示与一步预测的权矩阵,且k为离散时间。现在的问题是如何确定

(1)、状态向量的一步预测

根据正交性原理,最优预测的估计误差

$e(n+1,n) = x(n+1) – x_1 (n+1)$

2.2 卡尔曼滤波基本公式

设系统的状态方程为:

$X(k) = AX(k-1) + BU(k-1) + W(k-1)$

系统的测量方程:

$Z(k) = CX(k) + V(k)$

其中:

A(k-1)为状态转移矩阵; X(k-1)为状态向量;B(k-1)为输入控制矩阵;u(k-1)为输入或者控制信号;W(k-1)为零均值、白高斯过程噪声序列,其协方差为Q(k-1);C(k)为测量矩阵;V(k)为协方差为R(k)的零均值、白高斯测量噪声。用$hat X(k)$表示k时刻对随机信号X(k)的最优线性滤波估计值,用$hat X(k+1|k)$表示在k时刻对k+1时刻的信号X(k+1)的最优线性预测估计。卡尔曼滤波器的递推算法如下:

状态的一步预测方程(基于系统的上一个状态)

$hat X(k|k-1) = A(k-1)hat X(k-1|k-1) + B(k-1)U(k-1)$

协方差的一步预测

$P(k|k-1) = A(k-1)P(k-1|k-1)A^T(k-1) + Q(k-1)$

滤波增益方程

$K(k) = P(k|k-1)C^T(k)[C(k)P(k|k-1)C^T(k) + R(k)]^{-1}$

滤波估计方程

$hat X(k|k) = hat X(k|k-1) + K(k)[Z(k) – C(k)hat X(k|k-1)]$

滤波协方差更新方程

$P(k|k) = [I – K(k)C(k)]P(k|k-1)$

协方差的更新方程还有下面几种不同的形式:

s.R = 2^2; % variance, hence, stdev^2

s.Q = 0; % Do not define any system input (control) functions:

s.u = 0;%

s.A = nan;% Do not specify an initial state:

s.P = nan;%

% Generate random voltages and watch the filter operate.

tru=[1]; % truth voltage

for t=1:20

tru(end+1) = randn*2+12;% create a measurement

s(end).z = tru(end) + randn*2;

s(end+1)=kalmanf(s(end)); % perform a Kalman filter iteration

end

figure

hold on

grid on

% plot measurement data:

hz=plot ([s(1:end-1].z],’r*’);

% plot a-posteriori state estimates:

hk=plot ([s(2:end].x],’b-‘);

ht=plot (tru,’g-‘);

legend([hz hk ht],’g-‘,’b-‘);

title(‘Automobile Voltimeter Example’);

hold off

Kalman的参数中s.Q 和s.R的设置

过实验统计得到,它们分布代表了状态和测量的误差。

Kalman滤波的效果是使输出变得更平滑,但无法去除信号中原有的脉盐噪声,而且Kalman滤波也会跟踪这些脉盐噪声点,因此推荐使用Kalman滤波前先使用中值滤波去除脉盐噪声。

卡尔曼滤波仿真模型源代码MATLAB算法原理资料kalman实现温度资料卡尔曼滤波仿真模型源代码MATLAB算法原理资料kalman实现温度资料卡尔曼滤波仿真模型源代码MATLAB算法原理资料kalman实现温度资料卡尔曼滤波仿真模型源代码MATLAB算法原理资料kalman实现温度资料卡尔曼滤波仿真模型源代码MATLAB算法原理资料kalman实现温度资料卡尔曼滤波仿真模型源代码MATLAB算法原理资料kalman实现温度资料卡尔曼滤波仿真模型源代码MATLAB算法原理资料kalman实现温度资料卡尔曼滤波仿真模型源代码MATLAB算法原理资料kalman实现温度资料

© 版权声明

相关文章

1 条评论

none
暂无评论...