Когда вы разрабатываете модель, можно хотеть заменить настройки логгирования сигнала для определенной запущенной симуляции. Можно заменить свойства логгирования сигнала, не изменяя модель в Редакторе Simulink®.
Чтобы уменьшать память наверху и упростить анализ результатов логгирования симуляции, замените свойства логгирования сигнала. Путем переопределения настроек логгирования сигнала можно постараться не перекомпилировать модель.
Переопределение логгирования сигнала свойств полезно, когда это необходимо, для:
Фокусируйтесь только на нескольких сигналах путем отключения регистрирующий для большинства сигналов, отмеченных для логгирования. Можно отметить надмножество сигналов для логгирования, и затем выбрать различные подмножества их для логгирования.
Исключите несколько сигналов из логгирования сигнала выход.
Замените определенные свойства логгирования сигнала, такие как децимация, для сигнала.
Соберите только, в чем вы нуждаетесь при выполнении нескольких тестовых векторов.
Используйте любой из двух интерфейсов, чтобы заменить настройки логгирования сигнала:
Можно использовать комбинацию двух интерфейсов. Селектор Логгирования Сигнала создает Simulink.SimulationData.ModelLoggingInfo
объекты при сохранении настроек переопределения. Интерфейс командной строки имеет свойства, имена которых соответствуют Сигналу, Регистрирующему Селекторный интерфейс. Например, Simulink.SimulationData.ModelLoggingInfo
класс имеет LoggingMode
свойство, которое соответствует параметру Logging Mode в Селекторе Логгирования Сигнала.
Когда вы заменяете настройки логгирования сигнала, Simulink использует те настройки переопределения, когда вы симулируете модель.
Simulink сохраняет в модели сигнал, регистрирующий настройку переопределения, которую вы задаете. Однако Simulink не изменяет настройки логгирования сигнала в диалоговом окне Signal Properties для каждого сигнала в модели.
В Селекторе Логгирования Сигнала, если вы заменяете некоторые настройки логгирования сигнала, и затем устанавливаете Logging Mode на Log all signals as specified in model
, настройки логгирования, заданные в модели, появляются в Селекторе Логгирования Сигнала. Настройки переопределения отображаются серым, указывая, что вы не можете заменить эти настройки. Чтобы повторно активировать настройки переопределения, установите Logging Mode на Override signals
. Используя Селектор Логгирования Сигнала, чтобы заменить логгирование для определенного сигнала не влияет на индикатор логгирования сигнала для того сигнала.
Если вы закрываете и затем вновь открыли модель, переопределения установки логгирования, которые вы сделали, в действительности, если логгирование режима собирается заменить сигналы для той модели. Когда модель отображает индикаторы логгирования сигнала, она отображает индикаторы для всех регистрируемых сигналов, включая регистрируемые сигналы, что вы заменили.
Примечание
Simulink восстанавливает модель в следующей ситуации:
Модель содержит один или несколько сигналов, отмеченных для логгирования сигнала.
Вы симулируете модель в быстром режиме Accelerator.
Вы используете Селектор Логгирования Сигнала или командную строку MATLAB®, чтобы изменить настройку логгирования сигнала.
Вы симулируете модель в быстром режиме Accelerator снова.
Откройте Селектор Логгирования Сигнала, с помощью одного из следующих подходов:
В Configuration Parameters> панель Data Import/Export, нажмите кнопку Configure Signals to Log.
Совет
Чтобы включить кнопку Configure Signals to Log, выберите параметр конфигурации Signal logging.
Для модели, которая включает блок Model, можно также использовать следующий подход:
В Редакторе Simulink щелкните правой кнопкой по блоку Model.
В контекстном меню выберите Log Referenced Signals.
Установите Logging Mode на Override signals
.
Примечание
Override signals
установка влияет на все уровни иерархии модели. Эта установка может привести к выключению логгирования для любого сигнала в иерархии, на основе существующих настроек. Чтобы рассмотреть настройки, выберите соответствующий узел в панели Model Hierarchy.
Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Вид на море, Регистрирующий Настройку Используя Селектор Логгирования Сигнала.
Замените настройки логгирования сигнала. Используйте один из следующих подходов, в зависимости от того, использует ли ваша модель ссылку модели:
Совет
Чтобы открыть Configuration Parameters> панель Data Import/Export от Селектора Логгирования Сигнала, используйте кнопку.
Если ваша модель не использует ссылку модели (то есть, модель не включает блоков Model), настройки логгирования сигнала переопределения с помощью следующей процедуры.
Откройте Селектор Логгирования Сигнала. В Configuration Parameters> панель Data Import/Export, нажмите кнопку Configure Signals to Log.
При необходимости выберите Signal logging, чтобы включить кнопку Configure Signals to Log.
Установите Logging Mode на Override signals
.
Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Вид на море, Регистрирующий Настройку Используя Селектор Логгирования Сигнала.
В таблице панели Contents выберите сигнал, логгирование которого настроек вы хотите заменить.
Настройки логгирования переопределения:
Чтобы отключить логгирование для сигнала, очистите DataLogging
флажок для того сигнала.
Заменять другие настройки логгирования сигнала (например, децимация), гарантируют что DataLogging
флажок устанавливается. Затем значения редактирования в соответствующих столбцах.
Если ваша ссылка модели использования модели (то есть, модель включает по крайней мере один блок Model), сигнал переопределения логгирование настроек с помощью одного или нескольких из этих процедур:
Позвольте Регистрировать для Всех Регистрируемых Сигналов. По умолчанию Simulink регистрирует все регистрируемые сигналы в модели, включая регистрируемые сигналы в иерархиях модели - ссылки.
Если логгирование отключено для каких-либо регистрируемых сигналов в модели верхнего уровня или в блоке Model верхнего уровня в иерархии модели - ссылки, то в панели Model Hierarchy, флажок слева от того узла:
Тело (), если логгирование отключено для некоторых сигналов.
Пустой (), если логгирование отключено для всех сигналов.
Позволять регистрировать всех регистрируемых сигналов для узла:
Откройте Селектор Логгирования Сигнала. В Configuration Parameters> панель Data Import/Export, нажмите кнопку Configure Signals to Log.
Установите Logging Mode на Override signals
.
Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Вид на море, Регистрирующий Настройку Используя Селектор Логгирования Сигнала.
В панели Model Hierarchy установите флажок слева от узла, так, чтобы флажок имел галочку ().
Для модели верхнего уровня логгирование включено для всех регистрируемых сигналов в модели верхнего уровня, но не для регистрируемых сигналов в иерархиях модели - ссылки.
Для блока Model наверху модели, ссылающейся на иерархию, логгирование включено для целой иерархии модели - ссылки для выбранной модели, на которую ссылаются.
Отключите Логгирование для Всех Сигналов в Узле. Если логгирование сигнала включено для каких-либо сигналов в узле модели, то в панели Model Hierarchy, флажок слева от узла:
Тело (), если логгирование включено для некоторых сигналов.
Проверяемый (), если логгирование включено для всех сигналов.
Отключить логгирование для всех регистрируемых сигналов в вершине модели:
Откройте Селектор Логгирования Сигнала. В Configuration Parameters> панель Data Import/Export, нажмите кнопку Configure Signals to Log.
Установите Logging Mode на Override signals
.
Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Вид на море, Регистрирующий Настройку Используя Селектор Логгирования Сигнала.
В панели Model Hierarchy снимите флажок слева от узла, так, чтобы флажок был пуст ().
Для модели верхнего уровня логгирование отключено для всех регистрируемых сигналов в модели верхнего уровня, но не для регистрируемых сигналов в иерархиях модели - ссылки.
Для блока Model наверху модели, ссылающейся на иерархию, логгирование отключено для целой иерархии модели - ссылки для выбранной модели, на которую ссылаются.
Замените Логгирование Сигнала для Подмножества Сигналов. Регистрировать некоторых, но не все, регистрируемые сигналы в узле модели:
Откройте Селектор Логгирования Сигнала. В Configuration Parameters> панель Data Import/Export, нажмите кнопку Configure Signals to Log.
Установите Logging Mode на Override signals
.
Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Вид на море, Регистрирующий Настройку Используя Селектор Логгирования Сигнала.
В панели Model Hierarchy гарантируйте, что флажок для модели верхнего уровня или блока Model любой тверд (), если логгирование отключено для некоторых сигналов или пустое (), если логгирование отключено для всех сигналов. Кликните по флажку, чтобы циклически повториться через различные состояния.
В таблице панели Contents, для сигналов, что вы хотите регистрировать, установите флажок в DataLogging
столбец.
Чтобы позволить регистрировать для нескольких сигналов, удержите клавишу Shift или Ctrl и выберите область значений сигналов или отдельных сигналов. Установите флажок в DataLogging
столбец одного из подсвеченных сигналов.
Замените Другие Свойства Логгирования Сигнала. В дополнение к переопределению установки для DataLogging
свойство для сигнала, можно заменить другие свойства логгирования сигнала, такие как децимация.
Откройте Селектор Логгирования Сигнала. В Configuration Parameters> панель Data Import/Export, нажмите кнопку Configure Signals to Log.
Установите Logging Mode на Override signals
.
Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Вид на море, Регистрирующий Настройку Используя Селектор Логгирования Сигнала.
В панели Model Hierarchy гарантируйте, что флажок для модели верхнего уровня или блока Model тверд (), если логгирование отключено для некоторых сигналов или пустое (), если логгирование отключено для всех сигналов. Кликните по флажку, чтобы циклически повториться через различные состояния.
В таблице панели Contents, для сигналов, для которых вы хотите заменить свойства логгирования, позволить регистрировать путем установки флажка в DataLogging
столбец.
Чтобы позволить регистрировать для нескольких сигналов, удержите клавишу Shift или Ctrl и выберите область значений сигналов или отдельных сигналов. Установите флажок в DataLogging
столбец одного из подсвеченных сигналов.
В таблице панели Contents измените настройки для свойств, таких как DecimateData
и Decimation
.
Интерфейс командной строки MATLAB для переопределения логгирования сигнала настроек включает:
DataLoggingOverride
параметр модели — Использование, чтобы просмотреть или установить сигнал, регистрирующий значения переопределения для модели
Следующие классы:
— Задайте сигнал, регистрирующий настройки переопределения для модели. Этот класс соответствует полному Сигналу, Регистрирующему Селекторный интерфейс.Simulink.SimulationData.ModelLoggingInfo
— Замените настройки для определенного сигнала. Этот класс соответствует строке в таблице свойства логгирования в Селекторе Логгирования Сигнала:Simulink.SimulationData.SignalLoggingInfo
— Переопределения для настроек логгирования сигнала, таких как децимация. Этот класс соответствует доступным для редактирования столбцам подряд в таблице свойства логгирования в Селекторе Логгирования Сигнала.Simulink.SimulationData.LoggingInfo
Чтобы запросить модель для ее сигнала, регистрирующего состояние переопределения, используйте DataLoggingOverride
параметр.
Чтобы сконфигурировать логгирование сигнала из командной строки, используйте методы и свойства этих трех упомянутых выше классов. Чтобы применить настройку, используйте set_param
с DataLoggingOverride
параметр модели.
Следующие разделы описывают, как использовать интерфейс командной строки, чтобы выполнить некоторый общий сигнал, регистрирующий задачи настройки.
Чтобы использовать интерфейс командной строки для переопределения логгирования сигнала настроек, сначала создайте Simulink.SimulationData.ModelLoggingInfo
объект. Например, используйте следующие команды, чтобы создать модель, регистрирующую объект переопределения для ex_bus_logging
модель и автоматически добавляет каждый регистрируемый сигнал в модели к тому объекту:
open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_bus_logging'))); open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_mdlref_counter_bus'))); mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel(... 'ex_bus_logging')
mi = ModelLoggingInfo with properties: Model: 'ex_bus_logging' LoggingMode: 'OverrideSignals' LogAsSpecifiedByModels: {} Signals: [1x4 Simulink.SimulationData.SignalLoggingInfo]
LoggingMode
свойство установлено в OverrideSignals
, который конфигурирует модель, регистрирующую объект переопределения регистрировать только сигналы, заданные в Signals
свойство.
Чтобы применить параметры объекта переопределения модели, используйте:
set_param(ex_bus_logging, 'DataLoggingOverride', mi);
Simulink сохраняет настройки, когда вы сохраняете модель.
Можно управлять видами систем, от которых можно включать регистрируемые сигналы. По умолчанию, Simulink.SimulationData.ModelLoggingInfo
объект включает регистрируемые сигналы от:
Библиотеки
Подсистемы маскированные
Модели, на которые ссылаются,
Активные варианты
Как альтернатива, можно использовать Simulink.SimulationData.ModelLoggingInfo
конструктор и задает Simulink.SimulationData.SignalLoggingInfo
объект для каждого сигнала. Чтобы гарантировать, что вы задали допустимые настройки логгирования сигнала для модели, используйте verifySignalAndModelPaths
метод с Simulink.SimulationData.ModelLoggingInfo
объект для модели.
Чтобы задать, использовать ли настройки логгирования сигнала, как задано в модели и всех моделях, на которые ссылаются, или заменять те настройки, используют LoggingMode
свойство Simulink.SimulationData.ModelLoggingInfo
объект.
Можно управлять, используют ли модель верхнего уровня и настройки логгирования сигнала переопределения использования моделей, на которые ссылаются, или настройки логгирования сигнала, заданные моделью. Смотрите
документация.Simulink.SimulationData.ModelLoggingInfo
В этом примере показано, как регистрировать все сигналы, как задано в топ-модели и все модели, на которые ссылаются. Логгирование сигнала выход хранится в topOut
.
open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_bus_logging'))); open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_mdlref_counter_bus'))); mi = Simulink.SimulationData.ModelLoggingInfo... ('ex_bus_logging'); mi.LoggingMode = 'LogAllAsSpecifiedInModel'
mi = ModelLoggingInfo with properties: Model: 'ex_bus_logging' LoggingMode: 'LogAllAsSpecifiedInModel' LogAsSpecifiedByModels: {} Signals: []
Чтобы применить параметры объекта переопределения модели, используйте:
set_param(ex_bus_logging, 'DataLoggingOverride', mi);
Следующий пример показывает, как регистрировать только сигналы в топ-модели:
open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_bus_logging'))); open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_mdlref_counter_bus'))); mi = Simulink.SimulationData.ModelLoggingInfo... ('ex_bus_logging'); mi.LoggingMode = 'OverrideSignals'; mi = mi.setLogAsSpecifiedInModel('ex_bus_logging',true);
Чтобы применить параметры объекта переопределения модели, используйте:
set_param(ex_bus_logging,'DataLoggingOverride', mi);
Simulink сохраняет настройки, когда вы сохраняете модель.
Для простой модели с ограниченным количеством регистрируемых сигналов вы могли создать пустой Simulink.SimulationData.ModelDataLogInfo
объект. Затем создайте Simulink.SimulationData.SignalLoggingInf
o возражает для каждого из сигналов, что вы хотите регистрировать, и присвоить те объекты модели, регистрирующей информационный объект.
open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_bus_logging'))); open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_mdlref_counter_bus'))); mdl = 'ex_bus_logging'; blk = 'ex_bus_logging/IncrementBusCreator'; blkPort = 1; load_system(mdl); ov = Simulink.SimulationData.ModelLoggingInfo(mdl); so = Simulink.SimulationData.SignalLoggingInfo(blk,blkPort); ov.Signals(1) = so; % apply this object so the model set_param(mdl,'DataLoggingOverride',ov); % Simulate sim(mdl); % observe that only the signal topOut
Чтобы применить параметры объекта переопределения модели, используйте:
set_param(mdl, 'DataLoggingOverride', ov);
Simulink сохраняет настройки, когда вы сохраняете модель.
Для модели, которая использует ссылку модели, или это является комплексным, чтобы задать подмножество регистрируемых сигналов регистрировать, рассмотреть использование findSignal
метод с Simulink.SimulationData.ModelLoggingInfo
объект. Например, чтобы регистрировать только один сигнал от экземпляра модели, на который ссылаются, на который, ссылаются:
open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_bus_logging'))); open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_mdlref_counter_bus'))); mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel(... 'ex_bus_logging'); pos = mi.findSignal({'ex_bus_logging/CounterA' ... 'ex_mdlref_counter_bus/Bus Creator'}, 1)
pos = 4
for idx=1:length(mi.Signals) mi.Signals(idx).LoggingInfo.DataLogging = (idx == pos); end
Чтобы применить параметры объекта переопределения модели, используйте:
set_param(ex_bus_logging,'DataLoggingOverride', mi);
Simulink сохраняет настройки, когда вы сохраняете модель.
В дополнение к переопределению установки для DataLogging
свойство для сигнала, можно заменить другие свойства логгирования сигнала, такие как децимация.
Использование
свойства заменить свойства логгирования сигнала. Следующий пример показывает, как установить настройки переопределения децимации.Simulink.SimulationData.LoggingInfo
open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_bus_logging'))); open_system(docpath(fullfile(docroot, 'toolbox', 'simulink', ... 'examples', 'ex_mdlref_counter_bus'))); mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel... ('ex_bus_logging'); pos = mi.findSignal({'ex_bus_logging/CounterA' ... 'ex_mdlref_counter_bus/Bus Creator'}, 1); mi.Signals(pos).LoggingInfo.DecimateData = true; mi.Signals(pos).LoggingInfo.Decimation = 2;
Чтобы применить параметры объекта переопределения модели, используйте:
set_param(ex_bus_logging,'DataLoggingOverride', mi);
Simulink сохраняет настройки, когда вы сохраняете модель.