exponenta event banner

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.

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 (Надёжная панель инструментов управления)) модель как подстановка блока при создании st0, то systune выполняет надежную настройку, оптимизируя параметры по отношению к наихудшим значениям параметров. Дополнительные сведения о подходах к надежной настройке см. в разделе Подходы к надежной настройке (инструментарий надежного управления). (Для использования неопределенных моделей требуется лицензия 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.

Подробнее

свернуть все

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

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

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

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

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

Изменить список настроенных блоков можно с помощью addBlock и removeBlock.

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

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

  • setBlockParam, setBlockValue, и setTunedValue для изменения параметров настроенного блока и их значений.

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

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

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

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

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

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

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

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

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

Алгоритмы

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

Минимизируйте максифи (x) в зависимости от maxjgj (x) < 1, для xmin < x < xmax.

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

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

minx max (α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.

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

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

Ссылки

[1] П. Апкарян и Д. Нолл, «Nonsmooth H-infinity Synthesis», IEEE Transactions on Automatic Control, том 51, номер 1, 2006, стр. 71-86.

[2] Апкарян, П. и Д. Нолл, «Nonsmooth Optimization for Multiband Frequency-Domain Control Design», Automatica, 43 (2007), pp. 724-731.

[3] Апкарян, П., П. Гахинет и К. Бюр, «Мультимодельная, многообъектная настройка контроллеров фиксированной структуры», Proceedings ECC (2014), стр. 856-861.

[4] Апкарян, П., М.-Н. Дао и Д. Нолл, «Параметрический надежный структурированный дизайн управления», IEEE Transactions on Automatic Control, 2015.

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

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

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