Можно сгенерировать MATLAB® скрипт в Control System Tuner для настройки системы управления в командной строке. Сгенерированные скрипты полезны, когда вы хотите программно воспроизвести результат, полученный вами в интерактивном режиме. Сгенерированный скрипт MATLAB также позволяет вам программно выполнить несколько операций настройки с изменениями в целях настройки, системных параметрах или условиях модели, таких как рабочая точка.
Совет
Можно также сохранить Control System Tuner сеанс для воспроизведения в Control System Tuner. Для этого на вкладке Control System нажмите Save Session.
Чтобы сгенерировать скрипт MATLAB в Control System Tuner, на вкладке Tuning, нажмите Tune. Выберите Script with current values.
В РЕДАКТОРА MATLAB отображается сгенерированный скрипт, который программно воспроизводит текущее строение настройки Control System Tuner.
Например, предположим, что вы генерируете скрипт MATLAB после выполнения всех шагов в примере Управление Линейного Электрического Привода Использование Control System Tuner. Сгенерированный скрипт вычисляет рабочую точку, используемую для настройки, обозначает блоки для настройки, создает цели настройки и выполняет другие операции, чтобы воспроизвести результат в командной строке.
Первый раздел скрипта создает slTuner
(Simulink Control Design) интерфейс с Simulink® модель (rct_linact
в этом примере). slTuner
интерфейс хранит линеаризацию модели и параметризации блоков для настройки.
%% Create system data with slTuner interface TunedBlocks = {'rct_linact/Current Controller/Current PID'; ... 'rct_linact/Speed Controller/Speed PID'}; AnalysisPoints = {'rct_linact/Speed Demand (rpm)/1'; ... 'rct_linact/Current Sensor/1'; ... 'rct_linact/Hall Effect Sensor/1'; ... 'rct_linact/Speed Controller/Speed PID/1'; ... 'rct_linact/Current Controller/Current PID/1'}; OperatingPoints = 0.5; % Specify the custom options Options = slTunerOptions('AreParamsTunable',false); % Create the slTuner object CL0 = slTuner('rct_linact',TunedBlocks,AnalysisPoints,OperatingPoints,Options);
slTuner
интерфейс также задает рабочую точку, в которой модель линеаризируется, и помечает как точку анализа все местоположения сигнала, необходимые для определения целей настройки для примера. (См. «Создание и конфигурирование интерфейса slTuner к модели Simulink».)
Если вы настраиваете систему управления, смоделированную в MATLAB вместо Simulink, первый раздел скрипта создает genss
модель, которая имеет эквивалентную динамику и параметризацию genss
модель системы управления, которую вы задали Control System Tuner.
Далее скрипт создает три цели настройки, указанные в примере. Скрипт использует TuningGoal
объекты для захвата этих целей настройки. Например, скрипт использует TuningGoal.Tracking
для захвата цели отслеживания примера.
%% Create tuning goal to follow reference commands with prescribed performance % Inputs and outputs Inputs = {'rct_linact/Speed Demand (rpm)/1'}; Outputs = {'rct_linact/Hall Effect Sensor/1[rpm]'}; % Tuning goal specifications ResponseTime = 0.1; % Approximately reciprocal of tracking bandwidth DCError = 0.001; % Maximum steady-state error PeakError = 1; % Peak error across frequency % Create tuning goal for tracking TR = TuningGoal.Tracking(Inputs,Outputs,ResponseTime,DCError,PeakError); TR.Name = 'TR'; % Tuning goal name
После создания целей настройки скрипт устанавливает любые опции алгоритма, которые вы Control System Tuner. Скрипт также обозначает цели настройки как мягкие или жесткие цели, согласно строения целей настройки в Control System Tuner. (См. «Управление целями настройки».)
%% Create option set for systune command Options = systuneOptions(); %% Set soft and hard goals SoftGoals = [ TR ; ... MG1 ; ... MG2 ]; HardGoals = [];
В этом примере все цели обозначаются как мягкие цели, когда скрипт генерируется. Поэтому HardGoals
пуст.
Наконец, скрипт настраивает систему управления, вызывая systune
(Simulink Control Design) на slTuner
интерфейс с помощью целей и опций настройки.
%% Tune the parameters with soft and hard goals
[CL1,fSoft,gHard,Info] = systune(CL0,SoftGoals,HardGoals,Options);
Скрипт также включает необязательный вызов на viewGoal
, который отображает графические представления целей настройки, чтобы помочь вам в интерпретации и проверке результатов настройки. Раскомментируйте эту строку кода, чтобы сгенерировать графики.
%% View tuning results % viewGoal([SoftGoals;HardGoals],CL1);
Можно добавлять вызовы к функциям, таким как getIOTransfer
(Simulink Control Design), чтобы скрипт сгенерировал дополнительные графики анализа.