主要内容

覆盖信号日志设置

信号覆盖日志记录设置的好处

当你开发一个模型,您可能想要覆盖的信号记录设置一个特定的模拟运行。你可以覆盖信号日志记录属性不改变模型的仿真软件金宝app®编辑器。

减少内存开销和便于分析模拟测井结果,日志记录属性覆盖信号。通过覆盖信号日志设置,你可以避免重新编译一个模型。

信号覆盖日志记录属性是有用的,当你想:

  • 专注于只有少数信号通过禁用日志记录的信号标记为日志记录。你可以标记为测井信号的超集,然后选择不同子集的日志记录。

  • 排除一些日志输出信号的信号。

  • 日志记录属性覆盖特定信号,例如大量毁灭一个信号。

  • 收集运行时只需要多个测试向量。

两个接口日志记录设置为覆盖信号

使用两个接口信号覆盖日志设置:

您可以使用两个接口的组合。信号记录选择器创建金宝appSimulink.SimulationData.ModelLoggingInfo在保存对象覆盖设置。命令行界面的属性的名称对应于信号记录选择器接口。例如,金宝appSimulink.SimulationData.ModelLoggingInfo对象有LoggingMode属性,该属性对应日志记录模式参数信号记录选择器。

日志记录设置信号覆盖的范围

当你覆盖信号日志设置,仿真软件使用那些覆盖设置当你模拟模型。金宝app

金宝app仿真软件模型中保存您指定的信号记录覆盖配置。然而,模型并不改变金宝app信号中的日志记录设置信号属性对话框中的每个信号模型。

在信号记录选择器,如果你覆盖一些信号日志设置,然后设置日志记录模式日志中指定的所有信号模型日志设置中定义的模型出现在信号记录选择器。覆盖设置变成灰色,表示你不能覆盖这些设置。重新激活覆盖设置,设置日志记录模式覆盖信号。使用信号记录选择器覆盖日志记录为一个特定的信号不会影响信号测井信号指示器。

如果你关闭,然后重新打开模型中,日志记录设置覆盖,你实际上,如果日志记录模式设置为覆盖信号模型。当模型显示信号记录指标,它显示了所有记录信号的指标,包括记录的信号覆盖。

请注意

软件重建模型在以下情况下:

  1. 模型包含一个或多个信号记录标记为信号。

  2. 你在快速加速器模式模拟模型。

  3. 使用信号记录选择器或MATLAB®命令行修改日志配置的信号。

  4. 你又在快速加速器模式模拟模型。

与信号覆盖信号记录设置日志记录选择器

  1. 打开信号记录选择器。

    • 配置参数>数据导入/导出窗格中,单击配置信号记录按钮。

      配置信号Logbutton配置参数对话框。

      提示

      要启用配置信号记录按钮,选择信号记录配置参数。

  2. 日志记录模式覆盖信号

    请注意

    覆盖信号设置影响模型层次结构的所有水平。这个设置会导致关闭日志记录对任何信号在整个层次结构,基于现有设置。检查设置,选择适当的节点模型层次结构窗格。

  3. 查看节点包含记录的信号,你想覆盖。如果有必要,扩大节点或配置模型层次结构窗格显示蒙面子系统。看到查看日志配置使用信号记录选择器

  4. 覆盖信号日志设置。使用下列方法之一,这取决于您的模型使用模型引用:

提示

打开配置参数>数据导入/导出从信号记录选择器面板,使用按钮。

模型没有模型引用:覆盖信号日志设置

如果你的模型不使用模型引用(即不包括任何模型模型块),覆盖信号记录设置使用以下过程。

  1. 打开信号记录选择器。在配置参数>数据导入/导出窗格中,单击配置信号记录按钮。

    • 如果有必要,选择信号记录要启用配置信号记录按钮。

    信号记录选择器显示了信号的层次结构,并允许您设置日志记录模式。

  2. 日志记录模式覆盖信号

  3. 查看节点包含记录的信号,你想覆盖。如果有必要,扩大节点或配置模型层次结构窗格显示蒙面子系统。看到查看日志配置使用信号记录选择器

  4. 内容面板表,选择日志设置你想要覆盖的信号。

  5. 覆盖日志设置:

    • 禁用日志记录的信号,清除数据采集复选框的信号。

    • 覆盖其他信号记录设置(例如,大批杀害),确保数据采集复选框被选中。然后,编辑适当的列中的值。

模型与模型引用:覆盖信号日志设置

如果你的模型使用模型引用(即模型包括至少一个模型块),覆盖信号记录设置使用一个或多个这样的过程:

启用日志记录信号。默认情况下,仿真软件日志金宝app中的所有记录的信号模型,包括记录的信号在层次结构模型参考。

如果禁用日志记录在顶级顶级模型或信号模型块在参考模型层次结构,然后在模型层次结构左边的窗格中,复选框节点:

  • 固体(),如果禁用日志记录的信号。

  • 空(),如果禁用日志记录的信号。

启用日志记录所有记录信号的节点:

  1. 打开信号记录选择器。在配置参数>数据导入/导出窗格中,单击配置信号记录按钮。

  2. 日志记录模式覆盖信号

  3. 查看节点包含记录的信号,你想覆盖。如果有必要,扩大节点或配置模型层次结构窗格显示蒙面子系统。看到查看日志配置使用信号记录选择器

  4. 模型层次结构窗格中,选中该复选框左边的节点,那么该复选框有一个复选标记()。

    • 顶层模型,启用日志记录信号在顶层模型,但不记录信号的层次结构模型参考。

    • 对于一个模型块引用模型层次结构的顶部,启用日志记录对整个模型参考等级选择的参考模型。

禁用日志记录所有节点的信号。如果启用了日志记录信号对任何信号模型中节点,然后在模型层次结构窗格中,左侧的复选框节点:

  • 固体(),如果启用了日志记录的一些信号。

  • 检查(),如果启用了日志记录的信号。

禁用日志记录所有记录信号的一个节点的模型:

  1. 打开信号记录选择器。在配置参数>数据导入/导出窗格中,单击配置信号记录按钮。

  2. 日志记录模式覆盖信号

  3. 查看节点包含记录的信号,你想覆盖。如果有必要,扩大节点或配置模型层次结构窗格显示蒙面子系统。看到查看日志配置使用信号记录选择器

  4. 模型层次结构窗格中,清除复选框左边的节点,所以复选框是空的()。

    • 顶层模型,禁用日志记录信号在顶层模型,但不记录信号的层次结构模型参考。

    • 对于一个模型块引用模型层次结构的顶部,禁用日志记录对整个模型参考等级选择的参考模型。

覆盖信号测井信号的一个子集。记录一些,但不是全部,记录信号模型节点:

  1. 打开信号记录选择器。在配置参数>数据导入/导出窗格中,单击配置信号记录按钮。

  2. 日志记录模式覆盖信号

  3. 查看节点包含记录的信号,你想覆盖。如果有必要,扩大节点或配置模型层次结构窗格显示蒙面子系统。看到查看日志配置使用信号记录选择器

  4. 模型层次结构窗格中,确保顶级模型或复选框模型块是固体(),如果禁用日志记录的一些信号,或空(),如果禁用日志记录的信号。单击复选框通过不同状态周期。

  5. 内容面板表,你想记录的信号,选择的复选框数据采集列。

    启用日志记录多个信号,保存转变Ctrl键,选择一个范围的信号或个人信号。选择的复选框数据采集列的一个突出显示的信号。

日志记录属性覆盖其他信号。除了覆盖的设置数据采集属性的一个信号,你可以覆盖其他信号日志记录属性,如大量毁灭。

  1. 打开信号记录选择器。在配置参数>数据导入/导出窗格中,单击配置信号记录按钮。

  2. 日志记录模式覆盖信号

  3. 查看节点包含记录的信号,你想覆盖。如果有必要,扩大节点或配置模型层次结构窗格显示蒙面子系统。看到查看日志配置使用信号记录选择器

  4. 模型层次结构窗格中,确保顶级模型或复选框模型块是固体()如果禁用日志记录的信号,或空(),如果禁用日志记录所有信号。单击复选框通过不同状态周期。

  5. 内容面板表,为你想要的信号覆盖日志记录属性,通过选择的复选框启用日志记录数据采集列。

    启用日志记录多个信号,保存转变Ctrl键,选择一个范围的信号或个人信号。选择的复选框数据采集列的一个突出显示的信号。

  6. 内容面板表,修改设置属性,如DecimateData大量毁灭

覆盖信号日志设置MATLAB

您可以使用MATLAB命令行接口日志记录设置为覆盖信号。

  • 查询模型的测井信号覆盖状态,使用DataLoggingOverride模型参数。

  • 从命令行配置信号记录、使用功能和属性的对象:

  • 应用配置,使用set_param函数与DataLoggingOverride模型参数。

你可以控制的各种系统包括记录的信号。默认情况下,金宝appSimulink.SimulationData.ModelLoggingInfo对象包括记录的信号:

  • 戴面具的子系统

  • 引用模型

  • 积极的变异

以下部分描述了如何使用命令行界面来执行一些常见的信号日志配置任务。

创建模型记录覆盖对象,记录信号

您可以创建一个模型记录覆盖对象模型sldemo_mdlref_bus并自动添加对象模型中的每个记录信号。该模型sldemo_mdlref_bus有四个信号标记为日志记录。

mdl =“sldemo_mdlref_bus”;open_system (mdl) mdlInfo =金宝app Simulink.SimulationData.ModelLoggingInfo.createFromModel (mdl)
mdlInfo = ModelLoggingInfo属性:模型:“sldemo_mdlref_bus”LoggingMode:“OverrideSignals”LogAsSpecifiedByModels:{}的信号:[1 x4 Simulink.SimulationData.Sign金宝appalLoggingInfo]

LoggingMode属性设置为“OverrideSignals”,配置模型记录覆盖对象只记录中指定的信号信号财产。

应用该模型覆盖对象设置。保存设置当您保存的软件模型。

set_param (mdl“DataLoggingOverride”,mdlInfo);

顶级和引用模型指定登录模式

您可以控制是否顶层模型和参考模型使用覆盖信号记录设置或使用指定的日志设置信号模型。这个例子展示了如何记录中指定的所有信号模型和所有引用的模型。

该模型sldemo_mdlref_bus有四个信号标记为日志记录。关于模型的更多信息,请参阅使用总线对象接口规范

mdl =“sldemo_mdlref_bus”;open_system (mdl)

创建一个模型记录覆盖对象。

mdlInfo = 金宝appSimulink.SimulationData.ModelLoggingInfo (mdl);

指定是否使用信号模型中指定的日志设置和所有引用的模型,或覆盖这些设置,使用LoggingMode覆盖对象属性模型的日志记录。

mdlInfo。LoggingMode =“LogAllAsSpecifiedInModel”
mdlInfo = ModelLoggingInfo属性:模型:“sldemo_mdlref_bus”LoggingMode:“LogAllAsSpecifiedInModel”LogAsSpecifiedByModels:{}的信号:[0 x0 Simulink.SimulationData.Sign金宝appalLoggingInfo]

使用set_param覆盖对象设置函数应用模型。保存设置当您保存的软件模型。

set_param (mdl“DataLoggingOverride”,mdlInfo);

模拟模型。信号存储在日志输出topOut

sim (mdl);topOut
topOut = 金宝appSimulink.SimulationData。数据集的topOut 4元素名称BlockPath _______ ________________________________________ 1 [1 x1信号]COUNTERBUS sldemo_mdlref_bus /连接2 [1 x1信号]OUTERDATA sldemo_mdlref_bus / CounterA 3 [1 x1信号]INCREMENTBUS sldemo_mdlref_bus / IncrementBusCreator 4 [1 x1信号]INNERDATA……时代| sldemo_mdlref_counter_bus /计数器使用大括号{}来访问,修改或添加元素使用索引。

设置日志记录模式的日志覆盖对象模型

您可以使用setLogAsSpecifiedInModel功能覆盖信号记录设置中指定的一个模型。例如,您可以记录只有上面的模型或只有一个参考模型在模型层次结构。该模型sldemo_mdlref_bus包含一个模型块命名CounterA引用模型sldemo_mdlref_counter_bus。总共四个信号被标记为日志记录。上面的模型有三个信号标记为日志记录:COUNTERBUS,INCREMENTBUS,OUTERDATA。引用的模型有一个信号标记为日志记录:INNERDATA

mdl =“sldemo_mdlref_bus”;mdlInner =“sldemo_mdlref_bus / CounterA”;open_system (mdl)

创建一个空金宝appSimulink.SimulationData.ModelLoggingInfo对象,这样没有信号时记录日志记录模式设置为覆盖设置中指定的信号财产。

mdlInfo = 金宝appSimulink.SimulationData.ModelLoggingInfo (mdl);

您可以使用setLogAsSpecifiedInModel函数记录只在顶部信号模型中指定使用日志设置,模型。设置外部模型中指定的记录信号模型。然后,设置内部模型使用覆盖设置。自信号属性向量是空的,没有信号覆盖应用设置时记录。

mdlInfo = setLogAsSpecifiedInModel (mdl mdlInfo真的);mdlInfo = setLogAsSpecifiedInModel (mdlInfo mdlInner,假);

getLogAsSpecifiedInModel函数返回日志模式。

outerLogMode = getLogAsSpecifiedInModel (mdlInfo mdl)
outerLogMode =逻辑1
innerLogMode = getLogAsSpecifiedInModel (mdlInfo mdlInner)
innerLogMode =逻辑0

应用该模型覆盖对象设置。然后,模拟模型。软件登录日志只有那些信号标记为模型。

set_param (mdl“DataLoggingOverride”,mdlInfo);sim (mdl);topOut
topOut = 金宝appSimulink.SimulationData。数据集的topOut 3元素的名字BlockPath _______ _____________________________________ 1 [1 x1信号]COUNTERBUS sldemo_mdlref_bus /连接2 [1 x1信号]OUTERDATA sldemo_mdlref_bus / CounterA 3 [1 x1信号]INCREMENTBUS sldemo_mdlref_bus / IncrementBusCreator -使用大括号{}来访问,修改或添加元素使用索引。

您还可以使用setLogAsSpecifiedInModel函数引用日志只有信号的模型使用日志设置中指定的模型。设置外部模型使用覆盖设置。然后,设置内部模型中指定的记录信号模型。

mdlInfo = setLogAsSpecifiedInModel (mdlInfo、mdl假);mdlInfo = setLogAsSpecifiedInModel (mdlInfo mdlInner,真的);

来验证模型和内部模型顶部的日志模式已经改变,您可以使用getLogAsSpecifiedInModel函数。

outerLogMode = getLogAsSpecifiedInModel (mdlInfo mdl)
outerLogMode =逻辑0
innerLogMode = getLogAsSpecifiedInModel (mdlInfo mdlInner)
innerLogMode =逻辑1

应用该模型覆盖对象设置。然后,模拟模型。这一次,只有软件日志INNERDATA信号。

set_param (mdl“DataLoggingOverride”,mdlInfo);sim (mdl);topOut
topOut = 金宝appSimulink.SimulationData。数据集的topOut 1元素名称BlockPath _____ ________________________________________ 1 [1 x1信号]INNERDATA…时代| sldemo_mdlref_counter_bus /计数器使用大括号{}来访问,修改或添加元素使用索引。

覆盖信号记录设置为特定的信号

您可以使用金宝appSimulink.SignalData.SignalLoggingInfo对象以编程方式覆盖日志记录设置为特定的信号。例如,您可以创建一个金宝appSimulink.SimulationData.SignalLoggingInfo对象覆盖信号日志设置,这样只有一个标记为日志记录的几个信号。

这个例子使用一个旋转离合器系统的一个模型。在模型中,十个信号被标记为日志记录。关于模型的更多信息,请参阅建立一个离合器锁定模式

mdl =“sldemo_clutch_override”;open_system (mdl);

您可以使用一个金宝appSimulink.SimulationData.SignalLoggingInfo对象只记录VehicleSpeed信号。的VehicleSpeed信号连接的第二个输出端口解锁子系统。创建一个金宝appSimulink.SimulationData.SignalLoggingInfo对象的VehicleSpeed信号通过BlockPathOutputPortIndex属性。

blkPath =“sldemo_clutch_override /解锁”;portNum = 2;sigInfo = 金宝appSimulink.SimulationData.SignalLoggingInfo (blkPath portNum);

创建一个空金宝appSimulink.SimulationData.ModelLoggingInfo对象。然后,分配信号记录覆盖设置sigInfo对象模型日志信息。

mdlInfo = 金宝appSimulink.SimulationData.ModelLoggingInfo (mdl);mdlInfo.Signals (1) = sigInfo;

使用verifySignalAndModelPaths函数来确保您指定的日志设置有效的信号模型。

verifiedObj = verifySignalAndModelPaths (mdlInfo)
verifiedObj = ModelLoggingInfo属性:模型:“sldemo_clutch_override”LoggingMode:“OverrideSignals”LogAsSpecifiedByModels:{}的信号:[1 x1 Simulink.SimulationData.Sign金宝appalLoggingInfo]

应用模型覆盖对象设置使用set_param函数。

set_param (mdl“DataLoggingOverride”mdlInfo)

模拟模型。验证VehicleSpeed是唯一的信号通过访问记录金宝appSimulink.SimulationData.Dataset对象sldemo_clutch_output

sim (mdl);sldemo_clutch_output
sldemo_clutch_output = 金宝appSimulink.SimulationData。数据集的sldemo_clutch_output 1元素名称BlockPath _______ _______________________________ 1 [1 x1信号]VehicleSpeed sldemo_clutch_override /解锁-使用大括号{}来访问,修改或添加元素使用索引。

采样点的日志子集

您可以使用一个金宝appSimulink.SimulationData.LoggingInfo对象创建一组信号记录覆盖设置一个信号。例如,您可以更改才设置记录的一个子集,在信号采样点。

打开模型sldemo_mdlref_bus。默认情况下,不毁掉数据模型。关于模型的更多信息,请参阅使用总线对象接口规范

mdl =“sldemo_mdlref_bus”;open_system (mdl)

你可以覆盖信号记录设置软件日志只采样点的一个子集COUNTERBUS信号通过指定一个大量毁灭因素LoggingInfo测井信号覆盖对象的属性。首先,创建一个金宝appSimulink.SimulationData.LoggingInfo对象的默认设置。

logInfo = 金宝appSimulink.SimulationData.LoggingInfo;

改变DecimateData大量毁灭属性记录每十数据点,从第一个采样点。

logInfo。DecimateData = true;logInfo。大量毁灭= 10;

创建一个金宝appSimulink.SimulationData.SignalLoggingInfo对象的COUNTERBUS信号。然后,只记录数据点的子集COUNTERBUS信号,设置LoggingInfo测井信号覆盖对象的属性logInfo

blkPath =“sldemo_mdlref_bus /连接”;sigInfo = 金宝appSimulink.SimulationData.SignalLoggingInfo (blkPath);sigInfo。LoggingInfo = logInfo;

创建一个空金宝appSimulink.SimulationData.ModelLoggingInfo对象。然后,分配信号记录覆盖设置sigInfo对象模型日志信息。

mdlInfo = 金宝appSimulink.SimulationData.ModelLoggingInfo (mdl);mdlInfo。信号= sigInfo;

应用模型覆盖对象设置使用set_param函数。

set_param (mdl“DataLoggingOverride”mdlInfo)

相关的例子

更多关于