createParameterBus

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

Описание

пример

createParameterBus(nlmpcobj,nlmpcblk,busName,parameters) создает a 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 входной порт блока Nonlinear MPC Controller. Сконфигурировать этот блок шины, чтобы использовать 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 объект.

Блок path блока Nonlinear MPC Controller в виде строки или вектора символов.

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

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

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

Введенный в R2018b