Этот пример проводит экскурсию доступных требований временного интервала для системы управления, настраивающейся с systune
или looptune
.
systune
и команды looptune
настраивают параметры систем управления фиксированной структуры, подвергающихся разнообразию времени - и требования частотного диапазона. Пакет TuningGoal
является репозиторием для таких конструктивных требований.
Требование TuningGoal.StepTracking
задает, как настроенная система с обратной связью должна ответить на вход шага. Можно задать желаемый ответ или с точки зрения первого - или с точки зрения характеристик второго порядка, или как модель прямой ссылки. Это требование удовлетворено, когда относительный разрыв между фактическими и желаемыми ответами достаточно маленький в смысле наименьших квадратов. Например,
R1 = TuningGoal.StepTracking('r','y',0.5);
предусматривает, что ответ с обратной связью от r
до y
должен вести себя как система первого порядка с временной константой 0.5, в то время как
R2 = TuningGoal.StepTracking('r','y',zpk(2,[-1 -2],-1));
задает второго порядка, поведение "не минимальная фаза". Используйте viewGoal
, чтобы визуализировать желаемый ответ.
viewGoal(R2)
Это требование может использоваться, чтобы настроить и SISO и переходные процессы MIMO. В случае MIMO требование гарантирует, что каждый вывод отслеживает соответствующий вход с минимальными перекрестными связями.
Требование TuningGoal.StepRejection
задает, как настроенная система с обратной связью должна ответить на воздействие шага. Можно задать значения худшего случая для амплитуды ответа, времени установления и затухания колебаний. Например,
R1 = TuningGoal.StepRejection('d','y',0.3,2,0.5);
ограничивает амплитуду 0,3, время установления к 2 единицам измерения времени и отношение затухания к минимуму 0,5. Используйте
viewGoal
, чтобы видеть соответствующий ответ времени.
viewGoal(R1)
Можно также использовать "эталонную модель", чтобы задать желаемый ответ. Обратите внимание на то, что фактические и заданные ответы могут отличаться существенно, когда лучшее подавление помех возможно. Используйте требование TuningGoal.Transient
, когда близкое соответствие будет желаемо. Для лучших результатов настройте усиление эталонной модели так, чтобы фактические и заданные ответы имели подобные пиковые амплитуды (см. документацию TuningGoal.StepRejection
для деталей).
Требование TuningGoal.Transient
задает переходный ответ для определенного входного сигнала. Это - обобщение требования TuningGoal.StepTracking
. Например,
R1 = TuningGoal.Transient('r','y',tf(1,[1 1 1]),'impulse');
требует что настроенный ответ от быть похожими на импульсный ответ эталонной модели
.
viewGoal(R1)
Входной сигнал может быть импульсом, шагом, пандусом или более общим сигналом, смоделированным как импульсный ответ некоторого входного формирующий фильтра. Например, синусоида с частотой может быть смоделирована как импульсный ответ
.
w0 = 2; F = tf(w0^2,[1 0 w0^2]); % input shaping filter R2 = TuningGoal.Transient('r','y',tf(1,[1 1 1]),F); viewGoal(R2)
Используйте требование TuningGoal.LQG
, чтобы создать линейную квадратичную Гауссову цель для настройки параметров системы управления. Эта цель применима к любой управляющей структуре, не только классической структуре наблюдателя управления LQG. Например, рассмотрите простой цикл ПИДа рисунка 2, где и
воздействие модульного отклонения и шумовые входные параметры, и
и
lowpass и фильтры highpass, которые моделируют воздействие и шумовое спектральное содержимое.
Рисунок 2: цикл Регулирования.
Чтобы отрегулировать вокруг нуля, можно использовать следующий критерий LQG:
Первый срок в интеграле штрафует отклонение от нуля, и второй срок штрафует усилие по управлению. Используя
systune
, можно настроить ПИД-регулятор, чтобы минимизировать стоимость. Для этого используйте требование LQG
Qyu = diag([1 0.05]); % weighting of y^2 and u^2 R4 = TuningGoal.LQG({'d','n'},{'y','u'},1,Qyu);
TuningGoal.LQG
| TuningGoal.StepRejection
| TuningGoal.StepTracking
| TuningGoal.Transient