Чтобы использовать язык MATLAB® в логгировании сигнала, добавьте блок Outport в свою модель Simulink®. Активируйте логгирование при помощи команд MATLAB.
Чтобы получить доступ к журналу данных, который создает приложение реального времени, когда это работает на целевом компьютере, используйте Real-Time Application Properties.
Пример начинается с модели ex_slrt_rt_osc
(open_system(docpath(fullfile(docroot, 'toolbox', 'xpc', 'examples', 'ex_slrt_rt_osc')))
). Финалом сконфигурированная модель является ex_slrt_outport_osc
(open_system(docpath(fullfile(docroot, 'toolbox', 'xpc', 'examples', 'ex_slrt_outport_osc')))
):
Регистрируемые выходные параметры являются сигналами, соединенными с Simulink блоки Outport. Модель имеет один блок Outport с индексом 1
. Этот блок Outport показывает, что сигналы, оставляя блок пометили Mux
.
Simulink Real-Time™ хранит записанные данные в четырех журналах данных, к которым можно получить доступ на компьютере разработчика при помощи Real-Time Application Properties. В следующем списке, tg
имя SimulinkRealTime.target
возразите, что вы используете, чтобы связаться с целевым компьютером.
tg.TimeLog
— Время или T-вектор в виде вектора дважды. Чтобы включить, установите SaveTime
параметр модели.
tg.OutputLog
— Выведите или Y-вектор в виде матрицы. Чтобы включить, установите SaveOutput
параметр модели.
tg.TETLog
— Вектор времени выполнения задачи в виде вектора дважды. Чтобы включить, установите RL32LogTETModifier
параметр модели.
tg.StateLog
— Состояние или X-вектор в виде матрицы. Чтобы включить, установите SaveState
параметр модели.
tg.TimeLog
, tg.OutputLog
, tg.TeTLog
, и tg.StateLog
свойства будут удалены в будущем релизе.
Включите логгирование только для данных, которыми вы интересуетесь.
Каждый блок Outport имеет связанный вектор-столбец в tg.OutputLog
. Можно получить доступ к данным, которые соответствуют конкретному блоку Outport путем определения вектор-столбца для того блока. Например, чтобы получить доступ к данным, которые соответствуют Outport 2
, используйте tg.outputlog(:,2)
.
Чтобы загрузить часть журналов, используйте метод целевого объекта getlog
.
Переменные tout
регистрации данных,
xout
, yout
, и logsout
доступны только, когда вы используете Simulink, чтобы симулировать модель в нев реальном времени.
Вы не можете использовать Инспектора Данных моделирования, чтобы создать вход в систему данных целевой компьютер. Можно регистрировать только сигналы, которые соединяются с блоком Outport.
tg.TimeLog
, tg.OutputLog
, tg.TeTLog
, и tg.StateLog
свойства будут удалены в будущем релизе. Рассмотрите эти заменяющие подходы.
При использовании... | Замените на... |
---|---|
| Доступ run = Simulink.sdi.getRun(runID);
% Get signal objects for the signals in the run
signal1 = fuelRun.getSignalByIndex(4);
signal2 = fuelRun.getSignalByIndex(9); |
| Отчет Профилирования Выполнения кода. Setup профилировщик и затем использует: profiler_object = getProfilerData(tg); |
Для примера смотрите Регистрацию данных С Инспектором данных моделирования (SDI).
Открытая модель ex_slrt_rt_osc
.
mdl = 'ex_slrt_rt_osc';
open_system(mdl);
Проверяйте, что данные сигнала и время выполнения задачи регистрируются.
get_param(mdl,'SaveTime')
ans = on
get_param(mdl,'SaveOutput')
ans = on
get_param(mdl,'RL32LogTETModifier')
ans = on
Эти параметры устанавливаются на 'on'
по умолчанию.
Проверяйте, что Signal logging buffer size in doubles установлен в значение, достаточно большое, чтобы разместить количество сигналов, что вы регистрируете.
get_param(mdl,'RL32LogBufSizeModifier')
ans = 100000
Значение по умолчанию 100 000 модулей является достаточно большим для этой модели.
Сохраните модель под новым именем.
save_system(mdl,'ex_slrt_outport_osc');
Создайте приложение реального времени.
rtwbuild(mdl);
tg = slrt('TargetPC1');
load(tg,mdl);
Установите время остановки и запустите выполнение.
tg.stoptime = 1; start(tg);
Остановка выполнения.
stop(tg);
Загрузите и постройте регистрируемые времена и выходные значения от целевого компьютера. В Командном окне введите:
tg = slrt; timelog = tg.TimeLog; outputlog = tg.OutputLog; plot(timelog, outputlog)
Загрузите и постройте времена выполнения задачи для целевого компьютера. В Командном окне введите:
tetlog = tg.TETLog; plot(timelog, tetlog)
Показанный график является результатом выполнения в реальном времени.
В Командном окне введите:
tg.AvgTET
ans = 5.7528e-006
Процентом производительности ЦП является средний TET, разделенный на шаг расчета.
Время выполнения задачи (TET) измеряется, сколько времени оно берет ядро, чтобы запуститься для одного временного шага тарифной ставки. Для многоскоростной модели используйте профилировщик, чтобы узнать то, что время выполнения для каждого уровня.
Свойства приложения реального времени | getlog