金宝appSimulink.SimulationData.ModelLoggingInfo
信号记录覆盖模型的设置
描述
这个类是一个集合金宝appSimulink.SimulationData.SignalLoggingInfo
对象指定模型的所有信号记录覆盖设置。
使用该类的方法和属性:
关闭日志记录的信号或模型块。
更改模型中标记为日志记录的任何信号的日志记录设置。
您可以控制顶级模型和引用模型是否覆盖信号记录设置,还是使用模型指定的信号记录设置。使用LoggingMode
和LogAsSpecifiedByModels
属性来控制应用哪些日志记录设置。
模型的日志模式 | 属性设置 |
---|---|
对于顶级模型和所有引用模型,使用模型中指定的日志记录设置。 |
集 |
对于顶级模型和所有参考模型,使用覆盖信号记录设置。 |
集 |
对于顶级模型和参考模型,混合使用覆盖信号记录设置和模型中指定的信号记录设置。 |
集 控件中的覆盖信号日志记录设置包括您想要忽略的模型 |
有关更多信息和示例,请参见覆盖信号记录设置从MATLAB.
产权总结
名字 |
描述 |
---|---|
信号记录覆盖状态 |
|
顶级模型或顶级模型块的信号记录设置的来源 |
|
所有具有信号覆盖设置的信号 |
方法总结
名字 |
描述 |
---|---|
寻找信号 |
|
验证模型信号记录覆盖对象的信号和模型路径。 |
|
确定模型是否按照模型中指定的方式记录信号,还是使用覆盖设置。 |
|
为顶级模型或顶级模型块设置日志模式。 |
|
用模型层次结构中的所有记录信号创建并填充模型信号记录覆盖对象。 |
|
设置记录或覆盖记录设置的信号。 |
属性
LoggingMode
信号记录覆盖状态。值:
OverrideSignals
-(默认)使用信号的日志记录设置,如信号
财产。对于模型getLogAsSpecifiedInModel
是:真正的
—根据型号的具体要求,记录所有的信号。假
—只记录日志中指定的信号信号
财产。
LogAllAsSpecifiedInModel
—记录top模型和所有引用模型中的信号,根据模型的指定。金宝app动态仿真模块®遵循信号记录指示灯(蓝色天线),忽略信号
财产。
要更改顶级模型或给定引用模型的日志记录模式,请使用setLogAsSpecifiedInModel
方法。
字符数组
RW
LogAsSpecifiedByModels
当LoggingMode
设为“OverrideSignals”
,LogAsSpecifiedByModels
单元格数组指定顶级模型和顶级模型块,忽略“OverrideSignals”
设置和记录模型或指定的信号模型块。
对于顶级模型和顶级模型单元格数组包含的块,则Simulink忽略金宝app
信号
属性覆盖。对于一个模型或模型阻塞单元格数组所做的不包含,Simuli金宝appnk使用
信号
属性确定要记录哪些信号。
当LoggingMode
设为“LogAllAsSpecifiedInModel”
, 金宝appSimulink忽略LogAsSpecifiedByModels
财产。
使用getLogAsSpecifiedInModel
方法来确定顶级模型或顶级模型块是否按照模型中指定的方式记录信号(默认记录),并使用setLogAsSpecifiedInModel
打开和关闭默认日志记录。
单元阵列——对于顶层模型,指定模型名称。对于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 = 金宝appSimulink.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_子系统模型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 . modelloginginfo . createfrommodel ()…“sldemo_variant_subsystems”,“变异”,“AllVariants”)
mi = ModelLoggingInfo with properties: Model: ' sldemo_variant_子系统' LoggingMode: 'OverrideSignals' LogAsSpecifiedByModels: {} Signals: [1×2 Simuli金宝appnk.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 . modelloginginfo (“sldemo_mdlref_bus”);mi.LoggingMode =“LogAllAsSpecifiedInModel”
mi = ModelLoggingInfo with properties: Model: 'sldemo_mdlref_bus' LoggingMode: ' logallasspecificfiedinmodel ' LogAsSpecifiedByModels: {} Signals: []
要应用模型覆盖对象设置,使用:
set_param(sldemo_mdlref_bus, ' datalogginoverride ', mi);
下面的例子展示了如何只记录top模型中的信号:
mi =…金宝appSimulink.SimulationData.ModelLoggingInfo (“sldemo_mdlref_bus”);mi.LoggingMode =“OverrideSignals”;mi = mi. setlogasspecifiedmodel ()“sldemo_mdlref_bus”,真正的);set_param (“sldemo_mdlref_bus”,“DataLoggingOverride”、mi);
findSignal
寻找信号信号
矢量,使用块路径和可选的输出端口索引。
signal_indices =…model_logging_override_object.findSignal(block_path) signal_indices =…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块%记录的COUNTERBUS信号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
对象。 -
路径
-
的
路径
是一个字符向量,指定下列任意一种:顶级模特的名字
顶层模型中模型块的块路径
-
logging_mode
-
的
logging_mode
是:真正的
,如果型号指定由路径
按照模型中指定的方式进行记录。假
,如果型号指定由路径
使用?中指定的覆盖设置进行记录信号
财产。
返回:logging_mode
= model_logging_override_object.getLogAsSpecifiedInModel (路径
)
真正的
,如果型号指定由路径
按照模型中指定的方式进行记录。假
,如果型号指定由路径
使用?中指定的覆盖设置进行记录信号
财产。
在下面的示例中,金宝appSimulink.SimulationData.ModelLoggingInfo
对象心肌梗死
中指定的覆盖设置信号
财产。
mi = 金宝appsimulink . simulationdata . modelloginginfo (“sldemo_mdlref_bus”);loging_mode = getlogasspecificfiedmodel (mi,“sldemo_mdlref_bus”)
Logging_mode = 0
setLogAsSpecifiedInModel
为顶级模型或顶级模型块设置日志模式
setLogAsSpecifiedInModel (override_object路径)
-
override_object
-
金宝appSimulink.SimulationData.ModelLoggingInfo
对象。 -
路径
-
指定下列任意一种的字符向量:
顶级模特的名字
顶层模型中模型块的块路径
-
价值
-
登录模式:
真正的
,如果型号指定由路径
是否按模型中指定的方式记录假
,如果型号指定由路径
使用?中指定的覆盖设置进行记录信号
财产。
setLogAsSpecifiedInModel (
为顶级模型或顶级模型中的模型块设置LoggingMode属性。override_object
,路径
,价值
)
下面的示例展示了如何使用该模型中指定的日志设置,仅记录顶级模型中的信号:
sldemo_mdlref_bus;mi = 金宝appSimulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus');mi.LoggingMode = 'OverrideSignals';mi = setlogasspecfiedinmodel (mi, 'sldemo_mdlref_bus', true);set_param('sldemo_mdlref_bus', ' datalogginoverride ', 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。模拟Data Properties: Model: 'logging_top' LoggingMode: 'OverrideSignals' LogAsSpecifiedByModels: {} Signals: [1x11 Simulink.SimulationData.SignalLoggingInfo]
方法指定的操作
行动
论点。默认情况下,它会发出错误消息。
verified_object
= verifySignalAndModelPaths (model_logging_override_object
,行动
)
对于一个金宝appSimulink.SimulationData.ModelLoggingInfo
对象,验证:
中的所有字符向量
LogAsSpecifiedByModels
属性要么是顶级模型的名称,要么是顶级模型中模型块的块路径。中信号的块路径
信号
属性引用顶层模型层次结构中的有效块。的
OutputPortIndex
属性中所有信号的信号
属性对给定块有效。所有的信号
信号
属性参考记录信号。
的行动
参数指定方法执行什么操作。默认情况下,如果检测到无效路径,该方法将返回错误。
如果你使用金宝appSimulink.SimulationData.ModelLoggingInfo
构造函数并指定金宝appSimulink.SimulationData.SignalLoggingInfo
对象,然后考虑使用verifySignalAndModelPaths
方法来验证对象定义是否有效。
下面的示例展示了如何验证a中的信号和块路径金宝appSimulink.SimulationData.ModelLoggingInfo
对象。因为行动
参数是warnAndRemove
,如果验证失败,则verifySignalAndModelPaths
方法发出警告并更新金宝appSimulink.SimulationData.ModelLoggingInfo
对象。
mi = 金宝appSimulink.SimulationData.ModelLoggingInfo('sldemo_mdlref_bus');verified_object = verifySignalAndModelPaths…(mi warnAndRemove)
版本历史
在R2012b中引入