Настройте веса

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

Начальная настройка

  • Прежде, чем настроить веса функции стоимости, задайте масштабные коэффициенты для каждой переменной ввода и вывода объекта. Содержите эти масштабные коэффициенты, постоянные, когда вы настраиваете контроллер. Смотрите Задают Масштабные коэффициенты для получения дополнительной информации.

  • Во время настройки используйте sensitivity и review команды, чтобы получить диагностическую обратную связь. sensitivity команда предназначается, чтобы помочь с выбором веса функции стоимости.

  • Измените вес путем установки соответствующего свойства контроллера, можно следующим образом:

    Изменить этот весУстановите это свойство контроллераРазмер массивов
    Отслеживание уставки OV (wy)Weights.OVp-by-ny
    Отслеживание уставки мВ (wu)Weights.MVp-by-nu
    Подавление шага мВ (wΔu)Weights.MVRatep-by-nu

Здесь, мВ является переменной объекта, которой управляют, и nu является количеством MVS. OV является выходной переменной объекта, и ny является количеством OVs. Наконец, p является количеством шагов в горизонте предсказания.

Если массив весов содержит n <строки p, контроллер копирует последнюю строку, чтобы получить полный массив строк p. Значение по умолчанию (n = 1) минимизирует количество параметров, которые будут настроены и поэтому рекомендуется. Смотрите Изменяющиеся во времени Веса и Ограничения для альтернативы.

Советы для установки весов OV

  • При рассмотрении OVs ny предположите, что nyc должен быть сохранен в или около ссылочного значения (заданное значение). Если i th OV не находится в этой группе, установите Weights.OV(:,i) = 0.

  • Если nunyc, обычно возможно достигнуть нулевого OV отслеживание ошибки в устойчивом состоянии, если, по крайней мере, MVS nyc не ограничивается. Weights.OV = ones(1,ny) по умолчанию хорошая начальная точка в этом случае.

    Если nu> nyc, однако, у вас есть избыточные степени свободы. Если вы не принимаете превентивные меры, поэтому, MVS может дрейфовать, даже когда OVs около их ссылочных значений.

    • Наиболее распространенная превентивная мера должна задать ссылочные значения (цели) для количества избыточного MVS, который вы имеете, nunyc. Такие цели могут представлять экономно или технически желательные установившиеся значения.

    • Альтернативная мера должна установить 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 имеет цели, соответствующие веса отслеживания уставки мВ должны быть ненулевыми. В противном случае цели проигнорированы. Если количество целей мВ меньше (nunyc), попытайтесь использовать тот же вес в каждом. Предложенное значение 0.2, то же самое как отслеживание OV ниже среднего. Это значение позволяет MVS переезжать от их целей временно, чтобы улучшить отслеживание OV.

В противном случае мВ и цели отслеживания уставки OV, вероятно, будут конфликтовать. Приоритизируйте путем установки Weights.MV(:,i) значения способом, похожим на предложенный для Weights.OV (см. выше). Типичная практика устанавливает средний приоритет отслеживания мВ ниже, чем средний OV отслеживание приоритета (например, 0.2 <1).

Если i th мВ не имеет цели, установите Weights.MV(:,i) = 0 (значение по умолчанию).

Советы для установки весов MVRate

  • По умолчанию, Weights.MVRate = 0.1*ones(1,nu). Причины этого значения по умолчанию включают:

    • Если объект является разомкнутым циклом, устойчивый, большой шаг является ненужным и вероятно нежелательным. Например, когда предсказания модели несовершенны, когда всегда имеет место на практике, более консервативный шаг обычно обеспечивает больше устойчивой производительности контроллера, но более плохое отслеживание уставки.

    • Эти значения обеспечивают матрицу Гессиана QP, чтобы быть положительно-определенными, такими, что QP имеет уникальное решение, если никакие ограничения не активны.

    Чтобы поощрить диспетчера использовать еще меньший шаг в i th мВ, увеличьте Weights.MVRate(:,i) значение.

  • Если объект является нестабильным разомкнутым циклом, вы можете должны быть уменьшить средний Weight.MVRate значение, чтобы позволить достаточно быстрый ответ на нарушения.

Советы для установки весов ECR

Смотрите, что Ограничение Смягчается для советов относительно 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 значения путем деления на тот же фактор.

После корректировки весов переоцените производительность и с и без ошибки предсказания.

  • Если оба теперь приемлемы, прекратите настраивать веса.

  • Если существует улучшение, но все еще слишком много ухудшения с ошибкой модели, увеличьте робастность контроллера далее.

  • Если изменение заметно не улучшает производительность, восстанавливает исходные веса и фокусируется на настройке средства оценки состояния (см., Настраивают Воздействие и Шумовые Модели).

Наконец, если настройка изменений не обеспечивает соответствующую робастность, рассматривает одну из следующих возможностей:

Похожие темы