理解卡尔曼滤波器,第7部分:如何使用一个扩展的卡尔曼滤波模型万博1manbetx
从系列:理解卡尔曼滤波器
Melda Ulusoy, MathWorks
这个视频演示了如何估计非线性摆的角位置系统在仿真软件中使用扩展卡尔曼滤波万博1manbetx®。
在这个视频中,一个简单的摆系统建模仿真软件使用Simscape多体™。万博1manbetx非线性摆系统的角位置使用扩展的卡尔曼滤波器估计块,可在控制系统工具箱™。这段视频显示了如何指定扩展卡尔曼滤波块等参数状态转换和测量功能,初始状态估计,和噪声特性。如果你想在你的硬件实时运行状态估计,您可以生成C / c++代码块扩展卡尔曼滤波器的仿真软件,并将其部署到您的硬件。万博1manbetx
下载这个虚拟实验室研究线性和扩展卡尔曼滤波器设计与互动练习。
在这个视频中,我们将演示如何使用一个扩展的卡尔曼滤波模型。万博1manbetx以前,我们使用一个简单的摆系统假定摆角位置,θ,和一个传感器测量。为了过滤掉噪声测量,我们使用卡尔曼滤波器和显示,它提供了一个很好的估计当θ很小的初始条件。然而,当我们的值θ增加到90度,我们无法估计准确,因为摆模型非线性行为的较大值θ。因此,为了估计θ的非线性系统,我们将使用一个扩展的卡尔曼滤波器。
我们将开始通过添加扩展卡尔曼滤波块从控制系统工具箱到我们的模型。记住,在前面的视频,我们已经探讨过,可能是非线性状态转换和测量功能,以及如何扩展卡尔曼滤波算法使用这些非线性函数线性近似计算状态估计。现在,在扩展卡尔曼滤波的块,我们将指定这些函数。在这里,我们将使用MATLAB函数创建f和g,但是请注意,您还可以使用仿真软件的功能模块。万博1manbetx状态转换函数使用的当前状态和输入来确定下一个时间步的状态将被计算。在这里,任何输入状态转换函数以外的状态和过程噪声通过一个输入端口连接。所以,我们连接u第一块的输入。我们第一次离散化这个信号使用零持有作为扩展卡尔曼滤波块离散非线性系统的状态估计。
在我们的示例中,我们不会指定雅可比矩阵,将数值计算。但如果分析雅可比矩阵可用,您可以创建一个函数来计算它和输入函数的名称。接下来,我们进入过程噪声协方差,我们以前在一个脚本中定义。我们也进入状态的初始值。在钟摆模型中,θ是初始化和90度0速度。我们在扩展卡尔曼滤波器中使用相同的值。因为我们知道初始状态值,我们将设置初始状态估计误差协方差小的价值。但是如果你没有信心在初始状态值,您可以指定一个高价值的协方差。
接下来,我们指定的测量功能,使用MATLAB函数。然后我们联系相对应的测量θ测量函数,我们刚刚在块中指定。和我们之前输入的协方差测量值已经在脚本中定义的。记住,一个卡尔曼滤波器也称为传感器融合算法,因为它结合了来自多个传感器的测量来减少状态估计的不确定性。所以,如果你有多个测量,你可以通过点击“添加测量输入它们。”,不同的传感器可能有不同的采样率,所以您可以指定样本的测量和状态转换在“更新”选项卡。最后,我们输入样品时间。
现在我们指定的扩展卡尔曼滤波器的参数块,我们可以运行这个模拟并查看结果。这里,蓝色信号显示实际的θ,吵闹的一个显示的是测量,绿线是估计θ。这个结果告诉我们,尽管摆系统是非线性的,使用一个扩展的卡尔曼滤波器给了我们一个很好的θ的估计。然而,请注意,如果你有更严重的非线性系统中,扩展卡尔曼滤波器可能不足以处理非线性系统中。但在这种情况下,您可以使用一个无味卡尔曼滤波,你可以找到在控制系统工具箱。
在这个模拟中,我们展示了如何估计的非线性系统使用扩展卡尔曼滤波。如果你有兴趣在您的硬件实时运行状态的评估,从这一块可以生成代码并将其部署到您的硬件。记住,卡尔曼滤波算法包括两个步骤:预测和修正。如果你看看生成的代码,您将认识函数,照顾这些算法的计算步骤。例如这个代码片段说明了如何修正计算。
在这里,我们结束我们的讨论卡尔曼滤波器。在本系列中,我们讨论了为什么你会使用卡尔曼滤波器,它们是什么,如何处理非线性系统的状态估计,并在仿真软件我们还展示了示例。万博1manbetx我们将继续做控制技术讨论不同控制话题。同时,随时留下任何的评论,分享你的建议关于未来的话题。
下载代码和文件
相关产品s manbetx 845
了解更多
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。