从系列:理解卡尔曼滤波器
Melda Ulusoy, MathWorks
这个视频演示了如何估计单摆系统的角位置使用卡尔曼滤波器模型金宝app®。
使用MATLAB®和仿真软金宝app件,可以实现线性定常或时变卡尔曼滤波器。在这个视频中,一个简单的摆系统建模仿真软件使用Simscape多体™。金宝app摆角位置的是使用卡尔曼滤波估计的块,可在控制系统工具箱™。视频展示了如何配置卡尔曼滤波块等参数系统模型,初始状态估计,和噪声特性。
下载这个虚拟实验室研究线性和扩展卡尔曼滤波器设计与互动练习。
记录:2017年10月25日
在这个视频中,我们将使用一个简单的摆的例子来演示如何使用一个共同的滤波器来估计摆角位置的仿真软件。金宝app
在此系统中,我们感兴趣的观察角位置θ。假设我们可以测量这个角度传感器如扶轮潜在的角。尽管我们可以测量θ,测量会吵了。为了过滤掉噪音和得到一个好的θ的估计,我们将使用卡尔曼滤波器。
在我们转向模型之前,让我们看看自由体图和金宝app摆的运动方程。摆模型,我们将假定零摩擦。
想象,钟摆是连接到一个刚性杆和我们发起一个角度。当我们放手的时候,它开始来回摆动。
请注意这是一个非线性项与角位置有关。如果你看的情节功能,我们看到,对于小θ值,这个函数几乎线性行为。因此,对于小角度我们可以线性化方程和写这种形式。
接下来,我们可以代表这个系统在状态空间形式中,我们选择第一个角位置和第二个角速度。
我们定义这个脚本的参数和状态空间模型。正如我们前面所提到的,我们感兴趣的是通过卡尔曼滤波器估计θ,因为测量θ是吵了。
您可以使用MATLAB仿真软件实现一个线性时不变或变体卡尔金宝app曼滤波器。在这里,估计摆角位置,我们将使用仿真软件。金宝app
我们开始通过拖放预先构建的摆块模型。这是使用Simscape创建多体,让我们定义一个机械系统使用组件,比如身体,关节,力元素,和传感器。然后,它解决了机械系统的运动方程。
这里,我们建模的钟摆连接固定主链接通过一个转动关节。我们也可以看看这些在力学explorer。
在这些块中,我们定义维度、质量和惯性特性的尸体。驱动力矩作用于关节是这两个信号的总和。我们输出接头位置,θ,通过转动关节。
随时从链接下载该仿真软件模型在这个视频的描述如果你想看金宝app看里面的街区。正如我们刚刚看到的,这一块需要两个单位。
第一个输入应用扭矩,我们将设置为0。第二个输入过程噪音。在这个例子中,我们假设过程噪声只存在角加速度。
过程噪声协方差的定义的脚本。所以我们这个值输入到块中。我们设置了初始条件的国家通过双击摆块。
我们将开始摆10度,对应于π/ 18半径。我们会启动0角速度。
摆块的输出角位置,这是假定为测量传感器。我们希望传感器读数有一些噪音,我们将使用这个噪音块模拟。
类似于我们所做的与过程噪声,我们定义噪声特性使用协方差,r .现在,我们实际测量的值θ。接下来,我们想使用卡尔曼滤波器估计θ。
我们加入卡尔曼滤波块从控制系统工具箱到我们的模型。这个块计算卡尔曼滤波器算法方程,我们讨论在前面的视频。
它使用系统模型和卡尔曼增益的测量和解决通过最小化误差协方差p,和输出最优状态估计。
对于我们的示例,我们将使用连续时间估计。但是请注意,如果你想运行在微处理器实时估计,然后您可以使用脚本时间卡尔曼滤波器,生成CC + +代码块,并将其部署到您的硬件。
这一块需要一个系统模型,我们将定义在脚本中,随着输入它,它还使用测量。
在钟摆模型中,我们使用一个初始条件π/ 18角位置的半径。在这里,我们假设我们知道只有大约和输入一个稍微不同的数量调查卡尔曼滤波器估计如何co-merge当初始条件不清楚。其他参数,我们需要配置是我们的噪声协方差矩阵,我们选择在钟摆一样的系统。
注意,摆系统有两种状态。所以过程噪声协方差是一个2×2的矩阵。但由于我们假设过程噪声作用于角加速度,我们进入相关术语的协方差矩阵为0。
接下来,我们进入测量协方差。交叉协方差矩阵,n,用于捕获过程和测量噪声之间的相关性。在我们的例子中,他们是互不相关的。所以n = 0。
另外,请注意,您可以指定时间变量的协方差矩阵来箱子旁边。如果不加以控制,块增加了一个额外的输入变量协方差的时间。
接下来,我们运行脚本和仿真软件模型看看这个-θ通过卡尔曼滤波器。金宝app需要注意的一件事是,钟摆模型用于此块包括非线性项sinθ。
但卡尔曼滤波器使用线性化系统。然而,我们仍然希望卡尔曼滤波器工作得很好,因为我们使用一个较小的值初始化θ。所以钟摆模型几乎线性行为。
让我们看看仿真结果。我们假设完美的知识摆模型,实际的输出,θ与绿线所示。噪声是信号,橙色是测量所示。和估计θ蓝色所示。
这个估算显示,卡尔曼滤波器过滤掉噪音。尽管其初始条件略有不同模式本身,我们看到,大约5秒的卡尔曼滤波器收敛和提供了一个很好的估计摆角的位置。
在这个视频中,我们模拟了摆系统,使用卡尔曼滤波器,估计其角位置。我们假设完美的知识系统的模型,和加工噪声协方差矩阵Q和r .但在情况下你不知道系统参数,或传感器特征,那么这个模拟可以让你有机会玩你的模型参数,以及噪声协方差矩阵,并观察和改善你的状态估计。
在这个模拟我们使用一个较小的值初始化θ10度,观察好通过卡尔曼滤波估计。如果你使用更大的值θ?
如果我们现在的初始值θ增加到90度,在钟摆模型和卡尔曼滤波,然后模拟模型,我们得到一个糟糕的θ的估计。
这是因为对于较大的值θ,钟摆模型非线性行为。和一个卡尔曼滤波器只是为线性系统定义。正如我们在前面所讨论的视频,这个问题可以通过使用扩展卡尔曼滤波处理。
下一节中,我们将使用相同的钟摆模型和演示如何使用一个扩展的卡尔曼滤波模型。金宝app
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。