Kalman滤波在温度测量中的应用_第1页
Kalman滤波在温度测量中的应用_第2页
Kalman滤波在温度测量中的应用_第3页
Kalman滤波在温度测量中的应用_第4页
Kalman滤波在温度测量中的应用_第5页
免费预览已结束,剩余11页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字信号处理课程报告题目:Kalman滤波在温度测量中的应用院系:xxxxxxxxxxxxx学院专业:xxxxxxxxxxxxxx学生姓名:xxxxxxxx学号:xxxxxxxxx在许多工程实践中,往往不能直接得到所需要的状态量的真实值例。例如,平时用温度计测量房间温度时,可直接用温度计测得当前的温度,但是在测温过程中会受到各方面因素的影响,使温度会小幅度地波动。假设测量温度时,外界的天气是多云,阳光照射时有时无,同时房间不是100流封的,可能有微小的与外界空气的交换,导致在测得的温度中往往夹杂有随机噪声。Kalman滤波器就是这种能有效降低噪声影响的利器。在线性系统中,Kalman滤波是最优

2、滤波器。随着计算机技术的发展,Kalman滤波的计算要求与复杂性已不再成为其应用的障碍,它越来越受到人们的青睐。目前Kalman滤波理论已经广泛应用在国防、军事、跟踪、制导等许多高科技领域。关键词:Kalman滤波;滤波器;随机噪声;测量;温度ABSTRACTInmanyengineeringpractice,therealvalueoftherequiredamountofstatecannotbeobtaineddirectly.Forexample,whentheroomtemperatureismeasuredbyathermometer,thetemperaturecanbemeas

3、ureddirectlywiththethermometer,butthetemperaturewillbeaffectedbyvariousfactors.Ifthemeasurementtemperature,theoutsideweatheriscloudy,sometimeswhenthesunexposure,whiletheroomisnot100%sealed,theremaybeasmallexchangewiththeoutsideair,resultinginthemeasuredtemperatureisoftenmixedwithrandomnoise.Kalmanfi

4、lterisatoolwhichcaneffectivelyreducetheimpactofnoise.Inthelinearsystem,theKalmanfilteristheoptimalfilter.Withthedevelopmentofcomputertechnology,thecomputationalrequirementsandcomplexityofKalmanfilteringarenolongerabarriertoitsapplication.Atpresent,thetheoryofKalmanfilterhasbeenwidelyusedinmanyhighte

5、chnologyfields,suchasdefense,military,tracking,guidanceandsoon.Keywords:Kalmanfilter;filter;randomnoise;measurement;temperature第一章绪论1.1.1 Kalman滤波的产生.1.1.2 Kalman滤波原理2.1.3 Kalman滤波的特点及其应用4.第二章Kalman滤波在温度测量中的应用5.第三章实验仿真7.3.1 MATLAB仿真程序1.3.2 仿真结果8.结束语.11.第一章绪论1.1 Kalman滤波的产生什么是滤波?滤波是指利用一定的手段抑制无用信号,增强有

6、用信号的数字信号处理过程。无用信号,也叫噪声,是指观测数据对系统没有贡献或者起干扰作用的信号。在工程应用中,如雷达测距、声呐测距、图像采集、声音录制等,只要是传感器采集和测量的数据,都携带噪声干扰。这种影响有的很微小,有的则会使信号变形、失真,有的严重导致数据不可用。那么滤波也不是万能的,滤波只能最大限度降低噪声的干扰,即有的滤波是不能完全消除噪声,有的则可能完全消除。滤波理论就是在对系统可观测信号进行测量的基础上,根据一定的滤波准则,采用某种统计量最优方法,对系统的状态进行估计的理论和方法。所谓最优滤波或最优估计是指在最小方差意义下的最优滤波或估计,即要求信号或状态的最优估值应与相应的真实值

7、的误差的方差最小。经典最优滤波理论包括Wiener(维纳)滤波理论和Kalman(卡尔曼)滤波理论。前者采用频域方法,后者采用时域状态空间方法。由于滤波器(维纳)是非递推的,计算量和存储量大,难以在工程上实现,不便于实时应用,它仅适用于单通道平稳随机信号。人们试图将Wiener滤波推广到非平稳和多维的情况,都因无法突破计算机的困难而难以推广和应用。因此人们逐渐转向寻求在时域内直接设计最优滤波器的方法。Kalman在20世纪60年代初提出了Kalman滤波方法。Kalman滤波方法是一种时域方法。它把状态空间的概念引入随机估计理论中,把信号过程视为白噪声作用下的一个线性系统的输出,用状态方程来描

8、述这种输入-输出关系,估计过程中利用系统状态方程、观测方程和白噪声激励,及系统过程噪声和观测噪声,它们的统计特性形成滤波算法。由于所用的信息都是时域内的量,所以Kalman滤波不但可以对平稳的一维随机过程进行估计,也可以对非平稳的、多维随机过程进行估计。为实现对动态系统的控制,首先需要了解被控对象的实时状态。对于复杂动态系统应用,通常无法测量每一个需要控制的变量,而Kalman滤波能够利用这些有限的、不直接的、包含噪声的测量信息去估计那些缺失的信息。同时Kalman滤波算法是递推的,便于在计算机上实现实时应用,克服了经典Wiener滤波方法的缺点和局限性。1.2 Kalman滤波原理假设某系统

9、k时刻的状态变量为4,状态方程和量测方程(也称为输出方程)表示为xkdi=AkXk+wk(1.2.1)yk=CkXk+Vk(1.2.2)其中,k表示时间,这里指第k步迭代时,相应信号的取值;输入信号Wk是一白噪声,输出信号的观测噪声Vk也是一个白噪声,输入信号到状态变量的支路增益等于1,即B=1;A表示状态变量之间的增益矩阵,可以随时间发生变化,用A表示第k步迭代时,增益矩阵A的取值;C表示状态变量与输出信号之间的增益矩阵,可以随时间变化,第k步迭代时,取值用Ck表示,其信号模型如图1.2.1所示。(1.2.3)(1.2.4)将状态方程中时间变量k用k-1代替,得到的状态方程和测量方程如下所示

10、:Xk=A凶4Wk4yk=CkXkVk其中,xk是状态变量;wk1表示输入信号是白噪声;Vk是观测噪声;yk是观测数据。为了后面的推导简单起见,假设状态变量的增益矩阵A不随时间发生变化,wk,Vk都是均值为零的正态白噪声,方差分别是Qk和Rk,并且初始状态与Wk,Vk都不相关。Kalman滤波是采用递推的算法实现的,具基本思想是先不考虑输入信号wk和观测噪声Vk的影响,得到状态变量和输出信号(即观测数据)的估计值,再用输出信号的估计误差加权后校正状态变量的估计值,使状态变量估计误差的均方值最小。因此,Kalman滤波的关键是计算出加权矩阵的最佳值。当不考虑观测噪声和输入信号时,状态方程和量测方

11、程为X'=A?k(1.2.5)?k=CkX;=CkA5C(1.2.6)显然,由于不考虑观测噪声的影响,输出信号的估计值与实际值是有误差的,用yk表示yk=yk-?k(1.2.7)为了提高状态估计的质量,用输出信号的估计误差1k来校正状态变量?二人冗Hk(yk-7k)=AXk+Hk(yk-CkAXk)(1.2.8)其中,Hk为增益矩阵,实质是一加权矩阵。经过校正后的状态变量的估计误差及其均方值分别用Xk和R表示,把未经校正的状态变量的估计误差的均方值用P表示£=Xk-见(1.2.9)R=E(Xk双)(Xk几)(1.2.10)P=E(Xk-?')(Xk-X;)T(1.2.

12、11)Kalman滤波要求状态变量的估计误差的均方值R为最小,因此Kalman滤波的关键就是要得到R与Hk的关系式,即通过选择合适的Hk,使Pk取得最小值。经过递推,最终得到一组Kalman递推公式:Xk=A凡+Hk(ykCkA歌)(1.2.12)Hk=PCkT(CkPk'CkT十R)(1.2.13)P=AkPkJAkT+Qj(1.2.14)Pk=(I-HkCk)R'(1.2.15)假设初始条件已知,其中A,Ck,Qk,Rk,yk,兄,Pj已知,其中晶=Exo,B=varx01.3Kalman滤波的特点及其应用Kalman滤波是用状态空间法描述系统的,由状态方程和量测方程所组成

13、。Kalman滤波用前一个状态的估计值和最近一个观测数据来估计状态变量的当前值,并以状态变量的估计值的形式给出。Kalman滤波具有以下的特点:(1)算法是递推的,且状态空间法采用在时域内设计滤波器的方法,因而适用于多维随机过程的估计;离散型Kalman算法适用于计算机处理。(2)用递推法计算,不需要知道全部过去的值,用状态方程描述状态变量的动态变化规律,因此信号可以是平稳的,也可以是非平稳的,即Kalman滤波适用于非平稳过程。(3)Kalmanl采取的误差准则仍为估计误差的均方值最小。在实际应用中,Kalman滤波是统计估计理论的里程碑式的进展,同时也是20世纪最伟大的发现之一。一般地,只

14、要跟时间序列和高斯白噪声有关或者能建立类似的模型的系统,都可以利用Kalman滤波来处理噪声问题,都可以用其来预测、滤波。Kalman滤波主要应用领域有以下几个方面。(1)导航制导、目标定位和跟踪领域。(2)通信与信号处理、数字图像处理、语音信号处理。(3)天气预报、地震预报。(4)地质勘探、矿物开采。(5)故障诊断、检测。(6)证券股票市场预测。随着科技的不断发展进步,Kalman滤波理论也将不断完善,应用领域将更加广泛。第二章Kalman滤波在温度测量中的应用下面我将研究Kalman滤波在温度测量中的应用。根据经验判断,舒适的房间的温度大概在26c左右,可能受空气流通、阳光等因素影响,房间

15、内温度会小幅度地波动。我们以分钟为单位,定时测量房间温度,这里的1分钟,可以理解为采样时间。假设测量温度时,外界的天气是多云,阳光照射时有时无,同时房间不是100啾封的,可能有微小的与外界空气的交换,即引入过程噪声wk,其方差为Q,大小假定为Qk=0.01(假如不考虑过程噪声的影响,即真实温度是恒定的,那么这时候Qk=0)。对照式(1.2.1)和式(1.2.2),相应地,Ak=1,Qk=0.01,状态xk是在第k分钟时的房间温度,是一维的。那么该系统的状态方程可以写为xk=xkwk现在用温度计开始测量房间的温度,假设温度计的测量误差为±0.5C,从出厂说明书上我们得知该温度计的方差为

16、0.25。也就是说,温度计第k次测量的数据不是100%®确的,它是有测量噪声Vk的,并且其方差Rk=0.25,因此测量方程为yk=%+Vk。我们也很容易想到该系统的状态和观测方程为Xk二人冬Wkyk=Ckxkvk式中,xk是一维变量温度;A=1;Ck=1;Wk和Vk的方差为Qk和R。模型建好以后,就可以利用Kalman滤波了。假如要估算第k时刻的实际温度值,首先要根据第k-1时刻的温度值来预测k时刻的温度。(1) 假定第k-1时刻的温度值测量值为24.9C,房间真实温度为25C,该测量值的偏差是0.1C,即协方差P(k-1)=0.12。(2) 在第k时刻,房间的真实温度是25.1C,

17、温度计在该时刻测量的值为25.5C,偏差为0.4C。我们用于估算第k时刻的温度有两个温度值,分别是k-1时刻24.9C和k时刻的25.5C,如何融合这两组数据,得到最逼近真实值的估计呢?首先,利用k-1时刻温度值预测第k时刻的温度,其预计偏差Pj=P(k-1)+Qk=0.02,计算Kalman增益Hk=P/(R'+R)=0.0741,那么这时候利用k时刻的观测值,得到温度的估计值为几=24.9+0.0741*(25.1-24.9)=24.915Co可见,与24.9C和25.5C相比较,Kalman估计值24.915C更接近真实值25.1C。此时更新k时刻的偏差Pk=(I-HkCJR&#

18、39;=0.0186.最后由*=24.915C和Pk=0.0186,可以继续对下一时刻观测数据yk+进行更新和处理。(3)这样,Kalman滤波器就不断地把方差递归,从而估算出最优的温度值。当然,我们需要确定Kalman滤波器两个初始值,分别是和R。第三章实验仿真MATLAB一款主要用于数值计算和图像处理的工具软件。由于它采用了矩阵的形式存贮数据,因此在数据处理领域能够发挥速度快,效率高的优点。它包含了许多功能强大的工具箱,借助于这些工具箱,用户可以非常方便地进行数据分析和处理工作。止匕外,和其它软件比较,由于MATLAB于数据处理的针对性,它还具有代码简洁的优势。正是基于上述情况,本文采用了

19、MATLAB实现仿真,通过实验结果仿真图可以直观的看出,Kalman波的效果还是不错的,使估计的值更逼近真实值。3.1MATLAB仿真程序下面是实验仿真的一段简短程序,假设采样频率N为200,两个初始值为26.1C和0.0103 %4 functionmain5 %6 N=200;7 CON=26;8 Xexpect=CON*ones(1,N);9X=zeros(1,N);10Xkf=zeros(1,N);11y=zeros(1,N);12P=zeros(1,N);13X(1)=26.1;14P(1)=0.01;15y(1)=25.9;16Xkf(1)=y(1);17Q=0.01;18R=0.

20、25;19W=sqrt(Q)*randn(1,N);20V=sqrt(R)*randn(1,N);21A=1;22C=1;23I=eye(1);24%25fork=2:N26X(k尸A*X(k-1)+W(k-1);27y(k尸C*X(k)+V(k);28X_pre=A*Xkf(k-1);P_pre=A*P(k-1)*A'+Q;H=P_pre*inv(C*P_pre*C'+R);e=y(k)-C*X_pre;Xkf(k)=X_pre+H*e;P(k)=(I-H*C)*P_pre;end%Err_Messure=zeros(1,N);Err_Kalman=zeros(1,N);fo

21、rk=1:NErr_Messure(k)=abs(y(k)-X(k);Err_Kalman(k)=abs(Xkf(k)-X(k);endt=1:N;figure('Name','KalmanFilterSimulation','NumberTitle','off');plot(t,Xexpect,'-b',t,X,'-r',t,y,'-k',t,Xkf,'-g');legend('expected','real','measur

22、e','kalmanextimate');xlabel('sampletime');ylabel('temperature');title('KalmanFilterSimulation');figure('Name','ErrorAnalysis','NumberTitle','off');plot(t,Err_Messure,'-b',t,Err_Kalman,'-k');legend('messureerror','kalmanerror');xlabel('sampletime'

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论