Сгенерируйте код MATLAB из Control System Tuner для настройки командной строки

Можно сгенерировать 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), чтобы скрипт сгенерировал дополнительные графики анализа.

Похожие темы