Форма цикла и технические требования запаса устойчивости

В этом примере показано, как задать формы цикла и запасы устойчивости при настройке систем управления с 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')

Figure contains an axes object. The axes object 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 object. The axes object 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 objects. Axes object 1 contains an object of type line. These objects represent Min loop gain, inv(S) bound. Axes object 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). Запасы устойчивости обычно измеряются во входных параметрах объекта или объекте выходные параметры или оба.

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

viewGoal(R)

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

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

Смотрите также

| | |

Похожие темы