主要内容

扩展卡尔曼滤波器

使用扩展卡尔曼滤波器估计状态的离散时间非线性系统

  • 库:
  • 控制系统工具箱/状态估计

    系统辨识工具箱/估计

  • ekf_block

描述

扩展卡尔曼滤波器块离散时间非线性系统的状态估计使用一阶离散时间扩展卡尔曼滤波算法。

考虑植物与状态x、输入u、输出y、过程噪声w和测量噪声v。假设您能代表植物作为非线性系统。

使用状态转换和测量系统的功能和扩展卡尔曼滤波算法,块生产状态估计 x ^ 针对当前时间步长。关于算法的信息,请参阅扩展和无味卡尔曼滤波算法在线状态估计

您创建的非线性系统状态转换函数和测量功能,并指定这些功能块。块支持系统的状态估计金宝app与多个传感器,操作在不同的采样率。您可以指定五测量功能,每个对应一个传感器系统。您还可以指定状态转换的雅克比和测量功能。如果你不指定,雅克比数值计算的软件。有关更多信息,请参见状态转换和测量功能

港口

输入

全部展开

测量系统输出对应于每个测量函数中指定块。港口的数量等于测量功能在你系统的数量。您可以指定五测量功能。例如,如果你的系统有两个传感器,您指定两个测量功能块。第一个港口日元在默认情况下是可用的。当你点击应用,软件生成端口y2对应于第二测量功能。

指定的端口N维向量,N是数量的数量来衡量相应的传感器。例如,如果你的系统有一个传感器,测量一个物体的位置和速度,然后只有一个端口日元。港口被指定为一个二维向量的值对应的位置和速度。

依赖关系

第一个港口日元在默认情况下是可用的。港口y2日元当你点击生成添加测量,然后单击应用

数据类型:|

额外的可选的输入参数状态转换函数f以外的国家x和过程噪声w。信息状态转换功能看,状态转换和测量功能

假设您的系统非相加的过程噪声和状态转换函数f有以下形式:

x (k + 1) = f (x (k), w (k), StateTransitionFcnInputs)

在这里k是时间步,StateTransitionFcnInputs一个额外的输入参数是xw

如果您创建f使用MATLAB®函数(。米文件),软件生成端口StateTransitionFcnInputs当你点击应用。您可以指定输入这个端口是一个标量,矢量、矩阵。

如果你的状态转换函数有多个额外的输入,使用金宝app仿真软件的功能(金宝app模型)块指定函数。当你使用金宝app仿真软件的功能块,直接向你提供额外的输入金宝app仿真软件的功能块使用轮廓尺寸(金宝app模型)块。没有输入端口生成的额外输入的扩展卡尔曼滤波器块。

依赖关系

这个端口生成只有在满足以下两个条件:

  • 你指定f函数使用MATLAB函数f在MATLAB的道路。

  • f只需要一个额外的输入参数除了xw

数据类型:|

额外的可选输入测量功能以外的其他国家x和测量噪声v。信息测量功能看,状态转换和测量功能

MeasurementFcn1Inputs对应于您指定第一个测量功能,等等。例如,假设您的系统有三个传感器和测量噪声非相加,和三个测量功能h1,h2,h3有以下形式:

y1 [k] = h1 (x [k], v1 [k], MeasurementFcn1Inputs)

y2 [k] = h2 (x [k], v2 [k], MeasurementFcn2Inputs)

y3 [k] = h3 (x [k], v3 [k])

在这里k是时间步,MeasurementFcn1InputsMeasurementFcn2Inputs额外的输入参数吗h1h2

如果您指定h1,h2,h3使用MATLAB函数(。米文件)函数,软件生成港口MeasurementFcn1InputsMeasurementFcn2Inputs当你点击应用。您可以指定这些端口的输入标量、向量或矩阵。

如果你有不止一个额外的输入测量功能,使用金宝app仿真软件的功能(金宝app模型)块指定功能。当你使用金宝app仿真软件的功能块,直接向你提供额外的输入金宝app仿真软件的功能块使用轮廓尺寸(金宝app模型)块。没有输入端口生成的额外输入的扩展卡尔曼滤波器块。

依赖关系

一个端口对应的测量功能h只有在生成满足下面两个条件:

  • 你指定h函数使用MATLAB函数h在MATLAB的道路。

  • h只需要一个额外的输入参数除了xv

数据类型:|

时变过程噪声协方差,指定为一个标量,矢量,根据的价值或矩阵过程噪声参数:

  • 过程噪声添加剂——协方差指定为一个标量Ns元向量,或一个Ns——- - - - - -Ns矩阵,Ns是系统的状态数。指定一个标量如果之间没有互相关处理噪音方面,和所有条款都有相同的方差。指定一个向量的长度Ns,如果没有工序间互相关噪声项,但是所有的条款有不同的差异。

  • 过程噪声非相加——指定的协方差W——- - - - - -W矩阵,W是过程噪声的数量在状态转换函数。

依赖关系

这个端口如果指定生成过程噪声协方差时变。港口出现当你点击应用

数据类型:|

时变测量噪声协方差5测量系统的功能,指定为矩阵。矩阵的大小依赖的价值测量噪声参数对应的测量功能:

  • 测量噪声添加剂——指定协方差作为N——- - - - - -N矩阵,N是数量的测量系统。

  • 测量噪声非相加——指定的协方差V——- - - - - -V矩阵,V是测量噪声的数量条款在相应的测量功能。

依赖关系

生成一个港口如果指定测量噪声协方差时变相应的测量功能。港口出现当你点击应用

数据类型:|

假设测量输出数据不可用港口的时间点日元对应于第一个测量功能。使用价值以外的一个信号0Enable1端口,使估计的修正状态时测量数据是可用的。指定端口值0当测量数据是不可用的。类似地,如果测量输出数据不可用港口的时间点yth测量函数,指定相应的端口启用除了作为一个值0

依赖关系

一个端口对应一个测量函数生成,如果你选择添加启用端口测量功能。港口出现当你点击应用

数据类型:||布尔

输出

全部展开

估计状态,作为一个向量返回的大小Ns,在那里Ns是系统的状态数。访问各州,使用选择器(金宝app模型)块。

使用电流测量提高状态估计参数被选中时,块输出修正状态估计 x ^ ( k | k ] 在时间步k直到时间估计,使用测量输出k。如果你清楚这个参数,预测块返回状态估计 x ^ ( k | k 1 ] 时间k估计,使用测量输出,直到前一个时间k - 1。明确该参数如果你的过滤器是一个反馈回路,一个代数循环在你的模型金宝app®模型。

数据类型:|

状态估计误差协方差,作为一个返回Ns——- - - - - -Ns矩阵,Ns是系统的状态数。访问个人协方差,使用选择器(金宝app模型)块。

依赖关系

如果您选择生成这个端口输出状态估计误差协方差系统模型选项卡,并单击应用

数据类型:|

参数

全部展开

系统模型选项卡

状态转换

状态转换函数计算Ns在时间步元系统的状态向量k+ 1,给定的时间步的状态向量kNs是非线性系统的状态数。您创建状态转换函数和指定的函数名函数。例如,如果vdpStateFcn.m是你创建并保存状态转换函数,指定吗函数作为vdpStateFcn

您创建的输入函数取决于您指定的过程噪声作为添加剂或非相加过程噪声

  • 过程噪声添加剂——状态转换函数f指定美国如何进化状态的函数值在以前的时间步骤:

    x (k + 1) = f (x (k), Us1 (k),…, Usn (k)),

    在哪里x (k)在时间是估计的状态吗k,Us1,…, Usn是你的状态转换函数所需的任何额外的输入参数,如系统输入或样品时间。看到一个状态转换函数的一个例子与添加剂过程噪声、类型编辑vdpStateFcn在命令行中。

  • 过程噪声非相加——状态转换函数还指定了美国如何演变过程噪声的函数w:

    x (k + 1) = f (x (k), w (k), Us1 (k),…, Usn (k))

有关更多信息,请参见状态转换和测量功能

您可以创建f使用一个金宝app仿真软件的功能(金宝app模型)块或MATLAB函数(。米文件)。

  • 您可以使用一个只有MATLAB函数f有一个额外的输入参数Us1除了xw

    x (k + 1) = f (x (k), w (k), Us1 (k))

    软件生成一个额外的输入端口StateTransitionFcnInputs指定这个参数。

  • 如果您使用的是金宝app仿真软件的功能块,指定xw使用参数尺寸。(金宝app模型)块和额外的输入Us1,…, Usn使用轮廓尺寸(金宝app模型)块的金宝app仿真软件的功能块。你不提供Us1,…, Usn扩展卡尔曼滤波器块。

编程使用

块参数:StateTransitionFcn
类型:特征向量,字符串
默认值:“myStateTransitionFcn”

雅可比矩阵的状态转换函数f,指定为以下之一:

  • ——软件计算雅可比矩阵数值。这个计算可能会增加处理时间和状态估计的数值不准确。

  • ——你创建一个函数来计算雅可比矩阵,并指定函数的名称雅可比矩阵。例如,如果vdpStateJacobianFcn.m雅可比矩阵函数,指定吗雅可比矩阵作为vdpStateJacobianFcn。如果您创建状态转换函数f使用一个金宝app仿真软件的功能(金宝app模型)盾牌格挡,然后再使用一个创建雅可比矩阵金宝app仿真软件的功能块。如果您创建f使用MATLAB函数(。米文件),然后使用MATLAB函数创建雅可比矩阵。

    函数计算状态转移函数的偏导数的状态和过程噪声。雅可比矩阵函数输入的数量必须等于输入状态转换函数和的数量必须指定在同一订单在这两个函数。输出的数量取决于雅可比矩阵的函数过程噪声参数:

    • 过程噪声添加剂——函数的偏导数计算状态转移函数f关于州( f / x )。输出是一个Ns——- - - - - -Ns雅可比矩阵,Ns的状态数。

      看到雅可比矩阵函数的一个例子为添加剂过程噪声、类型编辑vdpStateJacobianFcn在命令行中。

    • 过程噪声非相加——函数必须返回第二个输出状态转换函数的偏导数f对过程噪声术语( f / w )。第二个返回作为输出Ns——- - - - - -W矩阵,W是过程噪声的数量在状态转换函数。

编程使用

块参数:HasStateTransitionJacobianFcn
类型:特征向量
价值观:“关闭”,“上”
默认值:“关闭”
块参数:StateTransitionJacobianFcn
类型:特征向量,字符串
默认值:

过程噪声特点,指定为以下值之一:

  • 添加剂——过程噪声w添加剂,状态转换函数f你指定的函数有以下形式:

    x (k + 1) = f (x (k), Us1 (k),…, Usn (k)),

    在哪里x (k)在时间是估计的状态吗k,Us1,…, Usn是你的状态转换函数所需的任何额外的输入参数。

  • 非相加过程噪声非相加,状态转换函数指定美国如何演变的功能状态过程噪声在前面的时间步骤:

    x (k + 1) = f (x (k), w (k), Us1 (k),…, Usn (k))

编程使用

块参数:HasAdditiveProcessNoise
类型:特征向量
价值观:“添加剂”,“非相加”
默认值:“添加剂”

定常过程噪声协方差,指定为一个标量,矢量,根据的价值或矩阵过程噪声参数:

  • 过程噪声添加剂——协方差指定为一个标量Ns元向量,或一个Ns——- - - - - -Ns矩阵,Ns是系统的状态数。指定一个标量如果之间没有互相关处理噪音条款和所有条款都有相同的方差。指定一个向量的长度Ns,如果没有工序间互相关噪声术语,但所有的术语有不同的差异。

  • 过程噪声非相加——指定的协方差W——- - - - - -W矩阵,W是过程噪声的数量条款。

如果这个过程噪声协方差时变,选择时变。块生成的输入端口指定时变协方差。

依赖关系

这个参数启用了如果你不指定过程噪声时变

编程使用

块参数:ProcessNoise
类型:特征向量,字符串
默认值:' 1 '

如果您选择这个参数,块包含一个额外的输入端口指定时变过程噪声协方差。

编程使用

块参数:HasTimeVaryingProcessNoise
类型:特征向量
价值观:“关闭”,“上”
默认值:“关闭”
初始化

初始状态估计的价值,作为一个指定Ns元向量,Ns在系统的状态数。指定初始状态值根据您的系统的知识。

编程使用

块参数:InitialState
类型:特征向量,字符串
默认值:' 0 '

状态估计误差协方差,指定为一个标量Ns元向量,或一个Ns——- - - - - -Ns矩阵,Ns是系统的状态数。如果你指定一个标量或矢量,软件创建一个Ns——- - - - - -Ns对角矩阵对角线上的标量或矢量元素。

指定一个高价值的协方差当你没有信心在您指定的初始状态值初始状态

编程使用

块参数:InitialStateCovariance
类型:特征向量,字符串
默认值:' 1 '
测量

测量函数计算N有效输出测量向量的非线性系统在时间步k,鉴于时间步的状态向量k。您创建的测量功能和指定的函数名函数。例如,如果vdpMeasurementFcn.m是你创建并保存测量函数,指定吗函数作为vdpMeasurementFcn

您创建的输入函数取决于您指定的测量噪声作为添加剂或非相加测量噪声

  • 测量噪声添加剂——测量功能h指定测量如何演变状态值的函数:

    y (k) = h (x (k),听Um1 (k),…,学院(k)),

    在哪里y (k)x (k)这是估计的输出和估计状态时间吗k,听Um1,…,学院是你需要的任何可选的输入参数测量功能。例如,如果您正在使用一个传感器跟踪一个物体,一个额外的输入可能是传感器的位置。

    看到的一个例子与添加剂过程噪声测量函数,类型编辑vdpMeasurementFcn在命令行中。

  • 测量噪声非相加——测量函数还指定了如何输出测量的发展作为测量噪声函数v:

    y (k) = h (x (k), v (k),听Um1 (k),…,学院(k))

    看到的一个例子与非相加过程噪声测量函数,类型编辑vdpMeasurementNonAdditiveNoiseFcn

有关更多信息,请参见状态转换和测量功能

您可以创建h使用一个金宝app仿真软件的功能(金宝app模型)块或MATLAB函数(。米文件)。

  • 您可以使用一个只有MATLAB函数h有一个额外的输入参数听Um1除了xv

    y [k] = h (x [k], [k],听Um1 (k))

    软件生成一个额外的输入端口MeasurementFcn输入指定这个论点的测量功能。

  • 如果您使用的是金宝app仿真软件的功能块,指定xv使用参数尺寸。(金宝app模型)块和额外的输入听Um1,…,学院使用轮廓尺寸(金宝app模型)块的金宝app仿真软件的功能块。你不提供听Um1,…,学院扩展卡尔曼滤波器块。

如果您有多个传感器在你的系统中,您可以指定多个测量功能。您可以指定使用五个测量功能添加测量按钮。删除测量功能,使用删除测量

编程使用

块参数:MeasurementFcn1,MeasurementFcn2,MeasurementFcn3,MeasurementFcn4,MeasurementFcn5
类型:特征向量,字符串
默认值:“myMeasurementFcn”

雅可比矩阵的测量功能h,指定为以下之一:

  • ——软件计算雅可比矩阵数值。这个计算可能会增加处理时间和状态估计的数值不准确。

  • ——你创建一个函数来计算雅可比矩阵的测量功能h,指定的函数的名称雅可比矩阵。例如,如果vdpMeasurementJacobianFcn.m雅可比矩阵函数,指定吗MeasurementJacobianFcn作为vdpMeasurementJacobianFcn。如果您创建h使用一个金宝app仿真软件的功能(金宝app模型)盾牌格挡,然后再使用一个创建雅可比矩阵金宝app仿真软件的功能块。如果您创建h使用MATLAB函数(。米文件),然后使用MATLAB函数创建雅可比矩阵。

    函数计算测量函数的偏导数h对美国和测量噪声。雅可比矩阵函数输入的数量必须等于输入的数量测量功能,必须指定在同一订单在这两个函数。输出的数量取决于雅可比矩阵的函数测量噪声参数:

    • 测量噪声添加剂——函数的偏导数计算测量函数的状态( h / x )。输出是一个N——- - - - - -Ns雅可比矩阵,N测量系统的的数量和吗Ns的状态数。

      看到雅可比矩阵函数的一个例子添加剂测量噪声、类型编辑vdpMeasurementJacobianFcn在命令行中。

    • 测量噪声非相加——函数也返回第二个输出测量函数的偏导数的测量噪声术语( h / v )。第二个返回作为输出N——- - - - - -V雅可比矩阵,V是测量噪声的数量条款。

编程使用

块参数:HasMeasurementJacobianFcn1,HasMeasurementJacobianFcn2,HasMeasurementJacobianFcn3,HasMeasurementJacobianFcn4,HasMeasurementJacobianFcn5
类型:特征向量
价值观:“关闭”,“上”
默认值:“关闭”
块参数:MeasurementJacobianFcn1,MeasurementJacobianFcn2,MeasurementJacobianFcn3,MeasurementJacobianFcn4,MeasurementJacobianFcn5
类型:特征向量
默认值:

测量噪声的特点,指定为以下值之一:

  • 添加剂——测量噪声v添加剂,测量功能h你指定的函数有以下形式:

    y (k) = h (x (k),听Um1 (k),…,学院(k)),

    在哪里y (k)x (k)这是估计的输出和估计状态时间吗k,听Um1,…,学院是你需要的任何可选的输入参数测量功能。

  • 非相加——测量噪声非相加,测量函数指定了如何输出测量的发展状态的函数测量噪声:

    y (k) = h (x (k), v (k),听Um1 (k),…,学院(k))

编程使用

块参数:HasAdditiveMeasurementNoise1,HasAdditiveMeasurementNoise2,HasAdditiveMeasurementNoise3,HasAdditiveMeasurementNoise4,HasAdditiveMeasurementNoise5
类型:特征向量
价值观:“添加剂”,“非相加”
默认值:“添加剂”

选择要启用该参数测量包装来估计状态当你循环独立的测量模型。如果你选择这个参数,那么您所指定的测量函数必须包括以下两个输出:

  1. 作为一个指定的测量N有效输出测量向量的非线性系统在时间步k,鉴于时间步的状态向量kN是数量的测量系统。

  2. 作为一个指定的包装范围,测量N——- - - - - -2矩阵,第一列提供了最小测量束缚和第二列提供了最大测量。

使有测量包装复选框封装在绑定定义测量残差,这有助于防止滤波器发散由于不正确的测量剩余价值。例如,看到的状态估计与包装测量使用扩展卡尔曼滤波

编程使用

块参数:HasMeasurementWrapping1,HasMeasurementWrapping2,HasMeasurementWrapping3,HasMeasurementWrapping4,HasMeasurementWrapping5
类型:特征向量
价值观:“关闭”,“上”
默认值:“关闭”

定常过程噪声协方差,指定为一个标量,矢量,根据的价值或矩阵过程噪声参数:

  • 过程噪声添加剂——协方差指定为一个标量Ns元向量,或一个Ns——- - - - - -Ns矩阵,Ns是系统的状态数。指定一个标量如果之间没有互相关处理噪音条款和所有条款都有相同的方差。指定一个向量的长度Ns,如果没有工序间互相关噪声术语,但所有的术语有不同的差异。

  • 过程噪声非相加——指定的协方差W——- - - - - -W矩阵,W是过程噪声的数量条款。

如果这个过程噪声协方差时变,选择时变。块生成的输入端口指定时变协方差。

依赖关系

这个参数启用了如果你不指定过程噪声时变

编程使用

块参数:ProcessNoise
类型:特征向量,字符串
默认值:' 1 '

如果您选择该参数的测量噪声协方差第一测量功能,块包含一个额外的输入端口R1。你指定的时变测量噪声协方差R1。同样的,如果你选择时变th测量功能,块包含一个额外的输入端口R指定的时变测量噪声协方差函数。

编程使用

块参数:HasTimeVaryingMeasurementNoise1,HasTimeVaryingMeasurementNoise2,HasTimeVaryingMeasurementNoise3,HasTimeVaryingMeasurementNoise4,HasTimeVaryingMeasurementNoise5
类型:特征向量
价值观:“关闭”,“上”
默认值:“关闭”

假设测量输出数据不可用港口的时间点日元对应于第一个测量功能。选择添加启用端口生成一个输入端口Enable1。在这个端口使用一个信号使估计状态的调整只有当测量数据是可用的。类似地,如果测量输出数据不可用港口的时间点yth测量功能,选择相应的添加启用端口

编程使用

块参数:HasMeasurementEnablePort1,HasMeasurementEnablePort2,HasMeasurementEnablePort3,HasMeasurementEnablePort4,HasMeasurementEnablePort5
类型:特征向量
价值观:“关闭”,“上”
默认值:“关闭”
设置

这个参数被选中时,块输出修正状态估计 x ^ ( k | k ] 在时间步k直到时间估计,使用测量输出k。如果你清楚这个参数,预测块返回状态估计 x ^ ( k | k 1 ] 时间k估计,使用测量输出,直到前一个时间k - 1。明确该参数如果你的过滤器是一个反馈回路和有一个代数环仿真软件模型。金宝app

编程使用

块参数:UseCurrentEstimator
类型:特征向量
价值观:“关闭”,“上”
默认值:“上”

如果您选择这个参数,状态估计误差协方差输出端口P生成的块。

编程使用

块参数:OutputStateCovariance
类型:特征向量
价值观:“关闭”,“上”
默认值:“关闭”

使用这个参数来指定所有块参数的数据类型。

编程使用

块参数:数据类型
类型:特征向量
价值观:“单一”,“双”
默认值:“双”

块样品时间,指定为一个积极的标量。如果样品状态转换的时光和测量功能是不同的,选择使多重速率的操作多重速率的选项卡,指定样例次多重速率的选项卡。

依赖关系

如果在这个参数是可用的多重速率的选项卡,使多重速率的操作参数是

编程使用

块参数:SampleTime
类型:特征向量,字符串
默认值:' 1 '

多重速率的选项卡

选择该参数如果样品的状态转换和测量功能是不同的。你指定的样例次多重速率的选项卡,在样品时间

编程使用

块参数:EnableMultirate
类型:特征向量
价值观:“关闭”,“上”
默认值:“关闭”

如果样品时间状态转换和测量功能是不同的,指定样品时间。指定样品时间测量功能正整数倍数的状态转换样品时间。您所指定的样品时间对应于以下输入端口:

  • 端口对应的状态转换函数——额外的输入状态转换函数StateTransitionFcnInputs和时变过程噪声协方差。这些端口的样品时间必须始终等于状态转换时间样本函数,但可以从样本不同时间的测量功能。

  • 相对应的端口th测量功能,测量输出y额外的输入,测量功能MeasurementFcn输入港,使信号启用和时变测量噪声协方差R。这些端口的样品时间为同一测量函数必须是相同的,但不同于样品时间状态转换函数和其他测量功能。

依赖关系

如果在这个参数是可用的多重速率的选项卡,使多重速率的操作参数是

编程使用

块参数:StateTransitionFcnSampleTime,MeasurementFcn1SampleTime1,MeasurementFcn1SampleTime2,MeasurementFcn1SampleTime3,MeasurementFcn1SampleTime4,MeasurementFcn1SampleTime5
类型:特征向量,字符串
默认值:' 1 '

更多关于

全部展开

扩展功能

版本历史

介绍了R2017a

全部展开

行为改变R2020b