您可以为模拟中的所有步骤记录本地或全局数据存储数据变量的值。数据存储日志记录的两个常见用途用于:
模型调试 - 查看所有数据存储写入的顺序
确认一个模型修正 - 使用所记录的数据以建立基线为用于识别模型修正的影响进行比较的结果
用于记录一个全球性的数据存储的一个例子,见使用多种模型的数据存储。
您可以记录使用以下数据类型的数据存储:
所有的内置数据类型
枚举数据类型
定点数据类型
您可以登录使用任何尺寸级别或复杂性的数据存储。
使用模型中使用数据存储日志记录的限制是:
要为数据存储内存日志数据:
模拟在正常模式下的顶级机型。
对于本地数据存储中,包含数据存储存储器块中的模型必须在模型参考正常模式。
引用模型中的任何块都必须在模型参考正常模式下执行写入数据存储存储器。
在“配置参数”对话框的“求解器”窗格中,如果对待每个离散速率作为单独的任务被选择时,你不能登录使用异步采样时间或混合的采样时间(即,采样时间从当用于数据存储不同数据源具有不同的采样时间得到的)数据存储存储器块。
有关查看关于采样时间信息的详细信息,请参阅查看采样时间信息。
您无法登录的数据存储在使用自定义数据类型。
要登录本地数据存储,您使用的数据存储内存块创建:
在模型中,打开模型数据编辑器。选择看法>模型数据编辑器。
在这一点数据存储选项卡,设置改变视图下拉列表仪器
。
在数据表中,目标数据存储,选择复选框日志数据柱子。
如果目标数据存储没有出现在该表中,单击更改范围按钮以显示在当前系统下方的子系统中定义的数据存储。
可选地,要配置其他日志记录特性,例如要记录的最大数据点数,请打开属性检查器(看法>属性检查器在模型中)。使用Property Inspector打开块对话框并检查记录标签。
使数据存储使用数据存储模型配置参数>数据导入/导出>数据存储范围。
模拟模型。
启用模型的日志记录时,配置日志记录本地数据存储,数据存储内存块会显示一个蓝色图标。如果未启用模型的日志记录,则图标为灰色。
万博1manbetxsimulink.signal.
目的您可以使用a创建本地和全局数据存储万博1manbetxsimulink.signal.
目的。看数据存储与信号对象有关详细信息。
要记录的数据存储,你用创建万博1manbetxsimulink.signal.
目的:
创建一个万博1manbetxsimulink.signal.
对象在工作空间中是可见的每一个组件,它需要访问数据存储,如在数据存储与信号对象。
使用名称万博1manbetxsimulink.signal.
对象在数据存储名称数据存储读取和数据存储写入块的块参数要写入并从数据存储器中读出。
来自Matlab.®命令行中,集数据记录
(这是一个属性LoggingInfo
财产万博1manbetxsimulink.signal.
) 到1
。
例如,如果您使用的是万博1manbetxsimulink.signal.
对象调用DataStoreSignalObject
创建一个数据存储,请使用以下命令:
DataStoreSignalObject.LoggingInfo.DataLogging = 1
可选地,指定数据的记录量的限制,使用以下属性,它们是的性质LoggingInfo
财产的财产万博1manbetxsimulink.signal.
目的:抽取
那LimitDataPoints
, 和MaxPoints
。
使数据存储使用数据存储模型配置参数>数据导入/导出>数据存储范围。
模拟模型。
下面的Simulink万博1manbetx®类表示从数据存储日志记录数据,并提供用于访问数据的方法:
班级 | 描述 |
---|---|
万博1manbetxSimulink.SimulationData.BlockPath |
表示完全指定的Simulink块路径;万博1manbetx用于捕获完整模型引用层次结构 |
万博1manbetxsimulink.simulationdata.dataset. |
存储记录的数据元素,并提供搜索功能;使用时组万博1manbetxSimulink.SimulationData.Element 单个对象中的对象 |
万博1manbetxSimulink.SimulationData.DataStoreMemory |
存储模拟期间从数据存储记录信息 |
您还可以将在比数据集其他格式的数据记录。有关更多信息,请参阅日志数据的数据集转换。
要从命令行查看数据存储日志记录数据,请查看基础工作区中的输出数据。数据存储日志记录数据集的默认变量是DSMOUT.
。
这sldemo_mdlref_dsm模型示出了用于查看数据存储日志记录的数据的方法。
为了找到在数据存储记录的数据元素的基础上,姓名
或者BlockType
属性使用getElement
的方法万博1manbetxsimulink.simulationdata.dataset.
。例如:
dsmout.getElement('refsignalval')ans = s万博1manbetximulink.simulationdata.dataStoreMemory包:Simulink.simulationData属性:名称:'refsignalval'块路径:[1x1 simulink.simulationdata.blockpath]范围:'local'dsmwriterblockpaths:[1x2 simulinkl.simulationdata。BlockPath] DSMwriters:[101x1 uint32]值:[101x1倍增]
为了通过索引来访问的元素,使用万博1manbetxSimulink.SimulationData.Dataset.getElement
方法。
万博1manbetxSimulink.SimulationData.BlockPath
|万博1manbetxSimulink.SimulationData.DataStoreMemory
|万博1manbetxsimulink.simulationdata.dataset.