帮助中心帮助中心
修改模型预测控制器的状态估计器
setEstimator(mpcobj,l,m)
setEstimator(mpcobj,“默认”)
setEstimator(mpcobj,'custom')
例子
setEstimator(mpcobj,,,,l,,,,m)设置用于估计MPC控制器状态的增益矩阵。有关更多信息,请参阅状态估计器方程。
setEstimator(mpcobj,,,,l,,,,m)
mpcobj
l
m
setEstimator(mpcobj,'默认')恢复增益矩阵l和m对于他们的默认值。默认值是使用Kalmd对于工厂,干扰和测量噪声模型mpcobj。
setEstimator(mpcobj,'默认')
Kalmd
setEstimator(mpcobj,'风俗')指定控制器状态估计将通过用户提供的过程执行。此选项抑制计算l和m。当控制器以这种方式运行时,该程序必须提供州估计值x [n | n]在每个控制间隔的开头到控制器。
setEstimator(mpcobj,'风俗')
x [n | n]
全部收缩
假设使用线性系统设计估计器 一个 m = l 可以解决。
创建植物模型。
g = tf({1,1,1},{[1 .5 1],[1 1],[。7.5 1]});
为了提高此示例的清晰度,请致电mpcverbosity压制与使用MPC控制器合作的消息。
mpcverbosity
old_status = mpcverbosity('离开');
为工厂创建模型预测控制器。将控制器样品时间指定为0.2秒。
MPCOBJ = MPC(G,0.2);
获取默认状态估计器增益。
[〜,m,a1,cm1] = getEstimator(mpcobj);
计算默认观察者杆。
e = eig(a1-a1*m*cm1);ABS(E)
ans =6×10.9402 0.9402 0.8816 0.8816 0.7430 0.9020
指定更快的观察者杆。
new_poles = [.8 .75 .7 .85 .6 .81];
计算一个将观察者杆放置在的状态增益矩阵new_poles。
new_poles
l = plot(a1',cm1',new_poles)';
地方返回控制器增益矩阵,而您要计算观察者增益矩阵。使用双重性原理,将可控性与可观察性相关联,您指定的转置A1和CM1作为输入地方。此功能调用产生观察者增益转置。
地方
A1
CM1
从状态增益矩阵中获取估计器增益。
m = a1 \ l;
指定m作为估计器mpcobj。
这对, ( 一个 1 ,,,, C m 1 ),描述植物和干扰模型组合的总体空间实现,必须可以观察到国家估计设计才能成功。可观察性在模型预测控制工具箱软件中以两个级别进行检查:(1)检查植物模型的可观察性在施工中MPC对象的植物,前提是植物的模型以状态空间形式给出;(2)检查整体扩展模型的可观察性初始化MPC对象的所有模型都已转换为离散的时间,无延迟,状态空间形式并组合在一起。
恢复mpcverbosity。
mpcverbosity(old_status);
MPC控制器,指定为MPC控制器对象。使用MPC命令创建MPC控制器。
MPC
是
Kalman在时间更新中获得矩阵,指定为矩阵。尺寸l是nX-经过-nYM, 在哪里nX是控制器状态的总数,以及nYM是测量输出的数量。
如果l是空的,默认为l = a*m, 在哪里一个是国家转变矩阵。
l = a*m
一个
0
Kalman获得的测量更新矩阵,指定为矩阵。尺寸l是nX-经过-nYM, 在哪里nX是控制器状态的总数,以及nYM是测量输出的数量。
如果m被省略或空,默认为零矩阵,状态估计器变为Luenberger观察者。
通常,控制器状态是未测量的,必须估算。默认情况下,控制器使用源自状态观察者的稳态卡尔曼滤波器。有关更多信息,请参阅控制器状态估计。
在开始k控制间隔,根据以下步骤估算控制器状态:
获取以下数据:
XC((k|k–1) - 先前控制间隔的控制器状态估计,k–1
你行为((k–1) - 工厂中实际使用的操纵变量(MV)k–1 tok(假定常数)
你选择((k–1) - MPC推荐的最佳MV,并假定在工厂中使用k–1 tok
v((k) - 当前测量的干扰
ym((k) - 当前测量的植物产量
b你,,,,bv- 观察者参数的列b对应于你((k) 和v((k)输入
Cm- 观察者参数C的行,对应于测量的植物产量
dMV- 观察者参数的行和列d对应于测量的植物产量和测量的干扰输入
l,,,,m- 恒定的卡尔曼获得矩阵
在计算之前,将工厂输入和输出信号缩放为无量纲。
修订XC((k|k–1)什么时候你行为((k–1)和你选择((k–1)是不同的。
X C r e v (( k | k - 1 ) = X C (( k | k - 1 ) + b 你 [[ 你 一个 C t (( k - 1 ) - 你 o p t (( k - 1 ) 这是给予的
计算创新。
e (( k ) = y m (( k ) - [[ C m X C r e v (( k | k - 1 ) + d m v v (( k ) 这是给予的
更新控制器状态估计以说明最新测量值。
X C (( k | k ) = X C r e v (( k | k - 1 ) + m e (( k )
然后,软件使用当前状态估计XC((k|k)以间隔解决二次程序k。解决方案是你选择((k),在控制间隔之间使用的MPC启用可操作变量值k和k+1。
最后,该软件为下一个控制间隔做准备,假设未知输入,wID((k),wOD((k), 和wn((k)在时间之间假设其平均值(零)k和k+1。该软件预测已知输入和创新的影响如下:
X C (( k + 1 | k ) = 一个 X C r e v (( k | k - 1 ) + b 你 你 o p t (( k ) + b v v (( k ) + l e (( k )
getEstimator|MPC|mpcstate|卡尔曼
getEstimator
mpcstate
卡尔曼
この例さたバージョンがます编集さた方のの例を开き开きます?
Matlabコマンドコマンドにするがクリックされまし。。
matlabコマンドコマンドに入力してしください。。。。ブラウザー
选择一个网站以获取可用的翻译内容,并查看本地事件和优惠。根据您的位置,我们建议您选择:。
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英语)以获得最佳场地性能。其他Mathworks乡村网站未针对您所在的访问进行优化。
联系您当地的办公室