主要内容

createParameterBus

创建万博1manbetx配置总线创建器块,用于将模型参数传递给非线性MPC控制器块

描述

例子

createParameterBus (nlmpcobjnlmpcblkbusName参数创建一个万博1manbetx仿真软件。公共汽车对象,busName,在MATLAB中®工作区,用于将模型参数传递给非线性MPC控制器块,nlmpcblkcreateParameterBus要求您连接总线的创造者块到非线性MPC控制器块,以便它可以配置总线的创造者块来使用总线对象。

例子

全部折叠

创建一个具有四个状态、两个输出和一个输入的非线性MPC控制器。

Nlobj = nlmpc(4,2,1);
在标准代价函数中,默认情况下对一个或多个ov应用零权重,因为mv比ov少。

指定控制器的采样时间和范围。

Ts = 0.1;nlobj。Ts= Ts; nlobj.PredictionHorizon = 10; nlobj.ControlHorizon = 5;

指定控制器的状态函数,该函数在文件中pendulumDT0.m.该离散时间模型集成了中定义的连续时间模型pendulumCT0.m采用多步向前欧拉法。

nlobj.Model.StateFcn =“pendulumDT0”;nlobj.Model.IsContinuousTime = false;

预测模型使用一个可选参数,Ts,表示采样时间。指定参数的个数。

nlobj.Model.NumberOfParameters = 1;

指定模型的输出函数,将采样时间参数作为输入参数传递。

nlobj.Model.OutputFcn = @(x,u,Ts) [x(1);x (3)];

为控制器定义标准约束。

nlobj.Weights.OutputVariables = [3 3];nlobj.Weights.ManipulatedVariablesRate = 0.1;nlobj.OV(1)。Min = -10;nlobj.OV(1)。Max = 10;nlobj.MV.Min = -100;nlobj.MV.Max = 100;

打开Sim万博1manbetxulink模型。

mdl =“mpc_pendcartNMPC”;open_system (mdl)

在这个模型中,非线性MPC控制器块被配置为使用控制器nlobj

要在预测模型中使用可选参数,该模型具有连接到万博1manbetx参数个数非线性MPC控制器块的输入端口。配置此总线块以使用Ts参数,在MATLAB®工作空间中创建一个总线对象,并配置总线创建器块以使用该对象。命名总线对象“myBusObject”

(mdl createParameterBus (nlobj/非线性MPC控制器),“myBusObject”, {Ts});bdclose (mdl)
在M万博1manbetxATLAB工作区中创建了一个Simulink总线对象“myBusObject”,并配置了总线创建器块“mpc_pendcartNMPC/非线性MPC控制器”来使用它。

输入参数

全部折叠

非线性MPC控制器,指定为nlmpc对象。

块路径非线性MPC控制器块,指定为字符串或字符向量。

要在MATLAB万博1manbetx工作空间中创建并在总线的创造者块,指定为字符串或字符向量。

相应的总线的创造者块必须已连接到参数个数接口输入端口非线性MPC控制器指定的块nlmpcblk.此外,总线的创造者块必须有正确数量的输入端口,并且这些端口必须已经正确连接。

标称预测模型参数值,指定为单元格数组的长度Np,在那里Np等于nlmpcobj.Model.NumberOfParameters.参数的顺序必须与模型函数中指定的顺序匹配,并且每个参数必须是具有正确尺寸的数值参数。

版本历史

在R2018b中引入