日志数据在图书馆图表
在仿真金宝app软件®,您可以创建自己的库来重用模块或子系统的功能在一个或多个模型。类似地,您可以重用一组Stateflow®算法通过封装在图书馆的功能图。
与其他模型块库,你可以专门图金宝app书馆的每个实例图块在您的模型中使用不同的数据类型,样品时间,和其他属性。图书馆实例继承可以重用相同的属性生成的代码。
块模型库的更多信息,请参阅金宝app自定义库(金宝app模型)。
图书馆日志设置如何影响相关实例
图实例从图书馆继承日志记录属性图,他们是有联系的。你可以覆盖日志记录属性的实例,但只对您选择在图书馆的信号。你不能从实例选择额外的信号记录。
覆盖日志记录属性在图实例
覆盖属性图表记录信号的情况下,使用下列方法之一。
方法 | 如何使用 |
---|---|
金宝app仿真软件信号记录选择器对话框 | 看到覆盖与日志日志记录属性选择器 |
命令行界面 | 看到用命令行API覆盖日志记录属性 |
在原子子图表覆盖日志记录属性
该模型sf_atomic_sensor_pair
模拟一对冗余传感器作为原子子图表Sensor1
和Sensor2
在表格中RedundantSensors
。每个原子子图表包含实例的状态失败
,FailOnce
,好吧
从图书馆图sf_atomic_sensor_lib
。
覆盖与日志日志记录属性选择器
打开示例库
sf_atomic_sensor_lib
。打开图书馆。在模拟选项卡上,单击锁库。
在模型编辑器中金宝app,选择Stateflow
SingleSensor
图表。在模拟选项卡上,单击日志状态从列表。在Stateflow信号日志对话框,设置以下日志记录属性,然后单击好吧。
信号: 指定: 失败
选择测井信号数据复选框。
改变日志的名字自定义名称
LogFail
。点击应用。
FailOnce
选择测井信号数据复选框。
改变日志的名字自定义名称
LogFailOnce
。点击应用。
好吧
选择测井信号数据复选框。
改变日志的名字自定义名称
LogOK
。点击应用。
打开模型
sf_atomic_sensor_pair
。这个模型包含两个库表的实例。打开模型配置参数对话框。
在数据导入/导出窗格中,单击配置信号记录打开模型信号记录选择器。金宝app
在模型层次结构窗格中,展开
RedundantSensors
,然后单击Sensor1
和Sensor2
。每个实例从图书馆继承日志记录属性图。例如:
现在,覆盖一些日志记录属性
Sensor1
:在模型层次结构窗格中,选择
Sensor1
。改变日志记录模式来
覆盖信号
。选择器清除所有数据采集复选框的模型。
启用日志记录的
失败
和FailOnce
州Sensor1
:选择数据采集这两个信号。离开数据采集清除的
好吧
信号。附加的文本
Sensor1
日志的名字失败
和FailOnce
:双击日志名称的信号
失败
和FailOnce
、重命名LogFailSensor1
和LogFailOnceSensor1
,分别。
设置应该是这样的:
用命令行API覆盖日志记录属性
打开示例库
sf_atomic_sensor_lib
。日志的信号
失败
,FailOnce
,好吧
在SingleSensor
图表使用这些命令:%得到州SingleSensor图表rt = sfroot;州= rt.find (“是”,“Stateflow.State”);%为每个状态启用日志记录为i = 1: (i) .LoggingInfo长度(州)状态。数据采集= 1;结束
打开模型
sf_atomic_sensor_pair
。这个模型包含两个库表的实例。创建一个
ModelLoggingInfo
对象模型。这个对象包含一个向量
信号
商店所有记录信号。mi = 金宝appSimulink.SimulationData.ModelLoggingInfo。…createFromModel (“sf_atomic_sensor_pair”)
其结果是:
mi = 金宝appSimulink.SimulationData。ModelLoggingInfoPackage: Simulink.SimulationData Properties: Model: 'sf_atomic_sensor_pair' LoggingMode: 'OverrideSignals' LogAsSpecifiedByModels: {} Signals: [1x6 Simulink.SimulationData.SignalLoggingInfo]
的
信号
向量包含信号标记为登录图书馆图:图书馆的实例
失败
,FailOnce
,好吧
在原子子图表Sensor1
图书馆的实例
失败
,FailOnce
,好吧
在原子子图表Sensor2
确保
LoggingMode
=“OverrideSignals”
。每个记录信号的属性创建一个块路径覆盖。
访问内部信号Stateflow图表,使用
金宝appSimulink.SimulationData.BlockPath(paths, subpath)
,在那里子路径
在图代表一个信号。创建块路径信号
失败
,FailOnce
,好吧
在原子子图表Sensor1
在RedundantSensors
图:failPath = 金宝appSimulink.SimulationData。…BlockPath (“sf_atomic_sensor_pair / RedundantSensors / Sensor1”,“失败”)failOncePath = S金宝appimulink.SimulationData。…BlockPath (“sf_atomic_sensor_pair / RedundantSensors / Sensor1”,“FailOnce”)OKPath = S金宝appimulink.SimulationData。…BlockPath (“sf_atomic_sensor_pair / RedundantSensors / Sensor1”,“好吧”)
索引中的每个记录信号
金宝appSimulink.SimulationData.BlockPath
对象。信号的指数
失败
,FailOnce
,好吧
:failidx = mi.findSignal (failPath);failOnceidx = mi.findSignal (failOncePath);OKidx = mi.findSignal (OKPath);
信号覆盖一些日志记录属性
Sensor1
:禁用日志记录的信号
好吧
:mi.Signals .LoggingInfo (OKidx)。数据采集= 0;
附加的文本
Sensor1
日志的名字失败
和FailOnce
:%启用自定义命名mi.Signals .LoggingInfo (failidx)。NameMode = 1;mi.Signals .LoggingInfo (failOnceidx)。NameMode = 1;%输入自定义名称mi.Signals .LoggingInfo (failidx)。LoggingName =“LogFailSensor1”;mi.Signals .LoggingInfo (failOnceidx)。LoggingName =“LogFailOnceSensor1”;
应用更改:
set_param (bdroot“DataLoggingOverride”、mi);
另请参阅
金宝appSimulink.SimulationData.ModelLoggingInfo
(金宝app模型)|金宝appSimulink.SimulationData.BlockPath
(金宝app模型)