Проблемами MPC с дискретными наборами управления являются проблемы, в которых некоторые или все переменные, которыми управляют, принадлежат дискретным наборам. Чтобы обработать эти случаи, для данной переменной, которой управляют, задают Type
поле соответствующего ManipulatedVariables
структура в mpc
объект:
'binary'
— Ограничьте переменную, которой управляют, чтобы быть или 0 или 1.
'integer'
— Ограничьте переменную, которой управляют, чтобы быть целым числом.
Вектор, содержащий значение из дискретного набора возможных — Ограничивает переменную, которой управляют, заданными значениями, например, mpcobj.MV(2).Type=[-1,0,0.5,1,2];
.
По умолчанию тип установлен в 'continuous'
, указание, что переменная, которой управляют, непрерывна.
Можно симулировать дискретный набор управления линейный контроллер MPC в:
MATLAB® — использование sim
, mpcmove
, mpcmoveAdaptive
и mpcmoveMultiple
.
Simulink® — с помощью MPC Controller, Adaptive MPC Controller и блоков Multiple MPC Controllers.
При симуляции нескольких контроллеров, использующих mpcmoveMultiple
или блок Multiple MPC Controllers, все диспетчеры кандидата должны использовать ту же настройку типа переменной, которой управляют.
Генерация кода от диспетчера с дискретными наборами управления поддерживается и в MATLAB и в Simulink.
Новый встроенный решатель смешано-целочисленного квадратичного программирования (MIQP) используется, чтобы решить дискретную задачу MPC набора управления. Можно использовать новое свойство Optimizer.MixedIntegerOptions
из mpc
объект настроить опции для этого решателя (как, например, количество допуска итераций и ограничений).