Simulink. SimulationData. ModelLoggingInfo

Сигнал, регистрирующий настройки переопределения для модели

Описание

Этот класс является набором объектов Simulink.SimulationData.SignalLoggingInfo, которые задают весь сигнал, регистрирующий настройки переопределения для модели.

Используйте методы и свойства этого класса к:

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

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

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

Журналирование режима для моделейНастройки свойства

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

Установите LoggingMode на LogAllAsSpecifiedInModel.

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

Установите LoggingMode на OverrideSignals.

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

Установите LoggingMode на OverrideSignals.

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

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

Сводные данные свойства

Имя

Описание

LoggingMode

Сигнал, регистрирующий состояние переопределения

LogAsSpecifiedByModels

Источник настроек журналирования сигнала для модели верхнего уровня или Блока модели верхнего уровня

Signals

Все сигналы, которые имеют настройки переопределения сигнала

Сводные данные метода

Имя

Описание

findSignal

Найдите сигналы в векторе Signals, с помощью индекса выходного порта и блока path.

verifySignalAndModelPaths

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

getLogAsSpecifiedInModel

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

setLogAsSpecifiedInModel

Установите режим журналирования для модели верхнего уровня или Блока модели верхнего уровня.

createFromModel

Создайте и заполните образцовый сигнал, регистрирующий объект переопределения со всеми регистрируемыми сигналами в иерархии модели - ссылки.

ModelLoggingInfo

Установите сигналы регистрировать или заменить настройки журналирования.

Свойства

LoggingMode

Описание

Сигнал, регистрирующий состояние переопределения. Значения:

  • OverrideSignals — Использование (по умолчанию) настройки журналирования для сигналов, как задано в свойстве Signals. Для моделей, где getLogAsSpecifiedInModel:

    • tRUE Журналы все сигналы, как задано в модели.

    • ложь Журналы только сигналы заданы в свойстве Signals.

  • LogAllAsSpecifiedInModel — Журналы сигнализируют в модели верхнего уровня и всех моделях, на которые ссылаются, как задано в модели. Simulink® соблюдает индикаторы журналирования сигнала (синие антенны) и игнорирует свойство Signals.

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

Тип данных

массив символов

Доступ

RW

LogAsSpecifiedByModels

Описание

Когда LoggingMode установлен в 'OverrideSignals', массив ячеек LogAsSpecifiedByModels задает модели верхнего уровня и Блоки модели верхнего уровня, которые игнорируют установку 'OverrideSignals' и регистрируют сигналы, как задано в моделях или Блоках модели.

  • Для образцовых и Блоков модели верхнего уровня верхнего уровня, которые включает массив ячеек, Simulink игнорирует переопределения свойства Signals.

  • Для блока модели или Блока модели, который не включает массив ячеек, Симулинк использует свойство Signals определить который сигналы регистрировать.

Когда LoggingMode установлен в 'LogAllAsSpecifiedInModel', Simulink игнорирует свойство LogAsSpecifiedByModels.

Используйте метод getLogAsSpecifiedInModel, чтобы определить, используют ли образцовые или сигналы журналов Блока модели верхнего уровня верхнего уровня, как задано в модели (журналирование значения по умолчанию), и setLogAsSpecifiedInModel, чтобы повернуть вхождение в систему по умолчанию и прочь.

Тип данных

массив ячеек — Для модели верхнего уровня, задайте имя модели. Для Блоков модели задайте блок path.

Доступ

RW

Сигналы

Описание

Вектор Simulink.SimulationData.SignalLoggingInfo возражает для всех сигналов с сигналом, регистрирующим настройки переопределения.

Тип данных

вектор объектов Simulink.SimulationData.SignalLoggingInfo

Доступ

RW

Методы

createFromModel

Цель

Создайте объект Simulink.SimulationData.ModelLoggingInfo для модели верхнего уровня с настройками переопределения для каждого регистрируемого сигнала в модели.

Синтаксис

model_logging_info_object = ...
Simulink.SimulationData.ModelLoggingInfo.createFromModel(...
model,options)

Входные параметры

model

Имя модели верхнего уровня, для которой можно создать объект Simulink.SimulationData.ModelLoggingInfo.

опции

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

  • FollowLinks

    • on — (Значение по умолчанию) Включает регистрируемые сигналы изнутри библиотек.

    • 'off' Пропустите все библиотеки.

  • LookUnderMasks

    • все (Значение по умолчанию) Включает регистрируемые сигналы от всех подсистем маскированных.

    • 'none' Пропустите все подсистемы маскированные.

    • graphical — Включайте регистрируемые сигналы от подсистем маскированных, которые не имеют рабочей области или диалогового окна.

    • functional — Включайте регистрируемые сигналы от подсистем маскированных, которые не имеют диалогового окна.

  • Variants

    • ActiveVariants — (Значение по умолчанию) Включает регистрируемые сигналы от только активной подсистемы и вариантов модели - ссылки.

    • AllVariants — Включайте регистрируемые сигналы от всей подсистемы и вариантов модели - ссылки.

  • RefModels

    • on — (Значение по умолчанию) Включает регистрируемые сигналы от моделей, на которые ссылаются.

    • 'off' Пропустите все модели, на которые ссылаются.

Если вы выбираете больше чем одну опцию, то созданный объект Simulink.SimulationData.ModelLoggingInfo включает сигналы, которые соответствуют комбинациям (“AND”) заданных опций. Например, если вы устанавливаете FollowLinks на on и устанавливаете RefModels на off, затем образцовый сигнал, регистрирующий объект переопределения, не включает сигналы от ссылок библиотеки, которые существуют в моделях, на которые ссылаются.

Выходные аргументы

model_logging_override_object

Объект Simulink.SimulationData.ModelLoggingInfo для модели верхнего уровня.

Описание

model_logging_info_object = Simulink.SimulationData.ModelLoggingInfo.createFromModel(model) создает объект Simulink.SimulationData.ModelLoggingInfo для модели, которая включает регистрируемые сигналы для следующих видов систем:

  • Библиотеки

  • Подсистемы маскированные

  • Модели, на которые ссылаются,

  • Активные варианты

model_logging_override_object = Simulink.SimulationData.ModelLoggingInfo.createFromModel(model, options) создает объект Simulink.SimulationData.ModelLoggingInfo для модели. Включенные регистрируемые сигналы отражают настройки опций для следующих видов систем:

  • Библиотеки

  • Подсистемы маскированные

  • Модели, на которые ссылаются,

  • Варианты

Примеры

Следующий пример создает модель, регистрирующую объект переопределения для модели sldemo_mdlref_bus, и автоматически добавляет каждый регистрируемый сигнал в модели к тому объекту:

mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel(...
'sldemo_mdlref_bus')
mi = 

  ModelLoggingInfo with properties:

                     Model: 'sldemo_mdlref_bus'
               LoggingMode: 'OverrideSignals'
    LogAsSpecifiedByModels: {}
                   Signals: [1x3 Simulink.SimulationData.SignalLoggingInfo]

Чтобы применить образцовые параметры объекта переопределения, используйте:

set_param(sldemo_mdlref_bus,'DataLoggingOverride',mi);

Можно использовать опции для метода createFromModel, чтобы задать, как метод должен обработать компоненты модели как варианты и модели - ссылки. Например, используйте опцию Variants, чтобы создать объект model_logging_override, который включает регистрируемые сигналы во все варианты модели sldemo_variant_subsystems.

По умолчанию модель sldemo_variant_subsystems не регистрирует сигналов. Запустите путем конфигурирования выходных сигналов Linear Controller и подсистем Nonlinear Controller для журналирования.

% Open the sldemo_variant_subsystems model
sldemo_variant_subsystems;

% Mark the output of the Linear Controller subsystem for logging
ph = get_param('sldemo_variant_subsystems/Controller/Linear Controller',...
    'PortHandles');
set_param(ph.Outport(1),'DataLogging','on');

% Mark the output of the Nonlinear Controller subsystem for logging
ph1 = get_param('sldemo_variant_subsystems/Controller/Nonlinear Controller',...
    'PortHandles');
set_param(ph1.Outport(1),'DataLogging','on');

Затем используйте метод createFromModel, чтобы создать объект model_logging_override, который включает сигналы, вошел в систему все различные подсистемы модели sldemo_variant_subsystems.

% Create a model_logging_override object for the model including all variants
mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel(...
'sldemo_variant_subsystems', 'Variants', 'AllVariants')
mi = 

  ModelLoggingInfo with properties:

                     Model: 'sldemo_variant_subsystems'
               LoggingMode: 'OverrideSignals'
    LogAsSpecifiedByModels: {}
                   Signals: [1×2 Simulink.SimulationData.SignalLoggingInfo]

ModelLoggingInfo

Цель

Задайте сигналы регистрировать или заменить настройки журналирования.

Синтаксис

model_logging_override_object = ....
Simulink.SimulationData.ModelLoggingInfo(model)

Входные параметры

model

Имя модели верхнего уровня, для которой можно создать объект Simulink.SimulationData.ModelLoggingInfo

Выходные аргументы

model_logging_override_object

Объект Simulink.SimulationData.ModelLoggingInfo создается для заданной модели верхнего уровня.

Описание

model_logging_override_object= Simulink.SimulationData.ModelLoggingInfo(model) создает объект Simulink.SimulationData.ModelLoggingInfo для заданной модели верхнего уровня.

При использовании конструктора Simulink.SimulationData.ModelLoggingInfo, задаете объект Simulink.SimulationData.SignalLoggingInfo для каждого регистрируемого сигнала, для которого вы хотите заменить настройки журналирования.

Чтобы проверить, что вы задали допустимый сигнал, регистрирующий настройки переопределения для модели, используйте метод verifySignalAndModelPaths с объектом Simulink.SimulationData.ModelLoggingInfo для модели.

Примеры

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

mi = Simulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus');
mi.LoggingMode = 'LogAllAsSpecifiedInModel'
mi = 

  ModelLoggingInfo with properties:

                     Model: 'sldemo_mdlref_bus'
               LoggingMode: 'LogAllAsSpecifiedInModel'
    LogAsSpecifiedByModels: {}
                   Signals: []

Чтобы применить образцовые параметры объекта переопределения, используйте:

set_param(sldemo_mdlref_bus, 'DataLoggingOverride', mi);

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

mi = ...
Simulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus');
mi.LoggingMode = 'OverrideSignals';
mi = mi.setLogAsSpecifiedInModel('sldemo_mdlref_bus', true); 
set_param('sldemo_mdlref_bus', 'DataLoggingOverride', mi);

findSignal

Цель

Найдите сигналы в векторе Signals, с помощью блока path и опционально индекса выходного порта.

Синтаксис

signal_indices = ...
      model_logging_override_object.findSignal(block_path)
signal_indices = ...
      model_logging_override_object.findSignal(...
      block_path, port_index)

Входные параметры

block_path

Исходный блок, чтобы искать. block_path должен быть одним из следующего:

  • Символьный вектор

  • Массив ячеек из символьных векторов

  • Объект Simulink.BlockPath

port_index

Индекс выходного порта, чтобы искать. Задайте скаляр, больше, чем, или равный, 1.

Выходные аргументы

signal_indices

Вектор числовых индексов в вектор сигналов объекта Simulink.SimulationData.ModelLoggingInfo.

Описание

signal_indices = model_logging_override_object.findSignal(block_path) находит индексы сигналов для блока path, что вы задаете.

Чтобы найти единственный экземпляр сигнала в модели, на которую ссылаются, используйте объект Simulink.BlockPath или массив ячеек с полным путем.

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

Чтобы найти регистрируемый сигнал графика в рамках графика Stateflow®, используйте объект Simulink.BlockPath и установите свойство SubPath на имя сигнала диаграммы Stateflow.

signal_indices = model_logging_override_object.findSignal(block_path, port_index) находит индексы выходного сигнала для порта, который вы задаете для блока path, который вы задаете.

Не используйте аргумент port_index для сигналов диаграммы Stateflow.

Примеры

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

open_system(docpath(fullfile(docroot,'toolbox','simulink','examples','ex_bus_logging')))
% Open the referenced model
ex_mdlref_counter_bus
mi = Simulink.SimulationData.ModelLoggingInfo.createFromModel(... 
     'ex_bus_logging');
% Click the COUNTERBUSCreator block that is the source of 
% the logged COUNTERBUS signal
signal_index = mi.findSignal(gcb)
signal_index =

     1

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

signal_index = mi.findSignal({'ex_bus_logging/CounterA', ...
'ex_mdlref_counter_bus/Bus Creator'})
signal_index =

     4

Для примера, который использует метод findSignal с диаграммой Stateflow, смотрите Override Logging Properties с API Командной строки (Stateflow).

getLogAsSpecifiedInModel

Цель

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

Синтаксис

logging_mode = ...
getLogAsSpecifiedInModel(model_logging_override_object, path)

Входные параметры

model_logging_override_object

Объект Simulink.SimulationData.ModelLoggingInfo.

path

path является вектором символа, который задает одно из следующего:

  • Имя модели верхнего уровня

  • Блок path Блока модели в модели верхнего уровня

Выходные аргументы

logging_mode

logging_mode:

  • true, если модель, заданная path, регистрируется, как задано в модели.

  • false, если модель, заданная path, регистрируется с помощью настроек переопределения, заданных в свойстве Signals.

Описание

logging_mode = model_logging_override_object.getLogAsSpecifiedInModel(path) возвращается:

  • true, если модель, заданная path, регистрируется, как задано в модели.

  • false, если модель, заданная path, регистрируется с помощью настроек переопределения, заданных в свойстве Signals.

Примеры

В следующем примере объект Simulink.SimulationData.ModelLoggingInfo mi использует настройки переопределения, заданные в его свойстве Signals.

mi = Simulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus');
logging_mode = getLogAsSpecifiedInModel(mi, 'sldemo_mdlref_bus')
logging_mode =

     0

setLogAsSpecifiedInModel

Цель

Установите режим журналирования для образцового или Блока модели верхнего уровня верхнего уровня

Синтаксис

setLogAsSpecifiedInModel(override_object, path)

Входные параметры

override_object

Объект Simulink.SimulationData.ModelLoggingInfo.

path

Вектор символа, который задает одно из следующего:

  • Имя модели верхнего уровня

  • Блок path Блока модели в модели верхнего уровня

значение

Режим Logging:

  • true, если модель, заданная path, регистрируется, как задано в модели

  • false, если модель, заданная path, регистрируется с помощью настроек переопределения, заданных в свойстве Signals.

Описание

setLogAsSpecifiedInModel(override_object, path, value) устанавливает свойство LoggingMode для модели верхнего уровня или Блока модели в модели верхнего уровня.

Пример

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

sldemo_mdlref_bus;
mi = Simulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus');
mi.LoggingMode = 'OverrideSignals';
mi = setLogAsSpecifiedInModel(mi, 'sldemo_mdlref_bus', true); 
set_param('sldemo_mdlref_bus', 'DataLoggingOverride', mi);

verifySignalAndModelPaths

Цель

Проверьте пути в объекте Simulink.SimulationData.ModelLoggingInfo.

Синтаксис

verified_object = verifySignalAndModelPaths...
     (model_logging_override_object, action)

Входные параметры

model_logging_override_object

Объект Simulink.SimulationData.ModelLoggingInfo проверить. Этот аргумент требуется.

action

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

  • ошибка Бросок (по умолчанию) ошибка, когда верификация перестала работать

  • warnAndRemove — Выдайте предупреждение, когда сбои верификации и обновят объект Simulink.SimulationData.ModelLoggingInfo.

  • удаление Тихо обновите объект Simulink.SimulationData.ModelLoggingInfo.

Выходные аргументы

verified_object

Если метод не обнаруживает недопустимых путей, он возвращает подтвержденный объект. Например:

verified_object = 

  Simulink.SimulationData.ModelLoggingInfo
  Package: Simulink.SimulationData

  Properties:
                     Model: 'logging_top'
               LoggingMode: 'OverrideSignals'
    LogAsSpecifiedByModels: {}
                   Signals: [1x11 Simulink.SimulationData.SignalLoggingInfo]

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

Описание

verified_object = verifySignalAndModelPaths(model_logging_override_object, action)

Для объекта Simulink.SimulationData.ModelLoggingInfo проверьте что:

  • Все векторы символов в свойстве LogAsSpecifiedByModels являются или именем модели верхнего уровня или блоком path Блока модели в модели верхнего уровня.

  • Блочные пути для сигналов в свойстве Signals относятся к допустимым блокам в иерархии модели верхнего уровня.

  • Свойство OutputPortIndex для всех сигналов в свойстве Signals допустимо для данного блока.

  • Все сигналы в свойстве Signals относятся к регистрируемым сигналам.

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

При использовании конструктора Simulink.SimulationData.ModelLoggingInfo и задаете объект Simulink.SimulationData.SignalLoggingInfo для каждого сигнала, то рассматриваете использование метода verifySignalAndModelPaths, чтобы проверить, что ваши определения объектов допустимы.

Пример

Следующий пример показывает, как подтвердить сигнал и блочные пути в объекте Simulink.SimulationData.ModelLoggingInfo. Поскольку аргументом action является warnAndRemove, если валидация перестала работать, метод verifySignalAndModelPaths выдает предупреждение и обновляет объект Simulink.SimulationData.ModelLoggingInfo.

mi = Simulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus');
verified_object = verifySignalAndModelPaths...
     (mi, 'warnAndRemove')

Представленный в R2012b

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