exponenta event banner

Характеристики формы контура и запаса устойчивости

В этом примере показано, как задать формы цикла и поля стабильности при настройке систем управления с помощью systune или looptune.

Фон

systune и looptune команды настраивают параметры систем управления фиксированной структурой в соответствии с различными требованиями к времени и частотной области. TuningGoal пакет является хранилищем для таких требований к конструкции.

Форма петли

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')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Specified, Interpolated.

Требования к форме контура - это ограничения на отклик разомкнутого контура L. Для целей настройки они преобразуются в ограничения усиления замкнутого контура для функции чувствительности S = 1/( 1 + L) и комплементарной функции чувствительности T = L/( 1 + L). ИспользоватьviewGoal для визуализации формы целевого контура и соответствующих границ усиления на S (зеленый) и T (красный).

viewGoal(R2)

Figure contains an axes. The axes contains an object of type line. These objects represent Target loop shape, S bound, T bound.

Минимальный и максимальный коэффициент усиления контура

Вместо 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])

Figure contains 2 axes. Axes 1 contains an object of type line. These objects represent Min loop gain, inv(S) bound. Axes 2 contains an object of type line. These objects represent Max loop gain, T bound.

TuningGoal.MaxLoopGain требование основывается на том факте, что коэффициенты усиления с разомкнутым и замкнутым контуром сопоставимы, когда коэффициент усиления с разомкнутым контуром мал (|L|≪1). В результате это может быть неэффективным при поддержании коэффициента усиления контура ниже некоторого значения, близкого к 1. Например, предположим, что гибкие режимы вызывают всплески усиления за пределами перекрестной частоты и что необходимо поддерживать эти всплески ниже 0,5 (-6 дБ). Вместо использования TuningGoal.MaxLoopGain, вы можете непосредственно ограничить усиление L с помощью TuningGoal.Gain с размыканием петли на «u».

MaxLG = TuningGoal.Gain('u','u',0.5);
MaxLG.Opening = 'u';

Если реакция с разомкнутым контуром нестабильна, убедитесь, что дополнительно отключено неявное ограничение стабильности, связанное с этим требованием.

MaxLG.Stabilize = false;

На рис. 1 показано это требование, оцениваемое для реакции с разомкнутым контуром с гибкими режимами.

Рис. 1: Ограничение усиления на L

Поля стабильности

TuningGoal.Margins требование использует понятие запаса диска для обеспечения минимальных значений коэффициента усиления и запаса фазы на указанном участке (ах) размыкания цикла. Для контуров обратной связи MIMO это требование гарантирует стабильность усиления или фазовых изменений в каждом канале обратной связи. Коэффициент усиления или фаза могут изменяться во всех каналах одновременно и на различную величину в каждом канале. Дополнительные сведения см. в разделе Поля стабильности в настройке системы управления. Например, следующий код усиливает ± 6 дБ запаса усиления и 45 градусов запаса фазы в местоположении «u».

R = TuningGoal.Margins('u',6,45);

В MATLAB используйте AnalysisPoint блок для обозначения местоположения «u» (подробные сведения см. в разделе «Создание перестраиваемых моделей»). В Simulink используйте addPoint способ slTuner чтобы отметить «u» как интересующую точку (см. Создание и настройка интерфейса slTuner для Simulink Model (Simulink Control Design)). Пределы устойчивости обычно измеряются на входах или выходах установки или на обоих выходах.

Целевые значения коэффициента усиления и запаса по фазе преобразуются в нормированное ограничение коэффициента усиления для некоторой подходящей передаточной функции с замкнутым контуром. Требуемые пределы достигаются на частотах, где коэффициент усиления меньше 1. Использовать viewGoal для проверки настроенного требования.

viewGoal(R)

Figure contains 2 axes. Axes 1 is empty. This object represents Required margins. Axes 2 is empty. This object represents Required margins.

Закрашенная область указывает место нарушения ограничения. После настройки для настроенной модели T, вы можете использовать viewGoal(R,T) для просмотра настроенных частотно-зависимых полей на этом графике.

См. также

| | |

Связанные темы