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

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

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

Включите или отключите журналирование глобально для всех сигналов, что вы отмечаете для входа в систему модели. По умолчанию журналирование сигнала включено. Simulink® регистрирует сигналы, только если Параметры конфигурации> Импорт/Экспорт Данных> параметр журналирования Сигнала проверяются. Если опция не проверяется, Simulink игнорирует настройки журналирования сигнала для отдельных сигналов.

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

  • В диалоговом окне Configuration Parameters очистите Параметры конфигурации> Импорт/Экспорт Данных> Сигнал, регистрирующий флажок параметра.

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

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

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

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

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

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

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

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

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

Регистрируемые данные сигнала являются форматом Dataset, в котором сохраняют (когда Simulink.SimulationData.Dataset возражает). Чтобы задать, хотите ли вы, чтобы данные для отдельных сигналов в наборе данных использовали MATLAB® timeseries или элементы timetable, установите параметр конфигурации формата сигнала Набора данных. Значением по умолчанию является 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 элементы не нуждаются в имени, таким образом, Симулинк оставляет имя сигнала пустым.

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

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

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

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

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

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

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

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

  • В окне редактирования рядом с Параметрами конфигурации> Импорт/Экспорт Данных> параметр журналирования Сигнала, введите имя журналирования сигнала.

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

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

Похожие темы

Была ли эта тема полезной?