主要内容

粒子过滤器

使用粒子滤波器的离散时间非线性系统估算状态

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

    系统识别工具箱/估计

  • pf_block.

描述

粒子过滤器块估计使用离散时间粒子滤波器算法的离散时间非线性系统的状态。

考虑一个州的植物x, 输入u, 输出,过程噪声w和测量y.假设您可以将工厂代表为非线性系统。

该算法计算状态估计值 x 使用状态转换和测量似曲功能的非线性系统您指定。

您可以为系统创建非线性状态转换功能和测量似然函数,并在块中指定这些函数。该块支持具有以不同采金宝app样率运行的多个传感器的系统的状态估计。您可以指定多达五个测量似然函数,每个测量似然函数对应于系统中的传感器。

港口

输入

展开全部

测量系统输出对应于您在块中指定的每个测量似然函数。端口数量等于系统中的测量似然函数的数量。您可以指定最多五种测量似函数。例如,如果您的系统有两个传感器,则在块中指定两个测量似然函数。第一个港口y1.默认情况下可用。点击添加测量,生成端口Y2.对应于第二测量似然函数。

将端口指定为N- 尺寸的向量,在哪里N是对应传感器测量的数量。例如,如果你的系统有一个传感器来测量一个物体的位置和速度,那么就只有一个端口y1..端口被指定为二维向量,其中值对应于位置和速度。

依赖性

第一个港口y1.默认情况下可用。港口Y2.y5.是在单击时生成的添加测量

状态转换函数的可选输入参数f除了国家x

如果您创建f使用matlab.®功能 (.米文件),软件生成端口StateTransitionFcninputs.输入功能名称时,然后单击应用

如果状态转换函数有多个额外输入,请使用金宝app仿真软件的功能(金宝app模型)块指定函数。当你使用的时候金宝app仿真软件的功能块,则直接向金宝app仿真软件的功能块使用inport.(金宝app模型)块。没有为附加输入生成输入端口粒子过滤器块。

依赖性

仅当满足以下两个条件时才生成此端口:

  • 你指定了f功能使用MATLAB功能,和f在MATLAB路径上。

  • f除了粒子之外只需要一个额外的输入参数。

除状态以外的测量似然函数的可选输入x和测量y

MeasurementLikelihoodFCN1Inputs.对应于您指定的第一个测量似然函数,以此类推。

如果使用MATLAB函数指定两个测量输入(.米文件)在功能,软件生成端口MeasurementLikelihoodFCN1Inputs.MeasurementLikelihoodFCN2Inputs.当你点击应用.您可以将这些端口的输入指定为标量,向量或矩阵。

如果您的测量似然函数具有多个额外输入,请使用金宝app仿真软件的功能(金宝app模型)块指定函数。当你使用的时候金宝app仿真软件的功能块,则直接向金宝app仿真软件的功能块使用inport.(金宝app模型)块。没有为附加输入生成输入端口粒子过滤器块。

依赖性

对应于测量似然函数的端口h仅在满足以下两个条件时才生成:

  • 你指定测量输入h功能使用MATLAB功能,和h在MATLAB路径上。

  • h除了粒子和测量外,只需要一个额外的输入参数。

在测量数据可用时,可以实现估计状态的校正。

例如,考虑在端口处的所有时间点都不提供测量的输出数据y1.这对应于第一测量似然函数。然后,使用以外的信号值0启用1.当测量数据可用时,以启用估计状态的端口。指定端口值为0测量数据时不可用。同样,如果在端口的所有时间点都不提供测量的输出数据y为了TH.测量似然函数,指定相应的端口使能够作为以外的价值0

依赖性

如果你选择添加启用端口对于测量似然函数,生成对应于该测量似然函数的端口。单击时,端口会出现应用

输出

展开全部

估计的状态,作为大小的矢量返回ns., 在哪里ns.是系统的状态数量。要访问个人状态,请使用选择器(金宝app模型)块。

当。。。的时候使用当前度量来改进状态估计参数被选中,块输出纠正的状态估计值 x k | k 在时间步骤k,估计使用测量的输出直到时间k.如果清除此参数,则块返回预测的状态估计 x k | k - 1 时间k,估计使用测量的输出直到上一次K-1.如果筛选器处于反馈循环中,请清除此参数,并且在Simulink中有一个代数循环金宝app®模型。

状态估计错误协方差,作为一个返回ns.-经过-ns.矩阵,其中ns.是系统的状态数量。要访问个人的协方差,请使用选择器(金宝app模型)块。

只有当您选择时,才可以输出误差协方差输出状态估计错误协方差在里面块输出,多速率选项卡,然后单击应用

依赖性

如果在中,此参数可用块输出,多速率标签,这国家估计方法参数设置为'吝啬的'

用于状态估计的粒子值,作为返回ns.-经过-NP.或者NP.-经过-ns.大批。ns.是系统的状态数量,以及NP.是粒子的数量。

  • 如果是StateOrientation参数被指定为'柱子',然后粒子被归还为一个ns.-经过-NP.大批。

  • 如果是StateOrientation参数被指定为“行”,然后粒子被归还为一个NP.-经过-ns.大批。

依赖性

如果您选择,则会生成此端口输出所有粒子在里面块输出,多速率选项卡,然后单击应用

用于状态估计的粒子权重,以1-返回NP.或者NP.-1 vector,在哪里NP.是用于状态估计的粒子的数量。

  • 如果是StateOrientation参数被指定为'柱子',然后权重作为一个1-by-返回NP.向量,每种重量与同一列中的粒子相关联粒子大批。

  • 如果是StateOrientation参数被指定为“行”,然后权重返回为NP.-1载向量,每个重量与同一行中的粒子相关联粒子大批。

依赖性

如果您选择,则会生成此端口输出权重在里面块输出,多速率选项卡,然后单击应用

参数

展开全部

系统模型选项卡

国家过渡

粒子过滤器状态转换功能在时间步骤计算粒子K + 1,在时间步骤给定粒子k根据系统的动态和过程噪声。此函数具有语法:

particlesnext = f(粒子,param1,param2,......)

在哪里,粒子particlesnext.有尺寸ns.-经过-NP.如果国家方向被指定为'柱子', 或者NP.-经过-ns.如果国家方向被指定为“行”.还,PARAM_I.表示您可以指定的可选输入参数。有关可选输入参数的更多信息,请参阅StateTransitionFcninputs.

您创建状态转换功能并指定函数名称功能.例如,如果vdpparticlefilterstatefcn.m.是您创建和保存的状态转换功能,指定功能作为'vdpparticlefilterstatefcn'

你可以创建功能使用一个金宝app仿真软件的功能(金宝app模型)块或作为MATLAB功能(.米文件)。

编程使用

块参数:StateTransitionFCN.
类型:特征向量,字符串
默认值:'vdpparticlefilterstatefcn'
初始化

过滤器中使用的粒子数,指定为正标量整数。每个粒子表示系统中的状态假设。较数较多的粒子增加了状态估计精度,而且还增加了运行过滤器所需的计算工作。

编程使用

块参数:NumberofParticles.
类型:积极的标量整数
默认值:1000

粒子的初始分布,指定为'高斯','制服', 或者'风俗'

如果你选择'高斯',初始一组粒子或状态假设按多功能高斯分布分发,您可以在其中指定吝啬的协方差.假设所有粒子的初始重量相等。

如果你选择'制服',初始粒子集每种均匀分布分布,在那里您指定鞋面和下部国家界限.假设所有粒子的初始重量相等。

'风俗'允许您指定自己的一组初始粒子及其重量。您可以使用任意概率分布粒子权重初始化过滤器。

编程使用

块参数:初始分布
类型:字符向量
价值观:'高斯','制服','风俗'
默认值:'高斯'

粒子的初始平均值,指定为一个矢量。被估计的状态数定义了向量的长度。

依赖性

如果在中,此参数可用系统模型标签,这分配参数设置为高斯

编程使用

块参数:initialmean.
类型:大批
默认值:[0,0]

颗粒的初始协方差,指定为标量,矢量或矩阵。

如果协方差被指定为:

  • 标量,那么它必须是积极的。假设协方差是一个[ns.ns.]矩阵与该标量在对角线上。这里,ns.是州的数量。

  • 矢量,然后每个元素必须是正的。假设协方差是一个[ns.ns.矩阵与向量的元素对角线。

  • 矩阵,那么它必须是正半纤维。

依赖性

如果在中,此参数可用系统模型标签,这分配参数设置为高斯

编程使用

块参数:InitialCovariance
类型:标量,矢量或矩阵
默认值:1

用于状态估计的圆形变量,指定为标量或ns.-element矢量,在哪里ns.是州的数量。

如果圆形变量被指定为标量,软件将其扩展到每个元素等于该标量的向量。圆形(或角度)分布使用概率密度函数,其中一系列[-π.π]。如果系统中的某些状态表示具有对象的方向的角数量,请使用圆形变量。

编程使用

块参数:循环varialbles.
类型:标量,矢量
默认值:0

系统状态的方向,指定为'柱子'或者“行”

如果国家方向被指定为:

  • '柱子',然后对状态转换和测量似然函数的第一个输入参数是[ns.NP.]。在这种情况下,TH.这个矩阵的列是TH.粒子(状态假设)。同时,各州也进行了估计XHAT.输出为[ns.1]矢量。这里,ns.是国家的数量,和NP.是粒子的数量。

  • “行”,然后对状态转换和测量似然函数的第一个输入参数是[NP.ns.[该矩阵的每一行包含粒子。同时,各州也进行了估计XHAT.输出为[1ns.矢量。

编程使用

块参数:StateOrientation
类型:字符向量
价值观:'柱子',“行”
默认值:'柱子'

系统状态的初始界限,指定为一个ns.-by-2阵列,在哪里ns.是州的数量。

TH.行列出了均匀分布的下界和上界的粒子的初始分布TH.状态。

依赖性

如果在中,此参数可用系统模型标签,这分配参数设置为制服

编程使用

块参数:InitialStateBounds.
类型:大批
默认值:[-3 3; -3 3]

状态估计的自定义粒子分布,指定为ns.-经过-NP.或者NP.-经过-ns.大批。ns.是系统的状态数量,以及NP.是粒子的数量。

  • 如果是StateOrientation参数被指定为'柱子',然后粒子是一个ns.-经过-NP.大批。

  • 如果是StateOrientation参数被指定为“行”,然后粒子是一个NP.-经过-ns.大批。

依赖性

如果在中,此参数可用系统模型标签,这分配参数设置为风俗

编程使用

块参数:InitialParticles
类型:大批
默认值:[]

状态估计的自定义粒子权重值,指定为1-by-NP.或者NP.- 1个阳性矢量,在哪里NP.是用于状态估计的粒子的数量。

  • 如果是StateOrientation参数被指定为'柱子',然后权重是1 -NP.向量。向量中的每种重量与同一列中的颗粒相关联粒子大批。

  • 如果是StateOrientation参数被指定为“行”,然后权重是A.NP.1的向量。向量中的每种重量与同一行中的粒子相关联粒子大批。

依赖性

如果在中,此参数可用系统模型标签,这分配参数设置为风俗

编程使用

块参数:初始重量
类型:阳性矢量
默认值:[]
测量

测量似然函数使用传感器测量来计算粒子(状态假设)的可能性。对于每个状态假设(粒子),该功能首先计算纳米-element测量假设矢量。然后基于传感器测量和测量噪声概率分布来计算每个测量假设的可能性。此函数具有语法:

似然= h(粒子,测量,param1,param2,......)
在哪里,可能性是一个NP.-element矢量,在哪里NP.是粒子的数量。粒子有尺寸ns.-经过-NP.如果国家方向被指定为'柱子', 或者NP.-经过-ns.如果国家方向被指定为“行”测量是一个纳米-element矢量在哪里,纳米是您传感器提供的测量次数。PARAM_I.表示您可以指定的可选输入参数。有关可选输入参数的更多信息,请参阅MeasurementLikelihoodFCN1Inputs,...,MeasurementLikelioieFCN5.Inputs

您创建测量似然函数并指定功能名称功能.例如,如果vdpmeasurementlikelihoodfcn.m.是否指定您创建并保存的测量似然函数功能作为“vdpMeasurementLikelihoodFcn”

你可以创建功能使用一个金宝app仿真软件的功能(金宝app模型)块或作为MATLAB功能(.米文件)。

  • 只有在以下情况下,才能使用MATLAB函数h有零或一个额外的输入参数PARAM_I.以外粒子测量

    该软件生成一个额外的输入端口MeasurementLikelihoodfcn.输入属性指定此参数TH.测量似然函数,然后单击应用

  • 如果您使用的是金宝app仿真软件的功能块,指定xy使用参数尺寸。(金宝app模型)块和附加输入PARAM_I.使用inport.(金宝app模型)街区在金宝app仿真软件的功能块。你不提供PARAM_I.到了粒子过滤器块。

如果系统中有多个传感器,则可以指定多个测量似然函数。您可以使用最多5个测量似然函数添加测量按钮。删除测量似然功能,使用删除测量

编程使用

块参数:MeasurementLikelihoodFCN1.,MeasurementLikelihoodFCN2.,MeasurementLikelihoodFCN3.,MeasurementLikelihoodFCN4.,MeasurementLikelihoodFCN5.
类型:特征向量,字符串
默认值:“vdpMeasurementLikelihoodFcn”

假设在端口的所有时间点都不提供测量的输出数据y1.这对应于第一测量似然函数。生成输入端口启用1., 选择添加启用端口.在此端口处使用信号,仅在测量数据可用时才能够校正估计的状态。同样,如果在端口的所有时间点都不提供测量的输出数据y为了TH.测量似然函数,选择相应的添加启用端口

编程使用

块参数:HasmeasurementenablePort1.,HasmeasurementenablePort2.,HasmeasurementenablePort3.,HasmeasurementenablePort4.,HasmeasurementenablePort5.
类型:字符向量
价值观:'离开',“上”
默认值:'离开'
重新采样

用于粒子重采样的方法,指定为以下之一:

  • '多行'

  • 'systematic'

  • '分层'

编程使用

块参数:ResamplingMethod
类型:字符向量
价值观:'多行',“系统性”,'分层'
默认值:'多行'

确定重新采样何时发生重新采样的方法,指定为“比”或者'间隔'.的“比”基于有效总粒子的比率触发重采样。的'间隔'Value在粒子滤波操作的定时步长触发重新采样。

编程使用

块参数:triggermethod.
类型:字符向量
价值观:“比”,'间隔'
默认值:“比”

有效粒子数与粒子总数的最小期望比率,指定为一个正标量。粒子的有效数量是对当前粒子集合如何很好地逼近后验分布的一种度量。较低的有效粒子比意味着较低的粒子数量对估计和重采样是必需的。

如果有效数量的颗粒与颗粒总数的比率低于最小有效粒度,则触发重采样步骤。

将最小有效粒径指定为0到0的任何值。

依赖性

如果在中,此参数可用系统模型标签,这触发方法参数设置为比率

编程使用

块参数:mineffectiveparticleratio
类型:标量子
价值观:范围[0,1]
默认值:0.5

重新采样之间的固定间隔,指定为正标量整数。采样间隔确定在哪些校正步骤中执行重采样。例如,每秒执行重采样的两个意味着重试步骤。价值INF.意味着从未执行重新采样。

依赖性

如果在中,此参数可用系统模型标签,这触发方法参数设置为间隔

编程使用

块参数:SamplingInterval.
类型:积极的标量整数
默认值:1
随机数生成器选项

随机数是否可重复,指定为“重复”或者'不可重复'.如果您希望能够多次生成相同的结果,请设置随机性“重复”,并指定相同的随机数发生器种子值种子

编程使用

块参数:随机性
类型:字符向量
价值观:“重复”,'不可重复'
默认值:“重复”

可重复随机数的种子值,指定为标量。

依赖性

如果在中,此参数可用系统模型标签,这随机性参数设置为“重复”

编程使用

块参数:种子
类型:标量子
默认值:0
设置

使用此参数为所有块参数指定数据类型。

编程使用

块参数:数据类型
类型:字符向量
价值观:'单身的','双倍的'
默认值:'双倍的'

块采样时间,指定为正标量。

使用采样时间参数,如果您的状态转移和所有测量似然函数有相同的样本时间。否则,选择启用多速率操作选项在多型选项卡,并在同一标签中指定采样时间。

依赖性

如果在中,此参数可用块输出,多速率标签,这启用多速率操作参数是离开

编程使用

块参数:采样时间
类型:特征向量,字符串
默认值:' 1 '

块输出,多速率选项卡

输出

用于从粒子中提取状态估计的方法,指定为以下之一:

  • '吝啬的'- 这粒子过滤器块根据参数输出粒子的加权平均值权重粒子,作为国家估计。

  • 'maxweight'- 这粒子过滤器块输出具有最高权重的粒子作为状态估计。

  • '没有任何'- 使用此选项来实现自定义状态估计方法,通过使用使用所有粒子来访问所有粒子输出所有粒子参数来自块输出,多速率标签。

编程使用

块参数:最终于司法方法
类型:特征向量,字符串
价值观:'吝啬的','maxweight','没有任何'
默认值:'吝啬的'

如果您选择此参数,用于估计的粒子的输出端口,粒子在块中生成。

  • 如果是StateOrientation参数被指定为'柱子',则粒子输出为ns.-经过-NP.大批。ns.是系统的状态数量,以及NP.是粒子的数量。

  • 如果是StateOrientation参数被指定为“行”,则粒子输出为NP.-经过-ns.大批。

编程使用

块参数:输出序列
类型:字符向量
价值观:'离开',“上”
默认值:'离开'

如果选择此参数,则估计中使用的粒度重量的输出端口,权重在块中生成。

  • 如果是StateOrientation参数被指定为'柱子',然后将粒度重量作为1-by-输出NP.向量。这里,每种重量与同一列中的粒子相关联粒子大批。NP.是用于状态估计的粒子的数量。

  • 如果是StateOrientation参数被指定为“行”,然后将粒子重量作为a输出NP.1的向量。

编程使用

块参数:输出重量
类型:字符向量
价值观:'离开',“上”
默认值:'离开'

如果选择此参数,则状态估计错误协方差输出端口,P在块中生成。

依赖性

如果在中,此参数可用块输出,多速率标签,这国家估计方法参数设置为'吝啬的'

编程使用

块参数:outputStatecovariance.
类型:字符向量
价值观:'离开',“上”
默认值:'离开'

选择此参数时,块会输出纠正的状态估计值 x k | k 在时间步骤k,估计使用测量的输出直到时间k.如果清除此参数,则块返回预测的状态估计 x k | k - 1 时间k,估计使用测量的输出直到上一次K-1.如果您的过滤器处于一个反馈循环中,并且在您的Simulink模型中有一个代数循环,则清除此参数。金宝app

编程使用

块参数:USECURRENTESTIMATOR.
类型:字符向量
价值观:“上”,'离开'
默认值:“上”
多型

如果状态转换的采样时间或任何测量似曲函数与其余不同的采样时间,则选择此参数。您指定了样本时间多型标签,in.采样时间

编程使用

块参数:eNableMuktirate.
类型:字符向量
价值观:'离开',“上”
默认值:'离开'

如果状态转换和测量似然函数的采样时间是不同的,请指定采样时间.指定测量功能的采样时间,作为状态转换采样时间的正整数倍数。您指定的示例时间对应于以下输入端口:

  • 对应于状态转换函数的端口 - 状态转换功能的附加输入StateTransitionFcninputs..这些端口的样本时间必须始终等于状态转移函数的样本时间,但可以不同于测量似然函数的样本时间。

  • 相对应的端口TH.测量似然函数 - 测量输出y,额外输入到测量似然函数MeasurementLikelihoodfcn.输入,在端口启用信号使能够.对于相同测量似然函数的这些端口的采样时间必须始终相同,但可以与状态转换功能的采样时间和其他测量似然函数不同。

依赖性

如果在中,此参数可用块输出,多速率标签,这启用多速率操作参数是

编程使用

块参数:StateTransitionFcnsampletime.,MeasurementLikelihoodFcn1SampleTime1,MeasurementLikelihoodFcn1SampleTime2,MeasurementLikelihoodFcn1SampleTime3,MeasurementLikelihoodFcn1SampleTime4,MeasurementLikelihoodFcn1SampleTime5
类型:特征向量,字符串
默认值:' 1 '

扩展能力

介绍了R2018a