В этом примере показано, как задать формы цикла и запасы устойчивости при настройке систем управления с помощью systune
или looptune
.
The systune
и looptune
команды настраивают параметры систем управления с фиксированной структурой, удовлетворяющие различным требованиям во временной и частотной областях. The TuningGoal
пакет является репозиторием для таких требований проекта.
The TuningGoal.LoopShape
требование используется для формирования коэффициента усиления (ов) разомкнутой системы, конструкторского подхода, известного как формирование цикла. Для примера,
s = tf('s'); R1 = TuningGoal.LoopShape('u',1/s);
указывает, что реакция без разомкнутого контура, измеренная в местоположении «u», должна выглядеть как чистый интегратор (насколько это касается усиления). В MATLAB используйте AnalysisPoint
блок, чтобы отметить местоположение «u», см. пример «Building Tunable Models» для получения дополнительной информации. В 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])
The 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
The TuningGoal.Margins
требование использует понятие дискового запаса для обеспечения минимальных сумм усиления и запасов по фазе на заданном циклом открывающем (ых) сайте (ах). Для циклов обратной связи MIMO это требование гарантирует стабильность для изменений усиления или фазы в каждом канале обратной связи. Коэффициент усиления или фаза могут изменяться во всех каналах одновременно и на разную величину в каждом канале. Для получения дополнительной информации см. запасы устойчивости в настройке системы управления». Например, следующий код применяет дБ запаса по амплитуде и 45 степени запаса по фазе в местоположении «u».
R = TuningGoal.Margins('u',6,45);
В MATLAB используйте AnalysisPoint
блок для маркировки местоположения «u» (для получения дополнительной информации см. раздел «Создание настраиваемых моделей»). В Simulink используйте addPoint
метод slTuner
интерфейс для маркировки «u» как точки интереса (см., Создают и конфигурируют интерфейс slTuner к модели Simulink). Запасы устойчивости обычно измеряются на входах объекта управления или на выходах объекта управления или на обоих уровнях.
Целевые значения коэффициента запаса по амплитуде и фазе преобразуются в нормализованное ограничение усиления для некоторой соответствующей передаточной функции с обратной связью. Желаемые границы достигаются на частотах, где коэффициент усиления меньше 1. Использование viewGoal
для проверки сконфигурированного требования.
viewGoal(R)
Затененная область указывает, где нарушается ограничение. После настройки, для настроенной модели T
, можно использовать viewGoal(R,T)
для просмотра настроенных частотно-зависимых полей на этом графике.
TuningGoal.LoopShape
| TuningGoal.Margins
| TuningGoal.MaxLoopGain
| TuningGoal.MinLoopGain