В этом примере показано, как создать и сконфигурировать slTuner
интерфейс для модели Simulink®. slTuner
интерфейс параметрирует блоки в вашей модели, которую вы определяете как настраиваемую, и позволяет вам настраивать их использующий systune
. slTuner
интерфейс генерирует линеаризацию вашей модели Simulink, и также позволяет вам извлекать ответы линеаризованной системы для анализа и валидации настроенной системы управления.
В данном примере создайте и сконфигурируйте slTuner
интерфейс для настройки модели Simulink rct_helico
, многоконтурный контроллер для винтокрыла. Откройте модель.
open_system('rct_helico');
Система управления состоит из двух обратной связи. Внутренний цикл (статическая выходная обратная связь) обеспечивает повышение стабильности и разъединение. Внешний контур (ПИ-контроллеры) обеспечивает желаемую эффективность отслеживания заданного значения.
Предположим, что вы хотите настроить эту модель, чтобы достигнуть следующих целей управления:
Отследите изменения заданного значения в theta
, phi
, и r
с нулевой установившейся ошибкой, заданными временами нарастания, минимальным перерегулированием и минимальной перекрестной связью.
Ограничьте пропускную способность управления, чтобы принять меры против заброшенной высокочастотной динамики ротора и шума измерения.
Обеспечьте сильные многомерные запасы по амплитуде и фазе (робастность к одновременным изменениям усиления/фазы при вводах и выводах объекта).
systune
команда может совместно настроить блоки контроллера SOF
и ПИ-контроллеры, чтобы соответствовать этим конструктивным требованиям. slTuner
интерфейс настраивает эту настраивающую задачу.
Создайте slTuner
интерфейс.
ST0 = slTuner('rct_helico',{'PI1','PI2','PI3','SOF'});
Эта команда инициализирует slTuner
интерфейс с этими тремя ПИ-контроллерами и SOF
блок, определяемый как настраиваемый. Каждый настраиваемый блок автоматически параметрируется согласно его типу и инициализируется своим значением в модели Simulink.
Сконфигурировать slTuner
соедините интерфейсом, определяйте как аналитические точки любые местоположения сигнала отношения к вашим конструктивным требованиям. Во-первых, добавьте выходные параметры и ссылочные входные параметры для требований отслеживания.
addPoint(ST0,{'theta-ref','theta','phi-ref','phi','r-ref','r'});
Когда вы создаете TuningGoal.Tracking
возразите, что получает требование отслеживания, это ссылки на объект те же сигналы.
Сконфигурируйте slTuner
интерфейс для требований по запасу устойчивости. Определяйте как аналитические точки вводы и выводы объекта (управление и сигналы измерения), где запасы устойчивости измеряются.
addPoint(ST0,{'u','y'});
Отобразите сводные данные slTuner
интерфейсная настройка в командном окне.
ST0
slTuner tuning interface for "rct_helico": 4 Tuned blocks: (Read-only TunedBlocks property) -------------------------- Block 1: rct_helico/PI1 Block 2: rct_helico/PI2 Block 3: rct_helico/PI3 Block 4: rct_helico/SOF 8 Analysis points: -------------------------- Point 1: 'Output Port 1' of rct_helico/theta-ref Point 2: Signal "theta", located at 'Output Port 1' of rct_helico/Demux1 Point 3: 'Output Port 1' of rct_helico/phi-ref Point 4: Signal "phi", located at 'Output Port 2' of rct_helico/Demux1 Point 5: 'Output Port 1' of rct_helico/r-ref Point 6: Signal "r", located at 'Output Port 3' of rct_helico/Demux1 Point 7: Signal "u", located at 'Output Port 1' of rct_helico/Mux3 Point 8: Signal "y", located at 'Output Port 1' of rct_helico/Helicopter No permanent openings. Use the addOpening command to add new permanent openings. Properties with dot notation get/set access: Parameters : [] OperatingPoints : [] (model initial condition will be used.) BlockSubstitutions : [] Options : [1x1 linearize.SlTunerOptions] Ts : 0
В командном окне нажмите на любой подсвеченный сигнал видеть его местоположение в модели Simulink.
В дополнение к определению конструктивных требований можно использовать аналитические точки для извлечения откликов системы. Например, извлеките и постройте переходные процессы между опорными сигналами и 'theta'
, 'phi'
, и 'r'
.
T0 = getIOTransfer(ST0,{'theta-ref','phi-ref','r-ref'},{'theta','phi','r'}); stepplot(T0,1)
Все переходные процессы нестабильны, включая перекрестные связи, потому что эта модель еще не была настроена.
После того, как вы настроите модель, можно так же использовать обозначенные аналитические точки, чтобы извлечь отклики системы для проверки настроенной системы. Если вы хотите исследовать отклики системы в местоположениях, которые не нужны, чтобы задать конструктивные требования, добавить эти местоположения в slTuner
интерфейс также. Например, постройте функцию чувствительности, измеренную при выходе блока roll-off 2
.
addPoint(ST0,'dc') dcS0 = getSensitivity(ST0,'dc'); bodeplot(dcS0)
Предположим, что вы хотите изменить параметризацию настраиваемых блоков в slTuner
интерфейс. Например, предположите, что после настройки модели, вы хотите протестировать, приводит ли изменение с PI на ПИД-регуляторы к улучшенным результатам. Измените параметризацию этих трех ПИ-контроллеров к ПИД-регуляторам.
PID0 = pid(0,0.001,0.001,.01); % initial value for PID controllers PID1 = tunablePID('C1',PID0); PID2 = tunablePID('C2',PID0); PID3 = tunablePID('C3',PID0); setBlockParam(ST0,'PI1',PID1,'PI2',PID2,'PI3',PID3);
После того, как вы конфигурируете slTuner
взаимодействуйте через интерфейс к своей модели Simulink, можно создать настраивающиеся цели и настроить модель с помощью systune
или looptune
.
addBlock
(Simulink Control Design) | addPoint
(Simulink Control Design) | getIOTransfer
(Simulink Control Design) | getSensitivity
(Simulink Control Design) | setBlockParam
(Simulink Control Design) | slTuner
(Simulink Control Design)