理解控制行为通过检查最优控制序列
这个例子展示了如何检查操纵变量的优化序列计算模型预测控制器在每个样本的时间。
植物是一个双积分器输入饱和。
MPC控制器设计
MPC控制器的基本设置包括:
双积分器作为预测模型
一个预测地平线的
20.
一个控制的地平线
10
输入约束
1 < = u (t) < = 1
指定MPC控制器。
t = 0.1;p = 20;m = 10;mpcobj = mpc (tf (1, (1 0 0)), t, p m);mpcobj。MV =结构(“最小值”,1“马克斯”1);ν= 1;
- - >“权重。ManipulatedVariables”是空的。假设默认的0.00000。- - >“权重。ManipulatedVariablesRate”是空的。假设默认的0.10000。- - >“权重。OutputVariables”是空的。假设默认的1.00000。
在仿真软件模拟模型金宝app
这个例子中,运行仿真软件®是必需的。金宝app
如果~ mpcchecktoolboxinstalled (“金宝app模型”)disp (仿金宝app真软件需要运行这个例子。)返回结束
打开模型模型,仿真金宝app运行。
mdl =“mpc_sequence”;open_system (mdl) sim (mdl)
- - >转换”模型。植物状态”属性。- - >将模型转换为离散时间。假设没有干扰# 1添加到测量输出。- - >”模型。噪音”是空的。假设白噪声在每个测量输出。
MPC控制器有一个块mv.seq
输出端口,通过选择启用最优控制序列块参数。这个端口输出控制器的最优控制序列计算每个样本的时间。输出信号是一个数组p
+ 1行和Nmv
列,p
预测地平线,Nmv
是操纵变量的数量。
以类似方式,控制器可以输出最优状态序列(x.seq
)和最优输出序列(y.seq
)。
仿真停止时,到工作空间
块连接到mv.seq
港口出口控制序列MATLAB®工作区,日志中的数据变量useq
。
分析最优控制序列
在特定的时间瞬间情节最优控制序列。
* = [0 3.5 2.1 - 2.2 0.2 - 1 2 3 5];图(“名字”,“最优序列的历史”)为t = 1:9 ct = * (t) * 10 + 1;次要情节(3 3 t) h =楼梯(0:p, useq.signals.values (ct,:));h。线宽= 1.5;持有在情节((0:p) + 5, useq.signals.values (ct,:)“* r”)包含(的预测步骤)ylabel (“u”)标题(sprintf (‘序列’(t = % 3.1度)useq.time (ct)))网格轴([0 p -1.1 - 1.1])从结束
MPC控制器使用前两秒将非常接近设置点的输出。控制器输出的上限(+ 1)一秒和交换机的下限(1)在接下来的第二个,这是最好的输入条件下的控制策略。
bdclose (mdl)