Образцовое прогнозирующее проектирование контроллера обычно требует некоторой настройки весов функции стоимости. Эта тема обеспечивает настраивающиеся советы. Смотрите Задачу оптимизации для получения дополнительной информации об уравнениях функции стоимости.
Прежде, чем настроить веса функции стоимости, задайте масштабные коэффициенты для каждой переменной ввода и вывода объекта. Содержите эти масштабные коэффициенты, постоянные, когда вы настраиваете контроллер. Смотрите Задают Масштабные коэффициенты для получения дополнительной информации.
Во время настройки используйте sensitivity
и команды review
, чтобы получить диагностическую обратную связь. Команда sensitivity
предназначается, чтобы помочь с выбором веса функции стоимости.
Измените вес путем установки соответствующего свойства контроллера, можно следующим образом:
Изменить этот вес | Установите это свойство контроллера | Размер массивов |
---|---|---|
Отслеживание уставки OV (wy) | Weights.OV | p-by-ny |
Отслеживание уставки мВ (wu) | Weights.MV | p-by-nu |
Подавление шага мВ (wΔu) | Weights.MVRate | p-by-nu |
Здесь, мВ является переменной объекта, которой управляют, и nu является количеством MVS. OV является выходной переменной объекта, и ny является количеством OVs. Наконец, p является количеством шагов в горизонте прогноза.
Если массив веса содержит n <строки p, контроллер копирует последнюю строку, чтобы получить полный массив строк p. Значение по умолчанию (n = 1) минимизирует количество параметров, которые будут настроены и поэтому рекомендуется. Смотрите Изменяющиеся во времени Веса и Ограничения для альтернативы.
При рассмотрении OVs ny предположите, что nyc должен быть сохранен в или около ссылочного значения (заданное значение). Если i th OV не находится в этой группе, установите Weights.OV(:,i)
= 0.
Если nu ≥ nyc, обычно возможно достигнуть нулевого OV отслеживание ошибки в устойчивом состоянии, если, по крайней мере, MVS nyc не ограничивается. Weights.OV = ones(1,ny)
по умолчанию является хорошей отправной точкой в этом случае.
Если nu> nyc, однако, у вас есть избыточные степени свободы. Если вы не принимаете превентивные меры, поэтому, MVS может дрейфовать, даже когда OVs около их ссылочных значений.
Наиболее распространенная превентивная мера должна задать ссылочные значения (цели) для количества избыточного MVS, который вы имеете, nu – nyc. Такие цели могут представлять экономно или технически желательные установившиеся значения.
Альтернативная мера должна установить w∆u> 0, по крайней мере, для MVS nu – nyc отговаривать контроллер изменять их.
Если nu <nyc, у вас нет достаточных степеней свободы, чтобы сохранить, все потребовали OVs в заданном значении. В этом случае рассмотрите отслеживание уставки приоритизации. Для этого установите Weights.OV(:,i) > 0
задавать приоритет для i th OV. Грубые инструкции для этого следующие:
0.05 — Низкий приоритет: Большая приемлемая ошибка отслеживания
0.2 — Приоритет ниже среднего
1 — Средний приоритет – значение по умолчанию. Используйте это значение если nyc = 1.
5 — Выше среднего приоритета
20 — Высокий приоритет: Небольшая ошибка отслеживания желаема
По умолчанию, Weights.MV = zeros(1,nu)
. Если некоторый MVS имеет цели, соответствующие веса отслеживания уставки мВ должны быть ненулевыми. В противном случае цели проигнорированы. Если количество целей мВ является меньше, чем (nu – nyc), попытайтесь использовать тот же вес для каждого. Предложенное значение 0.2, то же самое как отслеживание OV ниже среднего. Это значение позволяет MVS переезжать от их целей временно, чтобы улучшить отслеживание OV.
В противном случае мВ и цели отслеживания уставки OV, вероятно, будут конфликтовать. Приоритизируйте путем устанавливания значений Weights.MV(:,i)
способом, подобным предложенному для Weights.OV
(см. выше). Типичная практика устанавливает средний приоритет отслеживания мВ ниже, чем средний OV отслеживание приоритета (например, 0.2 <1).
Если i th мВ не имеет цели, установите Weights.MV(:,i)
= 0 (значение по умолчанию).
По умолчанию, Weights.MVRate = 0.1*ones(1,nu)
. Причины этого значения по умолчанию включают:
Если объект является разомкнутым циклом, стабильный, большой шаг является ненужным и вероятно нежелательным. Например, когда образцовые прогнозы несовершенны, когда всегда имеет место на практике, более консервативный шаг обычно обеспечивает больше устойчивой производительности контроллера, но более плохое отслеживание уставки.
Эти значения обеспечивают матрицу Гессиана QP, чтобы быть положительно-определенными, такими, что QP имеет уникальное решение, если никакие ограничения не активны.
Чтобы поощрить диспетчера использовать еще меньший шаг для i th мВ, увеличьте значение Weights.MVRate(:,i)
.
Если объект является нестабильным разомкнутым циклом, вы можете должны быть уменьшить среднее значение Weight.MVRate
, чтобы позволить достаточно быстрый ответ на нарушения.
Смотрите, что Ограничение Смягчается для советов относительно свойства Weights.ECR
.
Чтобы фокусироваться на настройке отдельных весов функции стоимости, выполните тесты симуляции с обратной связью при следующих условиях:
Никакие ограничения.
Никакая ошибка прогноза. Модель прогноза контроллера должна быть идентична модели объекта управления. И приложение MPC Designer и функция sim
предоставляют возможность моделировать при этих условиях.
Используйте изменения в ссылке и измеренных сигналах воздействия (если таковые имеются), чтобы обеспечить динамический ответ. На основе результатов каждого теста рассмотрите изменение значений выбранных весов.
Один предложенный подход должен использовать постоянный Weights.OV(:,i) = 1
, чтобы показать “средний OV отслеживание приоритета” и настроить все другие веса, чтобы быть относительно этого значения. Используйте команду sensitivity
для руководства. Используйте команду review
, чтобы проверять на типичные настраивающие проблемы, такие как отсутствие устойчивости с обратной связью.
Смотрите Настраивают Воздействие и Шумовые Модели для тестов, фокусирующихся на способности к подавлению помех контроллера.
Если у вас есть веса, которые работают хорошо при вышеупомянутых условиях, проверяют на чувствительность к ошибке прогноза. Существует несколько способов сделать так:
Если вы имеете нелинейную модель объекта управления своей системы, такой как модель Simulink®, моделируете производительность с обратной связью в рабочих точках кроме этого, для которого применяется модель прогноза LTI.
Также запустите симуляции с обратной связью, по которым модель LTI, представляющая объект, отличается (такой как в структуре или значениях параметров) от используемого в модели прогноза MPC. И приложение MPC Designer и функция sim
предоставляют возможность моделировать при этих условиях. Для примера смотрите Робастность Тестового контроллера.
Если производительность контроллера, кажется, значительно ухудшается по сравнению с тестами без ошибки прогноза для разомкнутого цикла стабильный объект, считайте создание контроллера менее агрессивным.
В MPC Designer, на вкладке Tuning, можно сделать настолько использующий ползунок Closed-Loop Performance.
Движение большего количества устойчивого управления уменьшает веса OV/MV и увеличивает веса Уровня мВ, который приводит к расслабленному управлению выходных параметров и более консервативных перемещений управления.
В командной строке можно внести следующие изменения, чтобы уменьшить агрессивность контроллера:
Увеличьте все значения Weight.MVRate
мультипликативным фактором порядка 2.
Уменьшите весь Weight.OV
и значения Weight.MV
путем деления на тот же фактор.
После корректировки весов переоцените производительность и с и без ошибки прогноза.
Если оба теперь приемлемы, прекратите настраивать веса.
Если существует улучшение, но все еще слишком много ухудшения с образцовой ошибкой, увеличьте робастность контроллера далее.
Если изменение заметно не улучшает производительность, восстанавливает исходные веса и фокусируется на настройке средства оценки состояния (см., Настраивают Воздействие и Шумовые Модели).
Наконец, если настройка изменений не обеспечивает соответствующую робастность, рассматривает одну из следующих возможностей: