这个例子展示了如何将来自ASAM cdfx文件的校准数据存储在数据字典中,并将这些值作为Simulink模型的参数。金宝app
使用。导入校准数据cdfx
函数。
cdfxObj = cdfx (“CDFXExampleFile.cdfx”)
cdfxObj = CDFX with properties:cdfx" Path: "/mathworks/home/rollinb/Documents/MATLAB/Examples/vnt-ex73237310-20190405222527/CDFXExampleFile.cdfx" Version: "CDF20"
使用getValue
将所需参数提取到MATLAB工作空间中。
dictName =“CDFXExampleDD.sldd”
dictName = " CDFXExampleDD.sldd "
检查dictionary是否已经在工作文件夹中。
如果isfile (dictName)%如果数据字典存在,请打开数据字典。dDict = 金宝appSimulink.data.dictionary.open (dictName)其他的%如果dictionary不存在,创建它并用CDFX数据填充。(Simulin金宝appk.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)
Section Name Status DataSource LastModified LastModifiedBy Class Design Data gainParam CDFXExampleDD。sldd 2019-04-05 22:33 rollinb double Design Data mapParam CDFXExampleDD。SLDD 2019-04-05 22:33 rollinb struct
打开Simulin金宝appk模型,然后使用set_param
将现有的数据字典链接到您的模型。这将允许模型访问字典中定义的值。
open_system (“CDFXSLDDModel.slx”);cdfxMdl = gcs
cdfxMdl = ' CDFXSLDDModel '
set_param (gcs,“DataDictionary”dictName)
现在我们可以关闭与数据字典的连接。
关上(dDict)
这个模型包含:
块来表示ASAM.C.MAP
参数来自cdfx文件。“Table data”字段表示实例的物理值,“Breakpoint”字段表示轴的物理值。
块来表示ASAM.C.SCALAR.GAIN
参数来自cdfx文件。
到工作区块以记录模拟数据。
索引逻辑子系统使用坐标轴的物理值ASAM.C.MAP
参数以及信号路由块和被触发的子系统,以生成所有有效的查找索引组合。如果您需要测试校准参数的全部可能输入值,则此配置非常有用。
仿真的输出由to Workspace块发送到MATLAB,在那里它被存储为一个被调用的时间序列对象mapData
.现在可以在MATLAB工作空间中检查和可视化这些数据。
sim (cdfxMdl);情节(mapData)标题(ASAM.C.MAP的仿真输出)
%版权所有The MathWorks, Inc.