主要内容

mpcstate

MPC控制器状态

描述

一个mpcstate对象是一个处理对象指向一个隐式或显式MPC控制器的当前状态。使用一个mpcstate对象初始化和MATLAB中的电流控制器的状态®模拟。

控制器状态包括:

  • 州的植物、干扰和噪声模型。这些内置的状态估计值。有关更多信息,请参见控制器状态估计

  • 在前面的控制区间使用操纵变量。

  • 状态估计量的协方差矩阵。

在仿真之前,使用mpcstate获得一个处理对象,如果需要设置控制器的初始条件的状态。默认情况下,初始控制器状态设置为名义值中指定的相关货币政策委员会对象

在仿真过程中,控制器将函数(mpcmove,mpcmoveExplicit,mpcmoveAdaptivempcmoveMultiple),也更新控制器状态在计算一个新的控制移动。如果你使用内置的状态估计,那么您不需要修改控制器状态。如果你使用自定义状态估计,那么你必须使用处理对象为植物提供的当前状态,干扰和噪声模型,在调用控制器之前,移动功能。

仿真后,处理对象反映的状态控制器的仿真。关于处理对象的更多信息,请参阅处理对象的行为

创建

描述

例子

xc= mpcstate (mpcobj)返回一个句柄指向的对象mpcobj并设置对象属性的默认值。

xc= mpcstate (mpcobj,植物,干扰,噪音,lastMove,协方差)设置属性状态对象的指定默认值。离开其默认值的特定属性,设置相应的输入参数[]

输入参数

全部展开

MPC控制器对象,指定为一个货币政策委员会explicitMPC对象。

输出参数

全部展开

处理对象指向电流控制器状态,作为一个返回mpcstate对象,用以下属性

请注意

xc是一个处理对象,如果你将其复制到一个新的变量,新变量仍然指出的当前状态是一样的吗货币政策委员会对象。如果这种状态改变,这反映在两种xc和它的副本。保持原来的状态以备后用,您可以保存xcMAT-file。在仿真过程中,控制器将函数也更新xc当一个新的控制移动计算。有关更多信息,请参见mpcmove。关于处理对象的更多信息,请参阅处理对象的行为

属性

全部展开

工厂模型状态估计,指定为一个向量。植物状态估计的值在工程单位,是绝对的;也就是说,它们包括国家补偿。默认情况下,植物财产等于Model.Nominal.X控制器用于创建的属性mpcstate对象。

如果控制器工厂模型包括延迟,植物财产包括州延误模型。因此,元素的数量植物大于nondelayed的顺序控制器工厂模型。

在仿真期间,如果您正在使用自定义状态估计,之前调用MPC控制器移动函数(mpcmove,mpcmoveExplicit,mpcmoveAdaptivempcmoveMultiple),您必须设置xc.Plant最佳估计。如果您使用的是内置的状态估计,MPC控制器移动函数使用一个卡尔曼滤波器来计算这个估计和设置xc.Plant,因此您不需要更新这个属性。

扰动模型状态估计,指定为一个向量。扰动状态估计包括输入扰动模型的状态之后,美国输出的干扰模型。默认情况下,干扰属性是一个零矢量控制器是否有干扰模型状态和空。

查看控制器的输入和输出扰动模型,使用getindistgetoutdist函数,分别。

仿真时,如果您使用的是自定义状态估计,之前调用的函数计算MPC控制器,必须设置xc.Disturbance最佳估计。如果您使用的是内置的状态估计,MPC控制器移动函数使用一个卡尔曼滤波器来计算这个估计和设置xc.Disturbance,因此您不需要更新这个属性。

输出测量噪声模型状态估计,指定为一个向量。默认情况下,噪音房地产是一个零矢量控制器是否有噪声模型状态和空。

仿真时,如果您使用的是自定义状态估计,之前调用的函数计算MPC控制器,必须设置xc.Noise最佳估计。如果您使用的是内置的状态估计,MPC控制器移动函数使用一个卡尔曼滤波器来计算这个估计和设置xc.Noise,因此您不需要更新这个属性。

最优操纵变量控制从先前的控制区间,指定为一个向量长度等于操纵变量的数量。默认情况下,LastMove属性等于名义值的操纵变量。

在仿真中,这个属性是自动设定的函数,计算MPC控制器移动;因此你不需要更新。

当实际的控制信号发送到工厂在前面的控制区间计算最优值不匹配,不能使用LastMove指定实际的控制信号。相反,使用MVused财产的mpcmoveopt对象。的LastMove财产的mpcstate对象用于存储最优控制在前面的控制区间,和控制器使用的区别LastMoveMVused纠正内部状态估计。

协方差矩阵控制器状态估计,指定为一个N年代——- - - - - -N年代对称矩阵,N年代是中包含的数州的总和植物,干扰,噪音字段。

如果控制器是使用默认状态估计默认的协方差矩阵是稳态协方差计算根据的假设控制器状态估计。当控制器是定常矩阵是静态的。有关更多信息,请参见的描述P的输出参数kalmd函数。

在MATLAB仿真,不要修改xc.Covariance。如果控制器使用自定义状态估计,这个属性是空的,它是不习惯。否则,xc.Covariance是自动更新的函数,计算了MPC控制器。

对象的功能

mpcmove 计算最优控制行动和更新控制器的状态
mpcmoveAdaptive 计算最优控制与预测模型更新
mpcmoveMultiple 计算增益调度MPC控制动作一次
mpcmoveExplicit 计算最优控制使用显式的MPC

例子

全部折叠

创建一个模型预测控制器的single-input-single-output(输出)。对于这个示例,装置包括一个输入延迟0.4时间单位,控制样品的时间0.2时间单位。

特遣部队(P = 1 (10 - 1)“InputDelay”,0.4);mpcobj = mpc (P 0.2);
- - >“PredictionHorizon”属性是空的。假设默认10。- - >“ControlHorizon”属性是空的。假设默认2。- - >“权重。ManipulatedVariables”属性是空的。假设默认的0.00000。- - >“权重。ManipulatedVariablesRate”属性是空的。假设默认的0.10000。 -->The "Weights.OutputVariables" property is empty. Assuming default 1.00000.

获得一个处理对象指向电流控制器状态,初始化所有控制器状态为其默认值。

xmpc = mpcstate (mpcobj)
- - >转换”模型。植物" property to state-space. -->Converting model to discrete time. -->Converting delays to states. -->Assuming output disturbance added to measured output channel #1 is integrated white noise. -->The "Model.Noise" property is empty. Assuming white noise on each measured output. MPCSTATE object with fields Plant: [0 0 0] Disturbance: 0 Noise: [1x0 double] LastMove: 0 Covariance: [4x4 double]

控制器的状态,这是一个mpcstate对象,包含控制器状态只在当前时间。具体地说:

  • xmpc.Plant的当前值估计植物状态。

  • xmpc.Disturbance是国家的当前值扰动模型。

  • xmpc.Noise是当前值噪声模型的状态。

  • xmpc.LastMove是最后一个操纵变量的值。

  • xmpc.Covariance的当前值估计协方差矩阵。

在这个例子中,植物财产的mpcstate对象包含一阶的状态、离散传递函数P以及另外两个州模型两个延迟间隔。默认情况下,控制器(包含一个一阶输出扰动模型干扰房地产是一个标量)和(静态增益噪声模型噪音属性是空的)。

您可以访问控制器状态对象的属性使用点符号。例如,查看默认的协方差矩阵。

xmpc.Covariance
ans =4×40.0624 0.0000 0.0000 -0.0224 0.0000 1.0000 0.0000 -0.0000 0.0000 0.0000 1.0000 0.0000 -0.0224 -0.0000 0.0000 0.2301

请注意,xmpc是一个处理对象,它总是指向当前状态的控制器。

isa (xmpc“处理”)
ans =逻辑1

如果你复制一个mpcstate对象到一个新的变量,新变量仍然指向相同的当前状态货币政策委员会对象。

xmpc_copy = xmpc;xmpc.Disturbance= 0.1; xmpc.Plant = [0.2 0.3 0.4]; xmpc_copy
MPCSTATE对象和字段植物:[0.2000 0.3000 0.4000]干扰:0.1000噪声:[1 x0双]LastMove: 0协方差:[4 x4双)

在模拟中,mpcmove更新内部植物状态当一个新的控制移动计算。因此,在一般情况下,您不需要更新xmpc总是指向当前(因此)更新状态。

计算出控制器动作和更新内部控制器状态假定输出信号0和参考信号1

u = mpcmove (mpcobj xmpc 0、1)
u = 5.6711
xmpc
MPCSTATE对象和字段植物:[0.2105 0.4000 5.6711]干扰:0.0674噪声:[1 x0双]LastMove: 5.6711协方差:[4 x4双)
xmpc_copy
MPCSTATE对象和字段植物:[0.2105 0.4000 5.6711]干扰:0.0674噪声:[1 x0双]LastMove: 5.6711协方差:[4 x4双)

关于处理对象的更多信息,请参阅处理对象的行为

版本历史

之前介绍过的R2006a