Чтобы использовать Проводник Simulink® Real-Time™ для журналирования сигнала, добавьте блок Outport в свою модель Simulink. Активируйте вхождение в систему панели Data Import/Export в диалоговом окне Configuration Parameters.
Чтобы получить доступ к журналу данных, который создает приложение реального времени, когда это работает на целевом компьютере, используйте 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 с индексом 1
. Этот блок Outport показывает, что сигналы, оставляя блок маркировали Mux
.
Simulink Real-Time хранит записанные данные в четырех журналах данных, к которым можно получить доступ на компьютере разработчика при помощи Real-Time Application Properties. В следующем списке tg
является именем объекта SimulinkRealTime.target
, который вы используете, чтобы связаться с целевым компьютером.
tg.TimeLog
— Время или T-вектор, заданный как вектор дважды. Чтобы включить, в панели Data Import/Export, устанавливают параметр модели Time.
tg.OutputLog
— Выведите или Y-вектор, заданный как матрица. Чтобы включить, в панели Data Import/Export, устанавливают параметр модели Output.
tg.TETLog
— Вектор времени выполнения задачи, заданный как вектор дважды. Чтобы включить, в панели Simulink Real-Time Options, устанавливают параметр модели Monitor Task Execution Time.
tg.StateLog
— Состояние или X-вектор, заданный как матрица. Чтобы включить, в панели Data Import/Export, устанавливают параметр модели State.
Включите журналирование только для данных, которыми вы интересуетесь.
Каждый блок Outport имеет связанный вектор-столбец в tg.OutputLog
. Можно получить доступ к данным, которые соответствуют конкретному блоку Outport путем определения вектор-столбца для того блока. Например, чтобы получить доступ к данным, которые соответствуют Outport 2
, используйте tg.outputlog(:,2)
.
Чтобы загрузить часть журналов, используйте метод целевого объекта getlog
.
Переменные tout
регистрации данных, xout
, yout
и logsout
доступны только, когда вы используете Simulink, чтобы моделировать модель в нев реальном времени.
Вы не можете использовать Инспектора Данных моделирования, чтобы создать вход в систему данных целевой компьютер. Можно регистрировать только сигналы, которые соединяются с блоком Outport.
Нажмите Simulation> Model Configuration Parameters.
Позволить Simulink регистрировать сигналы, в панели Data Import/Export, проверка, что флажки Time и Output устанавливаются. Эти флажки устанавливаются по умолчанию.
Построить время выполнения задачи, в Code Generation> панель Simulink Real-Time Options, проверка, что параметр Monitor Task Execution Time выбран. Этот флажок устанавливается по умолчанию.
Чтобы создать буфер для сигналов, что вы регистрируете, устанавливает Signal logging buffer size in doubles на необходимое значение.
Значение по умолчанию 100 000 модулей является достаточно большим для этой модели.
Из меню File нажмите Save as.
Введите ex_slrt_outport_osc
(open_system(docpath(fullfile(docroot, 'toolbox', 'xpc', 'examples', 'ex_slrt_outport_osc')))
). Нажмите Save.
Нажмите OK.
В Редакторе Simulink, на панели инструментов, нажимают кнопку Build Model.
Запустите Simulink Real-Time Explorer (Tools> Simulink Real-Time).
Чтобы соединиться с целевым компьютером в панели Targets, нажмите кнопку Connect на панели инструментов.
Чтобы запустить выполнение, кликните по приложению реального времени, и затем на панели инструментов, нажмите кнопку Start .
Чтобы остановить выполнение, кликните по приложению реального времени, и затем на панели инструментов, нажмите кнопку Stop .
Загрузите и постройте регистрируемые времена и выходные значения от целевого компьютера. В Командном окне введите:
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