Настройте горизонты во время выполнения

И для неявных и для адаптивных контроллеров MPC, можно настроить предсказание и управлять горизонтами, в то время как контроллер действует. Выполнение так может быть полезно для:

  • Эффективно оценивающий различный выбор горизонта во время выполнения во время прототипирования

  • Корректировка горизонтов без повторного развертывания после динамики объекта значительно изменяется, такой как в процессе пакетной обработки

Настройте горизонты в MATLAB

Чтобы настроить горизонты во время выполнения из командной строки, в каждом контрольном интервале, задают следующие свойства mpcmoveopt объект.

  • PredictionHorizon — Горизонт предсказания во время выполнения сигнализирует в виде положительного целого числа

  • ControlHorizon — Горизонт управления во время выполнения сигнализирует в виде положительного целого числа или вектора из положительных целых чисел

Можно затем передать mpcmoveopt возразите против также mpcmove или mpcmoveAdaptive.

Настройте горизонты в Simulink

В 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 свойство mpcmoveoptu.wtpma
x
Веса уровня мВMVRateWeights свойство mpcmoveoptdu.wtpmax
Выведите весаOutputWeights свойство mpcmoveopty.wtpmax
Ссылочный предварительный просмотрВведите к mpcmove или mpcmoveAdaptiverefpmax
Измеренный предварительный просмотр воздействияВведите к mpcmove или mpcmoveAdaptivemdpmax +1

Если вы задаете какой-либо массив сигнала с меньше, чем строки pr (pr +1 строка для измеренных воздействий), диспетчер использует значения из итоговой строки для остатка от горизонта предсказания.

Для получения дополнительной информации о настраивающихся весах смотрите Веса Мелодии во Время выполнения и Установку Изменяющихся во времени Весов и Ограничений с MPC Designer.

Для получения дополнительной информации о предварительном просмотре ссылки или измеренных сигналов воздействия, смотрите Предварительный просмотр Сигнала.

И номинальные условия модели

Для линейного изменяющегося во времени контроллера MPC вы варьируетесь модель объекта управления и номинальные условия через горизонт предсказания передающими массивами к mpcmoveAdaptive или блок Adaptive MPC Controller, где первым элементом в каждом массиве является текущее значение и каждый дополнительный элемент массива, соответствует шагу горизонта предсказания.

Если вы настраиваете горизонт предсказания во время выполнения, это - лучшая практика, чтобы задать модель объекта управления и номинальные массивы условия с pmax +1 элемент. Во время выполнения вы задаете первый pr, +1 элемент каждого массива и контроллера игнорирует дополнительные элементы.

Если вы задаете любой массив с меньше, чем pr +1 элемент, диспетчер использует итоговый элемент для остатка от горизонта предсказания.

Для получения дополнительной информации о линейном изменяющемся во времени MPC смотрите Изменяющийся во времени MPC.

Смотрите также

Блоки

Функции

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте