exponenta event banner

Настройка систем управления с помощью SYSTUNE

systune команда может совместно настраивать коэффициенты усиления системы управления независимо от ее архитектуры и количества петель обратной связи. В этом примере описывается systune рабочий процесс в простом приложении.

Управление сборкой головных дисков

В этом примере используется модель 9го порядка сборки head-disk (HDA) на жестком диске. Эта модель фиксирует первые несколько гибких режимов в HDA.

load rctExamples G
bode(G), grid

Figure contains 2 axes. Axes 1 with title From: u To: y contains an object of type line. This object represents G. Axes 2 contains an object of type line. This object represents G.

Мы используем цикл обратной связи, показанный ниже, чтобы расположить головку на правильной дорожке. Эта структура управления состоит из PI-контроллера и фильтра нижних частот в обратном тракте. Положение головы y следует отслеживать изменение шага r при времени отклика около одной миллисекунды, незначительном превышении или отсутствии переполнения и отсутствии стационарной ошибки.

Рис. 1: Структура управления

Вы можете использовать systune для непосредственной настройки коэффициента усиления и фильтрации PI в зависимости от различных требований к времени и частотной области.

Задание настраиваемых элементов

В структуре управления, показанной на фиг.1, имеется два настраиваемых элемента: PI-контроллер C (ы) и фильтр нижних частот.

F (s) = как + a.

Вы можете использовать tunablePID объект для параметризации блока PI:

C0 = tunablePID('C','pi');  % tunable PI

Для параметризации фильтра нижних частот F (s) создайте настраиваемый вещественный параметр a и создайте передаточную функцию первого порядка с числителем a и знаменателем s + a:

a = realp('a',1);    % filter coefficient
F0 = tf(a,[1 a]);    % filter parameterized by a

Обзор доступных настраиваемых элементов см. в примере «Создание настраиваемых моделей».

Построение настраиваемой модели с замкнутым контуром

Затем создайте замкнутую модель контура обратной связи на рис. 1. Для упрощения анализа с разомкнутым контуром и определения требований к разомкнутому контуру, таких как требуемые пределы устойчивости, добавьте точку анализа на входе в установку. u:

AP = AnalysisPoint('u');

Рис. 2: Блок точек анализа

Использовать feedback для построения модели передачи по замкнутому контуру из ссылки r в положение головы y:

T0 = feedback(G*AP*C0,F0);  % closed-loop transfer from r to y
T0.InputName = 'r';
T0.OutputName = 'y';

Результат T0 является обобщенной государственно-пространственной моделью (genss), которая зависит от перестраиваемых элементов C и F.

Определение требований к конструкции

TuningGoal пакет содержит различные требования к конструкции управления для определения требуемого поведения системы управления. К ним относятся требования к времени отклика, детерминированным и стохастическим коэффициентам усиления, форме петли, полям устойчивости и местоположениям полюсов. Здесь мы используем два требования, чтобы зафиксировать цели контроля:

  • Требование к отслеживанию: Позиция y должен отслеживать ссылку r с 1 миллисекундным временем отклика

  • Требования к запасу устойчивости: контур обратной связи должен иметь 6dB запаса усиления и 45 градусов запаса фазы

Используйте TuningGoal.Tracking и TuningGoal.Margins объекты для фиксации этих требований. Следует отметить, что требования к запасам применяются к отклику с разомкнутым контуром, измеренному на входе в установку. u (место, отмеченное точкой анализа AP).

Req1 = TuningGoal.Tracking('r','y',0.001);
Req2 = TuningGoal.Margins('u',6,45);

Настройка параметров контроллера

Теперь вы можете использовать systune для настройки коэффициента усиления и фильтрации PI. Эта функция использует настраиваемую модель с замкнутым контуром T0 и требования Req1,Req2. Используйте несколько рандомизированных начальных точек, чтобы повысить шансы получить глобально оптимальный дизайн.

rng('default')
Options = systuneOptions('RandomStart',3);
[T,fSoft] = systune(T0,[Req1,Req2],Options);
Final: Soft = 1.35, Hard = -Inf, Iterations = 65
Final: Soft = 1.35, Hard = -Inf, Iterations = 106
Final: Soft = 2.78e+03, Hard = -Inf, Iterations = 171
       Some closed-loop poles are marginally stable (decay rate near 1e-07)
Final: Soft = 1.35, Hard = -Inf, Iterations = 64

Все требования нормализуются, поэтому требование удовлетворяется, если его значение меньше 1. Здесь конечное значение немного больше 1, что указывает на то, что требования почти удовлетворены. Использовать выходные данные fSoft для просмотра настроенного значения каждого требования. Здесь мы видим, что первое требование (отслеживание) слегка нарушено, в то время как второе требование (маржа) удовлетворено.

fSoft
fSoft = 1×2

    1.3461    0.6326

Первый выход T из systune является «настроенной» моделью с замкнутым контуром. Использовать showTunable или getBlockValue для доступа к настроенным значениям коэффициента усиления и фильтра PI:

getBlockValue(T,'C')  % tuned value of PI controller
ans =
 
             1 
  Kp + Ki * ---
             s 

  with Kp = 0.00104, Ki = 0.0122
 
Name: C
Continuous-time PI controller in parallel form.
showTunable(T)  % tuned values of all tunable elements
C =
 
             1 
  Kp + Ki * ---
             s 

  with Kp = 0.00104, Ki = 0.0122
 
Name: C
Continuous-time PI controller in parallel form.
-----------------------------------
a = 3.19e+03

Проверка результатов

Первое использование viewGoal для проверки соответствия настроенной системы каждому требованию. Первый график показывает ошибку отслеживания как функцию частоты, а второй график показывает нормализованные поля диска как функцию частоты (см. diskmargin). Дополнительные сведения см. в примере «Создание требований к конструкции».

clf, viewGoal([Req1 Req2],T)

Figure contains 3 axes. Axes 1 contains 2 objects of type line. These objects represent Tracking error, Max error, Effective bound. Axes 2 contains an object of type line. These objects represent Required margins, Stability margins. Axes 3 contains an object of type line. These objects represent Required margins, Stability margins, Tuned lower bound.

Следующий график ответа шага с замкнутым контуром из ссылки r в положение головы y. Реакция не имеет перестрелки, но немного шатается.

clf, step(T)

Figure contains an axes. The axes with title From: r To: y contains an object of type line. This object represents T.

Для дальнейшего изучения используйте getLoopTransfer получить отклик с разомкнутым контуром на входе установки.

L = getLoopTransfer(T,'u');
bode(L,{1e3,1e6}), grid
title('Open-loop response')

Figure contains 2 axes. Axes 1 with title From: u To: u contains an object of type line. This object represents L. Axes 2 contains an object of type line. This object represents L.

Колебание происходит из-за первого резонанса после усиления кроссовера. Чтобы устранить его, можно добавить фильтр-пробку к контуру обратной связи и настроить его коэффициенты вместе с коэффициентом нижних частот и коэффициентом усиления PI с помощью systune.

См. также

| |

Связанные темы