基于模型设计的电子换挡控制系统软件开发
2022-01-11冯瑞东姚胜华付玉刘森
冯瑞东,姚胜华,付玉,刘森
(湖北汽车工业学院 汽车工程学院,湖北 十堰 442002)
对于传统的机械式换挡结构而言,电子换挡系统对换挡过程的控制更加精准,同时能够预防错误的换挡操作、减少错误换挡所造成的变速器机械损伤等诸多优势。在汽车智能网联化的背景下,车企对汽车电子控制系统的设计与开发效率要求越来越高,依靠手工编写软件程序代码的传统嵌入式软件开发方法逐渐不适应于当下的电控系统开发[1]。基于模型设计的嵌入式系统开发方法(modelbased design,MBD)可以有效提升软件开发效率,缩短电控系统研发周期。文中利用S32K系列单片机作为电子换挡控制单元(shift control unit,SCU),在MATLAB/Simulink环境下进行MBD软件程序设计,完成汽车电子换挡系统的软件开发,同时使用CANoe软件建立系统测试环境,对换挡系统控制策略进行系统测试。
1 电子换挡系统结构设计
1.1 挡位结构设计
为了保证汽车在换挡过程的稳定性,设计的汽车电子换挡控制系统结构如图1所示,挡位由驻车挡P、倒车挡R、空挡N和前进挡D组成。在换挡手柄底部安装1块永磁体,同时在换挡手柄下方设置2个MLX90333霍尔传感器来检测换挡手柄的位置信息。驻车状态下,换挡手柄处于P挡位置,当拨动换挡手柄进入其他挡位后,设置在换挡手柄下方的霍尔传感器能够感应永磁体在X轴向和Y轴向所产生的不同的磁通量,并将其转换为相应的模拟电压输入电控单元SCU,由SCU对其处理并进行相应的挡位判断。
图1 基于某车型的电子换挡结构示意图
1.2 硬件结构设计
系统的硬件结构如图2所示,采用板载S32K144微控制器的开发板作为系统的主控制单元,在开发板上方设计了1块能够搭载2个MLX90333霍尔传感器的PCB,并在PCB上安装1个底部附带永磁体的模拟换挡手柄来实现换挡操作。系统的硬件功能如图3所示,主控制器S32K144实时采集由MLX90333霍尔传感器模块所检测到的换挡手柄位置信息,完成相应的换挡控制与故障处理后,再由挡位显示模块实时显示挡位信息,并通过CAN通讯进行挡位信号传输。
图2 电子换挡系统硬件结构图
图3 电子换挡系统硬件功能框图
2 电子换挡系统程序设计
2.1 软件总体设计
基于模型设计的方法进行程序设计。底层与中间层的相关驱动程序采用MBDT工具包,在MATLAB/Simulink环境下完成,主要包括系统时钟配置、I/O配置、A/D配置、定时器配置、中断配置、CAN收发和缓冲区配置[2-3]。中间层主要利用CAN协议,完成底层程序与应用层程序的接口对接。应用层主要使用MATLAB/Simulink建立控制策略模型,通过对传感器信号进行一定的控制与故障诊断处理。为了使整个系统的软件编写、调试与修改方便快捷,在软件设计中采取了模块化、结构化的设计方式。图4为电子换挡系统主程序流程图,系统上电以后,主控制器通过CAN网络实时接收车速与制动踏板信息,并通过传感器实时获取换挡手柄的位置信息;接着根据这些信息进行策略控制与故障诊断后,得到不同的挡位处理信号;最后,将处理后的挡位信息通过CAN网络进行数据传输,以供整车网络上的其他控制器使用。
图4 电子换挡系统主程序流程图
2.2 系统故障诊断
为了保证传感器信号的可靠性,确保SCU能接收到正确的挡位信息,防止因系统硬件故障而产生错误挡位信号,由MLX90333霍尔传感器对换挡手柄进行挡位检测。每个霍尔传感器都有对应的模拟电压信号输出,依据不同的传感器状态和设定的故障码来对传感器信号进行故障分类,挡位信号故障状态如表1所示[4]。当故障码为0x00时,表示2个传感器的信号都正确,此时故障状态为T0,在Fault_Process中设定系统默认输出传感器U1所检测到的换挡手柄在X轴向与Y轴向信号,如图6所示。若在该状态下任意路信号出现错误,则会在Fault_Process中进行相应的故障处理。当传感器U1或传感器U2中任意X轴向信号或Y轴向信号只有1路信号出现错误时,图5中Fault_Diagnosis模块会输出对应的故障码0x01,即进入T1故障状态。在T1故障状态下,会将正确的换挡手柄X轴向信号或Y轴向信号输出,并将T1故障状态的故障码上传至CAN网络。当传感器U1与传感器U2都出现X轴向信号故障或者Y轴向信号故障时,则会输出故障码0x02,进入T2故障状态。因为T2故障状态下,至少有1路轴向信号无法被正常获取,因此无法正确判断当前挡位信息,所以系统此时保持原挡位状态不变,同时将故障码0x02上传至CAN网络。
表1 传感器故障状态表
图5 系统硬件故障处理模型图
为了尽可能降低或消除由于人为操纵而产生的错误换挡,在换挡控制逻辑中引入了行驶车速信号与制动踏板信号来对换挡过程进行控制,从而保证正常行驶过程中驾驶员的换挡动作,控制逻辑模型如图6所示[4-6]。系统上电默认处于P挡状态,若车辆需要进行起步,由驻车状态进入行驶状态时,需要踩下制动踏板,通过换挡手柄使系统进入其他任意挡位。当车辆正常行驶时,可由任意动力挡直接进入N挡,但为了防止驾驶员错误挂挡,设定D挡与R挡之间互换时车速处于5km·h⁻¹以下且制动踏板被踩下。同时在车辆高速行驶时,系统不会响应P挡信号,若车辆需要由行驶状态进入驻车状态,应踩下制动踏板直至车速降至5km·h⁻¹以下,系统才会响应P挡信号,从而切断整车动力。为了防止车辆行驶过程中出现跳挡或换挡过快,设定换挡手柄需要在待切换挡位停留0.5s以上才能正常进行挡位切换,否则视为换挡过快或跳挡,将保持原挡位状态不变[7-8]。
图6 控制逻辑模型图
2.3 自动代码生成
通过MATLAB/Simulink建立整个控制系统的模型,采用Embedded Coder自动代码生成功能,将电子换挡系统控制模型(图7)经编译后自动生成的代码刷写进SCU中,然后使用Vector CANoe所建立的测试环境对换挡手柄信号的控制与故障处理进行测试。
图7 电子换挡模型
3 电子换挡系统测试
仿真测试界面如图8a所示,采用Vector CANoe设置仿真测试界面,并将VN1630作为CAN信号收发监控设备与S32K144控制器进行连接,CAN通信速率设置为500kb·s⁻¹,通过Panel中的控件对信号进行实时监测与控制,由Trace对信号进行实时分析。模型经编译自动生成C代码并被刷写进S32K144主控制器后,将VT2004A激励模块连接至S32K144主控制器,再通过VN1630对设备之间进行互连,然后使用Vector CANoe软件控制VT2004A模块产生激励电压以模拟传感器信号对系统进行相应测试,其测试结果如图8b所示。
图8 电子换挡系统测试
系统上电默认处于P挡状态,在系统运行至11s时请求挂入D挡,但此时尚未踩下制动踏板,控制器不响应D挡信号,待系统运行至16s制动踏板被踩下时控制器才响应D挡信号,成功挂入D挡。在系统运行至35s时,驾驶员请求挂入R挡,但此时系统处于D挡且车速为40km·h⁻¹,因此为保证车辆正常行驶,控制器保持D挡状态,不响应R挡信号,禁止D挡与R挡之间进行互相切换。在系统运行至55s时,请求挂入P挡进行驻车动作时,车速仍处于40km·h⁻¹且驾驶员没有踩下制动踏板,此时控制器不响应P挡信号,待系统第64s驾驶员踩下制动踏板且车速降至5km·h⁻¹时,控制器响应P挡信号,成功挂入P挡直至车辆驻车。最终测试结果表明,整个模型程序能够按照预先设定的控制逻辑正常运行,满足设计要求。
4 结论
文中设计的电子换挡系统硬件系统、软件系统以及CANoe测试界面都能正常工作,满足要求,且具有一定的扩展性。基于模型设计的软件控制程序,可以正确按照控制逻辑分类处理因系统硬件和人为误操作而产生错误挡位信号,保证了挡位信号的可靠性。