Этот пример показывает, как задать формы цикла и запасы устойчивости при настройке систем управления с systune
или looptune
.
systune
и команды looptune
настраивают параметры систем управления фиксированной структуры, подвергающихся разнообразию времени - и требования частотного диапазона. Пакет TuningGoal
является репозиторием для таких конструктивных требований.
Требование TuningGoal.LoopShape
используется, чтобы сформировать усиление (усиления) ответа разомкнутого цикла, подход проекта, известный как формирование цикла. Например,
s = tf('s'); R1 = TuningGoal.LoopShape('u',1/s);
указывает, что ответ разомкнутого цикла, измеренный в местоположении "u", должен быть похожим на чистый интегратор (насколько его усиление затронуто). В MATLAB используйте блок AnalysisPoint
, чтобы отметить местоположение "u", видеть "Создающие Настраиваемые Модели" пример для деталей. В Simulink используйте метод addPoint
интерфейса slTuner
, чтобы отметить "u" как интересное место.
Как с другими спецификациями усиления, можно только задать асимптоты желаемой формы цикла с помощью нескольких точек частоты. Например, чтобы задать форму цикла с перекрестным соединением усиления на уровне 1 рад/с, наклон на-20 дБ/десятилетие, прежде чем 1 рад/с и наклон на-40 дБ/десятилетие после 1 рад/с, только указывает, что усиление на частотах 0.1,1,10 должно быть 10,1,0.01, соответственно.
LS = frd([10,1,0.01],[0.1,1,10]); R2 = TuningGoal.LoopShape('u',LS); bodemag(LS,R2.LoopGain) legend('Specified','Interpolated')
Требования формы цикла являются ограничениями на ответ разомкнутого цикла. Для настройки целей они преобразованы в ограничения усиления с обратной связью на функцию чувствительности и дополнительную функцию чувствительности. Используйте viewGoal
, чтобы визуализировать целевую форму цикла и соответствующие границы усиления на (зеленом) и (красном) цвете.
viewGoal(R2)
Вместо TuningGoal.LoopShape
можно использовать TuningGoal.MinLoopGain
и TuningGoal.MaxLoopGain
, чтобы задать минимальные или максимальные значения для усиления цикла в конкретном диапазоне частот. Это полезно, когда фактическую форму цикла около перекрестного соединения лучше всего оставляют настраивающемуся алгоритму выяснить. Например, следующие требования задают минимальное усиление цикла в пропускной способности и характеристиках спада вне пропускной способности, но не задают фактическую перекрестную частоту, ни форму цикла около перекрестного соединения.
MinLG = TuningGoal.MinLoopGain('u',5/s); % integral action MinLG.Focus = [0 0.2]; MaxLG = TuningGoal.MaxLoopGain('u',1/s^2); % -40dB/decade roll off MaxLG.Focus = [1 Inf]; viewGoal([MinLG MaxLG])
Требование TuningGoal.MaxLoopGain
опирается на то, что открытые - и усиления с обратной связью сопоставимы, когда усиление цикла является маленьким (). В результате это может быть неэффективно при хранении усиления цикла ниже некоторого значения близко к 1. Например, предположите, что гибкие режимы вызывают скачки усиления вне перекрестной частоты и что необходимо сохранить эти скачки ниже 0.5 (-6 дБ). Вместо того, чтобы использовать TuningGoal.MaxLoopGain
, можно непосредственно ограничить усиление использования TuningGoal.Gain
с циклом, открывающимся в "u".
MaxLG = TuningGoal.Gain('u','u',0.5); MaxLG.Opening = 'u';
Если ответ разомкнутого цикла нестабилен, убедитесь, что далее отключили неявное ограничение устойчивости, сопоставленное с этим требованием.
MaxLG.Stabilize = false;
Рисунок 1 показывает это требование, оцененное для ответа разомкнутого цикла с гибкими режимами.
Рисунок 1: Получите ограничение на L
.
Требование TuningGoal.Margins
осуществляет минимальные количества запасов по амплитуде и фазе в заданном цикле вводный сайт (сайты). Для обратной связи MIMO это требование использует понятие дисковых полей, которые гарантируют устойчивость для параллельного усиления и изменений фазы заданной суммы во всех каналах обратной связи (см. diskmargin
для деталей). Например, следующий код осуществляет дБ поля усиления и 45 градусов поля фазы в местоположении "u".
R = TuningGoal.Margins('u',6,45);
В MATLAB используйте блок AnalysisPoint
, чтобы отметить местоположение "u" (см. Создающие Настраиваемые Модели (Control System Toolbox) для деталей). В Simulink используйте метод addPoint
интерфейса slTuner
, чтобы отметить "u" как интересное место (см., Создают и Конфигурируют Интерфейс slTuner к Модели Simulink). Запасы устойчивости обычно измеряются во входных параметрах объекта или объекте выходные параметры или оба.
Целевые значения запаса по амплитуде и фазе преобразованы в нормированное ограничение усиления на некоторую соответствующую передаточную функцию с обратной связью. Желаемые поля достигаются на частотах, где усиление - меньше чем 1. Используйте viewGoal
, чтобы исследовать требование, которое вы сконфигурировали.
viewGoal(R)
Теневая область указывает, где ограничение нарушено. После настройки, для настроенной модели T
, можно использовать viewGoal(R,T)
, чтобы видеть настроенные зависимые частотой поля на этом графике.
TuningGoal.LoopShape
| TuningGoal.Margins
| TuningGoal.MaxLoopGain
| TuningGoal.MinLoopGain