郭万强
摘 要:针对ADB系统运行时,远光灯形成的阴影区域大于实际摄像头检测区域,从而导致视觉暗区的问题,提出了一种基于ADB系统的远光分布调光策略。主要以14个分段式LED构成的ADB系统为研究对象,根据远光灯的光强分布和LED之间的关系,总结出一种通用的分段式LED调光方法,并且通过Simulink的建模和仿真,验证了调光策略的可行性和准确性。最后通过dSPACE硬件在环实物仿真,再次验证了策略的可靠性。关键词:ADB;调光策略;Simulink;dSPACE中图分类号:U463.65 文件标识码:B 文章编号:1671-7988(2019)01-111-04
Dimming Strategy Research Based on High Beam Light Distribution of ADB System
Guo Wanqiang
(Magneti marelli auto parts (wuhu) co., LTD. Shanghai branch, Shanghai 201208)
Abstract: Aimed at the problem that the shadow area of the high beam is larger than the actual camera detection area, which leads to dark region in visual when ADB system works. This paper presents a dimming strategy based on high beam light distribution of ADB system. It mainly regards 14 led segments ADB system as research object, according to the relationship between light intensity distribution and LED, summarize a general led segments dimming strategy. It also uses Simulink tool to build model and simulate, verifies the feasibility and accuracy of the dimming strategy. It's simulated through dSPACE in the ring at last, verified the reliability of the strategy again.Keywords: ADB; Dimming strategy; Simulink; dSPACECLC NO.: U463.65 Document Code: B Article ID: 1671-7988(2019)01-111-04
1 前言
自適应远光灯(Adaptive Driving Beam,简称ADB)是一种智能防眩目远光灯系统。它主要是在自适应前照灯系统(Adaptive Front Lighting System,简称AFS)的基础上,增加了防炫目的功能。通过摄像头感知前方的目标物,然后实时计算并且控制远光模组中LED颗粒的亮度,避免对前方的车辆或者被远处的道路标示造成炫目。其基本原理是:摄像头感知目标物,实时输出目标物的位置信息至ECU,ECU根据目标物的位置,将与之对应的LED熄灭。当目标物远离后,LED重新点亮[1]。
对于分段式的LED远光灯模组而言,每个LED对应一个远光分区,多个远光分区组成整个远光分布。因为远光区并不是连续可控(即根据目标物位置,灭掉对应的远光分布区间),所以只能直接灭掉目标物位置对应的所有LED,如此,势必造成阴影区过大,从而导致视觉暗区。因此,可采取一定的调光策略,补偿阴影区过大的问题。
2 ADB功能系统平台简介
dSPACE MicroAutobox实时仿真系统是由德国dSPACE公司开发的一套基于Matlab/Simulink的控制系统开发及测试的工作平台,实现了和Matlab/Simulink的完全无缝连接。AutoBox实时系统是具有高速计算能力的硬件系统,同时还具有CAN和LIN接口,拥有方便易用的实现代码生成/下载和试验/调试的软件环境,很好解决控制系统开发中的两大问题:快速原型(RCP)和硬件在回路仿真(HILS)[2]。
一种具有ADB功能的前照灯系统框图如图1所示,Autobox采用DS1401平台。整个系统使用3路CAN和两路LIN与外围的ECU和摄像头通信,实现算法输入和控制输出。Autobox的CAN1连接ECU1和ECU2,通过ECU控制驱动近光灯,电机和辅助转向灯。CAN2和CAN3实现摄像头与Autobox之间数据的通信,并且通过网关,实现BCM和摄像头之间的通信。LIN1通过ECU3控制左远光灯,LIN2通过ECU4控制右远光灯。
利用dSPACE提供的RTI实时接口,可以将Simulink框图生成实时代码并自动下载到Autobox中,控制系统运行,同时也可以在ControlDesk软件中实时监测模型参数,验证算法的准确性。此外,也可以通过CAN1发送一些运行参数,使模型在脱离ControlDesk的情况下,改变模型的运行状态,验证算法的准确性[3]。
图2所示为摄像头检测到目标物在-3°到0°之间的LED远光分布实景图,由于远光区并不是连续可控,所以导致阴影区过大。为此可以采用Simulink建模设计相应的调光控制算法,仿真通过后,下载到Autobox进行硬件在环仿真,最后将算法集成到ECU,实现产品化。
3 策略分析与设计
远光灯的光强分布一般都是中间强,两边弱,具有对称性[4]。由图1所知,Autobox通过LIN调节远光灯的电流占空比PWM,实现光强的控制。PWM值越高,光强越大,一种光强分布曲线如图3所示,远光的分布范围为[-20°,20°],光强分布为中间强,两边弱。
一种LED远光分布示意图如图4所示,LM为左远光灯的LED远光分布,一共7个段(Segment),从左到右分别为LED1到LED7,RM为右远光灯的LED远光分布,一共7个段,从左到右分别为LED1到LED7,每个LED的远光分布范围如表1所示。
假设摄像头检测到的目标物区间是[-2°,1°],由于光区并不是连续可控,所以LM只能灭掉LED3、LED4和LED5,RM只能灭LED3、LED4和LED5。灭掉的远光区间是大于实际检测的目标物区间。为了避免阴影区过大,可以调节相邻的LED,进行补偿。这里的关键之处在于如何补偿,补偿多少。观察图4可知,可以结合LM和RM将Segment划分为更多的Sub Segment,通过Sub Segment和光强分布曲线,确定补偿量。调光策略的主要流程图如图5所示。具体策略应用步骤如下所示:
步骤1:首先根据实际提供的LM和RM的远光分布区间,进行子区间Sub segment的划分。首先,将左边的区间和右边的区间的最大范围进行合并。比如,左边的远光分布范围为[-a1, b1],右边的远光范围为[-a2,b2] ,且-a1<-a2,b2>b1,则合并后的远光分布范围为[-a1,b2]。然后,以所有的Segment边界为新的边界,重新划分[-a1,b2]的区间,得到更多的Sub segment。将每个Sub segment的范围作为元素存入x行2列的矩阵MxbSegEdgeMap中。x表示细分的Sub segment有x段。
步骤2:根据步骤1的子区间范围,构造出LM和RM的Segment与子区间关系的矩阵MxbLedSegMap,该矩阵为2*m行,n列。n为等于步骤1中x的值。对于LM而言,矩阵中每行的值构造的原则是,令其等于Segment对应的序号(Segment1对应的序号为1,依此类推)。若第一行的某个位置有多个Segment对应,则另起一行,直至完成所有Segment与子区间之间的对应关系,最终行数为m。RM的行构造原则与LM相同。
步骤3:ADB系統在检测到目标物的时候,会形成相应的阴影区域。构造两行x列的矩阵MxbSegStatus,第一行代表LM的Sub segment状态,第二行代表RM的Sub segment状态,初始值设置为100,即假设所有Sub segment的亮度都是最大。然后根据阴影区域与步骤1中形成的LM和RM 的Sub segment关系,将阴影区域所在的Sub segment值设置为0。
步骤4:为LM和RM分别构造一个1行Num列(Num为实际使用的左或右远光灯中Segment个数)的矩阵MxbLedStatus,并且全部初始化为100,表示LM和RM的所有Segment亮度都为最大。遍历MxbSegStatus中所有Sub segment的状态,如果有一个Sub Segment为0,则将与该Sub segment对应的Segment设置为0。
步骤5:构造一个与MxbLedSegMap行列数相等的矩阵MxbSegLedMapAct,所有的值初始化为0。遍历MxbLed SegMap中的每一个值,如果其大于等于1,且小于等于Num,同时MxbLedStatus中对应的Segment状态不等于0,则将MxbLedSegMap的值复制到MxbSegLedMapAct。
步骤6:构造一个与MxbLedSegMap列数相同的一维矩阵MxbSegLedCnt,并且初始化所有的值为0。遍历MxbSegLedMapAct矩阵,分别统计每个对应Sub segment有效状态的数量。当MxbSegLedMapAct中元素值大于等于1,且小于等于Num为有效。
步骤7:由于实际的法规和配光的原因,HB的光强分布不是相同的,一般来说,中间强,两边弱。这里首先定义一个两行多列的矩阵MxbIntLayout。第一行为Segment的角度分布,第二行为对应角度分布的光强,范围为0~100。由于实际的Sub Segment的角度范围会根据Segment的数量或者模组的变化会不同,所以计算步骤1中MxbSegEdgeMap每个Sub segment的中心角度,然后利用一维插值的方式,得到MxbSegEdgeMap每个Sub Segment的中心角度对应的光强MxbSegLedInt(seg),seg对应Sub segment的标号。
步骤8:计算每个Segment的强度,取值范围为0~100。首先计算每个Sub segment的调光因子SegFactor,这里可以根据实际情况采取不同的计算方式。这里假设SegFactor =(( 4.0 / (MxbSegLedCnt(seg))) / 2.0),MxbSegLedCnt为有效的Sub segment数量,seg同样对应的Sub segment标号。然后遍历MxbSegLedMapAct矩阵,根据步骤7得到的每个Sub segment理论光强分别值,计算每个LED Segment对应实际Sub segment的光强,然后叠加到Segment实际输出MxbLedInt(LED),其中LED为Segment的标号。如果MxbLedInt(LED)的值大于100,则设置为100,否则不变。
4 仿真设计与结果分析
Simulink构建的调光策略仿真图如图6所示,其中的Camera Simulate模块用于仿真摄像头的输出,constOA_LT和constOA_RT模拟目标物的左右边界。调光策略的内容主要封装在Algorithm模块中。模型在线仿真,手动修改目标物的边界值,即可实时查看每个LED的电流占空比,验证策略的正确性。设定MxbIntLayout=[[-200, -130, -80,-60, -40, -30, -20, 20, 30, 40, 60, 80, 130, 200], [4, 5, 10, 30, 40, 40, 45, 45, 40, 40, 30, 10, 5, 4]], 然后分别改变目标物Object的边界,得到仿真结果如表2和表3所示。
其中LED1到LED7的值表示在不同的目标物时,对应LED的电流PWM值。PWM越高,光强越强。由表可见,当没有目标物的情况下,LM和RM的光强分布类似于图3所示曲线。当有目标物时,对应的LED灭掉,相邻的LED亮度增强,补偿过大的阴影。同时,可以根据实际情况,调整MxbIntLayout的预设值和策略中步骤8的调光因子公式,得到更加合适的补偿强度。
5 结束语
介绍了一种基于ADB系统的远光分布调光策略,该策略能够有效补偿远光分布时,阴影区过大的问题。文中主要以14个LED的车灯模组为仿真对象,其同样适应于更多段的LED模组。该策略最后通过dSPACE进行硬件在環仿真,验证了算法的准确性和可靠性。
参考文献
[1] Tomasz Targosinski. Adaptive Driving Beam-New Concept of Vehicle Front-Lighting[J].Journal of KONES Powertrain and Trans -port,2010,17(3):453-459.
[2] 许丽川,杨晓东,从培强.基于dSPACE的直流电机PWM实验设计[J].实验科学与技术,2012,10(4):52.
[3] 詹军,王启配,何云廷,鲍阚,鲁蒋立. 基于dSPACE的嵌入式车辆动力学仿真平台开发[J].汽车技术,2015,4:18-21.
[4] G.kedarnath,M.Ashoknaik,M.Saikumar,P.shivarama Krishna. Adap -tive Front-Lighting System[J]. International Journal of Research in Mechanical Engineering,2017,04(2):33-35.