状态估计基础
什么是估计
观测数据-准则解算-状态估计
准则: 最小二乘准则;最小方差准则
- 1建立模型: zn=Axn+vn。建立模型有假设--卡尔曼滤波:线性模型,高斯白噪声。若非线性就线性化它--进行一阶泰勒展开,忽略高阶项(扩展卡尔曼滤波)。若噪声不是高斯的,也用其他方法
- 2设定准则 =设定代价函数:误差平方法最小,最小方差最小,极大似然最大。不同情况用不同准则
- 3最大化或最小化求取估计值。 求解的方法可以创新,近似,假设
卡尔曼滤波是递推的线性的最小方差估计 预测:天气预报
平滑:内插
滤波:利用当前时刻的量测估计当前时刻的状态=实时估计
最小二乘估计
一般最小二乘
一般最小二乘对所有观测值不分优劣,权重均相同
加权最小二乘
递推最小二乘
两种理解方式:
- 如上式,当前估计=上一时刻估计+修正,修正=权重×新息
- 第二种理解方式:把式子拆成
,当前时刻的估计等于在上一时刻估计和当前测量之间的加权求和
- 估计和测量的权重由各自的方差(各自的精度)(不确定度)决定
最小二乘优缺点总结
线性最小方差估计
【注】两个假设解出的X结果一样!
- 如果X、Z不服从正态分布,则线性最小方差估计只是所有线性估计中的最优者
- 如果X、Z服从正态分布,则线性最小方差估计和最小方差估计等同,是在所有估计中的最优者
- 不管如何,最小方差估计就是所有估计中的最优者
线性最小方差估计需要知道一阶矩和二阶矩,如果它们不变,则此随机过程是平稳随机过程
问题一:若是非平稳随机过程,(一阶矩和二阶矩等统计特性会随着时间的变化而变化),上一时刻的统计特性知道了,有方法去求下一时刻的统计特性?---通过卡尔曼滤波的多出来的一个状态方程来迭代求解
问题二: 解决方法:引入递推式
卡尔曼滤波
离散系统的数学描述
- 离散化
- 出现了状态方程--解决非平稳随机过程的估计问题
如果是非线性模型,大概两个思路
- 模型线性化,最简单=扩展卡尔曼滤波 (最原始)---一阶泰勒展开后再用卡尔曼滤波
- 无迹卡尔曼滤波和粒子滤波,用一些离散的点去近似原本不满足的统计特性
☆☆重要的前提假设:
高斯白噪声 中的高斯是指概率分布是正态函数,而白噪声是指它的二阶矩不相关(自协方差只有当k=j,才不为零),一阶矩为常数(零均值),是指先后信号在时间上的相关性。
如果是非高斯的噪声的,就不能用卡尔曼滤波了。如有色噪声 就需要用一些方法转化为白噪声
Q和R要已知,如果它们是变化的,就得用自适应滤波
- 初始值要已知 ,是因为卡尔曼滤波是递推式的,要从初始值开始递推,而且初始值不准不要紧,后面会逐渐收敛
- 不相关 是因为后期推导有很多Xk和Wk、Vk的二阶矩(协方差),不相关就可以让这些二阶矩为0,简化推导;注意,因为Z=HX+V,所以Zk也与Wk、Vk不相关
卡尔曼滤波推导
思路:用状态方程 来用上一时刻的值来对当前时刻的值进行预测,传感器测出量测值,这两个值有一个权重,怎么衡量谁准?---误差的方差 ,
总结
注意到增益计算回路和实时测量值Zn无关,所以可以离线计算!
应用的问题:
定常系统:
实际应用的问题:(假设不满足):
☆☆卡尔曼滤波意义的总结
为什么噪声要零均值呢?
- ---为了保证估计error的均值为0,即保证估计的无偏性
为什么要有状态方程?
- 问题一:若是非平稳随机过程,(一阶矩和二阶矩等统计特性会随着 时间的变化而变化),上一时刻的统计特性知道了,有方法去求下一时刻的统计特性?---通过卡尔曼滤波的多出来的一个状态方程来迭代求解
为什么X、Z要服从正态分布?
- ---因为如果X、Z服从正态分布,则线性最小方差估计和最小方差估计等同,是在所有估计中的最优者;如果X、Z不服从正态分布,则线性最小方差估计只是所有线性估计中的最优者;不管如何,最小方差估计就是所有估计中的最优者
为什么用递推式
- 因为量测值越多,估计精度高,但矩阵阶数变大,计算量变大
卡尔曼滤波应用举例(代码讲解)
卡尔曼滤波五个方程是不变的,编程序要改变的只是输入。
matlab程序: