主要内容

sim卡

用线性装置在闭环中模拟MPC控制器

描述

使用模型预测控制工具箱™sim卡函数来模拟,在离散时间,闭环或开环响应的工厂和MPC控制器的约束和权重在运行时不改变。MPC控制器可以是隐式的,也可以是显式的,被控对象必须是线性和时不变的,并且必须事先指定参考信号和干扰信号。默认情况下,模拟中使用的植物是在MPCobj.Model.Plant,但可以使用不同的植物模型来评估控制器对模型失配的鲁棒性。

要以编程方式运金宝app行simulink模型,请参见sim卡(金宝app模型)

sim卡(mpcobjNsr模拟对指定参考信号的闭环响应,r.模拟运行在离散时间,有采样时间mpcobj,因为Ns-1给出仿真步骤,并绘制仿真结果。中指定的工厂模型mpcobj.Model.Plant(如果需要,会进行离散化或重采样)。MPC控制器mpcobj可以是传统的MPC控制器(货币政策委员会)或显式MPC控制器(explicitMPC).如果你省略了Nsr然后使用默认值。

例子

sim卡(mpcobjNsrv还指定了测量的干扰信号v

sim卡(___SimOptions指定其他模拟选项。该语法允许您更改默认的模拟选项,例如初始状态、输入/输出噪声、不可测量的干扰、设备不匹配等。它还允许你在开环中模拟植物。你可以使用SimOptions使用之前的任何输入组合。

ytuxpxcSimOptions= sim(___抑制绘图并返回:

  • 工厂产出的顺序y

  • 时间序列t(等距为mpcobj。Ts),

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

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

  • 序列xmpcMPC控制器的状态(由状态观测器提供),

  • 模拟选项对象,SimOptions

例子

全部折叠

模拟MISO系统的MPC控制。系统有一个操纵变量,一个测量扰动,一个未测量扰动和一个输出。

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

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

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

Ts = 0.2;sysd = c2d(sys,Ts);

为设备输入信号指定MPC信号类型。

Sysd = setmpcsignals(Sysd,“MV”,1,“医学博士”2,“UD”3);

创建MPC控制器sysd工厂模式。权重和视界使用默认值。

MPCobj = mpc(sysd);
——>“PredictionHorizon”属性为空。假设默认为10。“ControlHorizon”属性为空。假设默认2。- - - >“权重。属性为空。假设默认值为0.00000。- - - >“权重。属性为空。假设默认为0.10000。 -->The "Weights.OutputVariables" property is empty. Assuming default 1.00000.

控件约束被操作的变量[0 1]的范围内。

MPCobj。MV = struct(“最小值”,0,“马克斯”1);

指定模拟停止时间。

Tstop = 30;

定义参考信号和测量扰动信号。

num_sim_steps = round(Tstop/Ts);R = ones(num_sim_steps,1);V = [0 (num_sim_steps/3,1);的(2 * num_sim_steps / 3,1)];

参考信号,r,为单位阶跃。测量到的扰动信号,v,为单位步长,具有10个单位延迟。

模拟控制器。

sim (MPCobj num_sim_steps, r, v)
——>”模式。“扰动”属性为空:假设未测量的输入扰动#3是集成白噪声。假设测量的输出通道1没有任何扰动。——>”模式。“噪音”属性为空。假设每个测量输出都有白噪声。

{

{

输入参数

全部折叠

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

指定为正整数的模拟点数(包括零)。模拟运行为Ns-1之间的步骤,0而且Ts * (Ns-1)

如果你省略了Ns,默认值为以下数组中行数最大的数组的行数:

  • 输入参数r

  • 输入参数v

  • UnmeasuredDisturbance的属性SimOptions,如果指定

  • OutputNoise的属性SimOptions,如果指定

  • 预测视界之间的最大值MPCobj。P而且10

例子:20.

引用信号,指定为数组。这个数组有纽约列,纽约是总(测量的和未测量的)工厂产量的数量。r从1到Ns行。如果行数小于Ns,将缺失的行设置为与最后一行相等。

如果Ns为空或未指定,则默认为名义输出向量MPCobj.Model.Nominal.Y

例子:3(20日)

测量的输入干扰信号,指定为数组。这个数组有nv列,nv是测量到的输入扰动的个数。v从1到Ns行。如果行数小于Ns,将缺失的行设置为与最后一行相等。

如果v为空或未指定,默认为测量输入扰动的标称值,MPCobj.Model.Nominal.U (md),在那里医学博士向量是否包含测量扰动信号的指标,如定义的那样setmpcsignals

例子:[0 (50, 1), 1 (50, 1)]

模拟选项,用于指定附加的模拟选项以及输入到装置但控制器不知道的噪声和扰动信号。您还可以使用此对象来模拟开环中的植物,或者指定要在模拟中使用的与中的植物模型不同的植物模型MPCobj.Model.Plant,这允许您评估控制回路响应模型不匹配的鲁棒性。

有关更多信息,请参见mpcsimopt

输出参数

全部折叠

植物输出值的序列,返回为Ns——- - - - - -纽约数组,Ns是多少模拟步骤和纽约是工厂产出的数量。中的值y不包括附加输出干扰或附加测量噪声(如果有的话)。

时间序列,返回为Ns-by-1数组,其中Ns为模拟步数。中的值t相等的间隔MPCobj。Ts

MPC控制器生成的操作变量值序列,返回为Ns——- - - - - -ν数组,Ns是多少模拟步骤和ν是被操纵变量的数量。

植物模型状态值的序列,返回为Ns——- - - - - -Nxp数组,Ns是多少模拟步骤和Nxp是工厂模型中的状态数。植物模式是两者之一MPCobj。模型SimOptions。模型,如果指定了后者。

MPC控制器状态序列,返回为Ns-by-1结构数组。结构数组中的每个条目都具有与mpcstate对象。该控制器使用内置线性卡尔曼滤波器估计装置状态,并通过扰动和噪声模型进行增强。控制器的状态是其内部卡尔曼滤波器的状态。对于开环模拟,xc是空的。

用于模拟的模拟选项对象。该对象可以指定输入到设备但控制器不知道的噪声和扰动信号。它还可以指定被模拟的系统是否为开环,或者在模拟中使用的植物模型是否与在模拟中使用的不同MPCobj.Model.Plant

有关更多信息,请参见mpcsimopt

版本历史

R2006a之前介绍