Переопределение настроек логгирования сигналов

Преимущества переопределения настроек логгирования сигналов

Когда вы разрабатываете модель, можно захотеть переопределить настройки логгирования сигналов для определенного запуска симуляции. Можно переопределить свойства логгирования сигналов, не меняя модель в Simulink® Редактор.

Чтобы уменьшить накладные расходы на память и облегчить анализ результатов логгирования симуляции, переопределите свойства логгирования сигналов. Переопределяя настройки логгирования сигналов, можно избежать перекомпиляции модели.

Переопределяющие свойства логгирования сигналов полезны, когда вы хотите:

  • Фокусируйтесь только на нескольких сигналах, отключая логгирование для большинства сигналов, отмеченных для логгирования. Можно пометить супермножество сигналов для логгирования, а затем выбрать из них различные подмножества для логгирования.

  • Исключить несколько сигналов из выходного логгирования сигнала.

  • Переопределите конкретные свойства логгирования сигналов, такие как десятикратное уменьшение, для сигнала.

  • Собирайте только то, что нужно при запуске нескольких тестовых векторов.

Два интерфейса для переопределения параметров логгирования сигналов

Используйте любой из двух интерфейсов, чтобы переопределить настройки логгирования сигналов:

Можно использовать комбинацию двух интерфейсов. Селектор логгирования создает Simulink.SimulationData.ModelLoggingInfo объекты при сохранении параметров переопределения. Интерфейс командной строки имеет свойства, имена которых соответствуют интерфейсу Signal Logging Selector. Для примера, Simulink.SimulationData.ModelLoggingInfo класс имеет LoggingMode свойство, которое соответствует параметру Logging Mode в селекторе логгирования сигналов.

Возможности переопределений настройки логгирования сигналов

Когда вы переопределяете настройки логгирования сигналов, Simulink использует эти настройки переопределения, когда вы симулируете модель.

Simulink сохраняет в модели строение переопределения логгирования сигналов, которую вы задаете. Однако Simulink не изменяет настройки логгирования сигналов в диалоговом окне Свойства для каждого сигнала в модели.

В селекторе логгирования сигналов, если вы переопределяете некоторые настройки логгирования сигналов, и затем установите Logging Mode на Log all signals as specified in modelНастройки регистрации, определенные в модели, появляются в селекторе логгирования сигналов. Параметры переопределения затемнены, что указывает на невозможность переопределения этих параметров. Чтобы повторно активировать настройки переопределения, установите Logging Mode равным Override signals. Использование селектора логгирования сигналов для переопределения логгирования для определенного сигнала не влияет на индикатор логгирования сигналов для этого сигнала.

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

Примечание

Simulink перестраивает модель в следующей ситуации:

  1. Модель содержит один или несколько сигналов, отмеченных для логгирования сигналов.

  2. Моделируете модель в быстрых режимах Accelerator.

  3. Вы используете Signal Logging Selector или MATLAB® командная строка для изменения строения логгирования сигналов.

  4. Моделируете модель в быстром режиме Accelerator снова.

Переопределите настройки логгирования сигналов селектором логгирования сигналов

  1. Откройте селектор логгирования сигналов с помощью одного из следующих подходов:

    • На панели Configuration Parameters > Data Import/Export нажмите кнопку Configure Signals to Log.

      Совет

      Чтобы включить кнопку Configure Signals to Log, выберите Signal logging параметра конфигурации.

    • Для модели, которая включает блок Model, можно также использовать следующий подход:

      1. В редакторе Simulink щелкните правой кнопкой мыши блок Model.

      2. В контекстном меню выберите Log Referenced Signals.

  2. Установите Logging Mode значение Override signals.

    Примечание

    The Override signals установка влияет на все уровни иерархии модели. Эта настройка может привести к отключению логгирования для любого сигнала на протяжении всей иерархии, основываясь на существующих настройках. Чтобы просмотреть параметры, выберите соответствующий узел на панели Model Hierarchy.

  3. Просмотрите узел, содержащий записанные сигналы, которые вы хотите переопределить. При необходимости разверните узлы или сконфигурируйте панель иерархии модели для отображения маскированных подсистем. См. «Просмотр строения логгирования с использованием селектора логгирования сигналов».

  4. Переопределите настройки логгирования сигналов. Используйте один из следующих подходов, в зависимости от того, использует ли ваша модель ссылки на модель:

Совет

Чтобы открыть панель Configuration Parameters > Data Import/Export из селектора логгирования сигналов, используйте кнопку.

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

Если ваша модель не использует ссылку на модель (то есть модель не содержит никаких блоков Model), переопределите настройки регистрации сигналов с помощью следующей процедуры.

  1. Откройте селектор логгирования сигналов. На панели Configuration Parameters > Data Import/Export нажмите кнопку Configure Signals to Log.

    • При необходимости выберите Signal logging, чтобы включить кнопку Configure Signals to Log.

  2. Установите Logging Mode значение Override signals.

  3. Просмотрите узел, содержащий записанные сигналы, которые вы хотите переопределить. При необходимости разверните узлы или сконфигурируйте панель иерархии модели для отображения маскированных подсистем. См. «Просмотр строения логгирования с использованием селектора логгирования сигналов».

  4. В таблице панели Contents выберите сигнал, параметры логгирования которого необходимо переопределить.

  5. Переопределите параметры регистрации:

    • Чтобы отключить логгирование для сигнала, очистите DataLogging флажок для этого сигнала.

    • Чтобы переопределить другие настройки логгирования сигнала (для примера, десятикратного уменьшения), убедитесь, что DataLogging установлен флажок. Затем отредактируйте значения в соответствующих столбцах.

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

Если ваша модель использует ссылку на модель (то есть модель включает в себя хотя бы один Model блок), переопределите настройки регистрации сигналов с помощью одной или нескольких из следующих процедур:

Включите ведение журнала для всех зарегистрированных сигналов.  По умолчанию Simulink регистрирует все записанные сигналы в модели, включая записанные сигналы во всех иерархиях модели-ссылки.

Если логгирование отключено для любых зарегистрированных сигналов в модели верхнего уровня или в блоке Model верхнего уровня в иерархии модели-ссылки, то на панели Model Hierarchy флажок слева от этого узла:

  • Solid (), если логгирование отключено для некоторых сигналов.

  • Пусто (), если логгирование отключено для всех сигналов.

Для включения регистрации всех зарегистрированных сигналов для узла:

  1. Откройте селектор логгирования сигналов. На панели Configuration Parameters > Data Import/Export нажмите кнопку Configure Signals to Log.

  2. Установите Logging Mode значение Override signals.

  3. Просмотрите узел, содержащий записанные сигналы, которые вы хотите переопределить. При необходимости разверните узлы или сконфигурируйте панель иерархии модели для отображения маскированных подсистем. См. «Просмотр строения логгирования с использованием селектора логгирования сигналов».

  4. На панели Model Hierarchy установите флажок слева от узла, чтобы флажок имел флажок ().

    • Для модели верхнего уровня логгирование включено для всех записанных сигналов в модели верхнего уровня, но не для записанных сигналов в иерархиях модели-ссылки.

    • Для блока Model в верхней части иерархии ссылок на модель логгирования включена для всей иерархии модели-ссылки для выбранной модели-ссылки.

Отключите логгирование для всех сигналов в узле.  Если для любых сигналов в узле модели включено логгирование сигналов, то на панели Model Hierarchy флажок слева от узла следующий:

  • Solid (), если для некоторых сигналов включено логгирование.

  • Установлен флажок (), если логгирование включено для всех сигналов.

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

  1. Откройте селектор логгирования сигналов. На панели Configuration Parameters > Data Import/Export нажмите кнопку Configure Signals to Log.

  2. Установите Logging Mode значение Override signals.

  3. Просмотрите узел, содержащий записанные сигналы, которые вы хотите переопределить. При необходимости разверните узлы или сконфигурируйте панель иерархии модели для отображения маскированных подсистем. См. «Просмотр строения логгирования с использованием селектора логгирования сигналов».

  4. На панели Model Hierarchy снимите флажок слева от узла, чтобы флажок был пустым ().

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

    • Для блока Model в верхней части иерархии ссылок на модель логгирования отключен для всей иерархии модели-ссылки для выбранной модели-ссылки.

Переопределите регистрацию сигнала для подмножества сигналов.  Чтобы логгировать некоторые, но не все, записанные сигналы в узле модели:

  1. Откройте селектор логгирования сигналов. На панели Configuration Parameters > Data Import/Export нажмите кнопку Configure Signals to Log.

  2. Установите Logging Mode значение Override signals.

  3. Просмотрите узел, содержащий записанные сигналы, которые вы хотите переопределить. При необходимости разверните узлы или сконфигурируйте панель иерархии модели для отображения маскированных подсистем. См. «Просмотр строения логгирования с использованием селектора логгирования сигналов».

  4. На панели Model Hierarchy убедитесь, что флажок для модели верхнего уровня или блока Model является твердым (), если логгирование отключено для некоторых сигналов, или пустым (), если логгирование отключено для всех сигналов. Установите флажок для циклического перехода через различные состояния.

  5. В таблице панели Contents для сигналов, которые вы хотите записать, установите флажок в DataLogging столбец.

    Чтобы разрешить логгирование для нескольких сигналов, удерживайте Shift или Ctrl клавишу и выберите область значений сигналов или отдельных сигналов. Установите флажок в DataLogging столбец одного из подсвеченных сигналов.

Переопределите другие свойства логгирования сигналов.  В дополнение к переопределению настройки для DataLogging свойство для сигнала, можно переопределить другие свойства логгирования сигналов, такие как десятикратное уменьшение.

  1. Откройте селектор логгирования сигналов. На панели Configuration Parameters > Data Import/Export нажмите кнопку Configure Signals to Log.

  2. Установите Logging Mode значение Override signals.

  3. Просмотрите узел, содержащий записанные сигналы, которые вы хотите переопределить. При необходимости разверните узлы или сконфигурируйте панель иерархии модели для отображения маскированных подсистем. См. «Просмотр строения логгирования с использованием селектора логгирования сигналов».

  4. На панели Model Hierarchy убедитесь, что флажок для модели верхнего уровня или блока Model является твердым (), если логгирование отключено для некоторых сигналов или пустым (), если логгирование отключено для всех сигналов. Установите флажок для циклического перехода через различные состояния.

  5. В таблице панели Contents для сигналов, для которых необходимо переопределить свойства ведения журнала, включите ведение журнала, установив флажок в DataLogging столбец.

    Чтобы разрешить логгирование для нескольких сигналов, удерживайте Shift или Ctrl клавишу и выберите область значений сигналов или отдельных сигналов. Установите флажок в DataLogging столбец одного из подсвеченных сигналов.

  6. В таблице панели Contents измените настройки свойств, таких как DecimateData и Decimation.

Переопределите настройки логгирования сигналов из MATLAB

Интерфейс командной строки MATLAB для переопределения настроек логгирования сигналов включает:

  • The DataLoggingOverride параметр модели - Используется для просмотра или установки значений переопределения логгирования сигналов для модели

  • Следующие классы:

    • Simulink.SimulationData.ModelLoggingInfo - Задайте настройки переопределения логгирования сигналов для модели. Этот класс соответствует общему интерфейсу Signal Logging Selector.

    • Simulink.SimulationData.SignalLoggingInfo - Переопределите настройки для определенного сигнала. Этот класс соответствует строке в таблице свойств логгирования в селекторе регистрации сигналов:

    • Simulink.SimulationData.LoggingInfo - Переопределяет настройки логгирования сигналов, такие как десятикратное уменьшение. Этот класс соответствует редактируемым столбцам в строке в таблице свойств регистрации в селекторе логгирования сигналов.

Чтобы запросить модель для ее состояния переопределения логгирования сигналов, используйте DataLoggingOverride параметр.

Чтобы сконфигурировать регистрацию сигналов из командной строки, используйте методы и свойства трех классов, перечисленных выше. Чтобы применить строение, используйте set_param с DataLoggingOverride параметр модели.

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

Создайте объект Model Logging Information

Чтобы использовать интерфейс командной строки для переопределения настроек логгирования сигналов, сначала создайте 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]

The 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.SignalLoggingInfo объекты для каждого из сигналов, которые вы хотите записать, и назначить эти объекты объекту информации регистрации модели.

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 сохраняет настройки при сохранении модели.

Похожие примеры

Подробнее о

Для просмотра документации необходимо авторизоваться на сайте