叶传宗,秦会斌,胡叶舟
(杭州电子科技大学新型电子器件与应用研究所,浙江杭州310018)
高速公路隧道不同于普通的路段,其内部和外界的光线亮度相差非常大,驾驶员在进入隧道和离开隧道时,容易因为光线亮度的剧烈变化导致不适甚至引起驾驶安全问题,因此需要在隧道中通过灯具照明来提供合适的亮度。同时考虑到灯具使用过程中存在的亮度衰减问题,使用一段时间后,需要维护人员进行相应的作业,过程较为繁琐,不利于隧道的运营。
为了解决隧道照明中存在的这些问题,本文设计了可以根据当前洞外环境参数的变化,对隧道内灯具进行智能调光并且具有闭环反馈功能的隧道照明监控系统。
隧道照明监控系统的工作流程为:首先,工作人员根据需求设置相应采集时间参数并将命令发送给采集模块,洞外的环境探头和车检器采集隧道洞口的参数,通过RS485传输到数据处理模块中。接着,监控软件对收集到的数据进行保存、处理、分析,以公路隧道照明细则为基础,计算出隧道各段路面所需要的亮度值。考虑到灯具在使用过程中的亮度衰减,为了减少误差,监控软件同时会采集隧道洞内的实际亮度值,将实际亮度值与计算亮度值作为增量PID算法的两个输入,实现闭环反馈功能。最后将PID算法的结果转为相应的命令码发送到调光控制模块中。调光控制模块接收到命令之后,对灯具的亮度进行调节,以保证灯具亮度能够满足实际需求。
图1 隧道照明监控软件的硬件结构
隧道照明监控软件需要硬件系统作为基础,硬件系统主要分为数据采集模块和照明调光模块,硬件结构如图1所示。数据采集模块主要由洞外环境探头、洞内环境探头、车检器组成。照明调光模块主要由回路开关控制器和调光驱动器组成[3]。
(1)洞外环境探头
洞外环境探头安装在隧道洞口,主要作用是根据设置的参数定时采集隧道洞口外的亮度值、色温值、温湿度值、GPS数据。其中亮度值是对调光结果有直接影响的参数。
(2)洞内环境探头
洞内环境探头安装在隧道内部,主要作用是采集隧道洞内的亮度值、色温值,是实现整个闭环反馈功能的硬件基础之一。
(3)车检器
车检器主要由红外探测器、线圈车辆检测器等组成,用于检测当前的车流量值以及车速大小,作为系统输入参数的一部分。
(4)回路开关控制器
回路开关控制器由STM32芯片为核心组成,主要作用是控制每个照明段回路的供电开关。
(5)调光驱动器
调光驱动器采用STM32芯片为核心,主要作用是通过接收到的命令码对灯具的亮度、色温进行具体调节,同时还具备查询当前功率值的功能。
隧道照明监控软件采用基于C#语言的Winform技术实现,该技术清晰直观,快捷简单,有着丰富的技术支持,主要使用其中的Serial Port类实现串口数据通信功能。将Serial Port类的波特率设置为9600bps,数据位为8,停止位为1,无校验位即可完成串口初始化配置。该类可以通过一系列的属性、方法、事件和用户之间进行交互,具有实时性好,通信快速等特点[4]。
软件由用户登录模块、数据处理模块、闭环反馈模块、调光指令发送模块和数据存储模块组成。结构如图2所示。
图2 隧道照明监控软件结构图
用户登录模块的作用是确认登入人身份,保证软件是由相关的工作人员进行操作处理,防止误操作,从而提高安全性。登入成功后,对监控软件进行初始化操作,比如选择相应的串口号、查询该线路上的所有硬件信息等。
数据处理模块首先接收车检器、洞外环境探头发送过来的数据,如车检器没有检测到车辆经过,则数据处理模块通过调光控制模块发送命令给照明调光控制器,将隧道内部灯具的亮度降到额定功率的10%。如果车检器接收到数据,有车辆经过,那么监控软件将根据洞外环境探头发送过来的数据并结合公路隧道照明设计细则计算隧道各段的需求亮度。数据处理模块流程如图3所示,系统接收到洞外环境探头发送过来的数据后,根据公路隧道照明细则的具体要求计算入口段1、入口段2、过渡段、中间段、出口段1、出口段2所需的亮度值,最后将结果输入到闭环反馈系统中。其中K表示入口段折减系数,K值从公路隧道照明细则中根据车流量、车速、色温值等因素来决定,L20表示洞外实时亮度值,Lth1表示入口段1的亮度值,Lth2表示入口段2的亮度值,Lth3表示过渡段亮度值,Lin表示中间段亮度值,Lex1表示出口段1的亮度值,Lex2表示出口段2的亮度值[6]。
图3 数据处理模块流程图
闭环反馈采用增量式PID算法,主要是考虑到灯具亮度的衰减问题,隧道内的实际亮度和需求亮度可能存在差异,为了减少这种误差,我们将洞外环境探头接收到的亮度数据经过数据处理模块处理后与洞内环境探头的亮度值作为PID控制算法的两个输入数据,重新计算灯具的照明控制亮度,使得隧道内的亮度达到需求,从而减少误差。
增量式PID算法的公式为:
其中:Uk为当前时刻输出的值;Uk-1为上一次输出的值;ek为当前次的误差;ek-1为上一次误差;ek-2为上上一次误差;T为采样周期;Tp为比例系数,比例系数的作用是对偏差瞬间做出快速反应:Ti为积分系数,作用是把偏差的积累作为输出,可以消除静态误差;Td是微分系数,可以提高系统的动态响应性能。从公式中我们可以看出,增量ΔUk的确定仅与最近3次的采样值有关,这样比较容易通过加权处理获得比较好的控制效果。
在实际应用当中,对公式(1)进行了简化:
其中,Lr就是闭环反馈模块输出给照明调光模块的结果,Lin是当前洞内环境探头采集到的实际亮度值,e(k)表示的是该时刻数据处理模块计算出来的结果与实际亮度的差值,e(k-1)表示上一个采样时刻的差值,e(k-2)表示的是上上一个采样时刻的亮度差值。
实际应用中允许误差的存在,因此在使用PID进行调节之前,应该先判断实际亮度值和计算模块输出值是否在误差允许范围内:如果是,则不进行PID调节,这样可以抑制由于控制器输出量化造成的连续微小震荡;如果超出了误差允许范围,则进行PID调节。闭环反馈流程示意图如图4所示。
调光指令发送模块主要考虑命令发送的通信协议问题,采用了基于RS485的CSMA/CD协议。该协议的基本原理是所有的节点共享网络传输信道,节点在发送之前会检查信道是否空闲,空闲则发送;若侦听到冲突,则立即停止发送数据,等待一段随机时间,再重新尝试发送。
该模块有两种保存方式:txt文件保存和采用SQL Server数据库保存。对于各个硬件的描述信息,采用了txt文件这种轻量级保存方式,方便每次读取。对于车检器、洞外环境探头、洞内环境探头采集到的数据,将它们保存在SQL Server数据库中,因为这些硬件需要长期工作,采集到的数据量非常大,保存在数据库中可以方便以后的查询和使用。
隧道照明监控软件的运行过程如图5所示:用户首先登入系统,选择正确的串口号,进行初始化后,可以查询该线路上所有的硬件信息,包括洞内环境探头、洞外环境探头、车检器、调光控制器、回路开关控制器。对洞外环境探头、车检器设置合适的定时读取时间,假如车检器未检查到车辆的数据,那么直接通过调光指令发送模块发送数据给照明调光模块,让灯具进入低能耗状态。
图4 闭环反馈流程示意图
假如车检器检查到车辆经过,那么监控软件首先会根据车流量、车速的数据选定折减系数K值的大小,然后将洞外环境探头接收到的亮度数据根据公路隧道照明细则进行计算,得出隧道各段所需的亮度值,将这些数据保存进数据库中,并与洞内环境探头所测的洞内实际亮度数据做比较,假如两部分数据的差值在误差范围内,则不进行灯光调节,假如超过了误差范围,则将两部分数据作为闭环反馈模块的输入参数。最后将闭环反馈模块输出的结果转化为相应的命令发送到照明调光模块中,调光模块对灯具进行亮度调节,以满足要求[9]。
本文设计的隧道照明监控软件在实验室中进行测试,主要选取入口段的亮度值作为测试的重点,记录一天中室外环境探头所测得的亮度数据用来模拟隧道洞口外的环境亮度值;用室内环境探头测得的亮度数据来模拟隧道洞内入口段的实际亮度值;亮度需求值根据公路隧道照明设计规范以及工程师给的建议,采用的K值为0.035。将数据采集时间设置为每隔30分钟采集一次,将采集结果从数据库中取出,进行归纳,采集结果如图6和图7所示。从图7可以看出,亮度需求值与经过系统调光后的实际亮度值基本一致,该隧道照明监控软件系统可满足实际需求。
本隧道照明监控系统通过采集隧道洞外亮度的数据,根据公路隧道照明设计细则计算出隧道各路段的亮度值,并结合洞内的实际亮度形成闭环反馈系统,将最后结果发送到调光控制器中。经过实验验证,系统调光结果符合亮度需求,能够实现智能调光功能,有利于提高驾驶员的驾驶舒适性和安全性,同时可以降低运营成本,能够在隧道照明系统中使用,具有较好的实用性。
图5 隧道照明监控软件的运行简图
图6 模拟洞外环境探头的24小时亮度图
图7 模拟入口段的24小时亮度值