В этом примере показано, как использовать ncfsyn
сформировать ответ разомкнутого контура при осуществлении устойчивости и максимизации робастности. ncfsyn
робастность мер в терминах нормированного взаимно-простого запаса устойчивости вычисляется ncfmargin
.
Модель объекта управления является слегка ослабленной, системой второго порядка.
.
Диаграмма Боде показывает резонирующий пик.
P = tf(16,[1 0.16 16]); bode(P)
Цели проекта для с обратной связью следующие.
Нечувствительность к шуму, включая 60dB/decade затухание вне 20 рад/секунда
Интегральное действие и пропускная способность по крайней мере 0,5 рад/с
Получите частоты среза, не больше, чем 7 рад/с
В формирующей цикл системе управления вы переводите эти требования в желаемую форму для коэффициента усиления разомкнутого контура и ищете компенсатор, который осуществляет эту форму. Например, компенсатор, состоящий из термина PI последовательно с высокочастотным компонентом задержки, достигает желаемой формы цикла.
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)
= Сокращение усиления на 6 дБ области высокого усиления и самое большее 6 дБ получает увеличение области низкого усиления. Предвещать график величины подтверждает это. Обратите внимание на то, что 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
настраивать компенсатор ручной формы, чтобы достигнуть устойчивости с обратной связью, приблизительно сохраняя желаемую форму цикла.