信号记录模型的覆盖设置
这个课是一个集合万博1manbetxsimulink.simulationdata.signallogginginfo.
指定模型的所有信号记录覆盖设置的对象。
使用此类的方法和属性:
关闭信号或a的日志记录模型堵塞。
更改标记为在模型内记录的任何信号的日志记录设置。
您可以控制顶级模型和引用的模型是否覆盖信号日志记录设置或使用模型指定的信号日志记录设置。使用loggingMode.
和logasspecifificedbymodels.
要控制要应用的记录设置的属性。
模型的日志记录模式 | 属性设置 |
---|---|
对于顶部模型和所有引用的模型,请使用模型中指定的日志记录设置。 |
放 |
对于顶级模型和所有引用的模型,请使用覆盖信号日志记录设置。 |
放 |
对于顶级模型和引用的模型,请使用覆盖信号记录设置和模型中指定的信号日志记录设置。 |
放 包括要忽略覆盖信号日志记录设置的模型 |
有关更多信息和示例,请参阅从MATLAB覆盖信号日志记录设置。
姓名 |
描述 |
---|---|
信号日志记录覆盖状态 |
|
顶级模型或顶级模型块的信号日志记录设置源 |
|
所有信号具有信号覆盖设置 |
姓名 |
描述 |
---|---|
找到内部的信号 |
|
验证模型信号日志记录覆盖对象的信号和模型路径。 |
|
确定模型是否在模型中指定的信号或使用覆盖设置。 |
|
设置顶部模型或顶级模型块的日志记录模式。 |
|
创建和填充模型信号日志记录覆盖对象,其中包含模型层次结构中的所有已记录的信号。 |
|
将信号设置为日志或覆盖日志记录设置。 |
信号日志记录覆盖状态。值是:
超额资格
- (默认)使用信号的日志记录设置,如下所述信号
财产。适用于模型在哪里getlogasspecifiedinmodel.
是:
真的
- 按模型中指定的所有信号。
错误的
- 仅记录指定的信号信号
财产。
logallasspecifiedinmodel.
- 根据模型中指定的顶部模型和所有引用模型中的信号。万博1manbetxsimulink.®授予信号记录指示灯(蓝色天线)并忽略信号
财产。
要更改顶部模型或给定引用的模型的日志记录模式,请使用setlogasspecifiedinmodel.
方法。
字符阵列
rw.
什么时候loggingMode.
被设定为'超额资格'
, 这logasspecifificedbymodels.
单元格数组指定顶级模型和顶级模型忽略的块'超额资格'
设置和日志信号,如模型中指定的模型块。
顶级模型和顶级模型阻止单元格数组包括,Simulink忽略了万博1manbetx信号
财产覆盖。
对于模型或模型阻止单元格数组不是include,s万博1manbetximulink使用信号
属性确定要记录的信号。
什么时候loggingMode.
被设定为'logallasspecifiedinmodel'
,S万博1manbetximulink忽略了logasspecifificedbymodels.
财产。
使用getlogasspecifiedinmodel.
确定顶部模型或顶级模型块是否确定模型中指定的信号(默认记录)和使用setlogasspecifiedinmodel.
打开和关闭默认的日志记录。
单元格数组 - 对于顶部模型,请指定模型名称。对于模型块,请指定块路径。
rw.
向量的万博1manbetxsimulink.simulationdata.signallogginginfo.
具有信号记录覆盖设置的所有信号的对象。
向量的万博1manbetxsimulink.simulationdata.signallogginginfo.
对象
rw.
创建一个万博1manbetxsimulink.simulationdata.modelloggingInfo.
顶部模型的对象,具有模型中的每个记录信号的覆盖设置。
model_logging_info_object = ... 万博1manbetxsimulink.simulationdata.modellogginginfo.createfrommodel(...模型
那选项
)
模型
创建a的顶级模型的名称万博1manbetxsimulink.simulationdata.modelloggingInfo.
目的。
选项
您可以使用以下选项名称和值对的任何组合来控制要从中包含记录信号的系统类型。
跟随链接
在
- (默认)包括来自库内部的记录信号。
离开
- 跳过所有库。
外观麦克斯克斯
全部
- (默认)包括来自所有屏蔽子系统的记录信号。
没有任何
- 跳过所有蒙版的子系统。
图形
- 包括来自屏蔽子系统的记录信号,没有工作区或对话框。
功能
- 包括来自屏蔽子系统的记录信号,没有对话框。
变体
ActiveVariants.
- (默认)包括仅来自活动子系统和模型变体的记录信号。
AllFariants.
- 包括来自所有子系统和模型变体的记录信号。
refmodels.
在
- (默认)包括来自引用模型的记录信号。
离开
- 跳过所有引用的模型。
如果选择多个选项,则创建万博1manbetxsimulink.simulationdata.modelloggingInfo.
对象包括符合指定选项的组合(“和”)的信号。例如,如果您设置跟随链接
到在
和集合refmodels.
到离开
然后,模型信号日志记录覆盖对象不包括来自引用模型内部存在的库链接的信号。
model_logging_override_object.
万博1manbetxsimulink.simulationdata.modelloggingInfo.
顶级模型的对象。
创造一个model_logging_info_object.
= 万博1manbetxsimulink.simulationdata.modellogginginfo.createfrommodel(模型
)万博1manbetxsimulink.simulationdata.modelloggingInfo.
用于模型的对象,包括用于以下类型系统的记录信号:
图书馆
蒙版子系统
引用的模型
活跃的变体
创造一个model_logging_override_object.
= 万博1manbetxsimulink.simulationdata.modellogginginfo.createfrommodel(模型
, 选项)万博1manbetxsimulink.simulationdata.modelloggingInfo.
模型的对象。包含的记录信号反映了以下类型系统的选项设置:
图书馆
蒙版子系统
引用的模型
变体
以下示例为该模型记录覆盖对象sldemo_mdlref_bus.
模型并自动将模型中的每个记录信号添加到该对象:
mi = 万博1manbetxsimulink.simulationdata.modellogginginfo.createfrommodel(......'sldemo_mdlref_bus')
mi = modellogginginfo with属性:型号:'sldemo_mdlref_bus'loggingmode:'overriceignals'logasspecifizedbymodels:{}信号:[1x3 simulink.simulationdata.s万博1manbetxignallogginginfo]
要应用模型覆盖对象设置,请使用:
set_param(sldemo_mdlref_bus,'dataloggingoverride',mi);
您可以使用选项createfrommomet.
指定方法如何处理变体和模型引用的模型组件的方法。例如,使用变体
创建一个选择model_logging_override.
包含所有变体中的记录信号的对象sldemo_variant_subsystems.
模型。
默认情况下,sldemo_variant_subsystems.
模型不会记录任何信号。首先配置输出信号线性控制器
和非线性控制器
用于记录的子系统。
%打开sldemo_variant_subsystems模型sldemo_variant_subsystems;%标记用于日志记录的线性控制器子系统的输出ph = get_param('sldemo_variant_subsystems / controller / linear controller'那......'porthandles');set_param(ph.outport(1),'数据记录'那'在');%标记非线性控制器子系统的输出进行日志记录ph1 = get_param('SLDEMO_VARIANT_SUBSYSTEMS /控制器/非线性控制器'那......'porthandles');set_param(ph1.outport(1),'数据记录'那'在');
然后,使用createfrommomet.
创建一个方法model_logging_override.
包含在所有变体子系统中记录的信号的对象sldemo_variant_subsystems.
模型。
%为包括所有变体的模型创建模型的model_logging_override对象mi = 万博1manbetxsimulink.simulationdata.modellogginginfo.createfrommodel(......'sldemo_variant_subsystems'那'变体'那'AllFariants')
mi = modellogginginfo with属性:型号:'sldemo_variant_subsystems'loggingmode:'overricesignals'logasspecifificedbymodels:{}信号:[1×2 simulink.simulationdat万博1manbetxa.signallogginginfo]
将信号指定为日志或覆盖日志记录设置。
model_logging_override_object = .... 万博1manbetxsimulink.simulationdata.modellogginginfo(型号)
模型
创建a的顶级模型的名称万博1manbetxsimulink.simulationdata.modelloggingInfo.
目的
model_logging_override_object.
万博1manbetxsimulink.simulationdata.modelloggingInfo.
为指定的顶部模型创建的对象。
创造一个model_logging_override_object.
= 万博1manbetxsimulink.simulationData.modelloggingInfo(模型
)万博1manbetxsimulink.simulationdata.modelloggingInfo.
指定顶级模型的对象。
如果你使用万博1manbetxsimulink.simulationdata.modelloggingInfo.
构造函数,指定a万博1manbetxsimulink.simulationdata.signallogginginfo.
对于要覆盖日志记录设置的每个记录信号的对象。
要检查型号的指定有效信号记录覆盖设置,请使用verifysignalandmodelpaths.
方法与万博1manbetxsimulink.simulationdata.modelloggingInfo.
模型的对象。
以下示例显示了如何记录顶部模型中指定的所有信号和所有引用的模型。
mi = 万博1manbetxsimulink.simulationdata.modellogginginfo('sldemo_mdlref_bus');mi.loggingMode =.'logallasspecifiedinmodel'
mi = modellogginginfo具有属性:型号:'sldemo_mdlref_bus'loggingmode:'logallasspecifiedinmodel'logasspecifizedbymodels:{}信号:[]
要应用模型覆盖对象设置,请使用:
set_param(sldemo_mdlref_bus,'dataloggingoverride',mi);
以下示例显示了如何在顶部模型中仅登录信号:
mi =......万博1manbetxsimulink.simulationdata.modellogginginfo('sldemo_mdlref_bus');mi.loggingMode =.'超额资格';mi = mi.setLogasspecifiedInmodel('sldemo_mdlref_bus', 真的);set_param('sldemo_mdlref_bus'那'dataloggingoverride',mi);
找到内部的信号信号
矢量,使用块路径和可选地输出端口索引。
signal_indices =.......model_logging_override_object.findsignal(block_path)signal_indices =......model_logging_override_object.findsignal(......block_path,port_index)
block_path.
搜索源块。这block_path.
必须是以下之一:
字符向量
字符向量的单元格阵列
万博1manbetxsimulink.blockpath.
目的
port_index.
要搜索的输出端口索引。指定大于或等于的标量,1
。
signal_indices.
数字指数矢量进入信号矢量的万博1manbetxsimulink.simulationdata.modelloggingInfo.
目的。
查找您指定的块路径的信号的索引。signal_indices.
= model_logging_override_object.findsignal(block_path.
)
找到一个单身的引用模型中的信号的实例,使用a万博1manbetxsimulink.blockpath.
对象或单元格数组完整路径。
找到全部引用模型内的信号的实例,使用字符向量相对的引用模型中的信号的路径。
在eventflow中找到记录的图表信号®图表,使用a万博1manbetxsimulink.blockpath.
对象并设置子路径
属性到StateFlow图表信号的名称。
找到您指定的块路径的端口的输出信号的索引。signal_indices.
= model_logging_override_object.findsignal(block_path.
那port_index.
)
不要使用port_index.
stateflow图表信号的参数。
找到一个信号不是在一个州流图表中,那么不是出现在引用模型的多个实例中:
Open_System(DocPath(FullFile(Docroot,'工具箱'那'万博1manbetxsimulink'那'例子'那'ex_bus_logging'))))%打开引用的模型ex_mdlref_counter_bus mi = 万博1manbetxsimulink.simulationdata.modellogginginfo.createfrommodel(......'ex_bus_logging');%单击源代码的CherticBusCreator块%LOGGED CUNDERBUS信号signal_index = mi.findsignal(gcb)
signal_index = 1
要在特定的INTECTED模型实例中查找不在StateFlow Chart的信号,请使用以下方法:
signal_index = mi.findsignal({'ex_bus_logging / prespora'那......'ex_mdlref_counter_bus / bus creator'})
signal_index = 4.
有关使用该示例findsignal.
具有状态流图的方法,请参阅使用命令行API覆盖日志记录属性(州流)。
确定模型中指定的模型日志是否或使用覆盖设置。
logging_mode = ... getlogasspecifiedinmodel(model_logging_override_object,path)
model_logging_override_object.
一种万博1manbetxsimulink.simulationdata.modelloggingInfo.
目的。
小路
这小路
是一个字符矢量,它指定以下内容之一:
顶级模型的名称
顶部模型中模型块的块路径
logging_mode.
这logging_mode.
是:
真的
,如果模型指定小路
按照模型中的指定记录。
错误的
,如果模型指定小路
使用指定的覆盖设置记录信号
财产。
返回:logging_mode.
= model_logging_override_object.getlogasspecifizedInmodel(小路
)
真的
,如果模型指定小路
按照模型中的指定记录。
错误的
,如果模型指定小路
使用指定的覆盖设置记录信号
财产。
在以下示例中,万博1manbetxsimulink.simulationdata.modelloggingInfo.
目的MI.
使用其上指定的覆盖设置信号
财产。
mi = 万博1manbetxsimulink.simulationdata.modellogginginfo('sldemo_mdlref_bus');logging_mode = getlogasspecifizedinmodel(mi,'sldemo_mdlref_bus')
logging_mode = 0.
设置顶部模型或顶级模型块的记录模式
setlogasspecifiedinmodel(override_object,path)
override_Object.
万博1manbetxsimulink.simulationdata.modelloggingInfo.
目的。
小路
指定以下内容之一的字符矢量:
顶级模型的名称
顶部模型中模型块的块路径
价值
记录模式:
真的
,如果模型指定小路
被记录在模型中指定
错误的
,如果模型指定小路
使用指定的覆盖设置记录信号
财产。
setlogasspecifiedinmodel(
在顶部模型中设置顶部模型或模型块的LoggingMode属性。override_Object.
那小路
那价值
)
以下示例显示如何仅使用该模型中指定的日志设置在顶部模型中登录信号:
sldemo_mdlref_bus;mi = 万博1manbetxsimulink.simulationdata.modellogginginfo('sldemo_mdlref_bus');mi.loggingMode ='overricesignals';mi = setlogasspecifizedinmodel(mi,'sldemo_mdlref_bus',true);set_param('sldemo_mdlref_bus','dataloggingoverride',mi);
验证路径万博1manbetxsimulink.simulationdata.modelloggingInfo.
目的。
验证_object = verifysignalandmodelpaths ...(model_logging_override_object,操作)
model_logging_override_object.
这万博1manbetxsimulink.simulationdata.modelloggingInfo.
对象验证。此论点是必需的。
行动
如果验证失败,函数执行的操作。此参数是可选的。指定以下值之一:
错误
- (默认)验证失败时丢失错误
Warnandremove.
- 验证失败并更新时发出警告万博1manbetxsimulink.simulationdata.modelloggingInfo.
目的。
消除
- 默默地更新万博1manbetxsimulink.simulationdata.modelloggingInfo.
目的。
验证_Object.
如果该方法无法检测到无效路径,则返回验证对象。例如:
验证_object = simuli万博1manbetxnk.simulationdata.modellogginginfo包
如果该方法检测到无效路径,则它执行由此指定的操作行动
争论。默认情况下,它会发出错误消息。
验证_Object.
= verifysignalandmodelpaths(model_logging_override_object.
那行动
)
为一个万博1manbetxsimulink.simulationdata.modelloggingInfo.
对象,验证:
所有字符向量logasspecifificedbymodels.
属性是顶级模型的名称或顶部模型中的模型块的块路径。
信号中的块路径信号
属性是指顶部模型的层次结构中的有效块。
这outputportIndex.
所有信号的财产信号
属性对给定块有效。
所有信号都在信号
财产请参阅记录一下信号。
这行动
参数指定方法执行的操作。默认情况下,如果检测到无效路径,该方法返回错误。
如果你使用万博1manbetxsimulink.simulationdata.modelloggingInfo.
构造函数并指定一个万博1manbetxsimulink.simulationdata.signallogginginfo.
每个信号的对象,然后考虑使用verifysignalandmodelpaths.
验证对象定义是否有效的方法。
以下示例显示了如何验证信号和块路径万博1manbetxsimulink.simulationdata.modelloggingInfo.
目的。因为这行动
参数是Warnandremove.
,如果验证失败,则verifysignalandmodelpaths.
方法发出警告和更新万博1manbetxsimulink.simulationdata.modelloggingInfo.
目的。
mi = 万博1manbetxsimulink.simulationdata.modellogginginfo('sldemo_mdlref_bus');验证_object = verifysignalandmodelpaths ...(mi,'warnandremove')
万博1manbetxsimulink.blockpath.
|万博1manbetxsimulink.simulationdata.dataStoreMemory.
|万博1manbetxsimulink.simulationData.loggingInfo.
|万博1manbetxsimulink.simulationData.Signal.
|万博1manbetxsimulink.simulationdata.signallogginginfo.