APP下载

基于MATLAB全模型方法的AMT控制系统开发

2017-08-23刘凌宋超谢勇波湖南中车时代电动汽车股份有限公司湖南株洲412007

客车技术与研究 2017年4期
关键词:挡位代码变速器

刘凌,宋超,谢勇波(湖南中车时代电动汽车股份有限公司,湖南株洲412007)

基于MATLAB全模型方法的AMT控制系统开发

刘凌,宋超,谢勇波
(湖南中车时代电动汽车股份有限公司,湖南株洲412007)

现有AMT控制软件开发普遍采用手写代码或单个模型方法,开发周期长、研发维护费用高。本文提出一种基于MATLAB全模型的软件开发方法,通过构建全功能覆盖的模型架构、基于时间调度的代码生成策略、底层信号到模型参数的自动映射、数据接口的统一管理、脚本控制的模型代码自动集成与编译等,实现了控制模型的高效开发与可靠集成,并得到应用验证。

全模型;AMT;控制系统;生成代码

现阶段,我国AMT自动变速器控制系统开发能力较为薄弱,仅限于少数与高校合作的企业,所开发的产品只能应用于舒适性要求较低的车型[1-2]。国内自动变速器的发展不仅需要精确的机械加工工艺,也需要复杂和先进的控制算法模型保证开发效果。

传统AMT控制软件的开发经历了两代。最开始是手写代码编程,控制算法、任务调度、数据管理等模块需要手动编码实现,对开发人员数量、编程功底有较高要求,同时手写过程难以保证代码品质,测试过程耗时较长,最终整个产品开发、测试、维护周期长、费用高,不能满足汽车电控软件快速开发需要。

为改善传统软件开发方式的效率与自动化程度,本文提出基于MATLAB全模型的AMT控制软件开发方法,除基础软件外,所有的调度、应用与数据都通过图形化的MATLAB模型进行管理,利用模型开发的低门槛要求,以及可视化与易操作的特点,同时结合工具自身所提供的函数库与测试环境,实现复杂功能的快速开发与软件模块的仿真验证。

1 传统设计方法与全模型开发方法比较

在传统的控制系统开发中,不管是纯手工代码的程序开发还是基于单个模型的算法开发方法,都会遵循如图1所示的流程开发。从图1可以看出,每一项设计工作需要等待上一步的完成,如果一次开发没有达到要求,需要反复修改软件、硬件结构,耗时耗力且不利于控制系统开发的发展[3]。

图1传统控制系统开发流程

图2 是全模型开发流程,其软件的开发与硬件的开发同时进行,在早期开发阶段就可以通过仿真测试发现功能缺失与错误,减少由于设计问题导致的项目返工;同时全模型的设计也大大提高软件的可读性与通用性,自动代码生成技术能够确保模型转换成符合功能安全要求的高效代码,产品的开发品质得到保证。

图2 全模型控制系统开发流程

2 AMT控制软件全模型开发及验证

AMT控制系统的开发基于通用的硬件平台,控制软件由包含底层驱动与系统服务在内的基础软件、以及面向各种控制任务的应用软件组成。

基于MATLAB的全模型方法即是将AMT控制软件的应用功能开发、代码集成、工程编译链接等步骤都集中在模型开发工具完成,屏蔽开发人员对底层代码的使用,实现当前工程下所有模型的一键式编译与二进制目标文件生成。

基于MATLAB的全模型方法需要增加额外设计过程以保证模型包括所有的控制功能、模型自动集成编译等,具体内容包括:控制任务的模型开发、多个控制任务被基础软件调用的时间调度机制实现、基础软件内部数据与模型的交互、模型的自动代码生成控制等。

2.1 控制任务的模型开发

AMT控制器通过方向、踏板、车速、坡度等信息,解析出目标挡位;通过选/换挡电机、离合电机的角度旋转,实现执行机构到目标挡位的位置移动。车辆运行过程的挡位切换与离合控制,需要协调发动机、电机的目标扭矩与转速,完成扭矩卸载、恢复与速度跟随,确保变速器、离合器位置与动力总成其他部件状态保持同步。

构建通畅的信息交流渠道。政府等相关部门应该及时有效地对食品企业进行安全教育培训及指导,鼓励社会力量和企业积极参与到食品安全建设的工作中,从而有效构建信息披露途径。同时,企业在政府、社会企业的监督和管理之下,需要向社会公众和监督部门及时披露食品安全信息,一旦发生安全问题应该及时利用媒介向公众道歉,做好公关处理和善后工作。

AMT控制器的应用功能一般包括:方向、踏板等信号的采集;目标挡位及位置换算;离合过程发动机目标转速、目标扭矩的计算;换挡过程电机目标转速、目标扭矩的计算;离合过程与换挡过程的状态切换;选、换挡电机位置控制;离合器电机位置控制等。

全模型方式采用MATLAB/Stateflow工具为所有功能建模,将上述功能分解成驾驶员接口模型、换挡策略模型、变速器控制主管理模型、离合器控制模型、发动机管理模型、车辆行驶模式识别模型、信号接口模型、安全诊断模型以及执行机构驱动模型等,这些模型通过信号的相互传递可以完成整个AMT控制系统的功能仿真[4-5]。

2.2 调度机制实现

对于AMT控制系统的开发,国外控制器一般采取携带操作系统的方法以便能够实现任务调度,而国内由于受到资源和平台的限制,多数企业开发的控制器并没有操作系统,但是无论采取什么样的方式开发,控制器里面的程序都会按照任务调度的方式运行,比如2 ms的任务2 ms执行一次,10 ms的任务10 ms执行一次。在全模型的开发方法中,将一个任务作为一个原子系统,建立的模型可以通过原子系统的设置,将所有2 ms等其他任务的代码生成一个函数,比如CRRCAMT _Step2 ms()就是一个2 ms任务函数。在控制器的2 ms任务调度中,只需要增加这样一个函数,所有的2 ms任务就可以按照制定的策略执行。由于在MATLAB生成的代码中,配置好的函数名字不会随着模型策略的修改而发生更改,因此控制器中所有任务调度的函数不需要手动做任何修改,只要在MATLAB环境中调用编译的脚本文件就可以完成整个工程的代码生成、编译,从而减少了软件工程师的工作量[6-8]。

2.3 基础软件与模型的数据交互

在传统的基于单个算法模型生成的代码中,可以发现需要引入的输入输出信号都为结构体的形式,这样生成的代码与底层信号交互,不但配置不方便,而且可读性也不好。

MATLAB全模型方法为与底层信号互联的输入输出端口定义信号属性,配置“mpt”代码生成包与“ImportedExtern”储存类,实际代码生成时所配置信号仅进行全局声明,模型实际调用的基础软件定义的同名全局变量,即直接访问底层信号。

对于某些模型变量,对储存位置有特殊要求,如非易失性数据必须定义在EEPROM储存区。MATLAB全模型方法为这类数据创建自定义储存类,变量定义时可灵活添加储存块的预编译指令,模型可以直接生成位于历史数据区、标定数据区的变量。

MATLAB全模型方法采用数据字典方式管理模型的特殊数据。AMT控制系统参数众多,模型包含大量标定量、信号量以及常量,MATLAB全模型方法为这些数据建立了统一的数据字典文件(见图3)。

图3 数据字典中的数据

数据字典还具有导入导出数据功能。当模型策略需要修改时,不可避免地需要增加一些数据和信号,对于新增的信号或者数据,如果由一个工程师维护就可以在同一个数据字典中新增,如果由多名软件工程师开发维护,就可以将这些数据全部集成在一个数据字典文件中。例如某一工程师开发AMT的接口模块,一工程师开发AMT离合器控制模块,他们各有一个数据字典文件,最后对于总模块中就可以合成一个数据字典文件而方便管理[6-8]。

2.4 模型的自动代码生成控制

MATLAB支持代码自动生成,但上述过程需要用户手动完成,且生成的文件不能自动嵌入集成开发环境进行编译、链接。MATLAB在代码生成过程会分阶段进行用户钩子(hook)脚本的检测,从而实现外部对代码生成过程的自定义控制。基于MATLAB的全模型方法利用该特点设计用户钩子脚本,在代码生成完成后进行代码文件的复制,将文件直接拷贝到工程的目标路径;根据MATLAB提供的activeX组件调用集成开发环境,实现工程文件添加、打开、编译等操作[9]。

2.5 全模型开发方法的验证

AMT控制软件变速器控制主管理模块被配置为10 ms的原子系统,模型自动代码生成后可以得到函数CRRCAMT_Step10 ms(),将此函数加入到10 ms任务中,而且后期维护过程中也只需要在MATLAB维护控制模型中10 ms的原子系统就可以完成程序的升级。针对全模型的开发,生成代码并编译后,最后实测采集到数据如图4所示。

图4实测AMT升挡过程曲线

图4 显示的是变速器挡位从1挡切换到2挡时AMT执行机构输出、传感器位置反馈、变速器输入轴转速变化的数据曲线;目标挡位由1变成2时,图中实际挡位位置从起始1挡位置点快速退至空挡,然后进入滑磨点进行短时间机械挤同步(此过程变速器输入轴转速也在进行主动同步跟随),最后快速挂入目标挡位。由图4可以得出,基于MATLAB全模型的开发方法开发的AMT控制系统具备较好的控制性能与实时效果,整个换挡过程在短时间内完成,换挡平顺性较好,变速器输出轴转速没有出现较大波动,能够满足车辆实际运行需要。

3 结束语

和传统开发方式相比,基于MATLAB全模型的AMT控制软件开发方法在人员技术要求、工具链掌握等方面的限制都得到较大的改善;开发人员可以将更多的精力集中在算法的实现,拥有更多的时间来设计更加完善和可靠的控制模块与功能;同时全模型的功能开发更容易实现新增功能的联合测试,可以减轻软件集成测试阶段的测试验证任务,确保实现整个软件开发过程的精简和高效。

[1]张会群.基于dSPACE的全电AMT控制策略的制定与仿真[D].衡阳:南华大学,2014.

[2]韩鹏.基于扭矩辅助特性的商用车扭矩辅助型AMT控制技术研究[D].长春:吉林大学,2015.

[3]李根,唐臻宇,耿海翔,等.基于Matlab/RTW的控制系统一体化新型设计方法[J].中国测试,2010,36(1):75-77.

[4]宋超,席力克,罗锐,等.基于AMT并联混合动力系统的CAN通信设计[J].微型机与应用,2015,34(13):59-61.

[5]张会群,赵立宏.全电AMT升挡与发动机协调控制研究[J].电源技术,2015,39(1):130-132.

[6]刘杰.基于模型的设计及其嵌入式实现[M].北京:北京航空航天大学出版社,2010.

[7]孙忠萧.Simunlink仿真及代码生成技术入门到精通[M].北京:北京航空航天大学出版社,2015.

[8]陈杰.MATLAB宝典[M].3版.北京:电子工业出版社,2011.

[9]MathWorks Inc.Code Generation from MATLAB User's Guide,2011-09.

修改稿日期:2017-05-22

Development of AMT ControlSystem Based on MATLAB FullModelMethod

Liu Ling,Song Chao,Xie Yongbo
(Hunan CRRCTimes Electric Vehicle Co.,Ltd,Zhuzhou 412007,China)

Now,the method ofhandwritten code orindividualmodelis generally used in AMT controlsoftware development,which causes longer developmentcycle and higher developmentmaintenance cost.The authors propose a type of software development method based on MATLAB full model,by building the fully functional coverage of model architecture,a code generation strategy based on time scheduling,the automatic mapping from underlying signals to modelparameters,the unified managementofdata interfaces,the automatic integrating and compiling of model codes for scripts control,etc.,which realizes the efficient development and reliable integration of the control models.Finally,the method isapplied and verified.

fullmodel;AMT;controlsystem;code generation

U463.212

B

1006-3331(2017)04-0019-03

刘凌(1974-),男,硕士;副高级工程师;主要从事电动汽车控制与动力系统集成。

猜你喜欢

挡位代码变速器
道路载荷谱原始数据处理算法的研究
散热器对自动变速器的重要性
通用凯迪拉克CT6轿车电动变速器开发介绍(下)
上汽通用VT40E变速器简介(一)
变速器经典案例分析与处理——变速器机械元件引起的故障(八)
马自达6车变速器挡位错乱
现代名图偶尔无挡位显示
神秘的代码
一周机构净增(减)仓股前20名
一行代码玩完19亿元卫星