• 拓端tecdat|matlab稳态和时变卡尔曼滤波器Kalman filter的设计和仿真植物动力学模型案例研究


    原文链接:http://tecdat.cn/?p=24947

    原文出处:拓端数据部落公众号

    本案例研究说明了卡尔曼滤波器的设计和仿真。考虑稳态和时变卡尔曼滤波器。

    植物动力学

    考虑一个在输入u[n]上有加性高斯噪声w[n]。

    此外,让 yv[n] 是输出 y[n] 的噪声测量,其中 v[n] 表示测量噪声:

    离散卡尔曼滤波器

    该问题的稳态卡尔曼滤波器方程如下。

    • 测量更新:

    • 时间更新:

    在这些方程中:

    • ˆx[nn−1] 是 x[n] 的估计值,给定过去直到 yv[n−1] 的测量值。

    • ˆx[nn] 是基于最后一次测量 yv[n] 的更新估计。

    给定当前估计 ˆx[nn],时间更新预测下一个样本n  + 1的状态值 (提前一步预测)。然后,测量更新基于新的测量值 yv[n+1] 调整该预测。修正项是新值的函数,即 y[n+1] 的测量值和预测值之间的差异。这种差异由下式给出:

    给定噪声协方差,选择创新增益 M 以最小化估计误差的稳态协方差:

    您可以将时间和测量更新方程组合到一个状态空间模型中,即卡尔曼滤波器:

    该滤波器生成 yn 的最佳估计 ˆy[nn]。请注意,过滤器状态是 ˆx[nn−1]。

    稳态设计

    您可以使用函数 设计上述稳态卡尔曼滤波器 kalman。首先指定带有过程噪声的工厂模型:

    这里,第一个表达式是状态方程,第二个是测量方程。

    以下命令指定此工厂模型。采样时间设置为 -1,以将模型标记为离散模型而不指定采样时间。

    Pla = s

    假设 Q  =  R  = 1,设计离散卡尔曼滤波器。

    kalm

    此命令返回kalmf 滤波器的状态空间模型 以及创新增益 M

    M
    

    kalmf 的输入 是 u 和 yv,以及。输出是工厂输出和状态估计,ye=ˆy[nn] 和 ˆx[nn]。

    因为您对输出估计 ye 感兴趣,所以选择第一个输出 kalmf 并丢弃其余的。

    kalmf

    要查看滤波器的工作原理,请生成一些输入数据和随机噪声,并将滤波后的因变量 ye 与真实因变量 y 进行比较。您可以单独生成每个因变量,也可以同时生成两者。要分别模拟每个因变量,先单独使用 植物,然后将植物和过滤器连接在一起。接下来详细介绍联合仿真替代方案。

    下面的框图显示了如何生成真实输出和过滤输出。

    您可以使用函数和 构建此框图的状态空间模型 。首先构建一个完整的工厂模型,以 u、  w、  v 作为输入,  y 和 yv(测量值)作为输出。

    s(a,b,c,d,-1,'iptnme',{'u' 'w' 'v'},'ouutnae',{'y' 'yv'});

    然后形成下图的并联。

    pal(P,kf,1,1,[],[]);

    最后,通过将设备输出 yv 连接到具有正反馈的过滤输入 yv 来关闭传感器回路。

    1.  
      Smoe = feedback; % 围绕输入#4和输出#2关闭循环
    2.  
      SiMe = SMdl % 从I/O列表中删除yv

    生成的仿真模型将 w、  v、  u 作为输入,  y 和 ye 作为输出。查看属性进行验证。

    1.  
      InuNe
    2.  
       
    3.  
       
    4.  
      OupNme

     

    您现在已准备好模拟过滤器。生成正弦输入 u 并处理和测量噪声向量 w 和 v

    1.  
      n = length
    2.  
      w = sqrt*randn
    3.  
      v = sqrt*randn

    模拟因变量。

    1.  
      [out,x] = lsim
    2.  
       
    3.  
      y = out; % 真实响应
    4.  
      ye = out; % 滤过的响应
    5.  
      yv = y + v; % 测量响应

    以图形方式比较真实和过滤后的因变量。

    1.  
      plot
    2.  
      xlabel
    3.  
      title
    4.  
      subplot
    5.  
      xlabel

    第一个图显示了真实因变量 y  (虚线)和过滤后的输出 ye(实线)。第二个图将测量误差(点划线)与估计误差(实线)进行比较。该图显示噪音水平已显着降低。这是通过计算协方差误差来确认的。滤波前的误差协方差(测量误差)为:

    MEro = sum/length
    

    滤波后的误差协方差(估计误差)降低:

    EsrCv = sum/length
    

    时变卡尔曼滤波器

    时变卡尔曼滤波器是对时变系统或具有非平稳噪声协方差的 LTI 系统的稳态滤波器的推广。

    考虑以下工厂状态和测量方程。

    时变卡尔曼滤波器由以下递归给出:

    • 测量更新:

    • 时间更新:

    这里,ˆx[nn−1] 和 ˆx[nn] 如前所述。此外:

    为简单起见,表示状态空间矩阵的时间依赖性的下标已被删除。

    给定初始条件 x[10] 和 P[10],您可以迭代这些方程来执行过滤。您必须在每个时间样本更新状态估计 x[n.] 和误差协方差矩阵 P[n.]。

    时变设计

    要实现这些滤波器递归,首先要生成噪声输出测量值。使用 之前产生的过程噪声 w 和测量噪声 v

    y = lsim
    

    假设以下初始条件:

    for 循环实现时变滤波器 。

    1.  
      P = B*Q*B'; %初始误差协方差
    2.  
      x = zeros; % 状态的初始条件
    3.  
       
    4.  
      for i = 1:length
    5.  
      % 测量更新
    6.  
      erv(i) = C*P*C';
    7.  
       
    8.  
      % 时间更新
    9.  
      x = A*x + B*u;

    以图形方式比较真实输出和估计输出。

    1.  
      subplot(211)
    2.  
       
    3.  
      subplot
    4.  
      xlabel

    第一个图显示了真实因变量 y  (虚线)和过滤后的因变量 ye(实线)。第二个图将测量误差(点划线)与估计误差(实线)进行比较。

    时变滤波器还估计errcov 每个样本的估计误差 y-ye的协方差 。绘制它以查看您的滤波器是否达到稳定状态(正如您对固定输入噪声所期望的那样)。

    1.  
      subplot(211)
    2.  
      plot

    从这个协方差图中,您可以看到输出协方差确实在大约五个样本中达到了稳定状态。从那时起,您的时变滤波器具有与稳态版本相同的性能。

    与由实验数据导出的估计误差协方差比较:

    Esro = sum/length
    

    该值小于理论值 errcov ,接近稳态设计获得的值。

    最后,注意最终值 M[n] 和 创新增益矩阵的稳态值 M重合。

    1.  
      Mn
    2.  
       
    3.  
      M

     


    最受欢迎的见解

    1.matlab使用经验模式分解emd 对信号进行去噪

    2.Matlab使用Hampel滤波去除异常值

    3.matlab偏最小二乘回归(PLSR)和主成分回归(PCR)

    4.matlab预测ARMA-GARCH 条件均值和方差模型

    5.matlab中使用VMD(变分模态分解) 

    6.matlab使用贝叶斯优化的深度学习

    7.matlab贝叶斯隐马尔可夫hmm模型

    8.matlab中的隐马尔可夫模型(HMM)实现

    9.matlab实现MCMC的马尔可夫切换ARMA – GARCH模型

  • 相关阅读:
    用css3实现一个带缺口的圆圈(图)
    markdown语法练习
    Android SDK + Appium 环境搭建
    Python + Robot Framework 环境搭建
    javascript动画效果之透明度
    javascript动画效果之匀速运动
    JS中offsetTop、clientTop、scrollTop、offsetTop各属性介绍(转载)
    javascript焦点图自动播放
    js中的随机数
    javascript焦点图(根据图片下方的小框自动播放)
  • 原文地址:https://www.cnblogs.com/tecdat/p/15860232.html
Copyright © 2020-2023  润新知