(1.上海海洋大学 工程学院,上海 2013062; 2.华东师范大学 计算机科学与软件工程学院,上海 200062)
随着我国经济发展,汽车逐渐走入了每一个家庭,然而原有车库利用率低,停车位紧缺且难以管理,己成为影响城市发展的重要因素之一[1]。而目前市场上的立体车库大多是升降横移式、垂直循环式、巷道堆垛式等大型立体车库,以及小型的简易升降式立体车库[2]。巷道堆垛式等大型的立体车库存在造价高昂、管理不便、不易部署、存取车时间较长、维护困难等缺点。而一般的简易升降式立体车库在取车时需要移动底层的车辆,这给停取带来了极大不便,降低工作效率的同时加大了故障的风险。且绝大多数的立体车库采用的是链条牵动,链条的铰链磨损后,容易使节距变大造成脱节,并且安装和维护要求较高[3]。本文设计了基于丝杆传动的全自动立体式车库,以空间利用率高、结构简单、停取方便、易于管理等优点,成为解决这些问题的有效方式,因此可广泛应用于医院、车站、繁华的商业区等人流密集、车位紧缺的公共场所[4]。
图1为全自动立体车库的实物模型,该模型具有传统的书柜式整体外观结构,主要由书架式整体、存车传输平台、取车传输平台、车位传输平台、丝杆滑台及工控机组成。本系统共三层设计结构,一层为车库控制层,在该层边上安装有工控机,可进行存车和取车操作,且不妨碍行人可自由行走;二、三两层为车位层,共有2×3个停车位,按从左到右编号。车库的具体大小可根据使用环境、空间和用户需求进行灵活调整。存/取车传输平台和车位传输平台上均装有传送带,通过传输平台之间的相互配合,以实现对控制车辆的入库和出库控制。丝杆滑台通过X轴和Y轴方向的运动,以实现存/取车传输平台的左右、上下移动,且存/取车传输平台分别位于车库的前后两侧,结构对称,以方便车辆的存取。
图1 全自动立体书架式车库的结构图
本系统方案采用三层控制结构设计,即应用层、控制层和执行层,如图2所示,以实现对车库的智能化控制和管理。应用层为PC端设计的上位机管理界面,可方便用户选择具体车位和实时查看显示车库信息,并通过WiFi方式与控制器通信;控制层分别由Arduino和STC89C52RC单片机实现车库的定位和存/取车入/出库;执行层1由步进电机控制丝杆滑台,移动存/取车传输平台至用户选定车位;执行层2通过光电传感器检测,由直流电机控制各传输平台的传送带,完成存车入库和取车出库操作。
当进行存车入库操作时,用户先通过上位机界面选择停车位,由Arduino控制丝杆滑台分别在X轴和Y轴方向带动存车传输平台移动。当车位传输平台上的光电传感器接收到存车传输平台上的光电传感器发射的光电信号时,二维平面内定点控制结束,传输平台上的传送带开始工作,移动车辆入库。当收发一体的光电传感器接收到回传光电信号时,表明车辆停靠到位,传送带停止转动。取车出库过程与存车入库过程的控制方式相似。
图2 系统方案设计
车库控制的关键是实现存/取车控制,本系统由存车、取车和车位3个传输平台和光电传感器配合完成,光电传感器安装如图3所示,其中采用光电传感器的发射端和接收端分别控制存/取传输平台的对接,收发一体光电传感器检测存/取车是否到位。例如,当进行存车入库操作时,用户先在工控机上选择车位号,由Arduino单片机控制丝杆滑台带动存车传输平台在X、Y轴方向移动。当所选车位传输平台上的光电传感器1接收到存车传输平台上的光电传感器1发射的光电信号时,传输平台实现了二维平面内定点控制,传送带开始工作,移动车辆入库。当收发一体光电传感器1接收到回传光电信号,表明车辆停靠到位,传送带停止转动。
图3 存/取车控制
根据书架式立体车库系统的控制要求,本系统主要由丝杆滑台控制模块、传输平台控制模块和WiFi通信模块组成,控制器通过WiFi传输方式接收和反馈上位机命令;通过各模块间相互配合,自动完成存/取车传输平台在二维平面内的精准定位和车辆的出库/入库操作。
本模块采用Arduino UNO R3作为控制器,它是一款基于ATmega328的微处理器,工作电压为5 V,工作时钟为16 MHz,有14个数字输入/输出引脚,其中6个可用作PWM输出, 6个可用作模拟输入[5]。丝杆滑台控制模块电路示意图如图4所示,其中GPIO 6-13引脚连接S-250-12步进电机驱动器,由4个步进电机控制车库两侧丝杆滑台在X和Y轴方向的运动,实现存/取车传输平台的移动。
图4 丝杆滑台控制模块电路示意图
存/取车传输平台移动的距离可通过Arduino控制器产生的PWM波控制步进电机的旋转角度来实现,步进电机的主要参数如表1所示[6]。
表1 步进电机主要参数
假设车库中每个车位的长为amm,高为bmm,存车传输平台的起始位置为6号车位正下方,无论选择哪一个车位,存车传输平台均可在X、Y轴上移动后到达。假设丝杆滑台在沿X轴方向移动Lmm时,所需的PWM方波数n为:
(1)
式中,S为步进电机每转动一圈丝杆滑台时所移动的距离,即
S=πDI
(2)
本设计中采用8细分方式。相比于一般的PID控制,本设计使用了模型预测控制算法,引入滚动优化,反馈矫正,多步预测等策略,有效的减少了PID控制的滞后时间,提高了系统的抗干扰性,具有较高的鲁棒性[7]。
MPC控制器简化结构如图5所示。其中,ydes为丝杆滑台期望运动距离,yr为丝杆滑台运行轨迹,u为输入的PWM方波数,y为丝杠滑台实际运动距离,yp为反馈矫正,ym为基于丝杆滑台运动模型的输出。丝杆滑台可简化为线性系统,对于该系统,总的反馈矫正为有未来控制的强迫响应与无未来控制的自由响应之和。
图5 MPC控制器结构简化图
控制目的是使未来输出误差值逼近于零,并取最小优化性能指标即控制增量平方与预测误差平方的加权和取最小值。本设计使用广义预测,t时刻的优化性能指标表达式如下:
(3)
式中,x1、x2分别为优化的开始值与终止值;ε为对象输出的期望值;Ux为控制时域;γ(i)为控制加权系数。同时对控制信号,控制增量和输出值做出约束:
(4)
通过实验可得,该MPC控制器通过预测很好地补偿纯滞后的影响,基本满足设计要求,可以准确地控制丝杆滑台的存取操作,提高控制精度[8]。
由于Arduino控制器资源有限,本模块采用STC89C52RC低功耗微处理器作为控制芯片,其工作电压为3.3~5.5 V,共32个通用I/O口[9]。传输平台控制模块电路示意图如图6所示,其中P0、P1及P2.0~P2.2端口连接光电传感器,本设计采用QT30CM和E18-D80NK-N光电传感器,安装如图3所示。在存/取车传输平台上分别安装有光电传感器的发射端,在车位传输平台上的对应两端分别安装有光电传感器的接收端,用于存/取车的定位控制;另外在车位和取车传输平台上还分别安装有收发一体光电传感器,用于控制车辆入/出库到位时停止直流电机转动。
本模块中有存车、车位和取车3个传输平台,分别由8个直流电机控制,分别接在P2.3~P2.7及P3.2~P3.4上,实现存/取车操作。当指定车位的光电传感器接收端接到信号时,STC89C52RC单片机发出控制信号,控制直流电机工作,带动存/取车传输平台与车位传输平台同时同向转动,进行存/取车操作,当收发一体的光电传感器接收到信号时,车辆停车到位,直流电动机停止,存/取车操作结束。
图6 传输平台控制模块电路示意图
该系统中存车入库或取出库的操作,需要通过上位机进行控制和显示,因此,选择了成本低、功耗低的ESP8266串口转WiFi模块进行无线通信,它能够实现点对点的数据传输[10]。当上位机发出存车或取车命令时,上位机将包含车位信息、存/取车操作信息及车位状态的数据包({车位信息;存/取车操作信息;车位状态信息})发送给下位机,下位机接收到数据包后,对其进行解析并得到相应的信息,随后丝杆滑台控制模块根据车位信息,准确定位,执行存/取车的操作,而传输平台控制模块将执行存/取车操作后的车位信息存储,并将数据包中的车位状态进行更新,通过WiFi通讯反馈给上位机。具体数据包信息如表2所示。
表2 无线通信数据包
本系统主要包括丝杆滑台和存/取车入/出库两个控制部分。由于采用Arduino和STC89C52RC两种控制器,因此程序的开发环境分别为Arduino IDE和μKeil 4[11],通过WiFi模块接收上位机发送的存/取车命令,控制丝杆滑台的移动,同时结合相应的存/取车入/出库模块,将车辆存入相应的车位或从预定车位取出。其中,存车整体程序流程如图7所示,整体流程图中的存车入库检测模块流程图如图8所示。
图7 存车入库整体程序流程图
图8 存车入库检测模块流程图
Arduino控制器通过ESP8266 WiFi模块以中断的方式接收上位机发出的存/取车数据包。当未接收到数据包时,Arduino控制器一直处于休眠状态;当接收到数据包时,通过中断唤醒的方式唤醒Arduino控制器,根据车位信息计算出丝杆滑台在车库X轴、Y轴平移所需的PWM方波周期数,准确移动到相应车库位置。
当存车传输平台和车位传输平台(或取车传输平台和车位传输平台)上安装的光电传感器对管,实时检测到对应信号时,两平台对位准确,与Arduino控制器并行的STC89C52R控制器控制直流电机带动传送带,将车辆存入预定车库或从指定车库取出。一旦车位传输平台上安装的收发一体光电传感器检测到回传信号,说明停车到位,传送带停止转动;同时STC89C52R控制器会将车位数据包的车位状态位置1,表示当前车位有车,并通过ESP8266 WiFi转串口模块将车位数据包发送给上位机,实时反馈车库的当前车位信息。
书架式立体车库的上位机管理界面采用LabVIEW开发。LabVIEW是一种图形化编程语言,具有开发周期短、可兼容多种开发方式等优点[12]。本设计中开发的上位机管理界面可供用户选择车位,下达存车、取车操作命令。
3.2.1 通信模块设计
本系统的上位机和下位机之间采用WiFi通信,通过TCP/IP控件实现WiFi网络通信。在建立通信前,需先对控件的IP地址和远程端口等传输特性进行设置[13]。
3.2.2 存/取车命令模块
该模块由停车按钮控件、取车按钮控件、TCP/IP数据写入控件、TCP/IP数据读取控件、车位指示灯控件和停取车提示灯控件组成,如图9所示。其中TCP/IP读写的数据格式均为2.3节所述的数据包格式。
图9 存/取车系统
以车位1的存/取车操作为例简述具体操作过程。
停车过程:在上位机和下位机成功建立通信连接的前提下,选择1号车位,点击1号车位的停车按钮,此时TCP/IP写入模块将协议数据包{0001;1;0}发送给下位机。其中数据包中的数据从左往右依次表示“用户选择了1号车位”,“执行停车操作”,“1号车位空闲”。下位机接收到数据包后进行解析,并执行1号车位的停车操作。
取车过程:在上位机和下位机成功建立通信连接的前提下,选择1号车位,点击1号车位的取车按钮,此时TCP/IP写入模块将协议数据包{0001;0;1}发送给下位机。其中数据包中的数据从左往右依次表示“用户选择了1号车位”,“执行取车操作”,“1号车位繁忙”。下位机接收到数据包后进行解析,并执行1号车位的取车操作。
此外,停/取车系统会周期性地接收下位机发回的数据包。系统在接收到数据包后会对数据包进行解析,提取数据包中的“车位状态”位和“停/取车操作信息”位的数据,并将其转换为布尔变量,用于“车位状态指示灯”和“停/取车提示灯”的控制。
上位机设计界面和存/取车入/出库的实时状况如图10所示。
图10 存/取车入/出库上位机设计界面
根据上述控制要求及软件设计等做出了小型实物模型,模型具体如图11所示,立体书架式车库整体长为100 cm,宽为160 cm,高为100 cm;每个车位平台的长为33 cm,宽为20 cm,高为40 cm;丝杆滑台的长为100 cm。运输平台(传送带)的长度为20 cm;丝杆滑台的速度为2.5 cm/s,传送带的速度为3 cm/s。
图11 小型实物模型
本全自动立体书架式车库存/取车共分为12个不同过程,分别为存/取1~6号车位中汽车时的存/取过程。现以1号车位为目标车位进行存车操作:从存车传输平台动作开始计时,至1号车位传输平台上光电传感器检测到停车到位为止,存车时间计时结束。取车操作:从取车传输平台动作开始,至从1号车位取车成功(回到初始位置)为止,取车时间计时结束,具体数据存/取时间记录如表3所示。
对8组测试数据进行分析,将6个车位的存/取车时间与理论值进行对比,求出8组数据与理论值之间的误差平均值和存/取车时间精度存于表4中,可知各过程时间数据的精度均大于99%,系统运行精度与期望情况相符。通过多次反复试验与统计,本全自动立体车库在实验室的模拟调试中能够较好地完成设计要求,平稳运行,具有实际意义。
表3 全自动立体书架式车库不同车位存/取时间记录表 单位:s
表4 测试值与理论值分析表
我国建筑规范中对车库设计标准规定比较复杂,主要分为4个等级。本文以小型车停车库为例,当采用垂直式停车方式,车位大小为5.3 m×2.4 m,停放6辆车时所用占地面积为73.32 m2,采用本文设计的立体式车库停放6辆车时传输平台等固定占用面积为47.58 m2,节约了35.10%的用地面积[14],且此车库平台安全稳定,保障了车库下方通道的安全通行,随着立体车库层数的增加,车库用地面积效率将成倍增加,大大提高了有限空间的利用率。
本文设计了一款新型的全自动立体书架式车库系统,整体设计模型采用书架式结构,根据应用层、控制层和执行层这三层体系结构,由Arduino和STC89C52RC单片机分别对丝杆滑台和传输平台进行控制,实现车辆的自动存取,并将控制和反馈信息通过WiFi无线通信,传输给上位机监控系统,以实现对车库的管理和对车位状态信息的实时显示。该系统制作了实物模型,经过测试,系统运作平稳,存取车准确可靠,提高了车库有限空间的利用率,实现了车库的智能控制和管理,是解决车位紧缺、结构复杂以及管理效率低的有效手段,可在医院、车站、商业区等公共场合应用和推广,具有良好的应用前景。