Включите журналирование сигнала для модели

Включите и отключите журналирование на образцовом уровне

Чтобы регистрировать сигнал, отметьте его для журналирования. Для получения дополнительной информации смотрите, Конфигурируют Сигнал для Журналирования.

Включите или отключите журналирование глобально для всех сигналов, что вы отмечаете для входа в систему модели. По умолчанию журналирование сигнала включено. Simulink® регистрирует сигналы, только если Configuration Parameters> Data Import/Export> параметр Signal logging проверяется. Если опция не проверяется, Simulink игнорирует настройки журналирования сигнала для отдельных сигналов.

Когда сигналы отмечены для журналирования, данные сигнала регистрируется к рабочей области и также отправляется непосредственно Инспектору Данных моделирования, по умолчанию. Можно отключить сигналы журналирования к рабочей области через диалоговое окно Configuration Parameters или программно.

  • В диалоговом окне Configuration Parameters очистите Configuration Parameters> Data Import/Export> флажок параметра Signal logging.

  • Из командной строки используйте параметр SignalLogging.

    set_param(bdroot,'SignalLogging','off')

Данные для сигналов, отмеченных для журналирования, всегда отправляются Инспектору Данных моделирования.

Выбор подмножества сигналов регистрировать

Можно выбрать подмножество сигналов регистрировать для модели, которая имеет:

  • Журналирование сигнала включено

  • Регистрируемые сигналы

Для получения дополнительной информации смотрите Сигнал Переопределения Регистрировать Настройки.

Задайте формат для элементов сигнала набора данных

Регистрируемые данные сигнала сохранены в формате Dataset (когда Simulink.SimulationData.Dataset возражает). Чтобы задать, хотите ли вы, чтобы данные для отдельных сигналов в наборе данных использовали MATLAB® timeseries или элементы timetable, установите параметр конфигурации Dataset signal format. Значением по умолчанию является timeseries. Для получения дополнительной информации смотрите формат сигнала Набора данных.

Переместите скрипты, которые используют наследие API ModelDataLogs

Для скриптов, которые моделируют модель, созданную в релизе ранее, чем R2016a, который использует формат ModelDataLogs для журналирования, обновите код, чтобы войти в систему формат Dataset.

Если вы уже регистрировали данные сигнала в формате ModelDataLogs, можно использовать функцию Simulink.ModelDataLogs.convertToDataset, чтобы обновить сигнал ModelDataLogs регистрация данных, чтобы использовать формат Dataset. Например, чтобы обновить older_model_dataset от формата ModelDataLogs до формата Dataset:

new_dataset = logsout.convertToDataset('older_model_data')

Преобразование модели от использования формата ModelDataLogs к использованию формата Dataset может потребовать, чтобы вы изменили свои существующие модели и закодировать в коллбэках, функциях, скриптах или тестах. Следующая таблица идентифицирует возможные проблемы, чтобы обратиться после преобразования в формат Dataset. Таблица предоставляет решения для каждой проблемы.

Возможная проблема после преобразования в формат набора данныхРешение

Код в существующих коллбэках, функциях, скриптах или тестах, которые использовали ModelDataLogs программируемый интерфейс, чтобы получить доступ к данным, может привести к ошибке.

Проверяйте на код, который использует методы доступа формата ModelDataLogs. Обновите тот код, чтобы использовать методы доступа формата Dataset.

Например, предположите, что существующий код включает следующую строку:

logsout.('Subsystem Name').X.data

Замените тот код на метод доступа Dataset:

logsout.getElement('x').Values.data

Имена блока-сигнала мультиплексора потеряны.

Формат Dataset обрабатывает блоки-сигналы Мультиплексора как вектор. Чтобы идентифицировать сигналы именами сигнала, замените блоки Мультиплексора на блоки Создателя Шины.

Средство просмотра сигнала не может использоваться для журналирования сигнала.

Simulink не регистрирует данные о журналировании сигнала в Средстве просмотра Сигнала.

Используйте сигнал, регистрирующий выходную переменную, чтобы просмотреть записанные данные.

Метод unpack генерирует ошибку.

Метод unpack, который поддерживается для Simulink.ModelDataLogs и объектов Simulink.SubsysDataLogs, не поддержан для объектов Simulink.SimulationData.Dataset.

Например, если данные в mlog имеют три поля: x, y и z, затем:

Для данных о формате ModelDataLogs метод mlog.unpack создает три переменные в базовом рабочем пространстве.

Для данных о формате Dataset, методов доступа именами. Например:

x = logsout.getElement('x').Values

ModelDataLogs и форматы Dataset имеют различные правила именования для сигналов без имени.

При необходимости добавьте имена сигнала.

В формате ModelDataLogs, для сигнала без имени, прибывающего из блока, Simulink присваивает имя в этой форме:

SL_BlockName+<portIndex>

Например, SL_Gain1.

В формате Dataset элементы не нуждаются в имени, таким образом, Simulink оставляет имя сигнала пустым.

И для ModelDataLogs и для форматов Dataset, Simulink присваивает то же имя к сигналам без имени, которые прибывают из блоков Селектора Шины.

Тестовые точки в моделях, на которые ссылаются, не регистрируются.

Рассмотрите сигнал включения, регистрирующий для тестовых точек в модели, на которую ссылаются.

Скрипт использует функции whos или who.

Рассмотрите использование Simulink.SimulationData.Dataset.find вместо этого.

Задайте имя для данных о регистрации сигнала

Вы используете сигнал образцового уровня, регистрирующий имя, чтобы получить доступ к данным о регистрации сигнала для модели. Именем по умолчанию для данных о регистрации сигнала является logsout. Определение сигнала образцового уровня, регистрирующего имя, может облегчить идентифицировать источник записанных данных. Например, вы могли задать сигнал, регистрирующий имя car_logsout, чтобы идентифицировать данные, как являющиеся данными о регистрации сигнала для модели car.

Чтобы задать различный сигнал образцового уровня, регистрирующий имя, используйте любой из этих подходов:

  • В окне редактирования рядом с Configuration Parameters> Data Import/Export> параметр Signal logging, введите имя журналирования сигнала.

  • Используйте параметр SignalLoggingName, задавая имя журналирования сигнала. Например:

    set_param(bdroot, 'SignalLoggingName', 'heater_model_signals')

Похожие темы