Проблемы 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, адаптивного контроллера MPC и нескольких контроллеров MPC.
При моделировании нескольких контроллеров с использованием mpcmoveMultiple или блок Multiple MPC Controllers, все контроллеры-кандидаты должны использовать одну и ту же конфигурацию управляемого типа переменных.
Генерация кода от контроллера с дискретными наборами управления поддерживается как в MATLAB, так и в Simulink.
Для решения задачи MPC набора дискретного управления используется новый встроенный решатель смешанного целочисленного квадратичного программирования (MIQP). Можно использовать новое свойство Optimizer.MixedIntegerOptions из mpc объект для настройки опций этого решателя (например, количество итераций и допуск ограничений).