И для неявных и для адаптивных контроллеров MPC, можно настроить предсказание и управлять горизонтами, в то время как контроллер действует. Выполнение так может быть полезно для:
Эффективно оценивающий различный выбор горизонта во время выполнения во время прототипирования
Корректировка горизонтов без повторного развертывания после динамики объекта значительно изменяется, такой как в процессе пакетной обработки
Чтобы настроить горизонты во время выполнения из командной строки, в каждом контрольном интервале, задают следующие свойства mpcmoveopt
объект.
PredictionHorizon
— Горизонт предсказания во время выполнения сигнализирует в виде положительного целого числа
ControlHorizon
— Горизонт управления во время выполнения сигнализирует в виде положительного целого числа или вектора из положительных целых чисел
Можно затем передать mpcmoveopt
возразите против также mpcmove
или mpcmoveAdaptive
.
В Simulink®, чтобы настроить горизонты для блока MPC Controller или Adaptive MPC Controller, выберите параметр Adjust prediction horizon and control horizon at run time. Выполнение так добавляет следующие входные порты в блок:
p
— Горизонт предсказания во время выполнения сигнализирует в виде скалярного целочисленного сигнала
m
— Горизонт управления во время выполнения сигнализирует в виде скалярного или векторного сигнала
Необходимо задать максимальный горизонт предсказания с помощью параметра Maximum prediction horizon. Выполнение так гарантирует что оптимальные выходные порты последовательности блока (mv.seq
, x.seq
, и y.seq
) имейте постоянные размеры с pmax +1 строка, где pmax является максимальным горизонтом предсказания.
Горизонт во время выполнения, настраивающий генерацию кода поддержек в обоих MATLAB® и Simulink. Генерация кода для контроллера, который поддерживает изменения горизонта во время выполнения, позволяет вам настраивать свои значения горизонта на вашем развернутом оборудовании контроллеров.
После настройки значений горизонта, чтобы повысить вычислительную эффективность вашего финала развернул контроллер, можно сгенерировать код для контроллера постоянного горизонта, использующего настроенные значения.
Развертывание вашего контроллера с настройкой горизонта во время выполнения, включенной значительно, увеличивает вычислительную загрузку и объем потребляемой памяти вашего приложения MPC. Если вы планируете использовать горизонт во время выполнения, настраивающийся только для прототипирования, чтобы найти соответствующие значения горизонта после настройки, гарантировать, что эта опция отключена. Можно затем сгенерировать код с контроллером постоянного горизонта, использующим настроенные значения.
Если ваш диспетчер использует переменное блокирование, которым управляют, и вы генерируете код для своего контроллера, размер вектора горизонта управления должен остаться постоянным во времени выполнения. В этом случае можно все еще настроить значения в векторе горизонта управления.
Примечание
Чтобы сгенерировать код для контроллера, который использует настройку горизонта во время выполнения, ваша развернутая аппаратная цель должна поддержать динамическое выделение памяти. Например, если ваша встраиваемая система не поддерживает malloc
C функция, затем сгенерированный код не запустится.
Чтобы сгенерировать код в MATLAB, установите 'UseVariableHorizon'
аргумент значения имени getCodeGenerationData
к true
. В каждом контрольном интервале можно затем задать горизонты перед вызовом mpcmoveCodeGeneration
.
[configData,stateData,onlineData] = getCodeGenerationData(mpcobj,'UseVariableHorizon',true); ... onlineData.Horizons.p = 10; onlineData.Horizons.m = 3; [u,stateData] = mpcmoveCodeGeneration(configData,stateData,onlineData);
Если ваше приложение использует параметры контроллера или сигналы, которые варьируются по горизонту предсказания, настраивание горизонта предсказания во время выполнения влияет на поведение этих изменяющихся во времени параметров.
Если вы задаете изменяющиеся во времени ограничения в своем объекте контроллера, профиль ограничений через горизонт предсказания не изменяется во время выполнения. Если ваше значение горизонта предсказания во время выполнения pr:
Больше, чем длина ограничительного профиля, заданного в вашем контроллере, затем, диспетчер использует окончательное значение ограничительного профиля для остатка от горизонта предсказания
Меньше, чем длина ограничительного профиля, заданного в вашем контроллере, затем контроллере, обрезают ограничительный профиль после шагов pr
Для получения дополнительной информации о настраивающих ограничениях смотрите Ограничения Обновления во Время выполнения и Установку Изменяющихся во времени Весов и Ограничений с MPC Designer.
Чтобы варьироваться, настраивая веса или задать предварительные просмотры сигнала через горизонт предсказания, вы задаете массивы сигнала, где строки соответствуют шагам горизонта предсказания.
Если вы настраиваете горизонт предсказания во время выполнения, это - лучшая практика, чтобы задать вес и массивы предварительного просмотра со строками N, где N основан на максимальном горизонте предсказания pmax согласно следующей таблице.
Во время выполнения вы задаете первые строки pr каждого массива сигнала (pr +1 строка для измеренных воздействий). Контроллер игнорирует любые дополнительные строки в массивах.
Тип сигнала | Использование командной строки | Блокируйте Input port | Максимальное количество строк N |
---|---|---|---|
Настраивающие веса мВ | MVWeights свойство mpcmoveopt | u.wt | pma |
Веса уровня мВ | MVRateWeights свойство mpcmoveopt | du.wt | pmax |
Выведите веса | OutputWeights свойство mpcmoveopt | y.wt | pmax |
Ссылочный предварительный просмотр | Введите к mpcmove или mpcmoveAdaptive | ref | pmax |
Измеренный предварительный просмотр воздействия | Введите к mpcmove или mpcmoveAdaptive | md | pmax +1 |
Если вы задаете какой-либо массив сигнала с меньше, чем строки pr (pr +1 строка для измеренных воздействий), диспетчер использует значения из итоговой строки для остатка от горизонта предсказания.
Для получения дополнительной информации о настраивающихся весах смотрите Веса Мелодии во Время выполнения и Установку Изменяющихся во времени Весов и Ограничений с MPC Designer.
Для получения дополнительной информации о предварительном просмотре ссылки или измеренных сигналов воздействия, смотрите Предварительный просмотр Сигнала.
Для линейного изменяющегося во времени контроллера MPC вы варьируетесь модель объекта управления и номинальные условия через горизонт предсказания передающими массивами к mpcmoveAdaptive
или блок Adaptive MPC Controller, где первым элементом в каждом массиве является текущее значение и каждый дополнительный элемент массива, соответствует шагу горизонта предсказания.
Если вы настраиваете горизонт предсказания во время выполнения, это - лучшая практика, чтобы задать модель объекта управления и номинальные массивы условия с pmax +1 элемент. Во время выполнения вы задаете первый pr, +1 элемент каждого массива и контроллера игнорирует дополнительные элементы.
Если вы задаете любой массив с меньше, чем pr +1 элемент, диспетчер использует итоговый элемент для остатка от горизонта предсказания.
Для получения дополнительной информации о линейном изменяющемся во времени MPC смотрите Изменяющийся во времени MPC.