Настройки переопределения логгирования сигналов для модели
Этот класс является набором Simulink.SimulationData.SignalLoggingInfo
объекты, которые задают все настройки логгирования сигналов для модели.
Используйте методы и свойства этого класса для:
Отключите логгирование для сигнала или блока Model.
Измените настройки логгирования для любых сигналов, отмеченных для логгирования в модели.
Можно контролировать, является ли модель верхней части и ссылка моделей переопределить настройки логгирования сигнала или использовать настройки логгирования сигнала, заданные моделью. Используйте LoggingMode
и LogAsSpecifiedByModels
свойства для управления параметрами ведения журнала.
Режим логгирования для моделей | Настройки свойств |
---|---|
Для верхней модели и всех ссылочных моделей используйте настройки логгирования, указанные в модели. | Задайте |
Для верхней модели и всех ссылочных моделей используйте настройки переопределения логгирования сигналов. | Задайте |
Для верхней модели и ссылочных моделей используйте смесь настроек логгирования сигналов и настроек логгирования сигналов, заданных в модели. | Задайте Включите модели, которые вы хотите игнорировать, переопределите настройки логгирования сигналов в |
Для получения дополнительной информации и примеров смотрите Override Signal Logging Settings from MATLAB.
Имя | Описание |
---|---|
Состояние переопределения логгирования сигналов | |
Источник настроек логгирования сигналов для верхней части уровня или блока Model верхнего уровня | |
Все сигналы, которые имеют настройки переопределения сигнала |
Имя | Описание |
---|---|
Найти сигналы в | |
Проверьте пути сигнала и модели для объекта переопределения логгирования сигнала модели. | |
Определите, регистрирует ли модель сигналы как указано в модели или использует настройки переопределения. | |
Установите режим регистрации для модели верхнего уровня или блока Model верхнего уровня. | |
Создайте и заполните объект переопределения логгирования сигналов модели всеми записанными сигналами в иерархии модели. | |
Установите сигналы для регистрации или переопределения параметров регистрации. |
Состояние переопределения логгирования сигналов. Значения:
OverrideSignals
- (По умолчанию) Использует настройки логгирования для сигналов, как указано в Signals
свойство. Для моделей, где getLogAsSpecifiedInModel
является:
true
- регистрирует все сигналы, как указано в модели.
false
- Регистрирует только сигналы, указанные в Signals
свойство.
LogAllAsSpecifiedInModel
- Регистрирует сигналы в верхней модели и всех ссылочных моделях, как указано в модели. Simulink® чествует индикаторы логгирования сигналов (синие антенны) и игнорирует Signals
свойство.
Чтобы изменить режим логгирования для верхней части или для заданной модели-ссылки, используйте setLogAsSpecifiedInModel
способ.
Символьный массив
RW
Когда LoggingMode
установлено в 'OverrideSignals'
, а LogAsSpecifiedByModels
массив ячеек задает верхние модели и блоки Model верхнего уровня, которые игнорируют 'OverrideSignals'
установка и журнал сигналов, как указано в моделях или Model блоках.
Для блоков верхней модели и Model верхнего уровня, которые включает массив ячеек, Simulink игнорирует Signals
переопределения свойств.
Для модели или Model блока, который массив ячеек не включает, Simulink использует Signals
свойство для определения сигналов для регистрации.
Когда LoggingMode
установлено в 'LogAllAsSpecifiedInModel'
Simulink игнорирует LogAsSpecifiedByModels
свойство.
Используйте getLogAsSpecifiedInModel
метод, чтобы определить, верхняя часть ли сигналы модели Блока Model или журналов верхнего уровня, как указано в модели (логгирование по умолчанию), и использовать setLogAsSpecifiedInModel
для включения и выключения регистрации по умолчанию.
массив ячеек - Для верхней модели задайте имя модели. Для блоков Model задайте путь блока.
RW
Вектор Simulink.SimulationData.SignalLoggingInfo
объекты для всех сигналов с настройками переопределения логгирования сигналов.
вектор Simulink.SimulationData.SignalLoggingInfo
объекты
RW
Создайте Simulink.SimulationData.ModelLoggingInfo
объект для верхней модели с настройками переопределения для каждого записанного сигнала в модели.
model_logging_info_object = ... Simulink.SimulationData.ModelLoggingInfo.createFromModel(...model
,options
)
model
Имя верхней части, для которой необходимо создать Simulink.SimulationData.ModelLoggingInfo
объект.
options
Можно использовать любую комбинацию следующего имени опции и пар значений, чтобы управлять типами систем, из которых можно включать записанные сигналы.
FollowLinks
on
- (По умолчанию) Включать записанные сигналы изнутри библиотек.
off
- Пропустить все библиотеки.
LookUnderMasks
all
- (По умолчанию) Включать записанные сигналы от всех маскированных подсистем.
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]
Задайте сигналы для регистрации или переопределения параметров регистрации.
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);
Найти сигналы в Signals
вектор, используя путь блока и, опционально, индекс выходного порта.
signal_indices = ... model_logging_override_object.findSignal(block_path) signal_indices = ... model_logging_override_object.findSignal(... block_path, port_index)
block_path
Исходный блок для поиска. The block_path
должно быть одно из следующих:
Вектор символов
Массив ячеек из символьных векторов
Simulink.BlockPath
объект
port_index
Индекс выходного порта для поиска. Задайте скаляр, больший, или равный 1
.
signal_indices
Вектор числовых индексов в вектор сигналов Simulink.SimulationData.ModelLoggingInfo
объект.
находит индексы сигналов для заданного пути блока.signal_indices
= model_logging_override_object.findSignal(block_path
)
Чтобы найти один образец сигнала в пределах ссылочной модели, используйте Simulink.BlockPath
объект или массив ячеек с полным путем.
Чтобы найти все образцы сигнала в пределах ссылочной модели, используйте вектор символов с относительным путем сигнала в пределах ссылочной модели.
Чтобы найти зарегистрированный сигнал графика в Stateflow® график, используйте Simulink.BlockPath
Объекту и установите SubPath
свойство имени сигнала диаграммы Stateflow.
находит индексы выходного сигнала для заданного порта для заданного пути блока.signal_indices
= model_logging_override_object.findSignal(block_path
, port_index
)
Не используйте 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, см. «Переопределение свойств журнала с Командной строкой API (Stateflow)».
Определите, регистрируется ли модель как заданная в модели или использует настройки переопределения.
logging_mode = ... getLogAsSpecifiedInModel(model_logging_override_object, path)
model_logging_override_object
A Simulink.SimulationData.ModelLoggingInfo
объект.
path
The path
является вектор символов, которая задает одно из следующего:
Имя верхней части
Блокируйте путь блока Model в верхней модели
logging_mode
The 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
Установите режим логгирования для модели верхнего уровня или блока Model верхнего уровня
setLogAsSpecifiedInModel(override_object, path)
override_object
Simulink.SimulationData.ModelLoggingInfo
объект.
path
Вектор символов, который задает одно из следующих:
Имя верхней части
Блокируйте путь блока Model в верхней модели
value
Режим логгирования:
true
, если модель задана как path
регистрируется как указано в модели
false
, если модель задана как path
регистрируется с использованием настроек переопределения, заданных в Signals
свойство.
setLogAsSpecifiedInModel(
устанавливает свойство LoggingMode для верхней модели или блока Model в верхней модели.override_object
, path
, value
)
В следующем примере показано, как логгировать только сигналы в верхней модели, используя настройки логгирования, указанные в этой модели:
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);
Проверьте пути в Simulink.SimulationData.ModelLoggingInfo
объект.
verified_object = verifySignalAndModelPaths... (model_logging_override_object, action)
model_logging_override_object
The Simulink.SimulationData.ModelLoggingInfo
объект для проверки. Этот аргумент необходим.
action
Действие, которое функция выполняет в случае непрохождения верификации. Этот аргумент необязателен. Задайте одно из следующих значений:
error
- (по умолчанию) Выдавать ошибку, когда верификация не проходит
warnAndRemove
- Выдавать предупреждение при ошибке верификации и обновлять Simulink.SimulationData.ModelLoggingInfo
объект.
remove
- Молча обновляйте 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
свойство является именем верхней модели или путем блока Model в верхней модели.
Пути блоков для сигналов в Signals
свойство относится к допустимым блокам в иерархии верхней модели.
The OutputPortIndex
свойство для всех сигналов в Signals
свойство допустимо для данного блока.
Все сигналы в Signals
свойство относится к записанным сигналам.
The 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')
Simulink.BlockPath
| Simulink.SimulationData.DataStoreMemory
| Simulink.SimulationData.LoggingInfo
| Simulink.SimulationData.Signal
| Simulink.SimulationData.SignalLoggingInfo