基于unscented卡尔曼滤波的离散非线性系统状态估计
控制系统工具箱/状态估计
系统识别工具箱/估计器
的<年代pan class="block">无味卡尔曼滤波块使用离散时间无迹卡尔曼滤波算法估计离散时间非线性系统的状态。
考虑有状态的植物x,输入u、输出y,过程噪音w,以及测量噪音v.假设你可以将植物表示为一个非线性系统。
利用系统的状态转移和测量功能以及无迹卡尔曼滤波算法,该块产生状态估计<年代pan class="inlineequation"> 当前时间步长。有关算法的信息,请参见在线状态估计的扩展和无迹卡尔曼滤波算法.
你为系统创建非线性状态转移函数和测量函数,并在块中指定这些函数。该块支持以不同采样率万博1manbetx操作的多个传感器的系统状态估计。您可以指定多达五种测量功能,每一种对应于系统中的一个传感器。有关更多信息,请参见状态转换和测量功能.
y1、y2、y3、y4,日元
-测量系统输出与块中指定的每个测量功能相对应的测量系统输出。端口数等于系统中测量功能的数量。最多可以指定五个测量功能。例如,如果系统有两个传感器,则在块中指定两个测量功能。第一个港口<年代trong class="guilabel">日元默认为可用。当你点击<年代trong class="guibutton">应用时,软件生成端口<年代trong class="guilabel">y2对应于第二个测量功能。
指定端口为N-维向量,其中N为相应传感器测量的数量。例如,如果你的系统有一个传感器来测量物体的位置和速度,那么就只有一个端口<年代trong class="guilabel">日元. 端口被指定为二维向量,其值对应于位置和速度。
第一个港口<年代trong class="guilabel">日元默认情况下可用。端口<年代trong class="guilabel">y2来<年代trong class="guilabel">日元是当你点击<年代trong class="guilabel">添加测量,然后单击<年代trong class="guibutton">应用.
数据类型:单
|双重的
StateTransitionFcnInputs
-附加的可选输入参数的状态转换函数状态转换函数的附加可选输入参数f
国家以外x
和过程噪声w
.有关状态转换函数的信息,请参阅,状态转换和测量功能.
假设你的系统有非加性过程噪声和状态转移函数f
表格如下:
x(k+1)=f(x(k),w(k),状态转换输入)
.
在这里k
是时间步长,并且StateTransitionFcnInputs
是除x
和w
.
如果你创造f
使用MATLAB<年代up>®作用(.米
文件),软件生成端口<年代trong class="guilabel">StateTransitionFcnInputs当你点击<年代trong class="guibutton">应用.您可以将此端口的输入指定为标量、向量或矩阵。
如果状态转移函数有多个额外的输入,请使用万博1manbetx仿真软件的功能(万博1manbetx模型)块来指定函数。当使用<年代pan class="block">万博1manbetx仿真软件的功能块,则直接向<年代pan class="block">万博1manbetx仿真软件的功能块使用输入(万博1manbetx模型)块。的附加输入不生成输入端口<年代pan class="block">无味卡尔曼滤波块。
仅当满足以下两个条件时,才会生成此端口:
你指定f
在<年代trong class="guilabel">作用使用MATLAB函数,并f
是在MATLAB路径上。
f
只需要一个额外的输入参数,除了x
和w
.
数据类型:单
|双重的
测量CN1输入,测量CN2输入,测量CN3输入,测量CN4输入,测量CN5输入
-每个度量函数的附加可选输入参数除了状态外,测量功能的其他可选输入x
和测量噪声v
. 有关测量功能的信息,请参阅,状态转换和测量功能.
MeasurementFcn1Inputs对应于您指定的第一个测量功能,依此类推。例如,假设您的系统有三个传感器和非累加性测量噪声,以及三个测量功能h1
,h2
,及h3
有以下形式:
y1 [k] = h1 (x [k], [k], MeasurementFcn1Inputs)
y2[k]=h2(x[k],v[k],测量输入)
y3[k]=h3(x[k],v[k])
在这里k
是时间步长,并且MeasurementFcn1Inputs
和MeasurementFcn2Inputs
附加的输入参数是h1
和h2
.
如果您指定h1
,h2
,及h3
使用MATLAB函数(.米
文件)在<年代trong class="guilabel">作用,软件生成端口<年代trong class="guilabel">MeasurementFcn1Inputs和<年代trong class="guilabel">MeasurementFcn2Inputs当你点击<年代trong class="guibutton">应用。您可以将这些端口的输入指定为标量、向量或矩阵。
如果测量函数有不止一个额外的输入,请使用万博1manbetx仿真软件的功能(万博1manbetx模型)块来指定函数。当你使用<年代pan class="block">万博1manbetx仿真软件的功能块,则直接向<年代pan class="block">万博1manbetx仿真软件的功能块使用输入(万博1manbetx模型)块。的附加输入不生成输入端口<年代pan class="block">无味卡尔曼滤波块。
与测量功能相对应的端口h
仅当满足以下两个条件时生成:
你指定h
在<年代trong class="guilabel">作用使用MATLAB函数,并h
是在MATLAB路径上。
h
只需要一个额外的输入参数,除了x
和v
.
数据类型:单
|双重的
问
-时变过程噪声协方差时变过程噪声协方差,指定为标量、矢量或矩阵,取决于的值<年代trong class="guilabel">过程噪声参数:
过程噪声是添加剂
—指定协方差为标量,anNs元素向量,或Ns-借-Ns矩阵,在哪里Ns是系统的状态数。如果过程噪声项之间没有相互关联,并且所有的项具有相同的方差,则指定一个标量。指定一个长度的向量Ns,如果过程噪声项之间没有互相关,但所有项都有不同的方差。
过程噪声是非相加
—指定协方差为aW-借-W矩阵,在哪里W是状态转移函数中过程噪声项的数量。
如果将过程噪声协方差指定为<年代trong class="guilabel">时变。单击时将显示该端口<年代trong class="guibutton">应用.
数据类型:单
|双重的
R1、R2、R3、R4 R5
-时变测量噪声协方差系统多达五个测量函数的时变测量噪声协方差,指定为矩阵。矩阵的大小取决于矩阵的值<年代trong class="guilabel">测量噪声相应测量功能的参数:
测量噪声是添加剂
-将协方差指定为N-借-N矩阵,在哪里N是系统的测量次数。
测量噪声是非相加
—指定协方差为aV-借-V矩阵,在哪里V是相应测量函数中测量噪声项的数量。
如果将测量噪声协方差指定为<年代trong class="guilabel">时变用于相应的测量功能。单击时将显示该端口<年代trong class="guibutton">应用.
数据类型:单
|双重的
启用码1,启用码2,启用码3,启用码4,启用码5
—当有测量数据时,允许对估计状态进行校正假设测量的输出数据在港口的所有时间点都不可用<年代trong class="guilabel">日元对应于第一个测量功能的。使用信号值,而不是0
在<年代trong class="guilabel">使能1当测量数据可用时,允许修正估计状态的端口。指定端口值为0
当测量数据不可用时。类似地,如果在端口的所有时间点上测量的输出数据都不可用<年代trong class="guilabel">y我
对于我<年代up>th测量功能,指定相应的端口<年代trong class="guilabel">启用我
作为一种价值0
.
如果选择,将生成与测量功能相对应的端口<年代trong class="guilabel">添加启用端口用于该测量功能。单击时将显示该端口<年代trong class="guibutton">应用.
数据类型:单
|双重的
|布尔值
xhat
——估计状态估计状态,返回为大小向量Ns哪里Ns是系统的状态数。要访问各个状态,请使用选择器(万博1manbetx模型)块。
当<年代trong class="guilabel">使用当前度量来改进状态估计参数,则块输出校正的状态估计<年代pan class="inlineequation">
在时间步k
,使用测量输出直到时间k
.如果清除此参数,该块将返回预测的状态估计<年代pan class="inlineequation">
暂时k
,使用前一时间的测量输出进行估计k-1
. 如果过滤器处于反馈循环中,并且Simulink中存在代数循环,请清除此参数万博1manbetx<年代up>®模型。
数据类型:单
|双重的
P
-状态估计误差协方差状态估计误差协方差,作为Ns-借-Ns矩阵,在哪里Ns是系统的状态数。要访问各个协方差,请使用选择器(万博1manbetx模型)块。
如果选择此选项,将生成此端口<年代trong class="guilabel">输出状态估计误差协方差在<年代trong class="guilabel">系统模型选项卡,然后单击<年代trong class="guibutton">应用.
数据类型:单
|双重的
作用
—状态转移函数名称myStateTransitionFcn
(默认)|函数名状态转换函数计算Ns-系统在时间步的元件状态向量k+1,给定时间步长的状态向量k.Ns为非线性系统的状态数。中创建状态转换函数并指定函数名<年代trong class="guilabel">作用。例如,如果vdpStateFcn.m
是您创建并保存的状态转换函数,请指定<年代trong class="guilabel">作用作为vdpStateFcn
.
创建的函数的输入取决于在中是将过程噪波指定为加法还是非加法<年代trong class="guilabel">过程噪声.
过程噪声是添加剂
—状态转移函数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使用一个万博1manbetx仿真软件的功能(万博1manbetx模型)块或作为MATLAB函数(.米
文件)。
您可以使用MATLAB函数,只有当f是否有一个额外的输入参数Us1
除了x
和w
.
x (k + 1) = f (x (k), w (k), Us1 (k))
该软件生成一个额外的输入端口<年代trong class="guilabel">StateTransitionFcnInputs指定此参数。
如果您使用的是<年代pan class="block">万博1manbetx仿真软件的功能块,指定x
和w
使用参数尺寸。(万博1manbetx模型)块和额外的输入Us1,…,Usn
使用输入(万博1manbetx模型)街区<年代pan class="block">万博1manbetx仿真软件的功能块你不提供Us1,…,Usn
到<年代pan class="block">无味卡尔曼滤波块。
块参数:StateTransitionFcn |
类型:特征向量,字符串 |
默认值:“myStateTransitionFcn” |
过程噪声
-过程噪声特性添加剂
(默认)|非相加
工艺噪声特性,指定为以下值之一:
添加剂
-过程噪声w
是可加的,状态转移函数f你在<年代trong class="guilabel">作用表格如下:
x (k + 1) = f (x (k), Us1 (k),…,Usn (k))
,
在哪里x(k)
是当时的估计状态k
,及Us1,…,Usn
状态转换函数是否需要任何额外的输入参数。
非相加
—过程噪声是非可加性的,状态转移函数指定状态如何作为状态的函数演化<年代pan class="emphasis">和处理前一时间步噪声:
x(k+1)=f(x(k),w(k),Us1(k),…,Usn(k))
.
块参数:HasAdditiveProcessNoise |
类型:特征向量 |
价值观:“添加剂” ,“非相加” |
默认值:“添加剂” |
协方差
-时不变过程噪声协方差1
(默认)|标量|向量|矩阵的值指定为标量、矢量或矩阵的时不变过程噪声协方差<年代trong class="guilabel">过程噪声参数:
过程噪声是添加剂
—指定协方差为标量,anNs元素向量,或Ns-借-Ns矩阵,在哪里Ns是系统的状态数。如果过程噪声项之间没有相互关联且所有项的方差相同,则指定一个标量。指定一个长度的向量Ns,如果过程噪声项之间没有互相关,但所有项都有不同的方差。
过程噪声是非相加
—指定协方差为aW-借-W矩阵,在哪里W是过程噪声项的数量。
如果过程噪声协方差是时变的,选择<年代trong class="guilabel">时变. 该块生成输入端口<年代trong class="guilabel">问来指定时变协方差。
如果不指定进程噪声为,则启用此参数<年代trong class="guilabel">时变.
块参数:过程噪声 |
类型:特征向量,字符串 |
默认值:' 1 ' |
时变
-时变过程噪声协方差“关”
(默认)|“上”
如果选择此参数,则该块包含一个附加输入端口<年代trong class="guilabel">问指定时变过程噪声协方差。
块参数:HasTimeVaryingProcessNoise |
类型:特征向量 |
价值观:“关” ,“上” |
默认值:“关” |
初始状态
-初始状态估计0
(默认)|向量初始状态估计值,指定为Ns元向量,Ns是系统中的状态数。请根据您对系统的了解指定初始状态值。
块参数:初始状态 |
类型:特征向量,字符串 |
默认值:' 0 ' |
最初的协方差
-状态估计误差协方差1
(默认)|标量|向量|矩阵状态估计误差协方差,指定为标量Ns元素向量,或Ns-借-Ns矩阵,在哪里Ns是系统的状态数。如果指定标量或向量,软件将创建Ns-借-Ns在对角线上有标量或向量元素的对角矩阵。
当您对在中指定的初始状态值没有信心时,请为协方差指定一个高值<年代trong class="guilabel">初始状态.
块参数:初始状态协方差 |
类型:特征向量,字符串 |
默认值:' 1 ' |
阿尔法
-点的分布1 e - 3
(默认值)| 0和1之间的标量值无迹卡尔曼滤波算法将系统状态视为具有状态均值和方差的随机变量。为了计算下一时刻的状态及其统计性质,算法首先利用无迹变换生成一组分布在均值周围的状态值。这些生成的状态值称为点。该算法使用每个sigma点作为状态转换和测量函数的输入,以获得一组新的转换状态点和测量值。变换后的点用于计算下一个时间步的状态和状态估计误差协方差值。
σ点在状态均值周围的分布由两个参数控制<年代trong class="guilabel">阿尔法和<年代trong class="guilabel">卡巴.第三个参数,<年代trong class="guilabel">贝塔,在状态和测量协方差计算时影响变换点的权重:
阿尔法-确定平均状态值周围sigma点的分布。指定为介于0和1之间的标量值(0
<<年代trong class="guilabel">阿尔法<=1
).它通常是一个小的正值。点的分布是成比例的<年代trong class="guilabel">阿尔法.较小的值对应于更接近均值状态的点。
卡巴-第二个缩放参数,通常设置为0。较小的值对应于更接近均值状态的点。扩散与的平方根成正比卡巴
.
贝塔-整合了州分布的先验知识。为高斯分布,<年代trong class="guilabel">贝塔= 2是最优的。
如果你知道状态和状态协方差的分布,你可以调整这些参数来捕捉分布的高阶矩的变换。该算法只能跟踪状态概率分布中的单个峰值。如果在你的系统的状态分布中有多个峰值,你可以调整这些参数,使σ点停留在一个峰值附近。例如,选择一个小的<年代trong class="guilabel">阿尔法生成接近状态均值的点。
有关更多信息,请参见无迹卡尔曼滤波算法.
块参数:阿尔法 |
类型:特征向量,字符串 |
默认值:“1e-3” |
贝塔
-状态分布的表征2
(默认)|大于等于0的标量值状态分布的特征,用于调整变换后的sigma点的权重,指定为大于或等于0的标量值。对于高斯分布,贝塔
= 2是最优选择。
有关更多信息,请参阅有关的说明<年代trong class="guilabel">阿尔法.
块参数:贝塔 |
类型:特征向量,字符串 |
默认值:' 2 ' |
卡巴
-点的分布0
(默认)|在0和3之间的标量值围绕状态均值的σ点分布,指定为0到3之间的标量值(0
<=<年代trong class="guilabel">卡巴<=3.
).<年代trong class="guilabel">卡巴通常被指定为0
. 较小的值对应于更接近平均状态的西格玛点。价差与价格的平方根成正比<年代trong class="guilabel">卡巴.有关更多信息,请参阅有关的说明<年代trong class="guilabel">阿尔法.
块参数:卡巴 |
类型:特征向量,字符串 |
默认值:' 0 ' |
作用
-测量函数名称myMeasurementFcn
(默认)|函数名测量功能计算N-非线性系统在时间步长的单元输出测量向量k,给出时间步长的状态向量k.中创建度量函数并指定函数名<年代trong class="guilabel">作用。例如,如果vdpMeasurementFcn.m
是您创建并保存的测量函数,请指定<年代trong class="guilabel">作用作为vdpMeasurementFcn
.
创建的函数的输入取决于在中是将测量噪声指定为加法还是非加法<年代trong class="guilabel">测量噪声.
测量噪声是添加剂
-测量功能h指定度量如何演变为状态值的函数:
y (k) = h (x (k),听Um1 (k),…,学院(k))
,
在哪里y (k)
和x(k)
估计的输出和估计的状态是否在同一时间k
,及Um1,…,Umn
是度量函数所需的任何可选输入参数。例如,如果使用传感器跟踪对象,则传感器位置可能是一个额外的输入。
要查看具有附加过程噪声的测量函数示例,请键入编辑vdpMeasurementFcn
在命令行。
测量噪声是非相加
-测量函数还指定输出测量如何演变为测量噪声的函数v
:
y(k)=h(x(k),v(k),Um1(k),…,Umn(k))
.
要查看具有非累加过程噪声的测量函数示例,请键入编辑VDPMeasurementNoAdditiveNoIseFCN
.
有关更多信息,请参见状态转换和测量功能.
您可以创建h使用一个万博1manbetx仿真软件的功能(万博1manbetx模型)块或作为MATLAB函数(.米
文件)。
您可以使用MATLAB函数,只有当h是否有一个额外的输入参数听Um1
除了x
和v
.
y [k] = h (x [k], [k],听Um1 (k))
该软件生成一个额外的输入端口<年代trong class="guilabel">MeasurementFcnInput指定此参数。
如果您使用的是<年代pan class="block">万博1manbetx仿真软件的功能块,指定x
和v
使用参数尺寸。(万博1manbetx模型)块和额外的输入Um1,…,Umn
使用输入(万博1manbetx模型)街区<年代pan class="block">万博1manbetx仿真软件的功能块你不提供Um1,…,Umn
到<年代pan class="block">无味卡尔曼滤波块。
如果系统中有多个传感器,则可以指定多个测量功能。使用<年代trong class="guilabel">添加测量按钮要删除测量功能,请使用<年代trong class="guilabel">删除测量.
块参数:MeasurementFcn1 ,MeasurementFcn2 ,MeasurementFcn3 ,MeasurementFcn4 ,MeasurementFcn5 |
类型:特征向量,字符串 |
默认值:“myMeasurementFcn” |
测量噪声
-测量噪声特性添加剂
(默认)|非相加
测量噪声特性,指定为下列值之一:
添加剂
-测量噪声v
是加法,并且具有测量功能h你在<年代trong class="guilabel">作用表格如下:
y (k) = h (x (k),听Um1 (k),…,学院(k))
,
在哪里y (k)
和x(k)
估计的输出和估计的状态是否在同一时间k
,及Um1,…,Umn
是度量函数所需的任何可选输入参数。
非相加
-测量噪声是非累加性的,测量函数指定输出测量如何随状态变化<年代pan class="emphasis">和测量噪声:
y(k)=h(x(k),v(k),Um1(k),…,Umn(k))
.
块参数:HasAdditiveMeasurementNoise1 ,HasAdditiveMeasurementNoise2 ,HasAdditiveMeasurementNoise3 ,HasAdditiveMeasurementNoise4 ,HasAdditiveMeasurementNoise5 |
类型:特征向量 |
价值观:“添加剂” ,“非相加” |
默认值:“添加剂” |
协方差
-时不变测量噪声协方差1
(默认)|矩阵定常测量噪声协方差,指定为矩阵。矩阵的大小取决于<年代trong class="guilabel">测量噪声参数:
测量噪声是添加剂
-将协方差指定为N-借-N矩阵,在哪里N是系统的测量次数。
测量噪声是非相加
—指定协方差为aV-借-V矩阵,在哪里V为测量噪声项的个数。
如果测量噪声协方差是时变的,选择<年代trong class="guilabel">时变. 该块生成输入端口<年代trong class="guilabel">R我
要指定时间变量的时变协方差,请执行以下操作:我<年代up>th测量功能。
如果不指定进程噪声为,则启用此参数<年代trong class="guilabel">时变.
块参数:MeasurementNoise1 ,MeasurementNoise2 ,MeasurementNoise3 ,MeasurementNoise4 ,MeasurementNoise5 |
类型:特征向量,字符串 |
默认值:' 1 ' |
时变
-时变测量噪声协方差从
(默认)|在…上
如果您为第一个测量功能的测量噪声协方差选择此参数,则块包括一个额外的输入端口<年代trong class="guilabel">R1.你指定时间变化的测量噪声协方差<年代trong class="guilabel">R1. 同样,如果您选择<年代trong class="guilabel">时变对于我<年代up>th测量功能,该模块包括一个额外的输入端口<年代trong class="guilabel">R我
指定该函数的时变测量噪声协方差。
块参数:HasTimeVaryingMeasurementNoise1 ,HasTimeVaryingMeasurementNoise2 ,HasTimeVaryingMeasurementNoise3 ,HasTimeVaryingMeasurementNoise4 ,HasTimeVaryingMeasurementNoise5 |
类型:特征向量 |
价值观:“关” ,“上” |
默认值:“关” |
添加启用端口
—只有在有实测数据的情况下,才能对估计状态进行校正从
(默认)|在…上
假设测量的输出数据在港口的所有时间点都不可用<年代trong class="guilabel">日元这对应于第一个测量函数。选择<年代trong class="guilabel">添加启用端口生成输入端口的步骤<年代trong class="guilabel">使能1. 仅当测量数据可用时,使用此端口的信号来启用估计状态的校正。类似地,如果在端口的所有时间点上测量的输出数据都不可用<年代trong class="guilabel">y我
对于我<年代up>th测量功能,选择相应的<年代trong class="guilabel">添加启用端口.
块参数:HasMeasurementEnablePort1 ,HasMeasurementEnablePort2 ,HasMeasurementEnablePort3 ,HasMeasurementEnablePort4 ,HasMeasurementEnablePort5 |
类型:特征向量 |
价值观:“关” ,“上” |
默认值:“关” |
使用当前度量来改进状态估计
-选择更正或预测状态估计在…上
(默认)|从
选择此参数时,块输出校正的状态估计<年代pan class="inlineequation">
在时间步k
,使用测量输出直到时间k
.如果清除此参数,该块将返回预测的状态估计<年代pan class="inlineequation">
暂时k
,使用前一时间的测量输出进行估计k-1
. 如果过滤器处于反馈循环中,并且Simulink中存在代数循环,请清除此参数万博1manbetx模型。
块参数:UseCurrentEstimator |
类型:特征向量 |
价值观:“关” ,“上” |
默认值:“上” |
输出状态估计误差协方差
-输出状态估计误差协方差从
(默认)|在…上
选择此参数,表示状态估计误差协方差输出端口<年代trong class="guilabel">P在块中生成。
块参数:OutputStateCovariance |
类型:特征向量 |
价值观:“关” ,“上” |
默认值:“关” |
数据类型
-块参数的数据类型双重的
(默认)|单
使用此参数可以指定所有块参数的数据类型。
块参数:数据类型 |
类型:特征向量 |
价值观:“单身” ,“双” |
默认值:“双” |
样品时间
-块采样时间1
(默认值)|正标量块采样时间,指定为正标量。如果状态转换和测量函数的采样时间不同,请选择<年代trong class="guilabel">使多重速率的操作在<年代trong class="guilabel">多速率选项卡,并在<年代trong class="guilabel">多速率标签代替。
如果在中,则此参数可用<年代trong class="guilabel">多速率选项卡,<年代trong class="guilabel">使多重速率的操作参数是从
.
块参数:SampleTime |
类型:特征向量,字符串 |
默认值:' 1 ' |
使多重速率的操作
-允许状态转换和测量功能的不同采样时间的规格从
(默认)|在…上
如果状态转换和测量函数的采样次数不同,请选择此参数。的示例时间<年代trong class="guilabel">多速率标签,在<年代trong class="guilabel">样品时间.
块参数:启用倍率 |
类型:特征向量 |
价值观:“关” ,“上” |
默认值:“关” |
样品时间
-状态转换和测量函数采样时间如果状态转换的采样时间和测量函数不同,请指定<年代trong class="guilabel">样品时间. 将测量函数的采样时间指定为状态转换采样时间的正整数倍。指定的采样时间对应于以下输入端口:
与状态转换功能相对应的端口-附加输入到状态转换功能<年代trong class="guilabel">StateTransitionFcnInputs和时变过程噪声协方差<年代trong class="guilabel">问.这些端口的采样时间必须始终等于状态转换函数采样时间,但可以不同于测量函数的采样时间。
相对应的端口我<年代up>th测量功能-测量输出<年代trong class="guilabel">y我
,增加测量功能的输入<年代trong class="guilabel">MeasurementFcn我
输入,在端口启用信号<年代trong class="guilabel">启用我
,以及时变测量噪声协方差<年代trong class="guilabel">R我
. 相同测量功能的这些端口的采样时间必须始终相同,但可能不同于状态转换功能和其他测量功能的采样时间。
如果在中,则此参数可用<年代trong class="guilabel">多速率选项卡,<年代trong class="guilabel">使多重速率的操作参数是在…上
.
块参数:StateTransitionFcnSampleTime ,测量CN1样本1 ,测量CN1样本2 ,测量CN1样本3 ,测量CN1样本4 ,测量CN1样本5 |
类型:特征向量,字符串 |
默认值:' 1 ' |
该算法计算状态估计<年代pan class="inlineequation"> 用你指定的状态转移和测量函数的非线性系统。您可以指定多达五种测量功能,每一种对应于系统中的一个传感器。该软件允许您指定这些函数中的噪声为加性或非加性。
加性噪声项-状态转换和测量方程具有以下形式:
在这里f是描述状态演化的非线性状态转移函数x
从一个时间步到下一个时间步。非线性测量函数h有关x
的测量y
在时间步k
.w
和v
分别为零均值、不相关过程和测量噪声。这些函数还可以有附加的可选输入参数,用u<年代ub>年代
和u<年代ub>米
在方程式中。例如,附加参数可以是时间步长k
或输入u
对于非线性系统。可以有多个这样的论点。
请注意,两个方程中的噪声项都是相加的。就是,x (k + 1)
是否与过程噪声线性相关w(k)
,及y (k)
与测量噪声线性相关v(k)
.对于附加噪声项,不需要在状态转换和测量函数中指定噪声项。软件将术语添加到函数的输出中。
非相加噪音方面-该软件还支持更复杂的状态转换和状态测量万博1manbetx功能x[k]和测量y[k]分别为过程噪声和测量噪声的非线性函数。当噪声项为非加性时,状态跃迁和测量方程为:
R2020b中的行为发生了变化
从R2020b开始,在<年代pan class="block">无味卡尔曼滤波算法可能会产生与您在以前版本中获得的结果不同的结果。
指定的状态转换和度量函数必须仅使用支持代码生成的MATLAB命令和Simulink块。有关支持代码生成的块的列表,请参见万博1manbetx万博1manbetx万博1manbetx支持代码生成的Simulink内置块万博1manbetx(万博1manbetx仿真软件编码器).有关支持代码生成的命令列表,请参见万博1manbetxC/C++代码生成支持的函数和对象万博1manbetx(MATLAB编码器).
生成的代码使用的算法不同于<年代pan class="block">无味卡尔曼滤波块本身使用。在使用这两种方法得到的结果中,您可能会看到一些数值上的差异。
extendedKalmanFilter
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">卡尔曼
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">卡尔姆
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">particleFilter
|<年代pan itemscope itemtype="//www.tianjin-qmedu.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">unscentedKalmanFilter
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:<年代trong class="recommended-country">.
选择<年代pan class="recommended-country">网站您还可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。