exponenta event banner

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 означало, что все цели проектирования выполнены.

Примеры

свернуть все

Настройте контроллер PID в 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 секунд. Итак, настройте цикл PID, используя 1 рад/с в качестве целевой частоты пересечения 0 дБ.

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

В вызове для looptune, 'u' определяет управляющий сигнал, и '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.00062, 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 справочная страница.

Подробнее

свернуть все

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

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

Используйте команды настройки, такие как 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] и сохраняющих структуру собственных решателей из библиотеки SLICOT. Дополнительные сведения о библиотеке SLICOT см. в разделе http://slicot.org.

Ссылки

[1] П. Апкарян и Д. Нолл, «Nonsmooth H-бесконечный синтез». Транзакции IEEE по автоматическому управлению, том 51, номер 1, 2006, стр. 71-86.

[2] Bruisma, N.A. и M. Steinbuch, «Быстрый алгоритм для вычисления H∞-Norm матрицы передаточной функции», System Control Letters, 14 (1990), стр. 287-293.

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

Представлен в R2014a