主要内容

SIM

用线性植物模拟闭环中的MPC控制器

描述

使用模型预测控制工具箱™SIM使用MPC控制器的闭环或开环响应具有在运行时不会更改的约束和权重的闭环或开环响应。MPC控制器可以是隐式的或显式的,受控设备必须是线性的和时间不变的,并且您必须提前指定参考和干扰信号。默认情况下,模拟中使用的工厂是其中一个mpcobj.model.plant.但是,您可以使用不同的工厂模型来评估控制器稳健性以模型不匹配。

以编程方式运行万博1manbetxSimulink模型,请参阅SIM(万博1manbetxSimulink)

SIM(mpcobj.ns.R.模拟由指定的工厂模型形成的闭环系统mpcobj.model.plant.并由MPC控制器mpcobj.,响应于指定的参考信号,R.。MPC控制器可以是传统的MPC控制器(MPC.)或显式MPC控制器(SexpicicMPC.)。模拟运行指定数量的模拟步骤,ns.SIM绘制模拟结果。

例子

SIM(mpcobj.ns.R.V.还指定了测量的干扰信号V.

SIM(___辛伐斯指定其他模拟选项。此语法允许您更改默认模拟选项,例如初始状态,输入/输出噪声和未测量的干扰,工厂不匹配等。它还允许您在开环中模拟工厂。您可以使用辛伐斯任何以前的输入组合。

[yT.XP.XC.辛伐斯] = SIM(___抑制绘图并返回:

  • 植物输出序列y

  • 时间顺序T.(平等地间隔开mpcobj.ts.),

  • 操纵变量由MPC控制器生成,

  • 序列XP.用于模拟植物模型的状态,

  • 序列XMPC.MPC控制器的状态(由国家观察者提供),

  • 和模拟选项对象,辛伐斯

例子

全部收缩

模拟MISO系统的MPC控制。该系统具有一个操纵变量,一个测量干扰,一个未测量的干扰,以及一个输出。

创建连续时间工厂模型。该工厂将用作MPC控制器的预测模型。

sys = ss(tf({1,1,1},{[1 .5 1],[11],[。7 .5 1]})));

使用0.2单位的采样时间离散化植物模型。

ts = 0.2;SYSD = C2D(SYS,TS);

指定工厂输入信号的MPC信号类型。

sysd = setmpcsignals(sysd,'mv',1,'MD'2,'ud',3);

为此创建MPC控制器SYSD.植物模型。使用权重和视野的默认值。

mpcobj = mpc(sysd);
- >“preditionhorizo​​n”属性“MPC”对象是空的。尝试preditionhorizo​​n = 10.  - >“MPC”对象的“ControlHorizo​​n”属性为空。假设2.  - >“MPC”对象的“权重”属性为空。假设默认为0.00000。- >“权重”属性“MPC”对象的“权重”属性为空。假设默认为0.10000。- >“MPC”对象的“权重”属性为空。假设默认为1.0万。

将操纵变量限制为[0 1]范围。

mpcobj.mv = struct('min',0,'最大限度',1);

指定模拟停止时间。

tstop = 30;

定义参考信号和测量的干扰信号。

num_sim_steps = round(tstop / ts);r = in(num_sim_steps,1);v = [zeros(num_sim_steps / 3,1);(2 * num_sim_steps / 3,1)];

参考信号,R.,是一个单位步骤。测量的扰动信号,V.,是一个单位步骤,具有10个单元延迟。

模拟控制器。

SIM(MPCOBJ,NUM_SIM_STEPS,R,V)
- >“MPC”对象的“Model.Disturbance”属性为空:假设未测量的输入干扰#3是集成的白噪声。假设没有添加到测量的输出通道#1中的干扰。- >“MPC”对象的“Model.Noise”属性为空。假设每个测量的输出通道上的白噪声。

图包含3个轴。轴1包含类型线的对象。这些对象表示驱动输入,MPC响应1。轴2包含类型线的对象。这些对象表示驱动输入,MPC响应1。轴3包含类型线的对象。这些对象表示驱动输入,MPC响应1。

图包含轴。轴包含2个类型的型号。这些对象表示驱动输入,MPC响应1。

输入参数

全部收缩

模型预测控制器,指定为以下之一:

模拟步骤数,指定为正整数。

如果你省略ns.,默认值是以下阵列的次数的行数具有最大的行数:

  • 输入论点R.

  • 输入论点V.

  • 没有令人训练的传动会财产辛伐斯,如果指定的话

  • outputnoise.财产辛伐斯,如果指定的话

例子:100.

参考信号,指定为数组。这个阵列有纽约列,其中纽约是植物产出的数量。R.可以在1到1到ns.行。如果行的数量小于ns.,丢失的行设置为等于最后一行。

例子:那些(100,1)

测量的干扰信号,指定为阵列。这个阵列有NV.列,其中NV.是测量输入干扰的数量。V.可以在1到1到ns.行。如果行的数量小于ns.,丢失的行设置为等于最后一行。

例子:[零(50,1);那些(50,1)]

模拟选项,用于指定额外的模拟选项以及馈送到工厂的噪声和干扰信号,但控制器未知。您还可以使用此对象模拟开环中的工厂,或指定用于模拟的工厂模型与其中不同的植物mpcobj.model.plant.,这允许您评估控制回路响应的鲁棒性,以模型不匹配。

有关更多信息,请参阅mpcsimopt.

输出参数

全部收缩

植物序列输出值,作为a返回ns.-经过-纽约阵列,其中ns.是模拟步骤的数量和纽约是植物产出的数量。价值y包括既不包括附加输出干扰也不包括添加测量噪声(如果有的话)。

时间序列,作为一个返回ns.-by-1阵列,在哪里ns.是模拟步骤的数量。价值T.平等地间隔开mpcobj.ts.

MPC控制器生成的操纵变量值序列,作为a返回ns.-经过-nu.阵列,其中ns.是模拟步骤的数量和nu.是操纵变量的数量。

植物模型的序列状态值,作为一个返回ns.-经过-恩智浦阵列,其中ns.是模拟步骤的数量和恩智浦是植物模型中的州的数量。植物模型要么mpcobj.model.或者simoptions.model.,如果后者被指定。

MPC控制器状态的序列,作为一个返回ns.- 1个结构阵列。结构数组中的每个条目都具有与一个相同的字段MPCState.目的。在每个时间步骤中,MPC控制器通过将工厂状态的估计乘以增益矩阵(通过求解约束的二次优化问题来计算)来获得操纵变量。默认情况下,控制器使用线性Kalman滤波器来估计离散时间工厂的状态,由干扰和噪声模型增强。因此,控制器的状态是该卡尔曼滤波器的状态,其在每次步骤中反过植物,干扰和噪声模型状态的估计。

模拟选项用于模拟的对象。该对象可以指定进入工厂但是控制器未知的噪声和干扰信号。它还可以指定模拟系统是否是开环,或者模拟中使用的工厂模型是否与其中不同mpcobj.model.plant.

有关更多信息,请参阅mpcsimopt.

也可以看看

||

在R2006A之前介绍