В этом примере показано, как использовать ncfsyn
формировать реакцию разомкнутого контура с одновременным обеспечением устойчивости и максимизацией робастности. ncfsyn
измеряет робастность с точки зрения нормализованного запаса устойчивости перевертывания, вычисляемого ncfmargin
.
Модель объекта управления является слабо демпфированной системой второго порядка.
.
A Диаграммы Боде показывает резонансный пик.
P = tf(16,[1 0.16 16]); bode(P)
Целями проекта замкнутого контура являются следующие.
Нечувствительность к шуму, включая 60dB/decade затухание за 20 рад/сек
Интегральное действие и полоса пропускания не менее 0,5 рад/с
Коэффициент усиления частот среза не более 7 рад/с
В системе управления формированием контура вы переводите эти требования в желаемую форму для усиления разомкнутого контура и ищете компенсатор, который применяет эту форму. Для примера компенсатор, состоящий из ПИ-термина последовательно с высокочастотной задержкой компонента достигает желаемого цикла формы.
K_PI = pid(1,0.8); K_rolloff = tf(1,[1/20 1]); Kprop = K_PI*K_rolloff; bodemag(P*Kprop); grid
К сожалению, компенсатор Kprop
не стабилизирует систему с обратной связью. При рассмотрении динамики замкнутого контура показаны полюса в правой полуплоскости.
pole(feedback(P*Kprop,1))
ans = 4×1 complex
-20.6975 + 0.0000i
0.4702 + 5.5210i
0.4702 - 5.5210i
-0.4029 + 0.0000i
ncfsyn
Можно использовать ncfsyn
обеспечить стабильность и адекватные запасы устойчивости без существенного изменения формы цикла. Используйте начальный проект Kprop
как предварительный фильтр формирования контура. ncfsyn
принимает систему положительной обратной связи управления (см ncfsyn
), так перевернуть знак Kprop
и возвращенного контроллера.
[K,~,gamma] = ncfsyn(P,-Kprop);
K = -K; % flip sign back
gamma
gamma = 1.9885
Значение эффективности gamma
менее 3 указывает на успех (скромное ухудшение усиления наряду с приемлемыми запасами по робастности). Новый компенсатор K
стабилизирует объект и имеет хорошие запасы устойчивости.
allmargin(P*K)
ans = struct with fields:
GainMargin: [6.3267 11.1183]
GMFrequency: [1.6110 15.1526]
PhaseMargin: [80.0229 -99.6598 63.7949]
PMFrequency: [0.4471 3.1461 5.2318]
DelayMargin: [3.1238 1.4443 0.2128]
DMFrequency: [0.4471 3.1461 5.2318]
Stable: 1
С gamma
приблизительно 2, ожидаемое самое большее 20*log10(gamma)
= 6dB уменьшение усиления в области с высоким усилением и самое большее 6dB увеличение усиления в области с низким усилением. График величины Бода подтверждает это. Обратите внимание, что ncfsyn
изменяет форму цикла в основном вокруг кроссовера для достижения устойчивости и робастности.
subplot(1,2,1) bodemag(Kprop,'r',K,'g',{1e-2,1e4}); grid legend('Initial design','NCFSYN design') title('Controller Gains') subplot(1,2,2) bodemag(P*Kprop,'r',P*K,'g',{1e-3,1e2}); grid legend('Initial design','NCFSYN design') title('Open-Loop Gains')
Фигура 1: Коэффициент усиления компенсатора и разомкнутого контура.
С ncfsyn
компенсатор, импульсное нарушение порядка на входе объекта демпфируется за несколько секунд. Сравните этот ответ с некомпенсированной характеристикой объекта.
subplot(1,2,1) impulse(feedback(P,K),'b',P,'r',5); legend('Closed loop','Open loop')
subplot(1,2,2); impulse(-feedback(K*P,1),'b',5) title('Control action')
Фигура 2: Реакция на импульс на входе объекта.
Функции чувствительности и комплементарной чувствительности с обратной связью показывают желаемое снижение чувствительности и высокочастотное шумовое ослабление, выраженные в задачах эффективности с обратной связью.
S = feedback(1,P*K); T = 1-S; clf bodemag(S,T,{1e-2,1e2}), grid legend('S','T')
В этом примере вы использовали функцию ncfsyn
регулирование ручного компенсатора для достижения устойчивости замкнутого контура при приблизительно сохранении требуемой формы цикла.