Сигнал, регистрирующий настройки переопределения для модели
Этот класс является набором объектов Simulink.SimulationData.SignalLoggingInfo
, которые задают весь сигнал, регистрирующий настройки переопределения для модели.
Используйте методы и свойства этого класса к:
Выключите журналирование для сигнала или блока Model.
Измените настройки журналирования для любых сигналов, которые отмечены для журналирования в модели.
Можно управлять, используют ли топ-модель и настройки журналирования сигнала переопределения моделей, на которые ссылаются, или настройки журналирования сигнала, заданные моделью. Используйте свойства LoggingMode
и LogAsSpecifiedByModels
управлять который, регистрируя настройки, чтобы применяться.
Журналирование режима для моделей | Настройки свойства |
---|---|
Для топ-модели и всех моделей, на которые ссылаются, используйте настройки журналирования, заданные в модели. | Установите |
Для топ-модели и всех моделей, на которые ссылаются, используйте сигнал переопределения журналирование настроек. | Установите |
Для топ-модели и моделей, на которые ссылаются, используйте соединение сигнала переопределения журналирование настроек и настроек журналирования сигнала, заданных в модели. | Установите Включайте модели, вы хотите проигнорировать сигнал переопределения журналирование настроек в массиве ячеек |
Для получения дополнительной информации и примеры, смотрите Сигнал Переопределения Регистрировать Настройки из MATLAB.
Имя | Описание |
---|---|
Сигнал, регистрирующий состояние переопределения | |
Источник настроек журналирования сигнала для топ-модели или блока Model верхнего уровня | |
Все сигналы, которые имеют настройки переопределения сигнала |
Имя | Описание |
---|---|
Найдите сигналы в векторе | |
Проверьте и образцовые пути сигнала для образцового сигнала, регистрирующего объект переопределения. | |
Определите, заменяют ли образцовые логарифмические сигналы, как задано в модели или использовании настройки. | |
Установите режим журналирования для топ-модели или блока Model верхнего уровня. | |
Создайте и заполните образцовый сигнал, регистрирующий объект переопределения со всеми регистрируемыми сигналами в иерархии модели. | |
Установите сигналы регистрировать или заменить настройки журналирования. |
Сигнал, регистрирующий состояние переопределения. Значения:
OverrideSignals
— Использование (по умолчанию) настройки журналирования для сигналов, как задано в свойстве Signals
. Для моделей, где getLogAsSpecifiedInModel
:
tRUE
Журналы все сигналы, как задано в модели.
ложь
Журналы только сигналы заданы в свойстве 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
все
(Значение по умолчанию) Включает регистрируемые сигналы от всех подсистем маскированных.
'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
Действие, которое выполняет функция, если верификация перестала работать. Этот аргумент является дополнительным. Задайте одно из следующих значений:
ошибка
Бросок (по умолчанию) ошибка, когда верификация перестала работать
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 блока 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.ModelDataLogs
| Simulink.SimulationData.DataStoreMemory
| Simulink.SimulationData.LoggingInfo
| Simulink.SimulationData.Signal
| Simulink.SimulationData.SignalLoggingInfo