Сигнал, регистрирующий настройки переопределения для модели
Этот класс является набором Simulink.SimulationData.SignalLoggingInfo
объекты, которые задают весь сигнал, регистрирующий настройки переопределения для модели.
Используйте методы и свойства этого класса к:
Выключите логгирование для сигнала или блока Model.
Измените настройки логгирования для любых сигналов, которые отмечены для логгирования в модели.
Можно управлять, используют ли топ-модель и настройки логгирования сигнала переопределения моделей, на которые ссылаются, или настройки логгирования сигнала, заданные моделью. Используйте LoggingMode
и LogAsSpecifiedByModels
свойства управлять, который, регистрируя настройки, чтобы применяться.
Логгирование режима для моделей | Настройки свойства |
---|---|
Для топ-модели и всех моделей, на которые ссылаются, используйте настройки логгирования, заданные в модели. | Установите |
Для топ-модели и всех моделей, на которые ссылаются, используйте сигнал переопределения логгирование настроек. | Установите |
Для топ-модели и моделей, на которые ссылаются, используйте соединение сигнала переопределения логгирование настроек и настроек логгирования сигнала, заданных в модели. | Установите Включайте модели, вы хотите проигнорировать сигнал переопределения логгирование настроек в |
Для получения дополнительной информации и примеры, смотрите Сигнал Переопределения Регистрировать Настройки из 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 задайте блок path.
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
вектор, с помощью блока 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
объект.
находит индексы сигналов для блока path, что вы задаете.signal_indices
= model_logging_override_object.findSignal(block_path
)
Чтобы найти один экземпляр сигнала в модели, на которую ссылаются, используйте Simulink.BlockPath
возразите или массив ячеек с полным путем.
Чтобы найти все экземпляры сигнала в модели, на которую ссылаются, используйте вектор символов с относительным путем сигнала в модели, на которую ссылаются.
Чтобы найти регистрируемый график сигнализируют в рамках Stateflow® стройте диаграмму, используйте Simulink.BlockPath
объект и набор SubPath
свойство к имени сигнала диаграммы Stateflow.
находит индексы выходного сигнала для порта, который вы задаете для блока path, который вы задаете.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, смотрите Override Logging Properties с API Командной строки (Stateflow).
Определите, заменяют ли журналы модели, как задано в модели или использовании настройки.
logging_mode = ... getLogAsSpecifiedInModel(model_logging_override_object, path)
model_logging_override_object
Simulink.SimulationData.ModelLoggingInfo
объект.
path
path
вектор символов, который задает одно из следующего:
Имя топ-модели
Блок path блока Model в топ-модели
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
Установите режим логгирования для топ-модели или блока Model верхнего уровня
setLogAsSpecifiedInModel(override_object, path)
override_object
Simulink.SimulationData.ModelLoggingInfo
объект.
path
Вектор символов, который задает одно из следующего:
Имя топ-модели
Блок path блока Model в топ-модели
value
Режим Logging:
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
свойство является или именем топ-модели или блоком path блока Model в топ-модели.
Пути к блоку для сигналов в 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.LoggingInfo
| Simulink.SimulationData.SignalLoggingInfo
| Simulink.SimulationData.Signal
| Simulink.SimulationData.DataStoreMemory