main content

结合使用 cdfx 文件和 simulink 数据字典 -凯发k8网页登录

此示例说明如何将来自 asam cdfx 文件的标定数据存储在数据字典中,并将这些值用作 simulink® 模型的参数。

导入数据

使用 函数导入标定数据。

cdfxobj = cdfx("cdfxexamplefile.cdfx")
cdfxobj = 
  cdfx with properties:
       name: "cdfxexamplefile.cdfx"
       path: "/mathworks/home/rollinb/documents/matlab/examples/vnt-ex73237310-20190405222527/cdfxexamplefile.cdfx"
    version: "cdf20"

使用标定数据创建和填充数据字典

使用 将所需参数提取到 matlab® 工作区中。

dictname = "cdfxexampledd.sldd"
dictname = 
"cdfxexampledd.sldd"

检查字典是否已在工作文件夹中。

if isfile(dictname)
    % if data dictionary exists, open it.
    ddict = simulink.data.dictionary.open(dictname)
else
    % if dictionary does not exist, create it and populate with cdfx data.
    ddict = simulink.data.dictionary.create(dictname)
    ddsection = getsection(ddict, "design data")
    
    addentry(ddsection, "gainparam", getvalue(cdfxobj, "asam.c.scalar.gain"))
    addentry(ddsection, "mapparam", getvalue(cdfxobj, "asam.c.map"))
end
ddict = 
  dictionary with properties:
                    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   

将数据字典链接到 simulink 模型

打开 simulink 模型,然后使用 set_param 将该数据字典链接到您的模型。这将允许模型访问在字典中定义的值。

open_system("cdfxslddmodel.slx");
cdfxmdl = gcs
cdfxmdl = 
'cdfxslddmodel'
set_param(gcs, "datadictionary", dictname)

我们现在可以关闭与数据字典的连接。

close(ddict)

查找-增益模型

该模型包含:

  • 2-d lookup table 模块,表示 cdfx 文件中的 asam.c.map 参数。“table data”字段,表示实例的物理值;“breakpoint”字段,表示轴的物理值。

  • gain 模块,表示 cdfx 文件中的 asam.c.scalar.gain 参数。

  • to workspace 模块,用于记录仿真数据。

indexing logic 子系统

indexing logic 子系统使用 asam.c.map 参数轴的物理值以及信号路由模块和触发子系统,来生成查找索引的所有有效组合。如果您需要在标定参数的全部可能输入值范围内进行测试,这种配置会很有用。

在 matlab 中记录输出数据

仿真的输出由 to workspace 模块发送到 matlab,在那里它存储为时间序列对象,称为 mapdata。现在可以在 matlab 工作区中检查和可视化这些数据。

sim(cdfxmdl);
plot(mapdata)
title("simulation output for asam.c.map")

% 凯发官网入口首页 copyright 2018-2021 the mathworks, inc.

网站地图