Настройки переопределения логгирования сигналов для модели
Этот класс является набором 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_objectSimulink.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_objectSimulink.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_objectA Simulink.SimulationData.ModelLoggingInfo объект.
pathThe path является вектор символов, которая задает одно из следующего:
Имя верхней части
Блокируйте путь блока Model в верхней модели
logging_modeThe 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_objectSimulink.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_objectThe 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