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 входной порт блока 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