Прогнозирующее проектирование контроллера модели обычно требует некоторой настройки весов функции стоимости. Эта тема обеспечивает настраивающиеся советы. Смотрите Задачу оптимизации для получения дополнительной информации об уравнениях функции стоимости.
Прежде, чем настроить веса функции стоимости, задайте масштабные коэффициенты для каждой переменной ввода и вывода объекта. Содержите эти масштабные коэффициенты, постоянные, когда вы настраиваете контроллер. Смотрите Задают Масштабные коэффициенты для получения дополнительной информации.
Во время настройки используйте 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
значения путем деления на тот же фактор.
После корректировки весов переоцените производительность и с и без ошибки прогноза.
Если оба теперь приемлемы, прекратите настраивать веса.
Если существует улучшение, но все еще слишком много ухудшения с ошибкой модели, увеличьте робастность контроллера далее.
Если изменение заметно не улучшает производительность, восстанавливает исходные веса и фокусируется на настройке средства оценки состояния (см., Настраивают Воздействие и Шумовые Модели).
Наконец, если настройка изменений не обеспечивает соответствующую робастность, рассматривает одну из следующих возможностей: