低能耗长航时水下机器人方案的探究
2015-02-14曾舒婷
曾舒婷
(南京大学金陵学院,南京,210000)
0 引言
水下机器人作为一种多用途的海洋开发与海洋探索工具,受到各国的普遍重视。水下机器人诞生于20 世纪后半期,经过几十年的发展,已经广泛应用于海洋科学考察、打捞救生、海洋军事、渔业、水产养殖、海底石油勘探、海底光缆铺设等领域,取得了显著的经济和社会效益,同时水下机器人的各类技术也取得了长足的进步[1]。
最近几年,功耗问题在各个行业都引起了重视,功耗已经成为衡量产品的一个重要指标。随着水下机器人技术的发展,低功耗和水下长期作业成为近来的发展趋势之一。推进器作为水下机器人的主要组成部分,其所消耗的能量在整个系统的功耗中占据相当大的一部分,所以对于自带能源的水下机器人来说,在不降低其机动性的前提下,采用可倾转的机构来减少推进器数量成为水下机器人的一个发展方向。
1 能耗分析
一般地,在水下机器人运动平台上都使用螺旋桨导管推进器,并根据功能需求来确定平台上最终安装推进器的数量,例如水下机器人要完成6 自由度的水下运动则需要安装至少6 个推进器,而且这6 个推进器是固定安装的。如果水下机器人运动平台在作业时频繁移动,那么这6 个推进器的能耗绝对在整个系统中占据非常大的比重。
水下机器人运动平台要完成一个自由度上的运动,螺旋桨推进器必然需要正转一次、反转一次。我们知道,螺旋桨一般都设计为:当螺旋桨叶片正向转动时推进效率最高,叶片反向转动时推进效率最低,推进效率至少相差10%,而对于水下机器人使用的导管推进器来说,这个数字可能会更大。
考虑到螺旋桨叶栅干扰作用——叶片数越多叶栅干扰作用越大,本文水下机器人选用3 叶片螺旋桨推进器。
2 系统设计
对于自带能源的水下机器人来说,在不降低其机动性的前提下,采用带有2 个可倾转推进器的推进系统(以下简称可倾转推进器)来减少推进器数量成为新型水下机器人的一个发展方向[2-4]。
基于可倾转推进器的水下机器人具有与传统水下机器人所不同的推进结构,其载体两侧的两个推进器可绕中心轴倾转。这样,利用可倾转推进器便可实现载体4 个自由度的运动,即进退、潜浮、水平转向和横滚,这在不降低载体航行机动性的同时减少了推进器数量,降低了载体的能耗,适合在复杂的海底环境中大范围搜索或进行定点科学考察。同时,基于可倾转推进器的水下机器人与传统的固定推进器产品相比,可倾转推进器有更高的效率。例如,当水下机器人要求后退时,传统的水下机器人就会要求主推进器反转,而一般推进器的正反转效率相差很大,这样推进器就无法发挥更大的功效。而可倾转推进器只要倾转180°就可以使得推进器朝向相反的方向进行推进,这种情况下推进器始终保持正转,提高了推进器的工作效率,同样也降低了载体能耗。
可倾转推进器作为一种新型的水下机器人推进方式,非常适合进行海底科学考察。但由于其与传统水下机器人不同的推进结构,载体控制更加复杂。本文因此开展基于可倾转推进器的水下机器人运动控制研究,设计出高效的可倾转推进系统,并探索出一套有效的控制策略与方法,使得基于可倾转推进器的水下机器人得以实现,并可在今后的实际应用中发挥更大的作用。
3 控制系统设计
水下机器人作为一种先进的水下运动平台,需要有自主运动的能力,要完成这个目标需要一个相对复杂的控制系统,特别是当水下机器人的功能越来越强大、搭载的科学探测设备越来越多时,其控制系统就会越来越复杂。这里为简化设计方案的复杂度,仅将水下机器人作为一个运动平台进行讨论,假定该平台上并未搭载除控制系统外的任何其他科学探测设备。
为了完成对水下机器人的控制,水下机器人的控制系统必须包含完整的硬件系统和软件控制系统,如图所示。
图 水下机器人控制系统
硬件系统按照功能可划分为控制机构、执行机构,而控制机构又可分为处理器单元、数据采集单元、电源转换单元、通信单元,执行机构主要是用来执行控制机构发送的命令的,可以分为可倾转控制单元、推进控制单元。
软件控制系统同样可以分为人机交互界面、底层控制程序两部分。为了提高调试、控制的便捷性,可视化的人机交互界面是必不可少的,而为了完成最终的控制目的,底层的控制程序则起到了不可或缺的作用。
4 硬件系统设计
考虑到本文讨论的是一个水下运动平台,所以在硬件设计的时候只需要考虑如何完成对运动平台的控制即可。
要完成对一个水下机器人的控制且使得该机器人在水下可以保持一个稳定的运动状态,上述的各个硬件组成单元缺一不可。上述单元按照功能具体到实物上就是处理器单元、数据采集单元、电源转换单元、通信单元、推进电机及其控制器。下面详细描述各模块的作用。
4.1 处理器单元
作为水下机器人运动平台的心脏,处理器单元(CPU)要完成对水下机器人的控制,并使其保持一个稳定的水下运动状态。作为核心模块,原则上必须选择一个高性能处理器,但是本文由于不考虑水下机器人的智能化水平,只需考虑在降低功耗的同时能完成对水下机器人平台的控制,所以本文选择使用单片机MSP430,这是一种超低功耗的混合信号处理器。
MSP430 单片机的特点是:
1) 运算速度快。工作频率为25MHz,16 位的数据宽度,40ns 的指令周期,能实现数字信号处理的某些算法。
2) 超低功耗。电源电压采用1.8V-3.6V,独特的时钟系统设计,这些时钟可以在指令的控制下打开和关闭,从而实现对总体功耗的控制。
4.2 数据采集单元
该部分对水下机器人控制系统完成对自身运动状态的控制非常重要。因为水下机器人方案的特殊性,其不但需要常规水下机器人所必须的电子罗盘和深度计来提供自身的状态信息,还需要电位计来测量倾转推进器的倾转角度。
电子罗盘:通过电子罗盘可以正确检测水下机器人运动平台的自身运动姿态。
深度计:采用深度计可检测模块所处的深度,其输入信号为模拟量,必须经过A/D 变换为数字量以便完成定深控制。
电位计:一般多用在伺服系统的直流电机位置检测或者音响调节等方面。
4.3 电源转换模块
水下机器人运动平台需要多种不同的电压,例如CPU 使用的+3.3V 电源以及部分传感器的电源、深度计的电源、进行D/A 变换的参考电源,推进器的推进电源等,所以电源转换模块在水下机器人中起到非常重要的作用。
4.4 推进电机及控制器
航行控制单元主要是由处理器、D/A 模块、保护电路等组成。航行控制单元的执行单元分为主推进器电机和可倾转伺服电机。二者的驱动方式不同,前者采用PWM 驱动,后者采用D/A 模块驱动。所以,航行控制单元实际上分为两部分,推进系统的控制采用开环控制,即处理器单元接收上位机发出的控制指令,通过PWM 方式输出控制信号,经过电气隔离控制推进电机的转速;可倾转推进器控制电机(以下简称倾转电机)采用闭环控制,处理器单元接收上位机发出的控制指令,然后通过D/A 转换输出模拟控制信号,经过电气隔离控制倾转电机的位置。倾转电机的位置信号通过安装在倾转轴上的旋转电位计测得,经过信息采集单元A/D 变换后送入处理器单元,形成闭环控制。
5 软件系统设计
硬件是躯体,软件是灵魂。水下机器人作为先进的水下运动平台,需要功能强大的软件作为支撑来完成其任务,而本文中所使用可倾转推进器的低能耗、长航时的水下机器人因为自身结构的复杂性,所以其软件系统更加复杂。
考虑到水下机器人的作用、系统本身的可维护性、使用的方便性,软件系统被分割为水面部分和水下部分分别进行设计。
水面部分主要是一个人机交互界面,包含水下机器人的运动姿态检测、设备状态监测、水下机器人的运动控制等部分,统称为上位机软件。
水下部分主要用于完成对水下机器人自身状态的监测并根据自身任务的需求以及上位机发送的控制指令完成对自身的控制,统称为下位机软件。
5.1 上位机软件
为了达到相应的功能,上位机软件需要具备以下几部分主要模块:
1)人机交互界面模块:提高系统的可维护性和使用的方便性。
2)通信模块:完成与水下机器人的数据交互。
以上两个模块在上位机软件中使用两个线程完成。
通信模块,作为工作线程存在于上位机软件中。考虑到本文所述水下机器人推进系统的特殊性,要求水下机器人的推进系统必须尽可能快地做出响应,以保证水下机器人的安全。同时,为了能够尽可能实现对水下机器人运动状态及自身设备状态的实时监测,上位机软件必须能够实时接收下位机软件发送的各种状态数据。
为了满足以上需求,上位机软件和下位机软件之间的通信采用全双工的通信模式,这样既满足了水面操作人员对水下机器人运动状态的把握,又能根据运动状态及时对水下机器人进行操控;从成本以及实际的通信距离的需要进行考虑,RS485 串口全双工通信的工作方式也是上位机软件和下位机软件之间通信的最佳方式。
上位机软件中的串口通信模块有2 种实现方法:采用C++的MFC 思路,将win32 串口通信的API 函数封装在一个类中实现;利用Labview 提供的VISA 资源编写串口通信函数。
5.2 下位机软件
下位机软件起到承上启下的作用,在整个水下机器人中同样非常重要,它不仅要接收上位机软件发送的控制指令并“命令”执行机构完成相应的控制任务,还要将水下机器人的各种状态数据发送给上位机。
为了简化设计并将最大的设计空间留给读者,本文所述的使用可倾转推进器的水下机器人并未搭载任何科学探测设备。所以,在设计下位机软件的时候可以暂时不考虑多任务的需求,也就是说,在本文所述的水下机器人运动平台上不需要实时操作系统,依靠CPU 自身的中断系统就可以完成相应的功能。
为了更好地完成下位机软件的设计工作,可以将下位机软件进行模块化设计,每一个设计模块都是相互独立的。模块之间的通信使用全局变量进行处理,根据功能的不同,下位机软件分为数据采集模块、运动控制模块、通信模块;根据运行方式的不同,下位机软件又可以分为主程序和中断服务程序。在此根据功能分别介绍不同模块的设计。
5.2.1 数据采集模块
该模块采集可倾转推进器水下机器人搭载的传感器的数据,用于监测水下机器人自身状态,并依据数据信息完成对水下机器人的控制。数据采集模块所涉及到的内容是传感器数据A/D 转换模块,根据搭载传感器的不同,数据采集模块采集的数据也不尽相同。
本文数据采集模块主要采集电位计、深度计以及倾转电机电流等的模拟数据,并进行A/D 转换;除了采集这些模拟数据之外,数据采集模块还需要接收电子罗盘发送的姿态信息,该信息是以数字的形式通过串口发送出来。
数据采集模块要对水下机器人状态进行实时监测,所以该模块必须要周期性地采集系统的状态信息。在进行软件设计时,必须使用CPU 的定时器并使用定时器中断服务程序来完成对相关数据的采集。
5.2.2 通信模块
通信模块既要完成下位机软件中内部的数据交互,还需要完成与上位机软件之间的数据交互。
下位机软件内部的数据交互比较简单,在此不再赘述。
下位机软件与上位机软件之间的数据交互涉及到通信方式的选择、通信端口的操作、协议的制定等方面。
上位机软件与下位机软件采用RS485 进行通信,在具体实现的时候会涉及到串口数据帧格式的选择,本文选用最常用的帧格式:8 位数据位,1 位停止位,无奇偶校验位,波特率为9600bps。
下位机软件与上位机软件进行通信时,需要对交互的数据做一个明确定义,这就是通信协议。那么,下位机软件发送给上位机软件的协议(上行数据协议)与上位机软件发送给下位机软件的协议(下行数据协议)应该如何定义呢?理论上二者应该是不同的,但是为了简化设计,本文对上行数据协议和下行数据协议采用同一种数据格式。
第00 字节为数据帧的起始位,固定为0XFF;第01-04 字节为航向角数据;05-08 纵倾角数据;09-12 为横滚角数据;13 字节为罗盘数据的高8 位,第14 字节为罗盘数据的低8 位;第15 字节为倾转电机电流数据高8 位;16 字节为倾转电机电流低8 位;17 字节为深度计数据高8 位;18 字节为深度计数据低8 位;19 字节为电位计数据高8 位;20 字节为电位计数据低8 位;第21 字节为帧数据校验和,具体如下表所示。
在进行通信模块设计时,出于低能耗、长航时方面的考虑,将基于中断请求机制进行模块设计,与轮询机制相比,中断请求机制比较少地占用系统资源,这种方式可以有效降低系统的能耗。
表 数据格式
5.2.3 运动控制模块
运动控制模块属于水下机器人的“手脚”,用来接收控制指令并完成相应的功能。该模块的设计相对简单,涉及到PWM 调速、伺服电机的D/A 控制。
推进电机采用PWM 调速,因为其对控制精度要求不高,所以可以简单地采用开环控制。
倾转电机是用来控制推进电机的倾转角度的,所以其对位置精度要求偏高,同时还要求有较高的响应精度。所以在对倾转电机的控制中,对位置需要进行闭环控制;同时根据控制精度要求的不同而采用不同精度的D/A 器件。推荐至少12 位以上精度的D/A 器件。
同样出于低能耗、长航时方面的考虑,在基于定时器中断进行程序设计时,系统有“记忆”功能,当前的控制状态只有在上位机软件主动改变时才会改变,否则会一直保持当前的控制状态,这样可以有效地减少运动状态切换产生的额外能耗。
6 结束语
本文从水下机器人螺旋桨推进器的数量、推进效率以及控制系统的功耗等3 个方面对基于可倾转推进器的水下机器人做了系统分析和设计,并提出了整体设计方案:
1)使用3 叶片的螺旋桨作为水下机器人运动平台的推进器,以降低螺旋桨的叶栅干扰作用。
2)设计可倾转推进器系统,使得推进器一直在正转的情况下完成水下机器人运动平台的运动需求,提高了螺旋桨的推进效率。
3)减少螺旋桨推进器的数量,降低运动系统在整个系统中的能量消耗。
4)为该水下机器人运动平台设计专用的硬件控制系统和软件控制系统,利用了低功耗信号处理器和中断处理机制。
通过以上措施,在未降低水下机器人运动平台的机动性的前提下,本文方案有效降低系统功耗并延长了自带能源的水下机器人运动平台的作业时间。
[1] 蒋新松, 封锡盛, 王棣棠. 水下机器人[M]. 沈阳:辽宁科技出版社, 2000.
[2] 冯正平.国外自治水下机器人发展现状综述[J].鱼雷技术,2005,13(1)∶5-9
[3] 国家中长期科学和技术发展规划纲要(2006-2020 年)[EB/OL].(2006-02-09)[2015-03-08].http∶//www.gov.cn/jrzg/2006-02/09/content_183787.htm, 2006.
[4] 成屹,聂文天.吊舱式全回转电力推进器的现状及展望[J].江苏船舶,2007,24(6)∶28-29,37.