Создайте slTuner
интерфейс к модели Simulink и укажите блоки, которые будут настроены. Сконфигурируйте интерфейс для настройки с looptune
путем добавления точек анализа, которые определяют разделение между объектом и контроллером. Также добавьте точки анализа, необходимые для навязывания требований настройки.
Эта система теперь готова к настройке с looptune
, используя заданные цели настройки. Для примера задайте целевую область значений полосы пропускания. Создайте требование настройки, которое накладывает отслеживание уставки в обоих каналах системы и подавление помех требование.
Final: Peak gain = 1.03, Iterations = 68
looptune
успешно настраивает систему в соответствии с этими требованиями. Однако можно хотеть переключиться на systune
чтобы воспользоваться дополнительной гибкостью при конфигурировании вашей проблемы. Для примера вместо настройки обоих каналов на цикл полосу пропускания внутри wc
Можно хотеть задать различные частоты среза для каждого цикла. Или можно захотеть применить требования к настройке, req1
и req2
, как жесткие ограничения, и добавить другие требования как мягкие требования.
Преобразуйте looptune
Входные параметры к набору входных параметров для systune
.
Эта команда возвращает набор аргументов, которые можно передавать systune
для эквивалентных результатов настройки с помощью looptune
. Другими словами, следующая команда эквивалентна looptune
команда.
Final: Peak gain = 1.03, Iterations = 68
Исследуйте требования к настройке, возвращенные looptuneSetup
. При настройке этой системы управления с looptune
, все требования рассматриваются как мягкие требования. Поэтому HardReqs
пуст. SoftReqs
является массивом TuningGoal
требования. Эти требования вместе обеспечивают соблюдение пропускной способности и полей looptune
команда, плюс заданные дополнительные требования.
SoftReqs =
5x1 heterogeneous SystemLevel (LoopShape, Tracking, Gain, ...) array with properties:
Models
Openings
Name
Например, исследуйте первую запись в SoftReqs
.
ans =
LoopShape with properties:
LoopGain: [1x1 zpk]
CrossTol: 0.3495
Focus: [0 Inf]
Stabilize: 1
LoopScaling: 'on'
Location: {'y'}
Models: NaN
Openings: {0x1 cell}
Name: 'Open loop GC'
looptuneSetup
выражает целевую частоту среза области значений wc
как TuningGoal.LoopShape
требование. Это требование ограничивает профиль усиления без разомкнутого контура формой цикла, сохраненной в LoopGain
свойство, с частотой среза и допуском кроссовера (CrossTol
), определяемый wc
. Исследуйте форму цикла.
Целевой кроссовер выражается как профиль усиления интегратора с перекрестием между 0,1 и 0,5 рад/с, как задано wc
. Если необходимо задать другую форму цикла, можно изменить эту TuningGoal.LoopShape
требование перед предоставлением его systune
.
looptune
также настраивает на запасы устойчивости по умолчанию, которые можно изменить с помощью looptuneOptions
. Для systune
, запасы устойчивости заданы с помощью TuningGoal.Margins
требования. Здесь, looptuneSetup
выразил запасы устойчивости по умолчанию как мягкие TuningGoal.Margins
требования. Например, исследуйте четвертую запись в SoftReqs
.
ans =
Margins with properties:
GainMargin: 7.6000
PhaseMargin: 45
ScalingOrder: 0
Focus: [0 Inf]
Location: {2x1 cell}
Models: NaN
Openings: {0x1 cell}
Name: 'Margins at plant inputs'
Последняя запись в SoftReqs
- аналогичная TuningGoal.Margins
требование, ограничивающее маржи на выходах объекта. looptune
обеспечивает применение этих полей как мягких требований. Если вы хотите преобразовать их в жесткие ограничения, передайте их в systune
в векторе входа HardReqs
вместо вектора входа SoftReqs
.