卡尔曼滤波
受噪声干扰的状态量是个随机量, 受噪声干扰的状态量是个随机量,不可 能测得精确值,但可对它进行一系列观测, 能测得精确值,但可对它进行一系列观测, 并依据一组观测值, 并依据一组观测值,按某种统计观点对它进 行估计。使估计值尽可能准确地接近真实值, 行估计。使估计值尽可能准确地接近真实值, 这就是最优估计。 这就是最优估计。真实值与估计值之差称为 估计误差。 估计误差。若估计值的数学期望与真实值相 等,这种估计称为无偏估计。 这种估计称为无偏估计。
卡尔曼滤波是以最小均方误差为估计的 最佳准则,来寻求一套递推估计的算法, 最佳准则,来寻求一套递推估计的算法,其 基本思想是: 基本思想是:采用信号与噪声的状态空间模 型,利用前一时刻的估计值和现时刻的观测 值来更新对状态变量的估计, 值来更新对状态变量的估计,求出现在时刻 的估计值。它适合于实时处理和计算机运算。 的估计值。它适合于实时处理和计算机运算。
2.为什么要用状态估计理论
在许多实际问题中,由于随机过程的存在, 在许多实际问题中,由于随机过程的存在,常 常不能直接获得系统的状态参数, 常不能直接获得系统的状态参数,需要从夹杂着随 机干扰的观测信号中分离出系统的状态参数。例如, 机干扰的观测信号中分离出系统的状态参数。例如, 飞机在飞行过程中所处的位置、速度等状态参数需 飞机在飞行过程中所处的位置、 要通过雷达或其它测量装置进行观测, 要通过雷达或其它测量装置进行观测,而雷达等测 量装置也存在随机干扰,因此在观测到飞机的位置、 量装置也存在随机干扰,因此在观测到飞机的位置、 速度等信号中就夹杂着随机干扰, 速度等信号中就夹杂着随机干扰,要想正确地得到 飞机的状态参数是不可能的, 飞机的状态参数是不可能的,只能根据观测到的信 号来估计和预测飞机的状态,这就是估计问题。 号来估计和预测飞机的状态,这就是估计问题。
一般,数字滤波器的FPGA实现是用 VHDL或 HDL等硬件描述语言通过编 VHDL或Verilog HDL等硬件描述语言通过编 写底层代码实现。 这种编程方式效率低, 写底层代码实现 。 这种编程方式效率低 , 难 度大。 利用Altera 公司FPGA DSP开发工 Altera公司 FPGA的 度大 。 利用 Altera 公司 FPGA 的 DSP 开发工 Builder设计卡尔曼滤波器 设计卡尔曼滤波器, 具DSP Builder设计卡尔曼滤波器,比基于 硬件描述语言的设计,周期更短,设计更容易。 硬件描述语言的设计,周期更短,设计更容易。
从观测到的信号中估计出状态的估值, 从观测到的信号中估计出状态的估值, 并且希望估值与状态的真值越小越好, 并且希望估值与状态的真值越小越好,即要 求有: ˆ 成立; 求有: x(t ) − x(t ) = min 成立; 因此存在最优估计问题, 因此存在最优估计问题,这就是卡尔曼 滤波。 滤波。 卡尔曼滤波的最优估计需满足以下三个 条件: 条件: ·无偏性,即估计值的均值等于状态的 无偏性, 真值; 真值; 估计的方差最小; ·估计的方差最小; 实时性。 ·实时性。
卡尔曼滤波控制系统结构图 由于系统的状态x是不确定的, 由于系统的状态x是不确定的,卡尔曼滤波器的 任务就是在有随机干扰w和噪声v 任务就是在有随机干扰w和噪声v的情况下给出系统 状态x 状态x的最优估算值 ,它在统计意义下最接近状 态的真值x 从而实现最优控制u( )的目的 的目的。 态的真值x,从而实现最优控制u( )的目的。
现代控制理论是建立在状态空间基础上 它不用传递函数, 的,它不用传递函数,而是用状态向量方程 作为基本工具,因此可以用来分析多输入— 作为基本工具,因此可以用来分析多输入— 多输出、非线性以及时变复杂系统的研究。 多输出、非线性以及时变复杂系统的研究。 现代控制理论本质上是时域法, 现代控制理论本质上是时域法,信号的描述 和传递都是在时间域进行, 和传递都是在时间域进行,所以现代控制理 论具有实现实时控制的能力。 论具有实现实时控制的能力。由于采用了状 态空间法, 态空间法,现代控制理论有利于设计人员根 据给定的性能指标设计出最优的控制系统。 据给定的性能指标设计出最优的控制系统。
状态估计对于了解和控制一个系统具 有重要意义, 有重要意义,所应用的方法属于统计学中 的估计理论。最常用的是最小二乘估计, 的估计理论。最常用的是最小二乘估计, 线性最小方差估计、最小方差估计、 线性最小方差估计、最小方差估计、递推 最小二乘估计等。 最小二乘估计等。其他如风险准则的贝叶 斯估计、最大似然估计、 斯估计、最大似然估计、随机逼近等方法 也都有应用。 也都有应用。Biblioteka 3.经典控制理论与现代控制理论
经典控制理论只适应与单输入— 经典控制理论只适应与单输入—单输 出的线性定常系统,研究方法是传递函数。 出的线性定常系统,研究方法是传递函数。 传递函数在本质上是一种频率法, 传递函数在本质上是一种频率法,要靠各 个频率分量描述信号。因此, 个频率分量描述信号。因此,频率法限制 了系统对整个过程在时间域内进行控制的 能力, 能力,所以经典控制理论很难实现实时控 同时, 制。同时,经典控制理论也很难实现最优 控制。 控制。
基于现场可编程逻辑门阵列FPGA器件和 基于现场可编程逻辑门阵列FPGA器件和 FPGA 模数转换器设计的数据采集系统为硬件平台, 模数转换器设计的数据采集系统为硬件平台, 进行算法设计。基于模块化设计思想, 进行算法设计。基于模块化设计思想,设计 时钟分频模块、AD转换芯片的FPGA控制模 转换芯片的FPGA 时钟分频模块、AD转换芯片的FPGA控制模 块和卡尔曼滤波模块。 块和卡尔曼滤波模块。卡尔曼滤波模块采用 Builder设计 设计, DSP Builder设计,转换成硬件描述语言 VHDL后 应用软件Modelsim Modelsim、 VHDL后,应用软件Modelsim、QuartusII 进行仿真并完成硬件验证。 进行仿真并完成硬件验证。
卡尔曼滤波的实质是由量测值重构系统 的状态向量。它以“预测—实测 修正” 实测—修正 的状态向量。它以“预测 实测 修正”的 顺序递推, 顺序递推,根据系统的量测值来消除随机干 再现系统的状态, 扰,再现系统的状态,或根据系统的量测值 从被污染的系统中恢复系统的本来面目。 从被污染的系统中恢复系统的本来面目。
卡尔曼滤波特点: 卡尔曼滤波特点: 卡尔曼滤波是解决状态空间模型估计与 预测的有力工具之一,它不需存储历史数据, 预测的有力工具之一,它不需存储历史数据, 就能够从一系列的不完全以及包含噪声 噪声的 就能够从一系列的不完全以及包含噪声的测 估计动态系统的状态。 动态系统的状态 量中,估计动态系统的状态。卡尔曼滤波是 一种递归的估计, 递归的估计 一种递归的估计,即只要获知上一时刻状态 的估计值以及当前状态的观测值就可以计算 出当前状态的估计值, 出当前状态的估计值,因此不需要记录观测 或者估计的历史信息。
从以上分析可以看出卡尔曼滤波就是在 有随机干扰和噪声的情况下, 有随机干扰和噪声的情况下,以线性最小方 差估计方法给出状态的最优估计值, 差估计方法给出状态的最优估计值,卡尔曼 滤波是在统计的意义上给出最接近状态真值 的估计值。因此卡尔曼滤波在空间技术、 的估计值。因此卡尔曼滤波在空间技术、测 导航、 轨、导航、拦截与通讯等方面获得了广泛的 应用。 应用。
目前, 目前,卡尔曼滤波器已经有很多不同的实 现形式。 现形式。卡尔曼最初提出的形式现在一般称 为简单卡尔曼滤波器。除此以外, 为简单卡尔曼滤波器。除此以外,还有施密特 扩展卡尔曼滤波器, 扩展卡尔曼滤波器,信息滤波器以及平方根滤 波器。 波器。最常见的卡尔曼滤波器是锁相环 ,采 用FPGA硬件可以实现卡尔曼滤波器。 FPGA硬件可以实现卡尔曼滤波器。 硬件可以实现卡尔曼滤波器
卡尔曼提出的递推最优估计理论, 卡尔曼提出的递推最优估计理论,采用 状态空间描述法,在算法采用递推形式, 状态空间描述法,在算法采用递推形式,卡 尔曼滤波能处理多维和非平稳的随机过程。 尔曼滤波能处理多维和非平稳的随机过程。 卡尔曼滤波理论的提出, 卡尔曼滤波理论的提出,克服了威纳滤 波理论的局限性使其在工程上得到了广泛的 应用,尤其在控制、制导、导航、 应用,尤其在控制、制导、导航、通讯等现 代工程方面。 代工程方面。
1. 状态估计原理 2. 为什么要用状态估计理论 为什么要用状态估计理论 3. 经典控制理论与现代控制理论 4. 什么是卡尔曼滤波 5.卡尔曼滤波器的软硬件实现 5.卡尔曼滤波器的软硬件实现 6.卡尔曼滤波器的应用 6.卡尔曼滤波器的应用
1.状态估计原理 1.状态估计原理
状态估计是卡尔曼滤波的重要组成部 分。一般来说,根据观测数据对随机量进 一般来说, 行定量推断就是估计问题, 行定量推断就是估计问题,特别是对动态 行为的状态估计, 行为的状态估计,它能实现实时运行状态 的估计和预测功能。 的估计和预测功能。比如对飞行器状态估 计。
卡尔曼滤波简介
• 背景介绍: 背景介绍: • Kalman,匈牙利数学家。 • 卡尔曼滤波器源于他的博士论 文和1960年发表的论文《A New Approach to Linear Filtering and Prediction Problems》(线 性滤波与预测问题的新方法)。
估计原理和卡尔曼滤波
ˆ x
ˆ x
4.什么是卡尔曼滤波: 4.什么是卡尔曼滤波: 什么是卡尔曼滤波
卡尔曼滤波是美国工程师Kalman 卡尔曼滤波是美国工程师Kalman 在线性 最小方差估计的基础上, 最小方差估计的基础上,提出的在数学结构 上比较简单的而且是最优线性递推滤波方法, 上比较简单的而且是最优线性递推滤波方法, 具有计算量小、存储量低,实时性高的优点。 具有计算量小、存储量低,实时性高的优点。 特别是对经历了初始滤波后的过渡状态, 特别是对经历了初始滤波后的过渡状态,滤 波效果非常好。 波效果非常好。
硬件实现:卡尔曼滤波器有良好的滤波效果, 硬件实现:卡尔曼滤波器有良好的滤波效果, 但由于其计算量大,当采样率高时, 但由于其计算量大,当采样率高时,一个采样 周期内难以完成计算,且计算机的字长有限, 周期内难以完成计算,且计算机的字长有限, 使计算中舍入误差和截断误差积累、传递, 使计算中舍入误差和截断误差积累、传递,造 成数值不稳定,因此用MCU DSP难以实现 MCU和 难以实现。 成数值不稳定,因此用MCU和DSP难以实现。 FPGA可以实现并行计算 可以实现并行计算, FPGA可以实现并行计算,它有多个乘法器和 累加器并行处理数据,采用FPGA FPGA实现的卡尔 累加器并行处理数据,采用FPGA实现的卡尔 曼滤波器,由于输入和输出数据计算同时进行, 曼滤波器,由于输入和输出数据计算同时进行, 因此可以大大提高滤波速度。