Этот пример показывает, как использовать метод Гловера-Макфарлейна для получения контурных компенсаторов с хорошими запасами устойчивости. Пример применяет метод к стадии нанопозиционирования. Эти устройства могут достичь очень высокой точности позиционирования, что важно в таких приложениях, как атомно-силовые микроскопы (AFM). Для получения дополнительной информации об этом приложении см. раздел [1].
Следующий рисунок показывает схему обратной связи нанопозиционного устройства. Система состоит из пьезоэлектрического привода, ступени изгиба и системы обнаружения. Ступень изгиба взаимодействует с головкой AFM.
Загрузите модель объекта управления для стадии нанопозиционирования. Эта модель является моделью пространства состояний седьмого порядка, подобранной для данных частотной характеристики, полученных с устройства.
load npfit A B C D G = ss(A,B,C,D); bode(G), grid
Типичные требования к проекту закона о контроле включают высокую пропускную способность, высокое разрешение и хорошую робастность. В данном примере используйте:
Пропускная способность приблизительно 50 Гц
Откат -40 дБ/десятилетие после 250 Гц
Запас усиления более 1,5 (3,5 дБ) и запас по фазе более 60 степени
Кроме того, когда для сканирования используется каскад нанопозиционирования, опорный сигнал является треугольным, и важно, чтобы каскад отслеживал этот сигнал с минимальной ошибкой в середине треугольной волны. Одним из способов реализации этого является добавление следующего требования к проектированию:
Двойной интегратор в цикле управления
Сначала попробуйте проект. Чтобы учесть требование двойного интегратора, умножьте объект на . Установите желаемую полосу пропускания 50 Гц. Использование pidtune
для автоматической настройки ПИ-контроллера.
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. Можно попробовать добавить lowpass, чтобы быстрее откатиться за пределы частоты среза усиления, но это, скорее всего, снизит запас по фазе.
Метод Гловера-Макфарлейна предоставляет простой способ подправить компенсатор кандидата C
улучшить его запасы устойчивости. Этот метод стремится максимизировать робастность (как измерено ncfmargin
) при этом грубо сохраняя форму цикла G*C
. Использование ncfsyn
применить этот метод к данному приложению. Обратите внимание, что ncfsyn
принимает положительную обратную связь, поэтому вам нужно перевернуть знак объекта G
.
[K,~,gam] = ncfsyn(-G,C);
Проверьте запасы устойчивости с помощью рафинированного компенсатора K
.
[Gm,Pm] = margin(G*K)
Gm = 3.7418
Pm = 70.8006
The 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
автоматически добавленные нули в нужные области кадра для размещения объекта резонансов.
The 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
имеет очень похожую форму цикла и запасы устойчивости и является разумным кандидатом для реализации.
Салапака, С., А. Себастьян, Ж. П. Кливленд, и М. В. Салапака. High Bandwidth Nano-Positioner: A Robust Control Approach (неопр.) (недоступная ссылка). Обзор научных приборов 73, № 9 (сентябрь 2002 года): 3232-41.