В этом примере показано, как использовать метод Перчаточника-McFarlane, чтобы получить формирующие цикл компенсаторы с хорошими запасами устойчивости. Пример применяет метод к этапу нанорасположения. Эти устройства могут достигнуть расположения очень высокой точности, которое важно в приложениях, таких как атомарные микроскопы силы (AFMs). Для получения дополнительной информации об этом приложении см. [1].
Следующий рисунок показывает схему обратной связи нанопозиционного устройства. Система состоит из пьезоэлектрического приведения в действие, этапа сгибания и системы обнаружения. Этап сгибания взаимодействует с главой AFM.
Загрузите модель объекта управления для этапа нанорасположения. Эта модель является моделью в пространстве состояний седьмого порядка, адаптированной к данным о частотной характеристике, полученным из устройства.
load npfit A B C D G = ss(A,B,C,D); bode(G), grid
Типичные конструктивные требования для закона о надзоре включают высокую полосу пропускания, высокое разрешение и хорошую робастность. В данном примере используйте:
Полоса пропускания приблизительно 50 Гц
Спад прошлых 250 Гц на-40 дБ/десятилетие
Запас по амплитуде сверх 1,5 (3,5 дБ) и запас по фазе сверх 60 градусов
Кроме того, когда этап нанорасположения используется для сканирования, опорный сигнал является треугольным, и важно, чтобы этап отследил этот сигнал с минимальной ошибкой в средней части треугольной волны. Один способ осуществить это состоит в том, чтобы добавить следующие конструктивные требования:
Двойной интегратор в цикле управления
Сначала попробуйте проект PI. Чтобы вместить двойное требование интегратора, умножьте объект на . Установите желаемую полосу пропускания на 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, чтобы прокрутиться прочь быстрее вне частоты среза усиления, но это будет, скорее всего, уменьшать запас по фазе.
Метод Перчаточника-McFarlane обеспечивает простой способ настроить компенсатор кандидата C
улучшить его запасы устойчивости. Этот метод стремится максимизировать робастность (как измерено ncfmargin
) примерно сохраняя форму цикла G*C
. Используйте ncfsyn
применять этот метод к этому приложению. Обратите внимание на то, что ncfsyn
принимает положительную обратную связь, таким образом, необходимо инвертировать знак объекта G
.
[K,~,gam] = ncfsyn(-G,C);
Проверяйте запасы устойчивости с усовершенствованным компенсатором K
.
[Gm,Pm] = margin(G*K)
Gm = 3.7267
Pm = 70.7109
ncfsyn
компенсатор увеличивает запас по амплитуде до 3,7 и запас по фазе до 70 градусов. Сравните форму цикла для этого компенсатора с формой цикла для проекта PI.
bodeplot(G*C,G*K,bopt), grid legend('PI design','Glover-McFarlane')
Компенсатор Перчаточника-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.8139
Pm = 70.6770
bodeplot(G*K,G*Kr,bopt), grid legend('11th order','4th order')
Компенсатор уменьшаемого порядка Kr
имеет очень похожую форму цикла и запасы устойчивости и разумный кандидат на реализацию.
Сэлэпэка, S., А. Себастьян, Дж. П. Кливленд и М. В. Сэлэпэка. “Высокий Нанопозиционер Полосы пропускания: Устойчивый Подход Управления”. Анализ Научных приборов 73, № 9 (сентябрь 2002): 3232–41.