В этом примере показано, как использовать настройку параметров в реальном времени и регистрацию данных с помощью Simulink ® Real-Time™. После создания модели и загрузки приложения в реальном времени ,slrt_ex_param_tuning, на целевом компьютере, пример выполняет несколько запусков с усилением «Gain1/Gain», измененным (настроенным) перед каждым запуском. Коэффициент усиления увеличивается от 0,1 до 0,7 с шагом 0,05.
В примере используются возможности регистрации данных Simulink Real-Time для регистрации интересующих сигналов во время каждого прогона. Записанные сигналы загружаются на компьютер разработки и строятся. Отображается 3-D график зависимости выходного сигнала генератора от времени и коэффициента усиления.
Откройте модель, slrt_ex_param_tuning. Параметры конфигурации модели выбирают slrealtime.tlc системный целевой файл в качестве целевого файла генерации кода. При построении модели создается приложение реального времени, slrt_ex_param_tuning.mldatx, который работает на целевом компьютере.
model = 'slrt_ex_param_tuning'; open_system(fullfile(matlabroot,'toolbox','slrealtime','examples',model));

Создайте модель и загрузите приложение в реальном времени, slrt_ex_param_tuning.mldatx, к целевому компьютеру.
Настройка для построения, отличного от Verbose.
Создайте и загрузите приложение.
set_param(model,'RTWVerbose','off'); set_param(model,'StopTime','0.2'); slbuild(model); tg = slrealtime; load(tg,model);
### Successful completion of build procedure for: slrt_ex_param_tuning ### Created MLDATX ..\slrt_ex_param_tuning.mldatx Build Summary Top model targets built: Model Action Rebuild Reason ===================================================================================================== slrt_ex_param_tuning Code generated and compiled Code generation information file does not exist. 1 of 1 models built (0 models already up to date) Build duration: 0h 0m 20.514s
Этот код выполняет несколько задач.
Задача 1: Создание целевого объекта
Создайте переменную MATLAB ® ,tg, который содержит целевой объект Simulink Real-Time. Этот объект позволяет взаимодействовать с целевым компьютером и управлять им.
Создайте целевой объект Simulink Real-Time.
Установите время остановки равным 0,2 с.
Задача 2: Выполнение модели и результатов графика
Запустите модель, просвечивая и изменяя коэффициент усиления (параметр демпфирования) перед каждым запуском. Постройте график результатов для каждого прогона.
Если фигур для печати не существует, создайте фигуру.
Если график существует, сделайте его текущим.
Задача 3: Коэффициент затухания по контуру z
Задать коэффициент демпфирования (Gain1/Gain).
Запуск приложения реального времени.
Сохранить выходные данные в outp, y, и t переменные.
Печать данных для текущего прогона.
Задача 4: Создание графика 3-D (выход осциллятора в сравнении со временем в сравнении с коэффициентом усиления)
Коэффициент демпфирования по контуру.
Создайте график зависимости выхода осциллятора от времени и коэффициента усиления.
Создание 3-D графика.
figh = findobj('Name', 'parsweepdemo'); if isempty(figh) figh = figure; set(figh, 'Name', 'parsweepdemo', 'NumberTitle', 'off'); else figure(figh); end y = []; flag = 0; for z = 0.1 : 0.05 : 0.7 if isempty(find(get(0, 'Children') == figh, 1)) flag = 1; break; end load(tg,model); tg.setparam([model '/Gain1'],'Gain',2 * 1000 * z); tg.start('AutoImportFileLog',true, 'ExportToBaseWorkspace', true); pause(0.4); outp = logsOut.FileLogSignals{1}.Values; y = [y,outp.Data(:,1)]; t = outp.Time; plot(t,y); set(gca, 'XLim', [t(1), t(end)], 'YLim', [-10, 10]); title(['parsweepdemo: Damping Gain = ', num2str(z)]); xlabel('Time'); ylabel('Output'); drawnow; end if ~flag delete(gca); surf(t(1 : 200), 0.1 : 0.05 : 0.7, y(1 : 200, :)'); colormap cool shading interp h = light; set(h, 'Position', [0.0125, 0.6, 10], 'Style', 'local'); lighting gouraud title('parsweepdemo: finished'); xlabel('Time'); ylabel('Damping Gain'); zlabel('Output'); end

По завершении закройте модель.
close_system(model,0);