董雄鹤,周杰敏,余建华 【摘 要】利用MATLAB/Simulink、TargetLink开发AMT电控系统软件,具有模块功能定义明确、算法实现与验证方便快捷、模型数据统一管理、自动定标、代码自动生成、自动生成A2l文件等优点,极大地提高系统软件开发效率和开发质量。 Software Development of AMT ECU Based on MATLAB/Simulink/TargetLink Keywords: MATLAB/Simulink; Targetlink; AMT; Software development. 引言 现代汽车电控系统功能越来越复杂,而汽车产品更新越来越快,要求电控单元开发周期越来越短,使得软件开发工程师的压力也越来越大,采用传统的开发方式已难 以满足车辆电控系统软件开发的要求。因此应采用规范的软件开发平台,以提高软件开发效率和质量。MATLAB&Simulink基于模型的设计以 及targetlink代码生成工具,目前在汽车电控单元开发中广泛使用,本文介绍的AMT电控系统软件正是基于MATLAB/Simulink及 TargetLink开发的。 AMT是在传统固定轴式变速器(MT)基础上增加一套自动变速操纵系统实现自动化换档,以简化复杂的手动换档,降低劳动强度。驾驶员根据汽车载荷、路面状 况、交通状况及其他外部条件,通过选择手柄、加速踏板、制动踏板驾驶汽车。AMT电控系统实时采集上述驾驶机构的位置信号,结合车辆当时的运动状态(发动 机转速、变速箱输入轴转速、车速、档位等),按照可行的控制策略,控制执行机构(发动机扭矩和转速、离合器执行机构、选换档执行机构),完成发动机、离合 器、变速器的综合控制。 本文主要介绍应用MATLAB/Simulink和TargetLink进行的AMT电控系统(以下简称TCU)软件开发的方法和流程。TCU软件中的信 号处理算法和控制算法利用Simulink/Stateflow设计,在MATLAB环境下仿真验证,再在TargetLink环境下进行模型转换、参数 定标、自动生成代码,系统底层驱动则用手工编写代码。最后自动生成的代码和手工代码集成在一起,经过编译、链结生成S19可执行文件和map文件。S19 可执行文件可下载到目标系统中运行;而map文件则用来在TargetLink环境中自动生成A2l文件。A2L是控制器的描述文件,其中含有TCU可执 行程序中所有可测量变量及标定参数信息(包括存储地址及数据类型等),在TCU工作时,标定工具(本文中使用CANAPE)根据A2L文件提供的信息,读 取TCU中可测量变量和标定参数的数值,并按用户的要求修改标定参数数值以优化控制策略。AMT电控系统软件开发流程见图1。下面分AMT电控系统底层驱 动软件、基于Simulink/Stateflow实现信号处理算法、基于Simulink/Stateflow实现控制算法、定标代码生成和系统集成、 标定和系统调试五部分介绍AMT电控系统软件开发。
AMT电控系统硬件采用Freescale公司的Mc9s12Dt128B微处理器,电控系统底层驱动软件主要是对MCU寄存器操作,得到最底层输入信号 并控制最末级输出信号,在电控系统开发周期内它们变化不大,且用Simulink不容易实现,故采用传统方法用手工编写,它们包括:
为了保证电控系统稳定可靠运行,必须对信号(数字I/O,模拟输入等)进行处理,如开关输入信号消抖以减小外界干扰、模拟输入信号高低限检查以判断是否故 障,在出现故障时用什么值来替代输入信号等,它也是系统故障诊断的依据。下面以模拟输入和数字输入信号为例进行说明。 2.1 模拟输入信号处理
A/D口输入电压原始值通过信号有效性检查判断是否超限,如果超限则进行故障诊断,通过一个状态机(主要是计时)判断是假故障还是真故障,故障消除时也通
过一个状态机(主要是计时)判断是故障假解决还是故障真解决。当出现真故障时,由故障处理策略选择模拟输入故障时输入电压替代值计算方法。最后通过线性化
曲线得到传感器对应的物理信号量。 数字输入信号处理框图见图3。 图3 数字输入信号处理框图 采用stateflow可以方便地实现模拟输入和数字输入的信号处理算法建模。 3 基于Simulink/Stateflow的控制策略车辆行驶时,TCU根据当前车辆运行状态确定变速箱的目标档位,并控制执行机构完成下面动作:离合器分离→摘空挡→选档→换档→离合器结合,实现自动换 档,同时控制发动机的扭矩和转速以提高AMT的换档品质。根据不同任务的采样时间及任务性质,控制模块分为AMTdecoder、AMTCtr、 Coordinator和Brake 4个子系统: 3.1 AMTdecoder子系统AMTdecoder子系统主要实现变速箱档位译码、换档手柄档位译码,车速计算等。 3.2 AMTCtr子系统AMTCtr子系统步长4ms,主要实现选换档过程控制、离合器控制和远程控制。图4为在stateflow中实现的状态判断和控制逻辑。图中 Clutch_Depart、NEUTRAL 、Gearbx_Select、Gearbx_Shift、Clutch_Close_1、Clutch_Close_2都是子状态机,分别代表离合器分 离、摘空挡、选档、换档、不同条件下的离合器结合控制。由Coordinator子系统根据换挡规律计算出的变速箱目标档位与变速箱的当前档位比较,如果 不相等,则依次进行离合器分离、摘空挡、选档、换档、离合器结合,完成换挡过程。
Coordinator子系统用于实现车辆运行工况切换、换档规律计算、手动加减档控制。步长为1s。图5为在simulink中建立的子系统框图。
Brake子系统步长10ms,作用是实现制动控制。当驾驶员踩下制动踏板时,判断是紧急制动还是点刹,决定在换挡过程中是否控制发动机,并计算发动机的目标转速。Brake子系统控制程序框图见图6。
代码生成是控制算法从Simulink程序框图到产品的关键步骤,虽然利用Matlab产品中的Embedded Coder可以生成针对不同处理器的产品代码,但Targertlink能更好地进行数据字典管理、自动定标、自动生成标定文件等优点。为了利用 Targertlink生成代码,必须在TargetLink环境中,将基于Simulink/Stateflow的控制策略进行模型转换,把 Simulink模块转换为TargetLink的对应模块。
转换后的TargetLink模型经过MIL(module in loop)进行算法验证后,此时数据都是浮点数。大部分嵌入式处理器都是定点计算,数据必须定点存储和计算,因此必须进行数据定标。TargetLink 提供了最差环境定标和自动定标功能,图7是一个进行自动定标的界面。定标后模型所有数据都在统一数据字典管理之中。 随后即可进行代码自动生成。TargetLink能自动生成标准C代码,且提供了针对不同处理器的优化包,TargetLink还能生成报告文档。 5 系统集成如前所述,对硬件的操作采用手工编码的方式,因此要将自动生成的代码和手工编写代码集成才能构成完整的TCU软件。集成工作在Mc9s12Dt128B的 开发环境CodeWarrior下进行,把自动生成代码和手写代码添加到一个Project中,经过Compile 、Link生成S19和map文件。 6 样车试验和标定软件集成工作完成后,将TCU安装到样车上进行了样车试验和标定工作。图8是一个用CANape进行标定的界面。经过反复的策略修改→系统集成→系统标 定,目前AMT样车已能可靠运行,TCU软件各种功能在试验中均得到验证,车辆起步及换挡时也比较平稳。图9所示为车辆起步和换挡过程中执行机构(发动 机、离合器)的控制。 结论本文在利用Matlab/Simulink及dSpace工具进行AMT电控系统软件的开发上进行了初步的探索,实践证明,采用Matlab /Simulink进行控制算法策略的开发,模块功能定义明确、结构清晰,建模快捷,修改维护方便;利用Targertlink生成代码,生成的代码可靠 性高、易读性好,且能实现自动定标,自动生成A2L文件,极大地提高了软件的开发效率和质量。
图9 起步和换挡过程
|
|
来自: stevin_lib > 《VECTOR》