Спецификации временного интервала

Этот пример проводит экскурсию доступных требований временного интервала для системы управления, настраивающейся с 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);

ограничивает амплитуду y(t) к 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');

требует что настроенный ответ от r к y будьте похожи на импульсную характеристику эталонной модели 1/(s2+s+1).

viewGoal(R1)

Входной сигнал может быть импульсом, шагом, пандусом или более общим сигналом, смоделированным как импульсная характеристика некоторого входного формирующий фильтра. Например, синусоида с частотой ω0 может быть смоделирован как импульсная характеристика ω02/(s2+ω02).

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)

Проект LQG

Используйте TuningGoal.LQG требование, чтобы создать линейную квадратичную Гауссову цель для настройки параметров системы управления. Эта цель применима к любой управляющей структуре, не только классической структуре наблюдателя управления LQG. Например, рассмотрите простой цикл ПИДа рисунка 2 где d и n воздействие модульного отклонения и шумовые входные параметры, и Sd и Sn lowpass и фильтры highpass, которые моделируют воздействие и шумовое спектральное содержимое.

Рисунок 2: цикл Регулирования.

Отрегулировать y вокруг нуля можно использовать следующий критерий LQG:

J=limTE(1T0T(y2(t)+0.05u2)dt)

Первый срок в интеграле штрафует отклонение y(t) от нуля и второго срока штрафует усилие по управлению. Используя systune, можно настроить ПИД-регулятор, чтобы минимизировать стоимость J. Для этого используйте требование LQG

Qyu = diag([1 0.05]);  % weighting of y^2 and u^2
R4 = TuningGoal.LQG({'d','n'},{'y','u'},1,Qyu);

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

| | |

Похожие темы