В этом примере показано, как использовать метод Гловера-Макфарлейна для получения компенсаторов формирования петель с хорошими полями устойчивости. Пример применяет метод к стадии нанопозиционирования. Эти устройства могут обеспечивать очень точное позиционирование, что важно в таких областях применения, как атомно-силовые микроскопы (AFM). Для получения дополнительной информации об этом приложении см. [1].
На следующей иллюстрации показана схема обратной связи нанопозиционирующего устройства. Система состоит из пьезоэлектрического привода, ступени изгиба и системы детектирования. Ступень изгиба взаимодействует с головкой АСМ.

Загрузите модель установки для стадии нанопозиционирования. Эта модель представляет собой модель пространства состояния седьмого порядка, адаптированную к данным частотного отклика, полученным из устройства.
load npfit A B C D G = ss(A,B,C,D); bode(G), grid

Типовые требования к конструкции для закона управления включают высокую пропускную способность, высокое разрешение и хорошую надежность. Для этого примера используйте:
Полоса пропускания приблизительно 50 Гц
Накат -40 дБ/декада за последние 250 Гц
Запас усиления свыше 1,5 (3,5 дБ) и запас фазы свыше 60 градусов
Кроме того, когда для сканирования используется этап нанопозиционирования, опорный сигнал является треугольным, и важно, чтобы этап отслеживал этот сигнал с минимальной ошибкой в средней части треугольной волны. Одним из способов обеспечения этого является добавление следующих требований к конструкции:
Двойной интегратор в контуре управления
Сначала попробуйте дизайн PI. Для соответствия требованиям двойного интегратора умножьте установку на . Установите требуемую полосу пропускания 50 Гц. Использовать pidtune для автоматической настройки контроллера PI.
Integ = tf(1,[1 0]); bw = 50*2*pi; % 50 Hz in rad/s PI = pidtune(G*Integ,'pi',50*2*pi); C = PI*Integ; bopt = bodeoptions; bopt.FreqUnits = 'Hz'; bopt.XLim = [1e0 1e4]; bodeplot(G*C,bopt), grid

Этот компенсатор удовлетворяет требованиям к полосе пропускания и почти соответствует требованиям к скатыванию. Использовать allmargin для расчета пределов устойчивости.
allmargin(G*C)
ans = struct with fields:
GainMargin: [0 1.1531 13.7832 7.4195 Inf]
GMFrequency: [0 2.4405e+03 3.3423e+03 3.7099e+03 Inf]
PhaseMargin: 60.0024
PMFrequency: 314.1959
DelayMargin: 0.0033
DMFrequency: 314.1959
Stable: 1
Запас фазы является удовлетворительным, но наименьший запас усиления составляет только 1,15, что намного ниже целевого значения 1,5. Можно попробовать добавить фильтр нижних частот, чтобы быстрее скатиться за пределы частоты пересечения усиления, но это, скорее всего, уменьшит запас по фазе.
Техника Гловера-Макфарлейна обеспечивает простой способ подгонки кандидата-компенсатора C для улучшения его пределов устойчивости. Этот метод стремится максимизировать надежность (измеряемую ncfmargin) при грубом сохранении формы петли G*C. Использовать ncfsyn для применения этого метода в данном приложении. Обратите внимание, что ncfsyn предполагает положительную обратную связь, поэтому нужно перевернуть знак завода G.
[K,~,gam] = ncfsyn(-G,C);
Проверить запас устойчивости с помощью рафинированного компенсатора K.
[Gm,Pm] = margin(G*K)
Gm = 3.7418
Pm = 70.8006
ncfsyn компенсатор увеличивает запас усиления до 3,7, а запас фазы до 70 градусов. Сравните форму контура для этого компенсатора с формой контура для конструкции PI.
bodeplot(G*C,G*K,bopt), grid legend('PI design','Glover-McFarlane')

Компенсатор Гловера-Макфарлейна ослабляет первый резонанс, ответственный за слабый запас усиления, одновременно усиливая эффект вывода для сохранения и даже улучшения запаса фазы. Эта усовершенствованная конструкция соответствует всем требованиям. Сравните два компенсатора.
bodeplot(C,K,bopt), grid legend('PI design','Glover-McFarlane')

Рафинированный компенсатор имеет примерно тот же профиль усиления. ncfsyn автоматически добавлены нули в нужных местах для размещения растительных резонансов.
ncfsyn алгоритм создает компенсатор относительно высокого порядка по сравнению с исходным дизайном второго порядка.
order(K)
ans = 11
Вы можете использовать ncfmr чтобы уменьшить это до чего-то близкого к первоначальному порядку. Например, попробуйте заказать 4.
ord = 4; Kr = ncfmr(K,ord); [Gm,Pm] = margin(G*Kr)
Gm = 3.8789
Pm = 71.1054
bodeplot(G*K,G*Kr,bopt), grid legend('11th order','4th order')

Компенсатор уменьшенного порядка Kr имеет очень похожую форму петли и пределы устойчивости и является разумным кандидатом для реализации.
Салапака, С., А. Себастьян, Дж. П. Кливленд и М. В. Салапака. «Нано-позиционер с высокой пропускной способностью: надежный подход к управлению». Обзор научных инструментов 73, № 9 (сентябрь 2002 года): 3232-41.