王 儒,吴子岳,李二杨
(上海海洋大学 工程学院,上海 201306)
为了保护长江流域生物资源,特别是中华鲟、江豚、长江刀鱼等稀少鱼类资源,国家出台了相关政策法规,在2020年底以前,完成水生生物保护区以及长江干流和重要支流水域的渔民退捕,暂定实行10年禁捕期[1],若发现非法捕鱼行为,将进行严厉的打击.但长江干流经过11个省,全长6300多千米,实现全面禁捕的工作非常艰难,目前水面主要以水上执法部门渔政监管为主,船只、装备不能满足大水域下的监管问题.
水面无人船(USV)是一种智能化的水面机器人,具有自主航行能力并可以完成信息采集、环境勘测、目标跟踪等特殊任务[2].在军用和民用领域均发挥着重要的作用.在国际上,美国最早提出并发展USV[3],代表的有Sea Owl和Ghost Guard型号USV,服役海军部队,全面增强了军队的作战能力.法国于2007年成功试水“Rodeur”号USV,实现海面侦察、反潜和监视等特殊军用级别的功能[4].在国内, USV发展与发达国家相比,仍存在差距,目前仍处于起步发展阶段,处于民用应用阶段,代表的有:隶属中国航天科工集团的沈阳新光公司研发设计的“天象1号”是应用于海上气象监测的USV[5];上海海洋大学研发的无人船装置,可以在大水域环境下实现环境的在线监测等功能[6].
随着科学技术的不断向前发展,远程控制技术成为水面监测的一种重要手段.与传统船只相比,微型USV更加方便、安全、经济.在监测水面石油泄漏,发现非法捕捞渔船,水域环境检测等发挥着不可替代的作用.本文主要研究设计了微型USV的整体结构系统,针对路径规划问题提出了基于MATLAB/BDS相结合的方法,在多水域环境下实现路径规划的准确性.
USV的结构系统较为复杂,通常是由机载本体、控制系统、信息采集系统等三部分组成,如图1所示.USV的结构组成为:两组70涵道无刷转子电机涵道风扇,SKYWALKER ESC 80A电调、JH 6000 mAh 35C 14.8V可充电锂电池、一体化的3D打印塑料机身;控制系统分为:STM32单片机作为主控制器、直流电池稳压模块、正点原子北斗卫星导航系统(BDS)定位模块ATK1218-BD、 障碍物激光测距避障检测选用型号为 RPLIDAR A1 ROS的激光雷达模块、无线传输采用USR-LTE-7S4 V2无线模块实现远程3G/4G信息传输功能(C语言开发的专用上位机配套软件),支持TCP/IP协议、GY-521 MPU6050电子陀螺仪模块.信息采集系统有:图像识别OV2640摄像头模块、水质传感器、PH值检测模块等.
在SOLIDWORKS中建立三维数字模型,添加约束条件,赋予USV船体材料属性.使用3D打印制造出USV机身,如图2所示.可以测定USV模型的基本参数值:重心相对于原点所在的位置为X=4.204 mm;Y=10.488 mm;Z=225.166 mm.表面积=189580.563 mm2.体积=361694.243 mm3.由重心决定的惯性主轴和惯性主力矩如表1所示.
表1 惯性主轴和惯性主力矩
(1:涵道风扇;2:USV机身;3:电调;4:主控制器;5:其他功能模块)图2 USV三维模型
本USV是由上位机软件通过无线通讯模块传输指令控制船载控制器 STM32 主控制器运行,还可以实现水面无人自主运行.驱动方式为两个无刷电机涵道风扇提供推力,转向是通过两个电机的转速差来实现的.本USV使用的 BDS 模块,可以获得USV机体的经纬度、轨迹航线和对地航速等信息,为USV运动轨迹规划提供位置信息支持.电子陀螺仪提供对地的船头方向角等USV水面上的姿态.采用无线通讯模块可以实现远距离信息传输,通过串口RS232与其他模块通讯,实现发送和接收信号,如图3所示,使用VB编写上位机软件界面.本USV通过串口RS232与上位机、船载控制器 STM32 主控制连接.当USV的无线通讯模块参数设置过后,通过预先设定的通信协议传输信息,USV上载体工控机和PC通过双向通信实现数据无线传输.在读取和发送RS232串口数据后,使用C语言编译设定的程序指令,截取数据中的指令,然后船载控制器根据控制指令做出响应.信息采集系统中摄像头可以监测水面环境,其他环境检测模块可以进行大水域下的环境监测等可拓展性功能.
图3 微型USV上位机控制界面
BDS是我国自主研发的定位导航系统,着眼于国家安全与社会发展进步,为全球用户提供高精度的定位、导航、授时服务[7].BDS定位精度,在亚太地区可以达到2.5 m,全球范围内10 m;测试精度0.2 m/s;授时精度10 ns;还具有其特有的短报文通讯功能.
USV正常运转时,接收到上位机的执行命令后,定位模块发出位置信号数据请求,接收来自BDS卫星的数据信号;BDS定位模块收到原始的数字信号后,通过信号预处理过滤出数据文件;通过RS-232串口经过TXD/RXD数据传输线交叉连接方式将数据文件传送于STM32;由STM32通过程序算法分离出经纬度、时间和海拔等信息,并通过RS232串口总线经过TXD/RXD无线传输方式传送给管理中心存储,如图4所示.
图4 导航系统工作原理
BDS卫星的定位原理是:在任意时刻在地球上任一点能够定位到 4 颗以上数量的卫星.用户发出定位信号请求后,每颗卫星到发射信号源的距离通过电磁波来测定距离[8].利用三维坐标中的距离公式可以求得信号源的具体位置.公式如下:
(1)
式中:(Xi,Yi,Zi)表示第i颗BDS卫星的位置,i值取1,2,3,4;(X,Y,Z)表示发出信号的三维坐标;cT表示误差时间与光速的乘积.
当USV在水面运动时,为了简化定位系统模型,其运动规律可以近似看作是在二维XY平面上的运动,因此,USV从M点到达N点的运动定位系统模型为
(2)
式中:(x0,y0)为M点的位置坐标,其坐标信息可以由BDS定位测量出;v0为USV的前进的速度;φ0为USV初始运动时的方位角度.当USV从M点前进到N点时,BDS/MATLAB均值定位系统可以测出此时点N的相对位置(x1,y1),同时也可以通过运动模型推断出N点的相对计算位置,两个数据坐标经过相互修正最终得出USV的位置,可以通过这种方法多测量几组位置坐标信息,提高USV运动系统整体的定位系统模型的精度.
为了能够更加准确地描述USV的运动关系,采用惯性坐标系XoOoYo与运动坐标系XsOsYs,如图 5 所示.惯性坐标系用以描述USV相对于空间的位置;运动坐标系用来描述作用在USV上的力,其坐标原点Os取在USV的重心,Xs轴的正向指向船首,Ys轴的正向指向船的右舷,Zs轴垂直于水平面,方向由右手定则确立.
图5 惯性坐标系与运动坐标系
为了简化运动学模型,只考虑USV在水平面内的运动,其中沿着Xs轴直线运动速度用μ表示;沿Ys轴直线运动速度用υ表示;沿Zs轴转动角速度用γ表示;平面内USV运动坐标系的Xs轴与固定坐标系Xo轴的夹角为θ.
由于USV在重心所受的外力F外主要为涵道风扇推力Fpt惯性水动力Fi、粘性水动力Fe[9],它们的关系为
F外=Fpt+Fi+Fe,
(3)
式中,涵道风扇推力的合力Fpt、惯性水动力Fi、粘性水动力Fe在XsOsYs运动坐标轴上的投影分别可用Xpt和Ypt、Xi和Yi、Xe和Ye表示,Xe主要做阻力的作用,取负值.本文的USV是由两个无刷电机涵道风扇驱动,依靠无刷电机转动的差速实现转向(如图5所示),推进力主要作用在Xs轴上,因此Ypt可忽略.因此式(3)可表示为
(4)
本文设计的USV采用两个无刷电机涵道风扇作推动力.相对于其他采用船用螺旋桨作为推进形式,具有以下优点:1)相比于涵道风扇,船用螺旋桨在传动处密封性要求高,进水会使得整个控制电路以及电机严重损坏;2)在水下运行的螺旋桨,可能会缠绕到水草等不可确定的杂物;3)涵道风扇在水面上运行,推进器迎风面积小,且可以在空气中产生较大推力,可以满足USV的推进需求.风扇旋转所产生的推力可表示为[10]
则推力可以表示为
(5)
式中:nt为第t台电机的转速;D为涵道风扇直径;p为螺距;N为涵道风扇叶片.
假设流体是在理想的状态下,惯性水动力根据势流理论可推导[11]为以下方程:
(6)
式中,mx、my是流体力学中在x和y方向上的附加质量.
粘性水动力坐标系上可以分为横向粘性水动力和纵向粘性水动力[12],下面依次建立两种水动力的方程:
(7)
式中:Xe为横向粘性水动力;S为船体湿面积;Cf为摩擦阻力系数;Re为雷诺数;ρ为流体密度;L为特征长度;υ为水的动力粘性系数;ω为流场的特征速度;U为USV的前进速度.
Ye=Yνν+Yγγ+YNL,
(8)
式中:Ye为纵向粘性水动力;YNL为非线性水动力;Yνν和Yγγ为线性水动力方程.
Yν=-0.5ρLdu(0.5πk+1.4cbB/L)×
(1+τ/d×2/3),
(9)
Yγ=0.5ρL2du[0.25πk(1+0.8τ/d)].
(10)
式中,k为船体进水部分展比弦,k=2d/L,L为USV长度,d为平均吃水深度.
USV在水面上相对于固定坐标系的运动速度可表示为
(11)
而外力作用在USV上在固定坐标系可以表示为
(12)
外力在运动坐标系上分量可以表示为:Xs、Ys,它们与Xo、Yo的关系可表示为
(13)
联合以上方程,经过求导变换可以求得:
(14)
结合前面的外力方程式,可以得到推力方程为
(15)
USV不仅需要直线行驶,而且需要改变一定的角度来运动.旋转一定的角度是通过两个无刷电机涵道风扇转速差来实现转向,需要建立转向方程,结合风扇推力方程(5),根据USV的转向方程,可得到沿Zs轴旋转的角速度与双电机转速的关系式为
(16)
式中:J为USV的转动惯量;kω为转动的阻尼系数;α为推力差系数;B为USV的物理宽度.
联立以上求得的方程,可得到两个涵道风扇无刷电机驱动的USV的三自由度运动控制系统的方程组
(17)
建立USV数学模型后,可以得到基于MATLAB/Simulink的USV模型,如图 6 所示
图6 基于MATLAB/Simulink的USV模型
本文的USV路径规划是基于实时传感信息的模糊控制算法[13],通过监测障碍物与USV的距离和USV运动状态信息,通过MATLAB基于知识库模糊推理,解算出USV此时需要的速度变化Δν和转角变化Δθ,模糊控制算法通过得到规划信息,实现局部路径规划.该方法适用于未知环境下的路径规划研究,容易做到边规划边跟踪运动物体,实时性较好;同时克服了传统的势场法易产生的局部不稳定问题.模糊控制算法程序流程如图7所示.
图7 路径规划模糊控制算法流程图
建立控制系统运动模型后,需要进一步实验在路径规划研究上的效果,水流的速度经现场观测后设定为0.2 m/s,USV可以一个稳定的速度在水面上运动.
实验1:目的是为了检验控制器能否可以正常地工作.通过控制USV至实验指定的位置处,位置坐标设定为(0,0),初始的航向状态角度为0°,船速设定为0.5 m/s.匀速行驶一段距离后,左涵道风扇以额定转速继续转动,右涵道风扇停转,此时USV实现了90°转向,两风扇以额定转速继续转动使USV直线行驶一段距离.之后左涵道风扇停转,右电机正常转动,当USV转向至0°时,继续重复之前的控制步骤,实现了上阶梯形运动.为了保证整体控制更加稳定可靠,风扇旋转的次序颠倒,实现下阶梯运动.利用BDS观测到阶梯形实验曲线效果如图8(a)所示,实验结果显示USV整体控制系统稳定,满足进一步实验要求.
实验2:结合BDS与MATLAB均值数据验证规划路径上的准确性.USV目标轨迹是采用SIMULINK运动中的模型,MATLAB同时接受BDS反馈的坐标信息,通过MATLAB和BDS双坐标取双坐标中值方法,通过无线通讯反馈给无人船的STM32主控制器处理,及时调整USV路径规划的轨迹.如图8(b)所示,比较MATLAB测试数据、BDS测试数据、真实测试数据和MATLAB/BDS数据均值测试数据,通过测试结果可以得出:基于MATLAB/BDS数据均值处理过后的路径规划精确度更高.BDS在USV实际运动中抽样获得了4处监控位置的经纬度信息,它们分别为开始位置坐标S:(30.8900N,121.9013E);中间经过的两个点的位置坐标M:(30.8894N,121.9007E)和N:(30.8885N,121.9011E);终点位置坐标E:(30.8887N,121.9021E),路径信息与现场测试如图9所示.
(b)路径优化图8 USV实验结果对比
图9 试验现场
本文以两个无刷电机涵道风扇驱动的USV为研究对象,首先建立了USV整体结构模型,介绍了BDS路径规划原理及定位系统模型.针对研究对象,建立了USV运动学方程,最后研究了USV在水面二维空间内基于MATLAB/BDS路径规划问题,USV路径规划的控制研究在水面无人船的领域内具有广泛的应用前景,通过将BDS与MATLAB结合起来应用于USV中,更好地为USV路径规划提供了更加精确的方案.通过对其进行现场的水上实验得出:结合BDS实时同步的数据反馈、MATLAB规划路径、STM32控制板控制USV运行,使得USV能够及时准确地优化行驶路径,得到更加精确的路径规划结果.
但用于控制和监测USV的控制界面较为简单,需要进一步编写更加完善的上位机软件控制系统,满足USV的综合控制、定位巡航以及数据采集等更多的需求;在USV水面试验过程中,整体表现良好,但供电系统不能提供长久的续航能力,后续需进一步设计研究,满足航程更远的需求.