exponenta event banner

Корректировка горизонтов во время выполнения

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

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

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

Корректировка горизонтов в MATLAB

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

  • PredictionHorizon - Сигнал горизонта прогнозирования времени выполнения, заданный как положительное целое число

  • ControlHorizon - Сигнал горизонта контроля времени выполнения, определяемый как положительное целое число или вектор положительных целых чисел

Затем вы можете передать mpcmoveopt объект для mpcmove или mpcmoveAdaptive.

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

В Simulink ® для настройки горизонтов контроллера MPC или блока адаптивного контроллера MPC выберите параметр Adjust prediction horizon and control horizon at run time. При этом в блок добавляются следующие входные порты:

  • p - Сигнал горизонта прогнозирования времени выполнения, заданный как скалярный целочисленный сигнал

  • m - Сигнал горизонта управления временем выполнения, заданный как скалярный или векторный сигнал

Необходимо указать максимальный горизонт прогнозирования с помощью параметра Максимальный горизонт прогнозирования. При этом обеспечивается оптимальная последовательность выходных портов блока (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-контроллера с переменным временем можно изменять модель завода и номинальные условия в пределах горизонта прогнозирования. При корректировке горизонта прогнозирования во время выполнения рекомендуется также корректировать длины изменяющихся во времени моделей и массивов номинальных условий так, чтобы они соответствовали новому значению горизонта.

Если длины массивов модели и номинальных условий не корректируются, массивы удлиняются или усекаются аналогично профилю изменяющихся во времени ограничений.

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

См. также

Блоки

Функции

Связанные темы