吉爽,程安宇,邓勇
(重庆邮电大学自动化学院, 重庆 400065)
近年来随着电子技术的快速发展,汽车仪表电子化程度越来越高:从最初的机械式仪表,到目前最新的虚拟仪表,经历了电气式、模拟电子式和数字组合式仪表的发展[1]。汽车虚拟仪表通过采用一块大尺寸TFT(Thin Film Transistor)液晶显示屏代替了传统指针式仪表面板[2],用虚拟指针代替了传统的步进电机指针指示。
在汽车虚拟仪表设计开发中,虚拟指针的运动过程控制是汽车虚拟仪表重点研究内容。具体包括两个方面:(1)对于转速等剧烈变化的信号,指针必须能够及时准确指示;(2)指针运动过程中不能出现明显的跳变、拖尾等现象,应该平滑运动到目标位置。虚拟指针的运动特性不同于传统仪表机械指针,机械式指针受物理特性约束角度是逐渐变化的,而虚拟指针不存在机械惯性等约束,指针的位置是可以直接跳变的。虚拟指针运动控制算法中,文献[3]中主要的方法是以固定的最小步进角驱动车速表指针运动,指针的运动过程能够实现缓动效果,不过对于较大的角度差指针存在响应慢的不足。文献[4]中主要方法是当指针小角度变化时直接采用角度差作为步进角,大角度变化时采用二次多项式确定步进角,同时为防止出现拖尾现象对最大步进角做了限制。这种方式对于正弦波测试信号具有较好的跟踪效果,但对于方向频繁变化的信号步进角有可能出现明显的跳变现象。
基于上述问题,作者提出一种模拟机械指针运动机制与液晶显示器更新特性相结合的控制方案。在液晶显示器更新特性方面,充分考虑液晶显示器每秒钟内画面被重绘更新的次数即帧频率是固定不变,结合人眼对动态视觉信号的分辨能力有限,虚拟指针的位置更新频率需要选择合适的值。在帧频率一定的情况下,为了使虚拟指针的运动过程具有物理指针运动的真实感,在设计控制算法时引入了传统的步进电机式仪表的物理机制。即虚拟指针运动控制的本质是计算每帧图像中指针的步进角。在虚拟指针的运动过程中,引入加减速控制逻辑,呈现出先加速、再匀速、再减速的变化。通过依托某硬件平台对汽车虚拟仪表的指针运动控制进行设计与实现。
设计的虚拟仪表硬件平台采用的是富士通系统级芯片MB86R01微控制器,其内部集成高性能的ARM9处理器内核和MB86296图形显示控制器[5]。汽车虚拟仪表系统结构如图1所示。在车辆行驶过程中,MB86R01微控制器通过IO口、CAN总线等信号输入通道完成整车信息的采集;经过软件对原始信号进行加工、运算和逻辑分析处理后,在显示器面板上通过绘制各种图形图像来表达车辆信息。
图1 系统结构图
汽车在行驶过程中,车速表指针转到的具体位置是由汽车发动机转速和汽车轮胎直径等参数根据相应公式计算得出,其中发动机转速是汽车虚拟仪表通过CAN总线接收汽车发动机ECU发送的CAN报文而得到。车速表指针的控制流程如图2所示。首先,计算车速信号值和指针目标位置;然后,计算当前位置的角度差,如果角度差为0则结束当前周期位置更新操作。
指针运转速度控制任务是通过与速度步进阈值相比较得到当前位置差下理论速度,而后对其进行校正,防止速度变化快于最大加速度,或超出最大速度限定。确定当前周期指针的运行速度后重绘指针并更新指针对象的状态参数,结束当前周期操作。其程序流程如图3所示。
图2 车速表指针控制流程图
图3 指针运转速度控制流程图
其中Speed代表指针当前运行的速度,Last_Speed用于记录上一个周期中指针的运行速度,Speed_Deviate代表指针当前运行速度和上一个周期指针运行速度差;SPEED_THERSHOLD是速度阈值参数,用于判断当前周期角度差下支持的最大运行速度。MAX_SPEED和MAX_ACC两个参数分别限定虚拟指针的最大运行速度和最大加速度。其中Cur_Pos代表指针当前的位置,文中MIN_POS代表车速表最小刻度0 km/h位置即0°,MAX_POS代表车速表最大刻度150 km/h位置即180°。该控制方法通过使用毫秒级中断进行计算能在应用中使指针得到平滑的运动。
文中配置的液晶显示器的刷新频率为60 Hz,即显示器更新画面的时间间隔为16.67 ms,理想的情况下虚拟指针的更新时间与场同步信号一致[6]。设定虚拟指针的步进角为固定值,测试并标定指针在不同速度下匀速运动的显示效果,结果如表1所示。
表1 不同步进角下匀速运动显示效果测试
从表1可以看到:根据角度差的大小选择合适的步进角是虚拟指针运动控制的基本思路。综合考虑虚拟指针的显示效果和动态跟踪实时性,实际应用中将步进角的取值限定在0.1~3.5°/帧之间,最高角速度限定在210°/s。设计中步进角取值为2.5°/帧,角速度为150°/s,足够满足车速表、转速表的实时显示要求。
指针运动中最重要的参数是最大加速度MAX_ACC和最大速度MAX_SPEED,前者用于限制速度的变化快慢,作用于指针运动的起始和结束阶段,模拟机械指针的惯性特征;后者限制最大角度差,防止更新过快出现拖影等现象。
在CANoe硬件在环仿真环境中,初始设置电机的转速为0,而后跳变为最大值10 000 r/min(对应车速130 km/h),配置MAX_SPEED为20,速度切换阈值为20,测试MAX_ACC分别为1、3和6时车速表指针的运动速度和实时位置变化过程,如图4所示。
图4 不同MAX_ACC下车速表的运动过程
从图4(a)可以看到:MAX_ACC越大,指针越快到达最大运动速度,到达目标位置的90%所消耗的时间越少,可以提高指针的响应速度;不过,MAX_ACC越小,指针的启动和结束过程越平缓,更符合人的视觉习惯。从图4(b)中可以看出:MAX_ACC值的增加对于缩短指针响应时间的作用有限,大于一定值后指针加速直线和位置曲线接近重合。所以,文中MAX_ACC取值为2。同样的,速度切换阈值仍为20,MAX_ACC取值为2,测试MAX_SPEED分别为10、20和30时车速表指针的运动速度和实时位置变化过程,如图5所示。
图5 不同MAX_SPEED下车速表的运动过程
可以看到,指针运动速度呈现同样的线性增长关系,但车速表指针的运动过程差别明显。MAX_SPEED越大,指针的加速过程越长,减速越早。分析报文数据可以得到:最大速度分别为10、20和30时,指针到达目标位置的90%的时间分别为2.734 389、1.501 770和1.185 731 s。所以,MAX_SPEED的值可以明显改变指针的响应速度,文中MAX_SPEED的值取20。
虚拟指针指示测试分为两个内容:一个是指示功能测试,包含指示准确性测试和指示响应时间测试;另一个是指示性能测试。测试主要用的工具包括上位机、CANoe、CANcaseXL接口卡、稳压电源和被测虚拟仪表等。整个测试环境的搭建如图6所示。
图6 测试环境搭建
(1)指示误差测试
判断虚拟指针车速信号的实际指示角度与理论角度之间的误差。输入信号:电机控制器采集转速信号值并共享至CAN总线,仪表根据相应公式将转速值转变为实际车速。根据文献[7-8],车速表的指示值不低于理论车速,指示车速与当前理论车速之间符合如下关系:
0≤v1-v2≤v2/10+4
(1)
其中:v1表示车速表的指示值;v2表示理论车速。从图7中可以看到:虚拟仪表的显示车速符合设计要求,低于标准误差限,满足JLYY-JT-08乘用车组合仪表基本误差与指针响应时间测试规范的指示精确度要求。
图7 车速指示误差分析
(2)响应时间测试
判断车速或转速信号值在明显改变后虚拟指针能否及时到达目标位置。指针的运动过程需要平滑稳定,无明显抖动现象。图8是测试上位机trace窗口的输出结果为最大转速到最小转速的时间戳。
图8 指针响应时间测试结果
指针的运动平滑稳定,没有出现明显的拖尾和抖动现象。通过计算可以得到,指针顺时针和逆时针运动的响应平均时间分别为2.793 564和2.793 471 s,即满刻度测试的平均响应时间为2.793 518 s。根据文献[8]规定:取指针的响应时间上限为10 s,而被测仪表响应时间未超出此上限,虚拟指针响应时间特性符合JLYY-JT-08乘用车组合仪表基本误差与指针响应时间测试规范的基本要求。
汽车行驶过程中,转速信号的波动频率非常快,对于指针的动态性能要求极高。所以有必要在高频率波动下对指针的指示精确程度进行长时间测试。
在仿真环境中对转速信号(生成对应车速)进行模拟,配置转速信号的生成方式为随机模式,随机信号的波形如图9(a)所示。测试1 100 min后停止,分析报文可以得到此时转速信号的值为1 295 r/min(8 465×0.153),计算车速为:
(2)
指针的实际位置如图9(b)所示,数字显示为17 km/h,指针在随机信号测试下能够保证准确。
图9 随机生成转速值后测试车速表的结果
首先对现有的汽车虚拟仪表指针控制方法进行了对比分析,针对现有方法存在的缺陷,设计了虚拟仪表系统结构和车速指针表软件总体流程;然后通过仿真实验确定软件设计中的重要参数值;最后通过上位机硬件在环仿真搭建汽车虚拟仪表测试环境,定量分析了指针的运动性能。测试结果表明:利用文中提出的控制方案,不仅实现了车速、转速等剧烈变化的信号指针能够及时准确地指示,而且指针运动过程无明显跳变和拖尾等现象。虽然实现此方案的载体是汽车虚拟仪表,但是软件设计中的控制方法对各类虚拟指针的运动控制都具有普遍的适用性。因此设计开发人员在利用文中提出的控制方法时,应根据具体产品的相应需求,在软件开发时对相应参数作适当修改,就能实现虚拟指针指示的平滑性、响应时间等指标。
参考文献:
[1]邓宗权,蒋向东,王继岷,等.基于嵌入式Linux汽车智能仪表系统的设计[J].微型机与应用,2014(4):26-28.
DENG Z Q,JIANG X D,WANG J M,et al.Design of Automotive Intellectual Control Meter System Based on Embedded Linux System[J].Microcomputer & Its Applications,2014(4):26-28.
[2]廖雄方,刘淼,金星,等.全液晶汽车仪表测试方法的研究[J].电子设计工程,2016,24(16):82-85.
LIAO X F,LIU M,JIN X,et al.Research of Whole LCD Car Dashboard Test Methods[J].Electronic Design Engineering,2016,24(16):82-85.
[3]赵晨.基于ARM和Linux的嵌入式汽车虚拟仪表系统的研究[D].武汉:华中科技大学,2011.
[4]陈涛.基于QNX车用液晶仪表显示技术的开发[D].哈尔滨:哈尔滨工业大学,2014.
[5]张利平.基于MB86296显卡芯片的显示平台设计[J].雷达与对抗,2011(1):61-64.
ZHANG L P.A Display Platform Based on MB86296 Display Card Chip[J].Radar & ECM,2011(1):61-64.
[6]魏志勇.TFT液晶模块驱动电路设计[D].哈尔滨:哈尔滨工业大学,2006.
[7]全国汽车标准化技术委员会.汽车用车速表:GB 15082-2008[S].北京:中国标准出版社,2008.
[8]丁宁通.JLYY-JT-08乘用车组合仪表基本误差与指针响应时间测试规范[S].台州:吉利汽车研究院,2008.