looptune

Настройте обратную связь MIMO в Simulink с помощью slTuner интерфейс

Описание

пример

[st,gam,info] = looptune(st0,controls,measurements,wc) настраивает свободные параметры системы управления Simulink® модель, сопоставленная с slTuner интерфейс, st0, достигнуть следующих целей:

  • Полоса пропускания — Усиление перекрестно соединяет для каждого цикла падения интервала частоты wc

  • Эффективность — Интегральное действие на частотах ниже wc

  • Робастность — Соответствующие запасы устойчивости и спад усиления на частотах выше wc

controls и measurements задайте сигналы контроллера выход и сигналы измерения, которые подвергаются целям, соответственно. st обновленный slTuner интерфейс, gam указывает на меру успеха в удовлетворении целям и info сообщает подробности относительно запущенной оптимизации.

Настройка выполняется в шаге расчета, заданном Ts свойство st0. Для настройки деталей алгоритма см. Алгоритмы.

[st,gam,info] = looptune(st0,controls,measurements,wc,req1,...,reqN) настраивает обратную связь, чтобы удовлетворить дополнительным целям, заданным в одном или нескольких настраивающихся целевых объектах, req. Не используйте wc пропустить цель формирования цикла по умолчанию, сопоставленную с wc. Обратите внимание на то, что цели запаса устойчивости остаются в силе.

[st,gam,info] = looptune(___,opt) задает дальнейшие опции, включая целевые запасы по амплитуде и фазе, количество запусков и опции расчета для настраивающегося алгоритма. Использование looptuneOptions создать opt.

Если вы задаете несколько запусков с помощью RandomStarts свойство opt, looptune выполняет только как много запусков, требуемых достигнуть значения целевого уровня 1. Обратите внимание на то, что все настраивающие цели должны быть нормированы так, чтобы максимальное значение 1 среднего значения, что всем целям проекта удовлетворяют.

Примеры

свернуть все

Настройте ПИД-регулятор в rct_engine_speed модель, чтобы достигнуть заданной полосы пропускания.

Откройте модель Simulink.

mdl = 'rct_engine_speed';
open_system(mdl);

Создайте slTuner интерфейс для модели.

st0 = slTuner(mdl,'PID Controller');

Добавьте PID Controller выход, u, как аналитическая точка к st0.

addPoint(st0,'u');

На основе характеристик первого порядка частота среза должна превысить 1 рад/с для ответа с обратной связью, чтобы обосноваться меньше чем за 5 секунд. Так, настройте цикл ПИДа с помощью 1 рад/с в качестве целевой частоты среза на 0 дБ.

wc = 1;
st = looptune(st0,'u','Speed',wc);
Final: Peak gain = 0.979, Iterations = 4
Achieved target gain value TargetGain=1.

В вызове looptuneU задает управляющий сигнал и 'Speed' задает измеренный сигнал.

Сравните настроенный и начальный ответ.

stepplot(getIOTransfer(st0,'Ref','Speed'),getIOTransfer(st,'Ref','Speed'));
legend('Initial','Speed');

Просмотрите настроенное значение блока.

showTunable(st)
Block 1: rct_engine_speed/PID Controller =
 
             1            s    
  Kp + Ki * --- + Kd * --------
             s          Tf*s+1 

  with Kp = 0.000619, Ki = 0.00303, Kd = 0.000168, Tf = 0.01
 
Name: PID_Controller
Continuous-time PIDF controller in parallel form.

Чтобы записать настроенные значения обратно к модели Simulink, используйте writeBlockValue.

Входные параметры

свернуть все

Интерфейс для настройки систем управления, смоделированных в Simulink в виде slTuner интерфейс.

Имя контроллера выход в виде одного из следующего:

  • Вектор символов — Имя аналитической точки st0.

    Можно задать полное имя или любой фрагмент имени, которое однозначно определяет аналитическую точку среди других аналитических точек st0.

    Например, 'u'.

  • Массив ячеек из символьных векторов Несколько аналитических имен точки.

    Например, {'u','y'}.

Имя сигнала измерения в виде одного из следующего:

  • Вектор символов — Имя аналитической точки st0.

    Можно задать полное имя или любой фрагмент имени, которое однозначно определяет аналитическую точку среди других аналитических точек st0.

    Например, 'u'.

  • Массив ячеек вектора символов — Несколько аналитических имен точки.

    Например, {'u','y'}.

Целевая перекрестная область в виде одного из следующего:

  • [wcmin,wcmax]looptune попытки настроить все циклы в системе управления так, чтобы коэффициент усиления разомкнутого контура пересек 0 дБ в целевой перекрестной области.

  • Положительная скалярная величина — Задает целевую перекрестную область как [wc/10^0.1,wc*10^0.1] или wc + десятилетия/-0.1.

Задайте wc в модулях рабочего времени, то есть, единицах измерения времени модели.

Спроектируйте цели в виде одного или нескольких TuningGoal объекты.

Для полного списка целей проекта можно задать, видеть Настраивающиеся Цели.

При настройке опций алгоритма в виде опции устанавливают созданное использование looptuneOptions.

Доступные параметры включают:

  • Количество дополнительной оптимизации, чтобы запустить запуск со случайных начальных значений свободных параметров

  • Допуск к завершению оптимизации

  • Отметьте для использования параллельной обработки

  • Спецификация целевого запаса по амплитуде и фазе

Выходные аргументы

свернуть все

Настроенный интерфейс, возвращенный как slTuner интерфейс.

Уровень успеха указания параметра на встрече всех настраивающих ограничений, возвращенных как скаляр.

Значение   gam <= 1 указывает, что всем целям удовлетворяют. Значение   gam >> 1 указывает на отказ удовлетворить по крайней мере одно требование. Использование loopview визуализировать настроенный результат и идентифицировать неудовлетворенное требование.

Для лучших результатов используйте RandomStart опция в looptuneOptions получить несколько запусков минимизации. Установка RandomStart к целочисленному N > 0 причины looptune запускать оптимизацию N дополнительные времена, начинающиеся со значений параметров, это выбирает случайным образом. Можно исследовать gam для каждого запуска, чтобы помочь идентифицировать результат оптимизации, который удовлетворяет вашим целям проекта.

Подробная информация о каждой запущенной оптимизации, возвратилась как структура со следующими полями:

Оптимальные масштабирования ввода и вывода, возвратитесь как модели в пространстве состояний.

Масштабированный объект дан Do\G*Di.

Спроектируйте цели, используемые для настройки, возвращенные как вектор из TuningGoal объекты требования.

Подробная информация о каждой запущенной оптимизации, возвратилась как структура. Для получения дополнительной информации см. Алгоритмы.

Содержимое Runs info выход вызова systune выполняемый looptune. Для получения информации о полях Runs, смотрите info описание выходного аргумента на systune страница с описанием.

Больше о

свернуть все

Настроенные блоки

Tuned blocks, используемый slTuner соедините интерфейсом, идентифицируйте блоки в модели Simulink, параметры которой должны быть настроены, чтобы удовлетворить настраивающимся целям. Можно настроить большинство блоков Simulink, которые представляют линейные элементы, такие как усиления, передаточные функции или модели в пространстве состояний. (Для полного списка блоков, которые поддерживают настройку, смотрите, Как Настроенные блоки Simulink Параметрируются). Можно также настроить более комплексные блоки, такие как SubSystem или Блоки s-function путем определения эквивалентной настраиваемой линейной модели.

Используйте настраивающиеся команды такой как systune настроить параметры настроенных блоков.

Необходимо задать настроенные блоки (например, C1 и C2) когда вы создаете slTuner интерфейс.

st = slTuner('scdcascade',{'C1','C2'})

Можно изменить список настроенного использования блоков addBlock и removeBlock.

Взаимодействовать с настроенным использованием блоков:

  • getBlockParam, getBlockValue, и getTunedValue получить доступ к настроенной параметризации блока и их текущим значениям.

  • setBlockParam, setBlockValue, и setTunedValue изменить настроенную параметризацию блока и их значения.

  • writeBlockValue обновить блоки в модели Simulink с текущими значениями настроенной параметризации блока.

Алгоритмы

looptune автоматически преобразует целевую полосу пропускания, цели эффективности и дополнительные цели проекта в функции взвешивания, которые описывают цели как задачу оптимизации H∞. looptune затем использование systune оптимизировать настраиваемые параметры, чтобы минимизировать норму H∞.

Для получения информации об алгоритмах оптимизации см. [1].

looptune вычисляет норму H∞ с помощью алгоритма [2] и сохранение структуры eigensolvers от библиотеки SLICOT. Для получения дополнительной информации о библиотеке SLICOT, см. http://slicot.org.

Ссылки

[1] П. Апкэриэн и Д. Нолл, "Несглаженный Синтез H-бесконечности". Транзакции IEEE на Автоматическом управлении, Издании 51, Номере 1, 2006, стр 71–86.

[2] Bruinsma, N.A., и М. Стейнбач. "Алгоритм FAST, чтобы Вычислить H Норма Матрицы Передаточной функции". Systems & Control Letters, 14, № 4 (апреля 1990): 287–93.

Расширенные возможности

Введенный в R2014a