主要内容

读和写块参数

如果你管理模型数据在外部文件中,您可以使用脚本之间传递数据的数据文件和一个仿真软件®模型。金宝app这个例子向您展示了如何阅读阻止参数数据和参数数据写入一个Excel®数据文件。具体地说,这个例子提供了读和写的函数映射SI引擎参数数据。你可以适应函数来读取和写入参数附加块。

开映射SI引擎块

打开映射SI引擎块double-lane改变参考应用。

打开Double-Lane改变参考应用

workDir = pwd;vdynblksDblLaneChangeStart;cd (workDir);

设置一个变量等于块路径。

英国石油(bp) =“SiMappedEngineV /映射SI引擎”;%块路径

开映射SI引擎块

DLCReferenceApplication模型中,导航到客运车辆>理想的映射引擎>SiMappedEngineV。打开映射SI引擎块。的断点的命令转矩,为发动机转速输入断点,气缸数,曲柄转每动力冲程,流离失所的总额参数设置为工作空间变量。

示例中的功能覆盖工作空间变量的值在数据文件中。

指定数据文件配置

首先,指定文件名。这个示例文件SiEngineData.xlsx包含三个表。第一张工作表包含命令的标量值转矩断点,断点发动机转速输入断点、气缸、曲轴革命,和流离失所的总额。第二个表包含一个表的制动转矩值映射。第三个表包含燃料表值转矩映射。

文件名=“SiEngineData.xlsx”;

注意第一张工作表文件中指定气缸数,Ncyl参数,6

接下来,定义的配置数据引擎子系统。这个例子中设置一个配置双变量大小的标量,矢量,或者一个二维数组。

  • 标量数据结构指定第一张工作表上的数据。

  • 矢量数据结构指定第二个表上的数据。

  • 数组数据结构指定第三个表上的数据。

engData =结构();%发动机参数数据%标量数据engData。Ncyl =结构(“xlSheet”,“主要”,“xlRange”,“C7: C7”,“slBlockPath”英国石油公司,“slBlockParam”,“Ncyl”);engData。Cps =结构(“xlSheet”,“主要”,“xlRange”,“C8: C8”,“slBlockPath”英国石油公司,“slBlockParam”,Cps的);engData。Vd =结构(“xlSheet”,“主要”,“xlRange”,制备过程:C9的,“slBlockPath”英国石油公司,“slBlockParam”,Vd的);%矢量数据engData。t_bpt =结构(“xlSheet”,“主要”,“xlRange”,“C3: R3”,“slBlockPath”英国石油公司,“slBlockParam”,“f_tbrake_t_bpt”);engData。n_bpt =结构(“xlSheet”,“主要”,“xlRange”,“C4: R4”,“slBlockPath”英国石油公司,“slBlockParam”,“f_tbrake_n_bpt”);% 2 d数组数据engData。来rque = struct(“xlSheet”,制动转矩的,“xlRange”,“B2:篮”,“slBlockPath”英国石油公司,“slBlockParam”,“f_tbrake”);engData。燃料=结构(“xlSheet”,“燃料地图”,“xlRange”,“B2:篮”,“slBlockPath”英国石油公司,“slBlockParam”,“f_fuel”);

读SI引擎块映射参数

更新SI引擎块映射到数据文件中指定的值。

读取数据文件和更新参数

使用这个代码来读取数据文件和更新映射SI引擎块参数。

f =字段(engData);idx = 1:长度(f)试一试var = getfield (engData f {idx});%从Excel阅读价值val = readmatrix(文件名,“表”var.xlSheet,“范围”,var.xlRange);%开放模型模型金宝appmdl = fileparts (var.slBlockPath);open_system (mdl);%设置参数值并保存模型set_param (var。slBlockPath、var.slBlockParam mat2str (val));save_system (mdl);%返回任何错误信息disp (getReport(我,“扩展”,“超链接”,“上”)流(“\ nContinuing下变量…\ n \ n”);结束结束流(“做写值模型\ n”金宝app)
写值仿真软件完成金宝app

开映射SI引擎块

DLCReferenceApplication模型中,导航到客运车辆>理想的映射引擎>SiMappedEngineV。打开映射SI引擎块。的断点的命令转矩,为发动机转速输入断点,气缸数,曲柄转每动力冲程,流离失所的总额参数设置为指定的值在数据文件中。确认制动转矩映射燃料流量图参数是一样的数据文件中指定的值。

写修改参数数据文件

在映射SI引擎块,改变气缸数,NCyl参数从68。点击应用。保存模型。

另外,使用这段代码更新参数并保存模型。

set_param (bp,“Ncyl”,“8”);save_system (“SiMappedEngineV”);

参数数据写入文件

创建数据文件的一个副本。写修改参数数据的数据文件的副本。

拷贝文件(“SiEngineData.xlsx”,“SiEngineDataCopy.xlsx”,“f”);文件名=“SiEngineDataCopy.xlsx”;

接下来,使用这段代码来编写映射SI引擎块断点的命令转矩,为发动机转速输入断点,气缸数,曲柄转每动力冲程,流离失所的总额,制动转矩映射,燃料流量图参数数据文件。

%从模型仿真软件读取数据然后写入E金宝appxcelf =字段(engData);idx = 1:长度(f)试一试var = getfield (engData f {idx});%开放模型模型金宝appmdl = fileparts (var.slBlockPath);open_system (mdl);从仿真软件%阅读价值金宝appval = str2num (get_param (var。slBlockPath var.slBlockParam));%值写入Excelwritematrix (val,文件名,“表”var.xlSheet,“范围”,var.xlRange);%返回任何错误信息disp (getReport(我,“扩展”,“超链接”,“上”)流(“\ nContinuing下变量…\ n \ n”);结束结束流(“做了写数据到Excel \ n”)
写数据到Excel

打开文件,修改后的数据。确认气缸数数据文件8

另请参阅

相关的话题