金宝appSimulink.SimulationData.ModelLoggingInfo
一个模型的信号记录覆盖设置
描述
类的集合金宝appSimulink.SimulationData.SignalLoggingInfo
对象指定所有信号记录覆盖模型的设置。
使用这个类的方法和属性:
关闭日志记录信号或模型块。
更改模型中标记为日志记录的任何信号的日志记录设置。
您可以控制顶级模型和参考模型是覆盖信号记录设置,还是使用模型指定的信号记录设置。使用LoggingMode
而且LogAsSpecifiedByModels
属性来控制应用哪些日志记录设置。
模型的日志记录模式 | 属性设置 |
---|---|
对于顶层模型和所有引用的模型,使用模型中指定的日志记录设置。 |
集 |
对于顶层模型和所有参考模型,使用覆盖信号记录设置。 |
集 |
对于顶层模型和参考模型,混合使用覆盖信号记录设置和模型中指定的信号记录设置。 |
集 中包含要忽略覆盖信号记录设置的模型 |
有关更多信息和示例,请参见覆盖信号记录设置从MATLAB.
产权总结
名字 |
描述 |
---|---|
信号记录覆盖状态 |
|
顶级模型或顶级模型块的信号记录设置源 |
|
所有有信号覆盖设置的信号 |
方法总结
名字 |
描述 |
---|---|
在 |
|
验证模型信号日志覆盖对象的信号和模型路径。 |
|
确定模型是按照模型中指定的方式记录信号,还是使用覆盖设置。 |
|
为顶层模型或顶层模型块设置日志记录模式。 |
|
用模型层次结构中的所有记录信号创建并填充模型信号日志覆盖对象。 |
|
设置信号记录或覆盖记录设置。 |
属性
LoggingMode
信号记录覆盖状态。值:
OverrideSignals
-(默认)使用信号的日志记录设置,如信号
财产。对于下面的模型getLogAsSpecifiedInModel
是:真正的
—根据型号的要求,记录所有信号。假
—只记录信号
财产。
LogAllAsSpecifiedInModel
—记录top型号和所有参考型号的信号。金宝app动态仿真模块®注意信号记录指示器(蓝色天线),忽略信号
财产。
要更改顶层模型或给定引用模型的日志记录模式,请使用setLogAsSpecifiedInModel
方法。
字符数组
RW
LogAsSpecifiedByModels
当LoggingMode
设置为“OverrideSignals”
,LogAsSpecifiedByModels
单元格数组指定顶级模型和顶级模型块,忽略“OverrideSignals”
设置和日志信号指定的型号或模型块。
为顶级模型和顶级模型单元格数组中包含的块,Simulink会忽略金宝app
信号
属性覆盖。对于模型或模型单元格数组所做的块不include, 金宝appSimulink使用
信号
属性确定要记录哪些信号。
当LoggingMode
设置为“LogAllAsSpecifiedInModel”
, 金宝appSimulink忽略LogAsSpecifiedByModels
财产。
使用getLogAsSpecifiedInModel
方法来确定是顶层模型还是顶层模型块记录模型中指定的信号(默认日志),并使用setLogAsSpecifiedInModel
打开和关闭默认日志记录。
cell array -对于顶层模型,指定模型名称。对于Model块,指定块路径。
RW
信号
向量的金宝appSimulink.SimulationData.SignalLoggingInfo
具有信号日志覆盖设置的所有信号的对象。
向量的金宝appSimulink.SimulationData.SignalLoggingInfo
对象
RW
方法
createFromModel
创建一个金宝appSimulink.SimulationData.ModelLoggingInfo
对象的顶级模型,并为模型中的每个记录信号设置覆盖设置。
Model_logging_info_object =…金宝appSimulink.SimulationData.ModelLoggingInfo.createFromModel(…模型
,选项
)
-
模型
-
要创建的顶级模型的名称
金宝appSimulink.SimulationData.ModelLoggingInfo
对象。 -
选项
-
您可以使用下列选项名称和值对的任意组合来控制包含日志信号的系统类型。
FollowLinks
在
-(默认)包括来自库内部的日志信号。从
-跳过所有库。
LookUnderMasks
所有
-(默认)包括来自所有屏蔽子系统的日志信号。没有一个
—跳过所有被屏蔽的子系统。图形化的
-包括来自没有工作区或对话框的屏蔽子系统的日志信号。功能
-包括来自屏蔽子系统的日志信号,这些子系统没有对话框。
变体
ActiveVariants
-(默认)只包括来自活动子系统和模型变量的日志信号。AllVariants
-包括来自所有子系统和模型变量的日志信号。
RefModels
在
-(默认)包括来自参考模型的日志信号。从
—跳过所有参考模型。
如果选择多个选项,则创建
金宝appSimulink.SimulationData.ModelLoggingInfo
对象包含符合指定选项组合(“AND”)的信号。例如,如果你设置FollowLinks
来在
并设置RefModels
来从
,则模型信号日志覆盖对象不包括来自存在于引用模型内部的库链接的信号。
-
model_logging_override_object
-
金宝appSimulink.SimulationData.ModelLoggingInfo
对象的顶部模型。
创建一个model_logging_info_object
= 金宝appSimulink.SimulationData.ModelLoggingInfo.createFromModel (模型
)金宝appSimulink.SimulationData.ModelLoggingInfo
对象,该模型包含以下类型系统的日志信号:
库
戴面具的子系统
引用模型
积极的变异
创建一个model_logging_override_object
= 金宝appSimulink.SimulationData.ModelLoggingInfo.createFromModel (模型
选项)金宝appSimulink.SimulationData.ModelLoggingInfo
对象用于模型。包含的日志信号反映了以下几种系统的选项设置:
库
戴面具的子系统
引用模型
变体
对象的模型日志覆盖对象sldemo_mdlref_bus
模型,并自动将模型中的每个日志信号添加到该对象:
openExample (“sldemo_mdlref_bus”mi = Si金宝appmulink.SimulationData.ModelLoggingInfo.createFromModel(...“sldemo_mdlref_bus”)
mi = ModelLoggingInfo with properties: Model: 'sldemo_mdlref_bus' LoggingMode: 'OverrideSignals' LogAsSpecifiedByModels: {} Signals: [1×4 金宝appSimulink.SimulationData.SignalLoggingInfo]
要应用模型覆盖对象设置,请使用:
set_param (sldemo_mdlref_bus“DataLoggingOverride”、mi);
的选项createFromModel
方法指定方法应如何处理变量和模型引用等模型组件。例如,使用变体
选项,以创建model_logging_override
对象的所有变体中的日志信号sldemo_variant_subsystems
模型。
默认情况下,sldemo_variant_subsystems
模型没有记录任何信号。从配置输出信号开始线性控制器
而且非线性控制器
用于日志的子系统。
打开sldemo_variant_subsystem模型sldemo_variant_subsystems;标记线性控制器子系统的输出,用于日志记录Ph = get_param(“sldemo_variant_subsystems /控制器/线性控制器”,...“PortHandles”);set_param (ph.Outport (1),“数据采集”,“上”);标记非线性控制器子系统的输出进行日志记录Ph1 = get_param(“sldemo_variant_subsystems /控制器/非线性控制器”,...“PortHandles”);set_param (ph1.Outport (1),“数据采集”,“上”);
然后,使用createFromModel
方法来创建model_logging_override
对象的所有变量子系统中记录的信号sldemo_variant_subsystems
模型。
为包含所有变量的模型创建model_logging_override对象mi = 金宝appSimulink.SimulationData.ModelLoggingInfo.createFromModel(...“sldemo_variant_subsystems”,“变异”,“AllVariants”)
mi = ModelLoggingInfo with properties: Model: 'sldemo_variant_subsystem ' LoggingMode: 'OverrideSignals' LogAsSpecifiedByModels: {} Signals: [1×2 金宝appSimulink.SimulationData.SignalLoggingInfo]
ModelLoggingInfo
指定记录或覆盖记录设置的信号。
Model_logging_override_object = ....金宝appSimulink.SimulationData.ModelLoggingInfo(模型)
-
模型
-
要创建的顶级模型的名称
金宝appSimulink.SimulationData.ModelLoggingInfo
对象
-
model_logging_override_object
-
金宝appSimulink.SimulationData.ModelLoggingInfo
为指定顶级模型创建的对象。
创建一个model_logging_override_object
= 金宝appSimulink.SimulationData.ModelLoggingInfo (模型
)金宝appSimulink.SimulationData.ModelLoggingInfo
为指定的顶层模型初始化。
如果你使用金宝appSimulink.SimulationData.ModelLoggingInfo
构造函数,指定金宝appSimulink.SimulationData.SignalLoggingInfo
为要覆盖日志记录设置的每个日志信号设置。
要检查是否为模型指定了有效的信号记录覆盖设置,请使用verifySignalAndModelPaths
方法。金宝appSimulink.SimulationData.ModelLoggingInfo
对象用于模型。
下面的例子展示了如何记录顶部模型和所有引用模型中指定的所有信号。
mi = 金宝appSimulink.SimulationData.ModelLoggingInfo(“sldemo_mdlref_bus”);mi.LoggingMode =“LogAllAsSpecifiedInModel”
mi = ModelLoggingInfo与属性:Model: 'sldemo_mdlref_bus' LoggingMode: 'LogAllAsSpecifiedInModel' LogAsSpecifiedByModels: {} Signals: []
要应用模型覆盖对象设置,请使用:
set_param(sldemo_mdlref_bus, 'DataLoggingOverride', mi);
下面的例子展示了如何只记录顶层模型中的信号:
mi =...金宝appSimulink.SimulationData.ModelLoggingInfo (“sldemo_mdlref_bus”);mi.LoggingMode =“OverrideSignals”;mi = mi. setlogasspecifiedinmodel (“sldemo_mdlref_bus”,真正的);set_param (“sldemo_mdlref_bus”,“DataLoggingOverride”、mi);
findSignal
在信号
向量,使用块路径和可选的输出端口索引。
signal_indices =...model_logging_override_object.findSignal(block_path) signal_indexes =...model_logging_override_object.findSignal (...block_path port_index)
-
block_path
-
要搜索的源块。的
block_path
必须是以下其中之一:特征向量
字符向量的单元格数组
金宝app仿真软件。BlockPath
对象
-
port_index
-
要搜索的输出端口的索引。指定一个大于或等于
1
.
-
signal_indices
-
将数值指标向量转化为信号向量
金宝appSimulink.SimulationData.ModelLoggingInfo
对象。
为指定的块路径查找信号的索引。signal_indices
= model_logging_override_object.findSignal (block_path
)
为了找到一个单引用模型中信号的实例,使用金宝app仿真软件。BlockPath
对象的单元格数组完整路径.
找到所有属性的字符向量与引用模型中的信号实例一起使用相对信号在参考模型中的路径。
在状态流中查找已记录的图表信号®图表,使用金宝app仿真软件。BlockPath
对象,并设置子路径
属性设置为状态流程图信号的名称。
为指定的块路径和指定的端口查找输出信号的索引。signal_indices
= model_logging_override_object.findSignal (block_path
,port_index
)
请勿使用port_index
参数为状态流程图信号。
找到一个信号不在状态流图中,这样做不出现在一个引用模型的多个实例中:
open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,“例子”,“ex_bus_logging”)))打开引用的模型ex_mdlref_counter_bus mi = 金宝appSimulink.SimulationData.ModelLoggingInfo.createFromModel(...“ex_bus_logging”);的源的COUNTERBUSCreator块%记录的计数器信号signal_index = mi.findSignal(gcb)
Signal_index = 1
要查找不在状态流图中的引用模型的特定实例中的信号,请使用以下方法:
signal_index = mi.findSignal({“ex_bus_logging / CounterA”,...“ex_mdlref_counter_bus /总线的创造者”})
Signal_index = 4
的例子findSignal
方法,请参见使用命令行API重写日志属性(Stateflow).
getLogAsSpecifiedInModel
确定模型是按照模型中指定的方式记录日志,还是使用覆盖设置。
Logging_mode =…getLogAsSpecifiedInModel (model_logging_override_object路径)
-
model_logging_override_object
-
一个
金宝appSimulink.SimulationData.ModelLoggingInfo
对象。 -
路径
-
的
路径
是一个字符向量,它指定下列之一:顶级模特的名字
顶层模型中Model块的块路径
-
logging_mode
-
的
logging_mode
是:真正的
指定的模型,则为路径
按照模型中指定的记录。假
指定的模型,则为路径
使用?中指定的覆盖设置进行记录信号
财产。
返回:logging_mode
= model_logging_override_object.getLogAsSpecifiedInModel (路径
)
真正的
指定的模型,则为路径
按照模型中指定的记录。假
指定的模型,则为路径
使用?中指定的覆盖设置进行记录信号
财产。
在下面的示例中,使用金宝appSimulink.SimulationData.ModelLoggingInfo
对象心肌梗死
属性中指定的覆盖设置信号
财产。
mi = 金宝appSimulink.SimulationData.ModelLoggingInfo(“sldemo_mdlref_bus”);loging_mode = getLogAsSpecifiedInModel(mi,“sldemo_mdlref_bus”)
Logging_mode = 0
setLogAsSpecifiedInModel
为顶层模型或顶层模型块设置日志记录模式
setLogAsSpecifiedInModel (override_object路径)
-
override_object
-
金宝appSimulink.SimulationData.ModelLoggingInfo
对象。 -
路径
-
指定下列之一的字符向量:
顶级模特的名字
顶层模型中Model块的块路径
-
价值
-
登录模式:
真正的
指定的模型,则为路径
是否按照模型中指定的日志记录假
指定的模型,则为路径
使用?中指定的覆盖设置进行记录信号
财产。
setLogAsSpecifiedInModel (
为顶级模型或顶级模型中的model块设置LoggingMode属性。override_object
,路径
,价值
)
下面的例子展示了如何只记录顶层模型中的信号,使用该模型中指定的日志记录设置:
sldemo_mdlref_bus;mi = 金宝appSimulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus');mi.LoggingMode = 'OverrideSignals';mi = setLogAsSpecifiedInModel(mi, 'sldemo_mdlref_bus', true);set_param('sldemo_mdlref_bus', 'DataLoggingOverride', mi);
verifySignalAndModelPaths
验证路径金宝appSimulink.SimulationData.ModelLoggingInfo
对象。
verified_object = verifySignalAndModelPaths…(model_logging_override_object行动)
-
model_logging_override_object
-
的
金宝appSimulink.SimulationData.ModelLoggingInfo
对象进行验证。此参数是必需的。 -
行动
-
函数在验证失败时执行的动作。这个参数是可选的。指定以下值之一:
错误
-(默认)验证失败时抛出错误warnAndRemove
—验证失败时发出警告,并更新金宝appSimulink.SimulationData.ModelLoggingInfo
对象。删除
-静默更新金宝appSimulink.SimulationData.ModelLoggingInfo
对象。
-
verified_object
-
如果该方法未检测到无效路径,则返回经过验证的对象。例如:
verified_object = 金宝appSimulink. simulationdata . modellogginginfo包:Simulink. Simulink. modellogginginfo模拟Data Properties: Model: 'logging_top' LoggingMode: 'OverrideSignals' LogAsSpecifiedByModels: {} Signals: [1x11 Simulink.SimulationData.SignalLoggingInfo]
方法所指定的操作
行动
论点。默认情况下,它会发出错误消息。
verified_object
= verifySignalAndModelPaths (model_logging_override_object
,行动
)
对于一个金宝appSimulink.SimulationData.ModelLoggingInfo
对象,验证:
中的所有字符向量
LogAsSpecifiedByModels
属性是顶层模型的名称或顶层模型中model块的块路径。信号的阻塞路径
信号
属性引用顶层模型层次结构中的有效块。的
OutputPortIndex
属性中的所有信号信号
属性对于给定块有效。所有信号
信号
属性参考记录信号。
的行动
参数指定方法执行的操作。默认情况下,如果该方法检测到无效路径,则返回错误。
如果你使用金宝appSimulink.SimulationData.ModelLoggingInfo
构造函数,并指定金宝appSimulink.SimulationData.SignalLoggingInfo
对象,然后考虑使用verifySignalAndModelPaths
方法验证对象定义是否有效。
实例中如何验证信号和阻塞路径金宝appSimulink.SimulationData.ModelLoggingInfo
对象。因为行动
参数是warnAndRemove
,如果验证失败,则verifySignalAndModelPaths
方法发出警告并更新金宝appSimulink.SimulationData.ModelLoggingInfo
对象。
mi = 金宝appSimulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus');verified_object = verifySignalAndModelPaths…(mi warnAndRemove)