В этом примере показано, как использовать 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
gammagamma = 1.9903
Значение эффективности gamma меньше чем 3 указывают на успех (скромное ухудшение усиления наряду с приемлемыми полями робастности). Новый компенсатор K стабилизирует объект и имеет хорошие запасы устойчивости.
allmargin(P*K)
ans = struct with fields:
GainMargin: [6.2984 10.9082]
GMFrequency: [1.6108 15.0285]
PhaseMargin: [79.9812 -99.6214 63.7590]
PMFrequency: [0.4467 3.1469 5.2304]
DelayMargin: [3.1253 1.4441 0.2128]
DMFrequency: [0.4467 3.1469 5.2304]
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 настраивать компенсатор ручной формы, чтобы достигнуть устойчивости с обратной связью, приблизительно сохраняя желаемую форму цикла.