使用cdfx文件与Simulink数据字典
这个例子展示了如何将ASAM cdfx文件中的校准数据存储在数据字典中,并使用这些值作为Simulink®模型的参数。
导入数据
导入校准数据cdfx
函数。
cdfxObj = cdfx (“CDFXExampleFile.cdfx”)
cdfxObj = CDFX属性:Name: "CDFXExampleFile. "cdfx" Path: "/mathworks/home/rollinb/Documents/MATLAB/Examples/vnt-ex73237310-20190405222527/CDFXExampleFile.cdfx" Version: "CDF20"
用校准数据创建和填充数据字典
使用getValue
提取所需的参数到MATLAB®工作空间。
dictName =“CDFXExampleDD.sldd”
dictName = " CDFXExampleDD.sldd "
检查字典是否已经在工作文件夹中。
如果isfile (dictName)如果数据字典存在,打开它。dDict = Simulink.data.dictionary.open (dictName)其他的如果字典不存在,创建它并用CDFX数据填充。dDict = Simulink.data.dictionary.create(dictName)“设计数据”) addEntry (ddSection“gainParam”getValue (cdfxObj“ASAM.C.SCALAR.GAIN”) addEntry (ddSection“mapParam”getValue (cdfxObj“ASAM.C.MAP”))结束
dDict =带有属性的字典:DataSources: {0×1 cell} HasAccessToBaseWorkspace: 0 EnableAccessToBaseWorkspace: 0 HasUnsavedChanges: 0 NumberOfEntries: 2
显示数据字典的内容。
listEntry (dDict)
节名状态数据源LastModified LastModifiedBy类设计数据gainParam CDFXExampleDD。rollinb double设计数据mapam CDFXExampleDD。SLDD 2019-04-05 22:33 rollinb结构
链接数据字典到Simulink模型
打开Simulink模型,然后使用set_param
将现有数据字典链接到模型。这将允许模型访问字典中定义的值。
open_system (“CDFXSLDDModel.slx”);cdfxMdl = gcs
cdfxMdl = ' CDFXSLDDModel '
set_param (gcs,“DataDictionary”dictName)
现在可以关闭到数据字典的连接。
关上(dDict)
Lookup-Gain模型
这个模型包含:
的二维查找表块来表示
ASAM.C.MAP
参数。“Table data”字段表示实例的物理值,“Breakpoint”字段表示轴的物理值。增益块来表示
ASAM.C.SCALAR.GAIN
参数。到工作区块以记录模拟数据。
索引逻辑子系统
索引逻辑子系统使用的轴的物理值ASAM.C.MAP
参数,以及信号路由块和触发子系统,以生成查找索引的所有有效组合。如果需要在校准参数的所有可能输入值范围内进行测试,则此配置非常有用。
日志输出数据在MATLAB
模拟的输出通过to Workspace块发送到MATLAB,在那里它被存储为一个名为mapData
.这些数据现在可以在MATLAB工作区中检查和可视化。
sim (cdfxMdl);情节(mapData)标题(ASAM.C.MAP的仿真输出)
%The MathWorks, Inc.版权所有