createParameterBus

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

Синтаксис

createParameterBus(nlmpcobj,nlmpcblk,busName,parameters)

Описание

пример

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 блока 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