exponenta event banner

createParameterBus

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

Описание

пример

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;

Укажите функцию вывода модели, передав параметр sample-time в качестве входного аргумента.

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, подключенный к 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 объект.

Путь блока нелинейного контроллера MPC, заданный как строковый или символьный вектор.

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

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

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

Представлен в R2018b