Проблемами 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 объект настроить опции для этого решателя (как, например, количество допуска итераций и ограничений).