Настроенные расписания усиления требуют тщательной валидации. Настраивающий процесс гарантирует подходящую производительность только около каждой точки проекта. Кроме того, настройка игнорирует динамические связи между переменными состояния объекта и переменными планирования (см. Раздел 4.3, “Скрытая Связь”, в [1]). Лучшые практики для валидации включают:
Исследуйте настроенные поверхности усиления, чтобы убедиться, что они сглаженны и хорошего поведения.
Визуализируйте настраивающиеся голы против откликов системы во всех точках проекта.
Проверяйте линейную производительность настроенной системы управления между точками проекта.
Подтвердите расписания усиления в симуляции полной нелинейной системы.
Проверяйте линейную производительность на более плотной сетке значений σ, чем вы использовали для проекта. Если соответствующая линейная производительность не сохраняется между точками проекта, можно добавить больше точек проекта и перемелодии.
Выполните нелинейные симуляции, которые управляют системой с обратной связью через ее целый рабочий диапазон. Обратите особое внимание на маневры, которые вызывают быстрые изменения переменных планирования.
После настройки исследуйте настроенные усиления как функцию переменных планирования, чтобы убедиться, что они сглаженны и хорошего поведения в рабочем диапазоне. Визуализируйте настроенные поверхности усиления с помощью команды viewSurf
.
Используйте целевые настройкой графики визуализировать ваши конструктивные требования по линейному ответу настроенной системы управления. Целевые настройкой графики показывают графически, где и тем, насколько настраивающиеся цели удовлетворены или нарушены. Эта визуализация позволяет вам исследовать, как близко ваша система управления к идеальной производительности. Это может также помочь вам идентифицировать проблемы с настройкой и дать представления о том, как улучшить ваш проект.
Для получения общей информации об использовании целевых настройкой графиков, смотрите, Визуализируют Настраивающиеся Цели. Для запланированных на усиление систем управления целевые настройкой графики, которые вы генерируете с viewGoal
, предоставляют дополнительную информацию, которая помогает вам оценить, как каждая настраивающая цель способствует результату.
Для фиксированных настраивающих целей, которые применяются к нескольким точкам проекта, viewGoal
строит соответствующий отклик системы во всех тех точках проекта. Например, предположите, что вы настраиваете интерфейс slTuner
, ST
, для модели rct_CSTR
, описанной в Запланированном на усиление Управлении Химического Реактора. Можно использовать viewGoal
, чтобы видеть, как хорошо каждая из пяти точек проекта того примера удовлетворяет цель усиления R3
. Получившийся график показывает соответствующий профиль усиления во всех пяти точках проекта. Кликните по любой из строк усиления для отображения, которое показывает соответствующее значение переменной Cr
планирования.
viewGoal(R3,ST)
Переменные цели, что вы создаете использование varyingGoal
, применяют различный целевой ответ в каждой точке проекта. Когда вы используете viewGoal, чтобы исследовать переменную цель, график первоначально отображает цель и настроенные ответы в первой точке проекта в сетке проекта. Например, предположите, что вы настраиваете систему управления ST
по сетке проекта двух переменных планирования, с помощью переменного целевого Rv
, который отличается через целую сетку. После настройки исследуйте Rv
.
viewGoal(Rv,ST)
Нажмите CHANGE, чтобы открыть ползунки, которые позволяют вам выбрать точку проекта, в которой можно просмотреть цель и настроенные ответы.
В дополнение к исследованию линейных ответов, сопоставленных с настраивающимися целями, проверяйте другие линейные ответы системы, чтобы убедиться, что поведение подходит. Можно сделать так путем извлечения, и графический вывод откликов системы, как описано обычно в Подтверждает Настроенную Систему управления.
Для запланированных на усиление систем это - хорошая практика, чтобы проверять линейную производительность на более плотной сетке рабочих точек, чем вы использовали для проекта. Если система не поддерживает соответствующую линейную производительность между точками проекта, то можно добавить больше точек проекта и перемелодии.
Поскольку systune
настраивает расписания усиления против линеаризации, полученной в каждой точке проекта, важно протестировать настраивающиеся результаты в симуляции полной нелинейной системы. Выполните нелинейные симуляции, которые управляют системой с обратной связью через ее целый рабочий диапазон. Обратите особое внимание на маневры, которые вызывают быстрые изменения переменных планирования.
После настройки интерфейса slTuner
используйте writeBlockValue
, чтобы записать настроенные параметры контроллера в модель Simulink® для такой симуляции. Эта команда может записать, что настроенное усиление планирует к блокам интерполяционной таблицы, Матричным блокам Интерполяции и блокам MATLAB function, для которых вы задали параметризацию tunableSurface
.
Для блоков интерполяционной таблицы и Матричных блоков Интерполяции, writeBlockValue
автоматически оценивает настроенную поверхность усиления в точках останова, заданных в блоке. Эти точки останова не должны совпадать с точками проекта, используемыми для настройки. Поскольку tunableSurface
описывает расписание усиления в параметрической форме, writeBlockValue
может оценить усиление в любом значении переменных планирования.
Если вы повторно настроили подмножество точек проекта, можно использовать writeLookupTableData
, чтобы обновить фрагмент данных интерполяционной таблицы при оставлении остальных неповрежденными.
Для расписаний усиления, реализованных как блоки MATLAB function, writeBlockValue
автоматически генерирует MATLAB®code и продвигает его к блоку. Сгенерированная функция MATLAB берет переменные планирования и возвращает значение усиления, данное настроенным параметрическим выражением tunableSurface
. Чтобы видеть этот код MATLAB для конкретной поверхности усиления, используйте команду codegen
.
[1] Rugh, W.J., и Дж.С. Шэмма, “Исследование в области Планирования Усиления”, Automatica, 36 (2000), стр 1401-1425.
codegen
| viewGoal
| viewSurf
| writeBlockValue
| writeLookupTableData