电动消防水炮自动
2009-6-22 15:14:54
[摘 要]针对普通电动消防水炮不能自动规避车顶固定障碍物的问题,提出了一套基于单片机及E2PROM的水
炮自动避障碍控制系统。以一种新颖的“动态跟踪算法”作为避障碍运算的核心,使消防水炮在被操作人员
控制的过程中,能平衡、可靠地自动避让消防车顶的各种障碍物;同时,其障碍线坐标的录入方法具有简单
、准确的特点。可广泛应用于工业机器人、舰炮、雷达等的智能控制。
[关键词]消防水炮;障碍线;单片机
1引言
消防系统的智能化是一项新兴的研究课题。由于消防现场各种恶劣、危险、多变的环境因素,使得传统人力
操纵的消防设备正在被各种自动化设备所代替。其中,实现消防水炮的自动、智能控制是消防现代化的一个
重要内容。目前,国内已经有不少线控或遥控的电动消防水炮,这使消防人员摆脱了繁重的人工操作方式,
并能远离危险环境。但是,这些控制系统往往只具有简单的操纵功能,使水炮在操纵指令下实现水平和俯仰
角度的人为调节。我们知道,大多数大型现代化消防车顶都有各种竖立的消防设备和突起结构(如警灯、车顶
舱盖、水泵阀门、现场照明灯等),本文中统称为“障碍物”。实战时,操作水炮的人员需要集中精力观察火
场情况,很容易忽视这些障碍物的存在,在操炮过程中常误使庞大的水炮筒撞上障碍物酿成事故。
为此,笔者提出了一种可靠、实用的基于单片机和E2PROM[1]的控制系统,该系统能准确地记忆各障碍物的
位置坐标,并在水炮运行过程中自动调节炮筒的仰角,以平稳的运行轨迹精确规避障碍物,从而实现操作过
程中的智能化控制,提高了电动水炮的安全性。
2主控制系统构成
水炮的自动避障碍功能是在“消防水炮控制系统”[2]硬件及其主控程序的基础上,经扩展外部存储设备后
开发出来的子程序实现的。操纵人员通过转动操纵手柄实施炮塔方位角变化的随动控制,以及炮筒俯仰角变
化的随动控制,如图2—1所示。
图2—2给出了炮塔方位角控制系统的结构框图,炮筒俯仰角控制系统的结构与之类同。
在图2—2所示的闭环控制系统中,单片机通过比较炮塔方位角传感器的采样值与系统输入的方位值之间的误
差,从而产生相应PWM(脉宽调制)控制信号[3]。PWM功率放大电路,把控制信号放大后驱动直流电机的方位
和转速,使炮塔转到与输入值相一致的位置。其控制算法为数字PID控制器[4]。
如图2—1所示,水炮自动避障碍的含义如下:①在水炮被操纵着向左或右连续转动过程中,如果炮筒仰角过
低以至于可能碰上突起的障碍物时,单片机能及时发出抬高炮筒仰角的控制指令以避开障碍。②当炮筒被操
纵向下连续转动时,如果炮筒下方存在有障碍物的话,则单片机能及时发出停止下转的指令,使炮筒自动在
障碍物上方停住。
从逻辑上讲,要使水炮完成上述功能,首先要求控制系统能够记忆、存储障碍物的空间坐标。其次,由于不
同型号的消防车辆有不同的结构,障碍物的位置也因车而异,因此,利用E2PROM电可擦写的特性,用作记录
、存储坐标的数据,同时也能方便更新存储的数据。
3自动避障碍原理及实现
3.1控制系统核心电路结构
图3—1给出了水炮控制系统核心电路的结构。两片89C51单片机作为系统运算、控制的中枢。水炮的方位、俯
仰角传感器值,以及操作手柄输入的相应角度值经A/D转换器(ADC0809)输入单片机1。型号为X25045的串行
E2PROM(512个存储单元)作为记录障碍坐标的存贮器,单片机1是主控计算机,用于运算比较操纵手柄的输入
值与炮位值的误差,以产生所谓的手柄控制指令;同时,也将当前炮的方位、俯仰角与对应的障碍坐标比较
,作出是否需要规避障碍的决策以及发出避障碍控制指令,其中避障碍控制指令的优先权高于手柄控制指令
。各控制指令通过串口通讯发送给单片机2,该单片机将控制指令转换为PWM信号,经过光耦送到PWM放大电路
以驱动直流电机做出相应动作。
3.2障碍曲线的存储
在以水炮两个转轴交点为原心的球坐标系中,如果把各个障碍物在车顶的外轮廓投影到以水炮主位角θ和俯
仰角为坐标的二维平面,就形成了一条用以限制炮筒运行的“障碍线”(障碍线与实际障碍间有一定的裕量空
间),如图3—2所示。把这条线离散化后,实际上对应的就是一组由水炮的方位角采样值和对应俯仰角采样值
构成的数据。
水炮方位角变化范围为0~270°,经A/D转换后的采样值范围为0~255的8位二进制数据,须录入的数据量较
多。为了使整个录入过程简便,将障碍曲线近似为几段折线(如图3—2所示),这样只须由小到大顺序录入各
个折点上所采样到的水炮方位、俯仰坐标值,就可以通过线性插值运算自动计算出两相邻折点间各离散点的
坐标。设前一个折点的坐标为(θ1,ø1),后一个折点坐标为(θ2,ø2),则其间各离散点坐标(θn,øn)为:
这样,计算出来的障碍线坐标是按方位角θ由小到大的顺序连续排列的。利用编程控制,可以人为地规定以
E2PROM存储空间中的地址码(0000H~01FFH)代替方位角的坐标值来存储障碍线。比如,障碍线在方位角3AH上
对应的俯仰角为1FH,则在E2PROM中地址为003AH的单元存入1FH即可。这样,不用存储方位角坐标,节省了
E2PROM至少一半的空间来存其他重要数据。另一方面,可以根据方位角坐标直接寻址对应的俯仰角坐标值,
大大提高了查询数据的速度。
3.3避障碍运算中的动态跟踪法
系统自动避障碍的基本思想是:把水炮当前的方位、俯仰角,与障碍线进行对比,如果发现水炮此时的仰角
等于或低于障碍线,则立即发出抬高炮筒仰角的指令来规避障碍物。但由于手柄控制指令、避障碍控制指令
交替发生作用,强制上抬炮筒的规避方法势必造成炮筒在障碍线附近的上下震荡。另一方面,当水炮连续向
左或向右转动时,如果炮筒的俯仰角过低,且运行前方有凸起很大的障碍物时,那么,即使计算机发出了炮
筒上仰的控制指令,也有可能由于抬头时间过长而来不及避开障碍物。
为此,本文提出了一种新的避障碍控制算法——动态跟踪法。
前面已经提到,在主控制程序中,单片机控制水炮电机的运行方向、转速及停转的基本判据是系统
①如果θH>θ,即当水炮有向右转动的趋势时,则令
④一旦出现(θT,øT)=(θ0_5,ø0_5)的情况,则当且仅当水炮被控制到(θ,ø)=(θ0_5,ø0_5)时,才对目
标点(θT,øT)进行下一次赋值。
以上表达式包涵的实际意义是:
(Ⅰ)当手柄输入的坐标值(θH,øH)位于障碍线以下时,则系统以其在障碍线上对应的投影点(θ0_H,ø0_H)为
目标点。这样,当炮筒向下转到障碍线时,系统就会认为控制到位而停转,使炮筒稳定在障碍线上;(Ⅱ)当
炮筒在水平方位上有连续的转动,且手柄输入的值在水平方位上距离当前位置较远时,系统不断在水平方向
上监视比水炮当前方位值超前5°的障碍线上的坐标点(θ0_5,ø0_5),一旦发现水炮当前的俯仰坐标低于前方
5°的障碍线,则系统以(θ0_5,ø0_5)为目标运行,直到炮筒被控制到达(θ0_5,ø0_5)后,系统才开始进入下
一次判断。如此循环运行的结果使得炮筒运转于有障碍物起伏的区间时,能通过自动跟踪障碍线的轨迹来跨
越障碍物。这样,就解决了当障碍起伏较大时,水炮不能及时抬头的问题。同时,让水炮在障碍区间的运动
较平稳,且控制盲区很小;(Ⅲ)根据前面的描述,很容易理解:当手柄输入值跟水炮当前的值在水平方位上
的差别小于5°时,系统将以手柄输入值(θH,øH)或对应的障碍线上的坐标(θ0_H,ø 0_H)为系统的目标点。
由上可见,通过动态、适时地监视前方5°上障碍线的变化,可以使水炮产生跟踪障碍线以跨越障碍物的效果
,这也是将该控制算法命名为动态跟踪法的原因。
4实验结果
图4—1给出了不同状态下,水炮自动跨越障碍的运行轨迹。
由图可见,手柄输入的位置给定后,当运行前方有障碍物阻挡时,水炮能自动、稳定地跟随障碍线的轮廓运
行,以达到规避障碍物的目的。并且,当手柄输入的位置位于障碍线以下时,水炮能准确停止在障碍线上。
从图中还可以看出,水炮的轨迹只在障碍线转折的地方有小部分略低于障碍线,其余部分均与障碍线吻合地
很好。实验表明,在折点处轨迹曲线与障碍线的最大偏差均不超过3°。而障碍线与实际障碍物间都保留了5
°以上的裕量,因此不存在擦碰障碍物的可能。实际上,这种误差的存在,是我们在程序设计中规定以5°为
监测提前量的结果。实验还发现,虽然缩小这一提前量可以减小折点处的误差,但是会影响水炮运行的平滑
性。而把提前量设为5°,则是综合考虑了电机转速、障碍线裕度及系统的采样周期后确定下来的。
5结论
本文基于单片机及E2PROM等硬件设备,设计出了一套电动消防水炮自动避障碍的控制系统。实验表明,该系
统以独特的“动态跟踪法”为避障碍运算的核心,使消防水炮能在被操作人员控制的过程中,平稳、可靠地
自动避让消防车顶上的各障碍物;同时,其简单、有效的障碍线坐标的录入方法,使数据的存储、查询更加
快捷而准确。因此,本文提出的整套控制方法在消防自动化研究领域具有很高的实用及推广价值,也可以被
广泛应用于工业机器人、舰炮、地面雷达伺服等存在空间障碍物的自动控制领域。
相关新闻>>