Замените настройки журналирования сигнала

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

Когда вы разрабатываете модель, можно хотеть заменить настройки журналирования сигнала для определенной запущенной симуляции. Можно заменить свойства журналирования сигнала, не изменяя модель в Редакторе 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 восстанавливает модель в следующей ситуации:

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

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

  3. Вы используете Селектор Журналирования Сигнала или командную строку 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.

    Примечание

    Установка 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, флажок слева от того узла:

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

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

Позволять регистрировать всех регистрируемых сигналов для узла:

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

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

  3. Просмотрите узел, содержащий регистрируемые сигналы, что вы хотите заменить. При необходимости расширьте узлы или сконфигурируйте панель Иерархии модели, чтобы отобразить замаскированные подсистемы. Настройка Журналирования Вида на море с Селектором Журналирования Сигнала.

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

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

    • Для блока Model наверху модели, ссылающейся на иерархию, журналирование включено для целой иерархии модели - ссылки для выбранной модели, на которую ссылаются.

Отключите Журналирование для Всех Сигналов в Узле.  Если журналирование сигнала включено для каких-либо сигналов в образцовом узле, то в панели Model Hierarchy, флажок слева от узла:

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

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

Отключить журналирование для всех регистрируемых сигналов в вершине модели:

  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 для переопределения журналирования сигнала настроек включает:

  • Параметр модели DataLoggingOverride — Использование, чтобы просмотреть или установить сигнал, регистрирующий значения переопределения для модели

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

    • Simulink.SimulationData.ModelLoggingInfo — Задайте сигнал, регистрирующий настройки переопределения для модели. Этот класс соответствует полному Сигналу, Регистрирующему Селекторный интерфейс.

    • Настройки Simulink.SimulationData.SignalLoggingInfo — Override для определенного сигнала. Этот класс соответствует строке в таблице свойства журналирования в Селекторе Журналирования Сигнала:

    • 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 сохраняет настройки, когда вы сохраняете модель.

Связанные примеры

Больше о