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

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

Управление блоком главного диска

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

load rctExamples G
bode(G), grid

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

Рисунок 1: управляющая структура

Можно использовать systune непосредственно настроить усиления PI и коэффициент фильтра a подвергните разнообразию времени - и требования частотного диапазона.

Указывание настраиваемых элементов

Существует два настраиваемых элемента в управляющей структуре рисунка 1: ПИ-контроллер C(s) и фильтр lowpass

F(s)=as+a.

Можно использовать tunablePID объект параметрировать блок PI:

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

Параметрировать фильтр lowpass 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 временем отклика миллисекунды

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

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

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

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

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

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

Все требования нормированы так, требованию удовлетворяют, когда его значение меньше 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)

Затем постройте переходной процесс с обратной связью от ссылочного r к положению головы y. Ответ не имеет никакого перерегулирования, но колеблется немного.

clf, step(T)

Чтобы заняться расследованиями далее, используйте getLoopTransfer получить ответ разомкнутого цикла во входе объекта.

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

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

Для просмотра документации необходимо авторизоваться на сайте