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