Параметры переопределения регистрации сигналов для модели
Этот класс является коллекцией Simulink.SimulationData.SignalLoggingInfo объекты, задающие все параметры переопределения регистрации сигналов для модели.
Используйте методы и свойства этого класса для:
Отключить ведение журнала для сигнала или блока модели.
Измените настройки регистрации для любых сигналов, помеченных для регистрации в модели.
Можно управлять тем, переопределяют ли верхняя модель и ссылочные модели настройки регистрации сигналов или используют настройки регистрации сигналов, заданные моделью. Используйте LoggingMode и LogAsSpecifiedByModels для управления применяемыми параметрами ведения журнала.
| Режим регистрации для моделей | Параметры свойств |
|---|---|
Для модели верхнего уровня и всех ссылочных моделей используйте настройки ведения журнала, указанные в модели. | Набор |
Для модели верхнего уровня и всех ссылочных моделей используйте переопределение параметров регистрации сигналов. | Набор |
Для модели верхнего уровня и ссылочных моделей используйте сочетание параметров переопределения регистрации сигналов и параметров регистрации сигналов, заданных в модели. | Набор Включите модели, которые необходимо игнорировать, чтобы переопределить настройки регистрации сигналов в |
Дополнительные сведения и примеры см. в разделе Переопределение параметров регистрации сигналов из MATLAB.
Имя | Описание |
|---|---|
Состояние переопределения регистрации сигналов | |
Источник параметров регистрации сигналов для модели верхнего уровня или блока модели верхнего уровня | |
Все сигналы с настройками переопределения сигналов |
Имя | Описание |
|---|---|
Поиск сигналов в пределах | |
Проверьте пути сигнала и модели для объекта переопределения регистрации сигнала модели. | |
Определите, регистрирует ли модель сигналы, как указано в модели, или использует настройки переопределения. | |
Установите режим ведения журнала для модели верхнего уровня или блока модели верхнего уровня. | |
Создайте и заполните объект переопределения регистрации сигналов модели всеми зарегистрированными сигналами в иерархии модели. | |
Установите сигналы для регистрации или переопределите параметры регистрации. |
Состояние переопределения регистрации сигналов. Значения:
OverrideSignals - (По умолчанию) Использует настройки регистрации для сигналов, как указано в Signals собственность. Для моделей, где getLogAsSpecifiedInModel является:
true - Регистрирует все сигналы, как указано в модели.
false - Регистрирует только сигналы, указанные в Signals собственность.
LogAllAsSpecifiedInModel - регистрирует сигналы в верхней модели и во всех ссылочных моделях, как указано в модели. Simulink ® помечает индикаторы регистрации сигнала (синие антенны) и игнорирует Signals собственность.
Чтобы изменить режим ведения журнала для модели верхнего уровня или для данной ссылочной модели, используйте setLogAsSpecifiedInModel способ.
символьный массив
RW
Когда LoggingMode имеет значение 'OverrideSignals', LogAsSpecifiedByModels массив ячеек определяет верхние модели и блоки модели верхнего уровня, которые игнорируют 'OverrideSignals' установки и регистрации сигналов, как указано в моделях или блоках модели.
Для блоков модели верхнего и верхнего уровня, включенных в массив ячеек, Simulink игнорирует Signals переопределения свойств.
Для модели или блока модели, которые не включены в массив ячеек, Simulink использует Signals для определения сигналов для регистрации.
Когда LoggingMode имеет значение 'LogAllAsSpecifiedInModel', Simulink игнорирует LogAsSpecifiedByModels собственность.
Используйте getLogAsSpecifiedInModel метод, чтобы определить, регистрирует ли верхняя модель или верхний уровень блок модели сигналы, как указано в модели (ведение журнала по умолчанию), и использовать setLogAsSpecifiedInModel для включения и выключения входа в систему по умолчанию.
массив ячеек - для верхней модели укажите имя модели. В поле «Блоки модели» укажите путь к блоку.
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 объект включает сигналы, соответствующие комбинациям («И») указанных опций. Например, если задать 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Исходный блок для поиска. 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 объект.
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(override_object, path)
override_objectSimulink.SimulationData.ModelLoggingInfo объект.
pathВектор символов, определяющий одно из следующих значений:
Имя верхней модели
Путь блока модели в верхней части модели
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 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 это либо имя модели верхнего уровня, либо путь блока модели в модели верхнего уровня.
Пути блоков для сигналов в 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')Simulink.BlockPath | Simulink.SimulationData.DataStoreMemory | Simulink.SimulationData.LoggingInfo | Simulink.SimulationData.Signal | Simulink.SimulationData.SignalLoggingInfo