systune

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

Описание

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

Эта команда настраивает системы управления, смоделированные в Simulink®. Для настройки систем управления, представленных в MATLAB®, использование systune для genss модели.

пример

[st,fSoft] = systune(st0,SoftGoals) настраивает свободные параметры системы управления в Simulink. Модель Simulink, настроенные блоки и интересующие точки анализа заданы slTuner интерфейс, st0. systune настраивает системные параметры управления, чтобы наилучшим образом соответствовать целям эффективности, SoftGoals. Команда возвращает настроенную версию st0 как st. Наилучшие достигнутые значения мягких ограничений возвращаются следующим fSoft.

Если на st0 содержит действительную неопределенность параметра, systune автоматически выполняет устойчивую настройку, чтобы оптимизировать значения ограничений для значений параметров в худшем случае. systune также выполняет устойчивую настройку по набору моделей объекта управления, полученных в различных рабочих точках или значениях параметров. См. «Входные параметры».

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

[st,fSoft,gHard] = systune(st0,SoftGoals,HardGoals) настраивает систему управления, чтобы наилучшим образом соответствовать мягким целям, при условии удовлетворения жестких целей. Это возвращает наилучшие достигнутые значения, fSoft и gHard, для мягких и жестких целей. Цель достигается, когда ее достигнутое значение меньше 1.

[st,fSoft,gHard] = systune(___,opt) задает опции оптимизации для любой комбинации входных аргументов в предыдущих синтаксисах.

[st,fSoft,gHard,info] = systune(___) также возвращает подробную информацию о каждом запуске оптимизации для любой комбинации входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Настройте систему управления в rct_airframe2 модель к мягким целям для отслеживания, крена, запаса устойчивости и подавления помех.

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

mdl = 'rct_airframe2';
open_system(mdl);

Создайте и сконфигурируйте slTuner интерфейс с моделью.

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

st0 является slTuner интерфейс с rct_aircraft2 модель с MIMO Controller блок, заданный как настраиваемый фрагмент системы управления.

Модель уже имеет входные точки линеаризации на сигналах az ref, delta fin, az, q, и e. Поэтому эти сигналы доступны в качестве точек анализа для настройки целей и линеаризации.

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

req1 = TuningGoal.Tracking('az ref','az',1);
req2 = TuningGoal.Gain('delta fin','delta fin',tf(25,[1 0]));
req3 = TuningGoal.Margins('delta fin',7,45);
max_gain = frd([2 200 200],[0.02 2 200]);
req4 = TuningGoal.Gain('delta fin','az',max_gain);

req1 ограничения az для отслеживания az ref. Следующее требование, req2, предъявляет требование к откату путем определения профиля усиления для передаточной функции разомкнутого контура, измеренной в delta fin. Следующее требование, req3, накладывает коэффициент усиления без разомкнутого контура и запасов по фазе на ту же передаточную функцию «точка-точка». Наконец, req4 отклоняет нарушения порядка к az впрыскивается в delta fin, путем определения максимального профиля усиления между этими двумя точками.

Настройте модель, используя эти цели настройки.

opt = systuneOptions('RandomStart',3);
rng(0);
[st,fSoft,~,info] = systune(st0,[req1,req2,req3,req4],opt);
Final: Soft = 1.13, Hard = -Inf, Iterations = 92
Final: Soft = 1.13, Hard = -Inf, Iterations = 80
Final: Soft = 1.13, Hard = -Inf, Iterations = 72
Final: Soft = 40, Hard = -Inf, Iterations = 79

st является настроенной версией st0.

The RandomStart опция задает, что systune должен выполнить три независимых запусков оптимизации, которые используют различные (случайные) начальные значения настраиваемых параметров. Эти три запусков являются сложением к запуску оптимизации по умолчанию, в котором в качестве начального значения используется текущее значение настраиваемых параметров. Вызов rng задает генератор случайных чисел, чтобы получить повторяемую последовательность чисел.

systune отображает конечный результат для каждого запуска. Отображаемое значение, Soft, является максимальным из значений, достигнутых для каждой из четырех целей эффективности. Программное обеспечение выбирает лучший запуск в целом, что является запуском, дающим самое низкое значение Soft. Последний запуск не может достичь устойчивости с обратной связью, что соответствует Soft = Inf.

Исследуйте наилучшие достигнутые значения мягких ограничений.

fSoft
fSoft =

    1.1327    1.1327    0.5140    1.1327

Только req3, требование по запасу устойчивости, удовлетворяется для всех частот. Другие значения близки, но превышают 1, что указывает на нарушения целей по крайней мере для некоторых частот.

Использование viewGoal визуализировать производительность настроенной системы управления в соответствии с целями и определить, являются ли нарушения допустимыми. Чтобы вычислить определенные передаточные функции без разомкнутого контура или с обратной связью для настроенных значений параметров, можно использовать команды линеаризации, такие как getIOTransfer и getLoopTransfer. После проверки настроенных значений параметров, если вы хотите применить эти значения к модели Simulink ®, можно использовать writeBlockValue.

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

свернуть все

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

Если вы задаете изменение параметра или линеаризацию в нескольких рабочих точках, когда вы создаете st0, затем systune выполняет устойчивую настройку против всех моделей объекта управления. Если вы задаете неопределенное (uss (Robust Control Toolbox)) модель как замена блоков при создании st0, затем systune выполняет устойчивую настройку, оптимизируя параметры относительно значений параметров наихудшего случая. Для получения дополнительной информации об устойчивых подходах к настройке см. Раздел «Робастные подходы к настройке» (Robust Control Toolbox). (Для использования неопределенных моделей требуется лицензия Robust Control Toolbox™.)

Мягкие цели (задачи) для настройки системы управления, описанные st0, заданный как вектор TuningGoal объекты. Полный список см. в разделе Цели настройки.

systune настраивает настраиваемые параметры системы управления, чтобы минимизировать максимальное значение целей мягкой настройки, при условии удовлетворения целей жесткой настройки (если таковые имеются).

Жесткие цели (ограничения) для настройки системы управления, описанные st0, заданный как вектор TuningGoal объекты. Полный список см. в разделе Цели настройки.

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

Опции алгоритма настройки, заданные как набор опций, созданный с помощью systuneOptions.

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

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

  • Допуск для прекращения оптимизации

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

См. systuneOptions Страница с описанием для получения дополнительной информации обо всех доступных опциях.

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

свернуть все

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

Лучшие достигнутые значения мягких целей, возвращенные как вектор.

Каждая цель настройки вычисляет скалярное значение, и systune минимизирует максимальное значение мягких целей, при условии удовлетворения всех жестких целей.

fSoft содержит значение каждой мягкой цели для наилучшего общего запуска. Лучший общий запуск - это запуск, который достиг наименьшего значения для max(fSoft), при условии max(gHard)<1.

Достигнутые значения жестких целей, возвращенные как вектор.

gHard содержит значение каждой жесткой цели для наилучшего общего запуска (запуск, которая достигла наименьшего значения для max(fSoft), при условии max(gHard)<1. Все записи gHard меньше 1, когда все жесткие цели удовлетворены. Значения, превышающие 1, указывают, что systune не удалось удовлетворить одному или нескольким ограничениям проекта.

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

ОбластьЗначение
Run

Номер запуска, возвращенный как скаляр. Если вы используете RandomStart опция systuneOptions чтобы выполнить несколько запусков оптимизации, info является массивом структур, и info.Run - индекс.

Iterations

Общее количество итераций, выполненных во время запуска, возвращенных в виде скаляра. Если вы используете RandomStart, info.Iterations(j) - количество итераций, выполненных в j-м запуске перед завершением .

f

Лучшее общее значение мягкого ограничения, возвращаемое как скаляр. systune преобразует цели мягкой настройки в функцию от свободных параметров системы управления. Затем команда настраивает параметры, чтобы минимизировать эту функцию, удовлетворяющую жестким целям. (См. Алгоритмы.) info.f - максимальное значение мягкой цели при окончательной итерации. Это значение имеет значение только тогда, когда жесткие цели удовлетворены. Если значение меньше 1, то мягкие цели также достигаются.

g

Лучшее общее значение жесткого ограничения, возвращаемое как скаляр. systune преобразует цели жесткой настройки в функцию от свободных параметров системы управления. Затем команда настраивает параметры, чтобы привести эти значения ниже 1. (См. Алгоритмы.) info.g - самое большое значение жесткой цели при окончательной итерации. Если это значение меньше 1, то жесткие цели выполняются.

x

Настроенные значения параметров, возвращенные как вектор. Этот вектор содержит значения настраиваемых параметров в конце запуска. info.x могут также включать значения дополнительных переменных, таких как цикл масштабирований, если systune использует их (см. info.LoopScaling).

MinDecay

Минимальная скорость распада настроенной динамики системы, возвращаемая как двухэлементный вектор-строка.

info.MinDecay(1) - минимальная скорость затухания полюсов с обратной связью.

info.MinDecay(2) - минимальная скорость распада динамики настроенных блоков с ограничениями устойчивости. Для получения дополнительной информации о стабилизированной динамике и скорости распада, смотрите MinDecay опция systuneOptions.

fSoft

Отдельные значения мягких ограничений, возвращенные как вектор. systune преобразует каждую цель мягкой настройки в нормированное значение, которое является функцией от свободных параметров системы управления. Затем команда настраивает параметры, чтобы минимизировать это значение, удовлетворяющее жестким целям. (См. Алгоритмы.) info.fSoft содержит отдельные значения мягких целей в конце каждого запуска. Эти значения появляются в fSoft в том же порядке, в котором вы задаете цели в SoftReqs входной параметр в systune.

gHard

Отдельные значения жестких ограничений, возвращенные как вектор. systune преобразует каждую жесткую цель настройки в нормированное значение, которое является функцией от свободных параметров системы управления. Затем команда настраивает параметры, чтобы минимизировать эти значения. Жесткая цель удовлетворяется, если ее значение меньше 1. (См. Алгоритмы.) info.gHard содержит отдельные значения жестких целей в конце каждого запуска. Эти значения появляются в gHard в том же порядке, в котором вы задаете цели в HardReqs входной параметр в systune.

Blocks

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

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

stj = setBlockValue(st0,info(j).Blocks)

LoopScaling

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

При применении к многоуровневым системам управления цели настройки, которые включают отклик без разомкнутого контура, могут быть чувствительны к масштабированию передаточных функций цикла, к которым они применяются. Эта чувствительность может привести к плохим результатам оптимизации. systune автоматически исправляет проблемы масштабирования и возвращает оптимальную диагональную матрицу масштабирования D как модель пространства состояний в info.LoopScaling.

Циклические каналы, сопоставленные с каждым диагональным элементом D перечислены в info.LoopScaling.InputName. Масштабированная передача цикла D\L*D, где L передача без разомкнутого контура измеряется в местоположениях info.LoopScaling.InputName.

Цели настройки, затронутые таким масштабированием цикла, включают:

  • TuningGoal.LoopShape

  • TuningGoal.MinLoopGain и TuningGoal.MaxLoopGain

  • TuningGoal.Sensitivity

  • TuningGoal.Rejection

  • TuningGoal.Margins

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

ОбластьЗначение
wcPert

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

wcf

Худшее значение мягкой цели, возвращаемое как скаляр. Это значение является самым большим значением мягкой цели (f) в области значений неопределенностей при использовании настроенного контроллера.

wcg

Худшее значение жесткой цели, возвращаемое как скаляр. Это значение является самым большим значением жесткой цели (g) в области значений неопределенностей при использовании настроенного контроллера.

wcDecay

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

Подробнее о

свернуть все

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

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 с текущими значениями параметризаций настроенных блоков.

Точки анализа

Analysis points, используемая slLinearizer и slTuner интерфейсов, идентифицируйте местоположения в модели, которые релевантны для линейного анализа и настройки системы управления. Вы используете точки анализа как входы для команд линеаризации, таких как getIOTransfer, getLoopTransfer, getSensitivity, и getCompSensitivity. В качестве входов команд линеаризации точки анализа могут задать любую передаточную функцию без разомкнутого контура или с обратной связью в модели. Можно также использовать точки анализа, чтобы задать требования проекта при настройке систем управления с помощью таких команд, как systune.

Location относится к конкретному блоку выхода порту в модели или к элементу шины в таком выходе порте. Для удобства можно использовать имя сигнала, который поступает от этого порта, для обращения к точке анализа.

Можно добавить точки анализа в slLinearizer или slTuner интерфейс, s, при создании интерфейса. Для примера:

s = slLinearizer('scdcascade',{'u1','y1'});

Кроме того, можно использовать addPoint команда.

Чтобы просмотреть все точки анализа s, тип s в командной строке для отображения содержимого интерфейса. Для каждой точки анализа sотображение включает имя блока и номер порта и имя сигнала, который генерируется в этой точке. Вы также можете программно получить список всех точек анализа, используя getPoints.

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

Алгоритмы

x - вектор настраиваемых параметров в системе управления, для настройки. systune преобразует каждое требование мягкой и жесткой настройки SoftReqs(i) и HardReqs(j) в нормированные значения fi (x) и gj (x) соответственно. systune затем решает ограниченную задачу минимизации:

Минимизировать maxifi(x) при условии, что maxjgj(x)<1, для xmin<x<xmax.

xmin и xmax являются минимальным и максимальным значениями свободных параметров системы управления.

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

minxmax(αf(x),g(x)).

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

systune возвращает slTuner интерфейс с параметрами, настроенными на значения, которые лучше всего решают задачу минимизации. systune также возвращает наилучшие достигнутые значения fi (x) и gj (x), как fSoft и gHard соответственно.

Для получения информации о функциях fi (x) и gj (x) для каждого типа ограничения, смотрите страницы с описанием для каждого TuningGoal объект требования.

systune использует нескончаемые алгоритмы оптимизации, описанные в [1], [2], [3], [4]

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

Альтернативная функциональность

Настройте интерактивно с помощью Control System Tuner.

Ссылки

[1] P. Apkarian and D. Noll, «Nonsmooth H-infinity Synthesis», Транзакции IEEE по автоматическому управлению, том 51, номер 1, 2006, стр. 71-86.

[2] Apkarian, P. and D. Noll, «Nonsmooth Optimization for Multiband Frequency-Domain Control Design», Automatica, 43 (2007), pp. 724-731.

[3] Apkarian, P., P. Gahinet, and C. Buhr, «Мультимодель, multi-объективная настройка контроллеров с фиксированной структурой», Proceedings ECC (2014), pp. 856-861.

[4] Apkarian, P., M.-N. Dao, and D. Noll, «Parametric Robust Structured Control Design», Транзакции IEEE по автоматическому управлению, 2015.

[5] Bruisma, N.A. and M. Steinbuch, «A Fast Algorithm to Compute the H∞-Norm of a Передаточная Функция Matrix», System Control Letters, 14 (1990), pp. 287-293.

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

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