本发明专利技术公开了一种汽车控制器开发软件的在环测试方法,包括:取得汽车控制器定点模型源代码封装形成S-function C文件;对S-function C文件进行编译生成与S-function C文件同名的动态链接库文件;将S-function模块名改为所述动态链接库文件名,生成封装源代码的S-function模块;将封装源代码的S-function模块与原始浮点模型放在同一新建模型中添加测试例形成测试模型;仿真测试模型得到S-function模块代码运行结果和原始浮点模型运行结果,对上述两种输出结果进行减法运算,再对减法后的结果取绝对值,得到S-function模块代码运行结果相对原始浮点模型运行结果的误差。本发明专利技术的在环测试方法避免了依赖第三方工具,节省了成本,操作更加方便,能直接对产品级代码进行测试,结果更具有可信性。
【技术实现步骤摘要】
本专利技术涉及汽车电子领域,特别是涉及一种汽车控制器开发软件的在环测试方 法。
技术介绍
汽车控制器研发算法建模(浮点模型)完成后,对算法模型进行定标处理得到定 点模型,然后利用美国迈斯沃克(MathWorks)公司开发的工业标准建模工具MTLAB软件中 的自动代码生成工具巧ealTimeWorkshop,RTW)或德国dSPACE公司的自动代码生成工具 TargetLink对定点模型进行自动代码生成,对生成的代码需要进行进一步测试,W验证模 型到代码的一致性,确定模型的定标是否准确,采用软件在环(Software-in-loop,SIL)测 试是一种有效的方式。 传统汽车控制器开发软件在环测试方法是利用自动代码生成工具RTW或 TargetLink对模型生成S-化nction封装,进后在MATLAB环境下进行仿真测试。传统的汽 车控制器开发软件在环测试方法具有W下缺点: 1.方法不够灵活。对使用自动代码生成工具RTW生成的代码和使用TargetLink 工具生成的代码,两者不能交互,只能在本工具下使用本工具所生成的代码。 2.自动代码生成工具RTW或TargetLink进行S-化nction封装的代码并不是产品 级的代码,不能很好的反映软件在环测试结果。 3.自动代码生成工具RTW进行软件在环测试有一定局限性,结果不够准确; TargetLink工具进行软件在环测试步骤比较繁琐,使用TargetLink需要购买许可 (license),增加了成本。 4.对手工代码无法直接使用工具进行软件在环测试测试。
技术实现思路
本专利技术要解决的技术问题是提供一种对定点模型源代码录入形式无限制能直接 对产品级代码进行测试的汽车控制器开发软件在环测试方法。所述产品级代码是指能直接 应用于产品的源代码。 为解决上述技术问题,本专利技术的,包括: 1)取得汽车控制器定点模型源代码,利用工业标准建模工具MTLAB软件对定点 模型源代码进行源代码封装形成S-化nctionC文件; 2)在MTLAB环境下利用mex命令对S-化nctionC文件进行编译,生成一个与 S-化nctionC文件同名的动态链接库文件; 3)在MATLAB环境下运行S-化nction模块并将S-化nction模块名改为所述动 态链接库文件名,使S-化nction模块与动态链接库相关联,更新模型,生成封装源代码的 S-function模块; 4)将步骤3)生成封装源代码的S-化nction模块与原始浮点模型放在同一新建模 型中添加测试例,形成测试模型;新建模型是新建的工程;利用MTLAB软件建模的时候首 先要打开一个空白的模型,送就相当于一个新建的模型,然后再在送个空白的模型中加入 必要的模型W实现某一特定的功能。 5)仿真测试模型得到S-化nction模块代码运行结果和原始浮点模型运行结果, 对上述两种输出结果进行减法运算,再对减法后的结果取绝对值,得到S-化nction模块代 码运行结果相对原始浮点模型运行结果的误差。 本专利技术的汽车控制器研发在环测试方法对定点模型源代码录入形式无限制(手 写或自动生成均可)能直接对产品级代码进行测试的汽车控制器开发软件在环测试方法 采用本专利技术后,只需在MTLAB环境下对测试模型进行仿真,即能得到S-化nction模块代码 运行结果相对原始浮点模型运行结果的误差,得到仿真波形和数据。本专利技术的在环测试方 法避免了依赖第Η方工具,节省了成本,操作更加方便,能直接对产品级代码进行测试,结 果更具有可信性。【附图说明】 下面结合附图与【具体实施方式】对本专利技术作进一步详细的说明: 图1是本专利技术的流程示意图,W自动生成代码为例。【具体实施方式】 本专利技术提供一种,包括: 1)取得手动录入或软件自动生成的汽车控制器定点模型源代码,利用工业标准建 模工具MTLAB软件对定点模型源代码进行源代码封装形成S-化nctionC文件;WC源代 码封装为例,其过程如下: ①利用美国迈斯沃克(MathWorks)公司开发的工业标准建模工具MTLAB软件实 现对C源代码的封装。在MATLAB的Simulink模块库下打开S-化nction模块的C文件模 板"BasicC-MEXTemplate",并另存为到工作路径下。 ②在S-化nctionC文件下,修改代码中的S_FUNCTI0N_NAME与该C文件名一致。 ⑨在S-化nctionC文件中的"#include"位置把要封装的源代码的C文件、头文 件包含进来,格式为"#^(:111(16<头文件名/C文件名〉"。 ④在S-functionC文件中的初始化函数mdllnitializeSizesQ中定义输入输出 个数和数据类型,如定义两个intl6形式的输入端口代码如下:⑤在S-化nction C文件中的模型输出函数mdlOu化utsο中定义S-化nction的输入输出端口与外部变量的对应关系,首先把S-化nction的输入信号赋给源代码中 的输入全局变量,然后调用源代码中主函数,最后把源代码中的输出全局变量的值赋给 S-function的输出信号,至此S-function C文件封装完毕。 2)在MATLAB环境下利用mex命令对S-化nction C文件进行编译,生成一个与 S-化nction C文件同名的动态链接库文件.mexw32 ;该文件用于S-化nction模块的生成和 模型仿真。.mexw32是动态链接库文件的后缀名。 3)在MATLAB环境下运行S-化nction模块并将S-化nction模块名改为所述动 态链接库文件名,使S-化nction模块与动态链接库相关联,更新模型,生成封装源代码的 S-化nction模块;该模块调用S-化nction C文件同名的动态链接库文件,用于后面的建模 仿真。 4)将步骤3)生成封装源代码的S-化nction模块与原始浮点模型放在同一新建模 型中添加测试例,形成测试模型;添加的测试例根据测试需求设置,例如接口、信宿等模块。 5)仿真测试模型得到S-化nction模块代码运行结果和原始浮点模型运行结果, 利用MTLAB库中加减法模块Add对上述两种输出结果进行减法运算,再利用MTLAB库中 的取绝对值模块abs对减法后的结果取绝对值,得到S-化nction模块代码运行结果相对原 始浮点模型运行结果的误差,即软件在环测试结果。若两者误差小于等于设计需求则完成 汽车控制器开发软件研发,若两者误差大于设计需求则进行调试修改后再次进行本专利技术在 环测试。 W上通过【具体实施方式】和实施例对本专利技术进行了详细的说明,但送些并非构成对 本专利技术的限制。在不脱离本专利技术原理的情况下,本领域的技术人员还可做出许多变形和改 进,送些也应视为本专利技术的保护范围。【主权项】1. 一种,其特征是,包括: 1) 取得汽车控制器定点模型源代码,利用工业标准建模工具MATLAB软件对定点模型 源代码进行源代码封装形成S-functionC文件; 2) 在MATLAB环境下利用mex命令对S-functionC文件进行编译,生成一个与 S-functionC文件同名的动态链接库文件; 3) 在MATLAB环境下运行S-function模块并将S-functio本文档来自技高网...
【技术保护点】
一种汽车控制器开发软件的在环测试方法,其特征是,包括:1)取得汽车控制器定点模型源代码,利用工业标准建模工具MATLAB软件对定点模型源代码进行源代码封装形成S‑function C文件;2)在MATLAB环境下利用mex命令对S‑function C文件进行编译,生成一个与S‑function C文件同名的动态链接库文件;3)在MATLAB环境下运行S‑function模块并将S‑function模块名改为所述动态链接库文件名,使S‑function模块与动态链接库相关联,更新模型,生成封装源代码的S‑function模块;4)将步骤3)生成封装源代码的S‑function模块与原始浮点模型放在同一新建模型中添加测试例,形成测试模型;5)仿真测试模型得到S‑function模块代码运行结果和原始浮点模型运行结果,对上述两种输出结果进行减法运算,再对减法后的结果取绝对值,得到S‑function模块代码运行结果相对原始浮点模型运行结果的误差,即软件在环测试结果。
【技术特征摘要】
【专利技术属性】
技术研发人员:夏洪涛,郑鸿云,王静,
申请(专利权)人:联创汽车电子有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。