createParameterBus

Создайте объект шины Simulink и сконфигурируйте блок Bus Creator для передачи параметров модели в блок Nonlinear MPC Controller

Описание

пример

createParameterBus(nlmpcobj,nlmpcblk,busName,parameters) создает Simulink.Bus объект, busName, в MATLAB® рабочая область для передачи параметров модели в блок Nonlinear MPC Controller, nlmpcblk. createParameterBus требует, чтобы вы подключили блок Bus Creator к блоку Nonlinear MPC Controller в усовершенствование, чтобы он мог сконфигурировать блок Bus Creator для использования объекта шины.

Примеры

свернуть все

Создайте нелинейный контроллер MPC с четырьмя состояниями, двумя выходами и одним входом.

nlobj = nlmpc(4,2,1);
In standard cost function, zero weights are applied by default to one or more OVs because there are fewer MVs than OVs.

Укажите шаг расчета и горизонты контроллера.

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;

Откройте модель Simulink.

mdl = 'mpc_pendcartNMPC';
open_system(mdl)

В этой модели блок Nonlinear MPC Controller сконфигурирован, чтобы использовать контроллер nlobj.

Чтобы использовать необязательный параметр в модели предсказания, модель имеет блок Simulink Bus, соединенный с params входной порт блока нелинейного контроллера MPC. Чтобы сконфигурировать этот блок шины для использования Ts параметр, создайте объект Bus в рабочей области MATLAB ® и сконфигурируйте блок Bus Creator, чтобы использовать этот объект. Назовите объект Bus 'myBusObject'.

createParameterBus(nlobj,[mdl '/Nonlinear MPC Controller'],'myBusObject',{Ts});

bdclose(mdl)
A Simulink Bus object "myBusObject" created in the MATLAB Workspace, and Bus Creator block "mpc_pendcartNMPC/Nonlinear MPC Controller" is configured to use it.

Входные параметры

свернуть все

Нелинейный контроллер MPC, заданный как nlmpc объект.

Блочный путь Nonlinear MPC Controller блока, заданный как строковый или символьный вектор.

Имя объекта шины Simulink, который будет создан в рабочем пространстве MATLAB и установлен в блоке Bus Creator в виде строкового или символьного вектора.

Соответствующий блок Bus Creator должен быть уже подключен к params входной порт блока Nonlinear MPC Controller, заданный как nlmpcblk. Кроме того, блок Bus Creator должен иметь правильное количество входных портов, и эти порты должны быть уже правильно подключены.

Номинальные значения параметров модели предсказания, заданные как массив ячеек длины Np, где Np равно nlmpcobj.Model.NumberOfParameters. Порядок параметров должен совпадать с порядком, заданным в функциях модели, и каждый параметр должен быть числовым параметром с правильными размерностями.

Введенный в R2018b