在开发模型时,您可能希望覆盖特定模拟运行的信号日志设置。在Simulink中,您可以覆盖信号日志属性,而无需更改模型金宝app®编辑器。
为了减少内存开销并便于分析模拟测井结果,重写信号测井特性。通过重写信号日志设置,可以避免重新编译模型。
当您想要:
通过禁用标记为记录的大多数信号的记录功能,只关注少数信号。您可以标记标记为记录的信号超集,然后选择其中的不同子集进行记录。
从信号日志输出中排除一些信号。
覆盖特定的信号记录属性,例如信号的抽取。
只收集运行多个测试向量时所需的内容。
使用两个接口中的任何一个来覆盖信号记录设置:
您可以组合使用这两个接口。信号记录选择器创建金宝appSimulink.SimulationData.ModelLoggingInfo
对象,以保存覆盖设置。命令行界面具有名称对应于Signal Logging Selector接口的属性。例如,金宝appSimulink.SimulationData.ModelLoggingInfo
类都有一个记录模式
属性,它对应于日志记录模式信号记录选择器中的参数。
当您覆盖信号记录设置时,Simulink将在您模拟模型时使用这些覆盖设置。金宝app
金宝appSimulink在模型中保存您指定的信号日志覆盖配置。但是,Simuli金宝appnk不会为模型中的每个信号在信号属性对话框中更改信号记录设置。
在信号记录选择器中,如果覆盖某些信号记录设置,然后设置日志记录模式来按照模型中的规定记录所有信号
,则模型中定义的日志记录设置将显示在信号日志记录选择器中。覆盖设置将灰显,表示无法覆盖这些设置。若要重新激活覆盖设置,请设置日志记录模式来超越信号
.使用信号记录选择器覆盖特定信号的记录不会影响该信号的信号记录指示器。
如果关闭然后重新打开模型,如果记录模式设置为覆盖该模型的信号,则记录设置覆盖的日志记录设置覆盖。当模型显示信号日志记录指示灯时,它会显示所有记录信号的指示灯,包括已覆盖的记录信号。
请注意
金宝appSimulink在以下情况下重建一个模型:
模型包含一个或多个标记用于信号记录的信号。
你在快速加速模式下模拟模型。
您可以使用信号记录选择器或MATLAB®命令行修改信号日志记录配置。
再次以快速加速器模式模拟模型。
使用以下方法之一打开信号记录选择器:
在配置参数>数据导入/导出窗格中,单击配置日志信号按钮
提示
要启用配置日志信号按钮,选择信号记录配置参数。
对于包含模型块,你也可以使用以下方法:
在Simuli金宝appnk编辑器中,右键单击a模型块。
在上下文菜单中,选择日志引用的信号.
集日志记录模式来超越信号
.
请注意
的超越信号
此设置影响模型层次结构的所有级别。此设置可能导致根据现有设置关闭整个层次结构中任何信号的日志记录。若要查看设置,请在中选择相应的节点模型层次结构窗玻璃
查看包含要覆盖的记录信号的节点。如有必要,展开节点或配置模型层次结构窗格以显示屏蔽子系统。看使用信号记录选择器查看记录配置.
覆盖信号记录设置。根据您的模型是否使用模型引用,使用以下方法之一:
提示
打开配置参数>数据导入/导出窗格中,使用按钮
如果您的模型不使用模型引用(也就是说,模型不包含任何模型块),使用以下步骤覆盖信号记录设置。
打开信号记录选择器。在配置参数>数据导入/导出窗格中,单击配置日志信号按钮
如有必要,请选择信号记录使配置日志信号按钮
集日志记录模式来超越信号
.
查看包含要覆盖的记录信号的节点。如有必要,展开节点或配置模型层次结构窗格以显示屏蔽子系统。看使用信号记录选择器查看记录配置.
在内容窗格表中,选择要覆盖其日志记录设置的信号。
覆盖日志记录设置:
若要禁用信号的日志记录,请清除数据记录
勾选这个信号。
要覆盖其他信号记录设置(例如,抽取),请确保数据记录
选中复选框。然后,编辑相应列中的值。
如果模型使用模型引用(即,模型至少包含一个模型块),使用以下一个或多个程序覆盖信号记录设置:
为所有记录的信号启用日志记录。默认情况下,Simuli金宝appnk记录模型中的所有记录信号,包括整个模型参考层次结构中的记录信号。
如果对顶级模型或顶级模型中任何已记录的信号禁用日志记录模型块在模型引用层次中,然后在模型层次结构窗格中,该节点左侧的复选框为:
坚实的(),如果对某些信号禁用日志记录。
空的(),如果对所有信号禁用日志记录。
为某个节点开启记录所有已记录信号的功能。
打开信号记录选择器。在配置参数>数据导入/导出窗格中,单击配置日志信号按钮
集日志记录模式来超越信号
.
查看包含要覆盖的记录信号的节点。如有必要,展开节点或配置模型层次结构窗格以显示屏蔽子系统。看使用信号记录选择器查看记录配置.
在模型层次结构窗格中,选中节点左侧的复选框,使该复选框具有复选标记().
对于顶级模型,日志记录为顶级模型中的所有记录信号启用,但不为模型引用层次结构中的记录信号启用。
对于一个模型块,则为所选引用模型的整个模型引用层次结构启用日志记录。
禁用节点中记录所有信号。如果为模型节点中的任何信号启用了信号记录,则在模型层次结构窗格中,节点左侧的复选框为:
坚实的(),如果对某些信号启用了日志记录。
检查(),如果为所有信号启用了日志记录。
要禁用模型节点中所有已记录信号的记录,请执行以下操作:
打开信号记录选择器。在配置参数>数据导入/导出窗格中,单击配置日志信号按钮
集日志记录模式来超越信号
.
查看包含要覆盖的记录信号的节点。如有必要,展开节点或配置模型层次结构窗格以显示屏蔽子系统。看使用信号记录选择器查看记录配置.
在模型层次结构窗格中,清除节点左侧的复选框,以便该复选框为空().
对于顶级模型,顶级模型中所有记录的信号都禁用日志记录,但对模型引用层次结构中的记录信号则不禁用日志记录。
对于一个模型块,则对所选引用模型的整个模型引用层次结构禁用日志记录。
覆盖信号子集的信号记录。在模型节点中记录一些(而不是全部)记录的信号:
打开信号记录选择器。在配置参数>数据导入/导出窗格中,单击配置日志信号按钮
集日志记录模式来超越信号
.
查看包含要覆盖的记录信号的节点。如有必要,展开节点或配置模型层次结构窗格以显示屏蔽子系统。看使用信号记录选择器查看记录配置.
在模型层次结构窗格中,确保选中顶级模型或模型块要么是实心的,要么是实心的(),如果对某些信号禁用了日志记录,或为空(
),如果对所有信号禁用日志记录。单击复选框循环不同的状态。
在内容窗格表中,对于要记录的信号,选择数据记录
列。
要启用多个信号的日志记录,请按住转变或Ctrl键并选择一系列信号或单个信号。选中“中”复选框数据记录
突出显示的信号之一的列。
覆盖其他信号记录属性。除了覆盖数据记录
属性,则可以覆盖其他信号日志记录属性,如抽取。
打开信号记录选择器。在配置参数>数据导入/导出窗格中,单击配置日志信号按钮
集日志记录模式来超越信号
.
查看包含要覆盖的记录信号的节点。如有必要,展开节点或配置模型层次结构窗格以显示屏蔽子系统。看使用信号记录选择器查看记录配置.
在模型层次结构窗格中,确保选中顶级模型或模型块是实心的(),如果对某些信号禁用日志记录,或为空(
),如果对所有信号禁用日志记录。单击复选框循环不同的状态。
在内容窗格表中,对于要覆盖其日志记录属性的信号,通过选中数据记录
列。
要启用多个信号的日志记录,请按住转变或Ctrl键并选择一系列信号或单个信号。选中“中”复选框数据记录
突出显示的信号之一的列。
在内容窗格表,修改属性的设置,例如抽取数据
和大量毁灭
.
覆盖信号记录设置的MATLAB命令行界面包括:
的DataLoggingOverride
模型参数-用于查看或设置模型的信号记录覆盖值
下面的类:
—指定一个型号的信号记录覆盖设置。这个类对应于整个Signal Logging Selector接口。金宝appSimulink.SimulationData.ModelLoggingInfo
—覆盖特定信号的设置。这个类对应于Signal logging Selector中的logging属性表中的一行:金宝appSimulink.SimulationData.SignalLoggingInfo
- 覆盖信号日志记录设置,例如抽取。此类对应于信号日志记录选择器中的日志属性表中的可编辑列。金宝appSimulink.SimulationData.LoggingInfo
要查询模型的信号记录覆盖状态,请使用DataLoggingOverride
参数。
要从命令行配置信号日志记录,请使用上面列出的三个类的方法和属性。要应用配置,请使用set_param
和DataLoggingOverride
模型参数。
下面几节描述如何使用命令行界面执行一些常见的信号日志配置任务。
要使用命令行界面覆盖信号日志设置,首先创建金宝appSimulink.SimulationData.ModelLoggingInfo
对象。的模型日志记录覆盖对象ex_bus_logging
并自动将模型中记录的每个信号添加到该对象:
open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,...“例子”,“ex_bus_logging”)));open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,...“例子”,“ex_mdlref_counter_bus”)));mi = 金宝appSimulink.SimulationData.ModelLoggingInfo.createFromModel (...“ex_bus_logging”)
mi = ModelLoggingInfo with properties: Model: 'ex_bus_logging' LoggingMode: 'OverrideSignals' LogAsSpecifiedByModels: {} Signals: [1x4 金宝appSimulink.SimulationData.SignalLoggingInfo]
的记录模式
属性设置为OverrideSignals
,它将模型日志记录覆盖对象配置为仅记录信号
财产。
要应用模型替代对象设置,请使用:
设置参数(ex_总线记录,“DataLoggingOverride”、mi);
金宝app保存模型时,Simulink会保存设置。
您可以控制包含日志信号的系统类型。默认情况下,金宝appSimulink.SimulationData.ModelLoggingInfo
对象包含记录的信号来自:
图书馆
屏蔽子系统
引用模型
活性变异体
作为替代,您可以使用金宝appSimulink.SimulationData.ModelLoggingInfo
构造函数,并指定金宝appSimulink.SimulationData.SignalLoggingInfo
对象为每个信号。要确保为模型指定了有效的信号记录设置,请使用verifySignalAndModelPaths
方法与金宝appSimulink.SimulationData.ModelLoggingInfo
对象。
要指定是使用模型和所有参照模型中指定的信号记录设置,还是替代这些设置,请使用记录模式
财产的金宝appSimulink.SimulationData.ModelLoggingInfo
对象。
您可以控制顶级模型和引用模型是使用覆盖信号日志设置还是使用模型指定的信号日志设置。看到
文档金宝appSimulink.SimulationData.ModelLoggingInfo
此示例显示了如何记录顶部模型和所有引用模型中指定的所有信号。信号记录输出存储在填充
.
open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,...“例子”,“ex_bus_logging”)));open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,...“例子”,“ex_mdlref_counter_bus”)));mi = 金宝appSimulink.SimulationData.ModelLoggingInfo...(“ex_bus_logging”);mi.LoggingMode=“LogallassspecifiedModel”
mi = ModelLoggingInfo带有属性:Model: 'ex_bus_logging' LoggingMode: ' logallasspecifiedmodel ' LogAsSpecifiedByModels: {} Signals: []
要应用模型替代对象设置,请使用:
设置参数(ex_总线记录,“DataLoggingOverride”、mi);
下面的例子展示了如何只记录top模型中的信号:
open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,...“例子”,“ex_bus_logging”)));open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,...“例子”,“ex_mdlref_counter_bus”)));mi = 金宝appSimulink.SimulationData.ModelLoggingInfo...(“ex_bus_logging”);mi.LoggingMode=“OverrideSignals”;mi = mi.setLogAsSpecifiedInModel (“ex_bus_logging”,真正的);
要应用模型替代对象设置,请使用:
设置参数(ex_总线记录,“DataLoggingOverride”、mi);
金宝app保存模型时,Simulink会保存设置。
对于记录的信号数量有限的简单模型,您可以创建一个空的金宝appSimulink.SimulationData.ModelDataLogInfo
对象。然后创建金宝appSimulink.SimulationData.SignalLoggingInf
O对象,并将这些对象分配给模型日志信息对象。
open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,...“例子”,“ex_bus_logging”)));open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,...“例子”,“ex_mdlref_counter_bus”)));mdl =“ex_bus_logging”;黑色=“ex_总线记录/增量总线创建者”;blkPort = 1;load_system (mdl);ov = 金宝appSimulink.SimulationData.ModelLoggingInfo (mdl);所以= S金宝appimulink.SimulationData.SignalLoggingInfo(黑色,blkPort);ov.Signals (1) =;%应用这个对象使模型设置参数(mdl,“DataLoggingOverride”、ov);%模拟sim (mdl);%注意,只有信号填充
要应用模型替代对象设置,请使用:
设置参数(mdl,“DataLoggingOverride”,ov);
金宝app保存模型时,Simulink会保存设置。
对于使用模型引用的模型或复杂的模型,要指定要记录的日志信号的子集,请考虑使用findSignal
方法金宝appSimulink.SimulationData.ModelLoggingInfo
对象。例如,只记录来自被引用的模型实例的一个信号:
open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,...“例子”,“ex_bus_logging”)));open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,...“例子”,“ex_mdlref_counter_bus”)));mi = 金宝appSimulink.SimulationData.ModelLoggingInfo.createFromModel (...“ex_bus_logging”);pos = mi.findSignal ({“ex_总线记录/计数器A”...“ex_mdlref_计数器_总线/总线创建者”}, 1)
位置=4
为idx = 1:长度(mi.Signals) mi.Signals .LoggingInfo (idx)。DataLogging = (idx == pos);结束
要应用模型替代对象设置,请使用:
设置参数(ex_总线记录,“DataLoggingOverride”、mi);
金宝app保存模型时,Simulink会保存设置。
除了覆盖数据记录
属性,则可以覆盖其他信号日志记录属性,如抽取。
使用
属性以覆盖信号日志记录属性。以下示例显示如何设置抽取覆盖设置。金宝appSimulink.SimulationData.LoggingInfo
open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,...“例子”,“ex_bus_logging”)));open_system (docpath (fullfile (docroot,“工具箱”,“金宝app模型”,...“例子”,“ex_mdlref_counter_bus”)));mi = 金宝appSimulink.SimulationData.ModelLoggingInfo.createFromModel...(“ex_bus_logging”);pos = mi.findSignal ({“ex_总线记录/计数器A”...“ex_mdlref_计数器_总线/总线创建者”}, 1); mi.信号(位置).LoggingInfo.DecimateData=真;mi.信号(位置).LoggingInfo.Decimation=2;
要应用模型替代对象设置,请使用:
设置参数(ex_总线记录,“DataLoggingOverride”、mi);
金宝app保存模型时,Simulink会保存设置。