APP下载

基于RT-Thread的波浪滑翔器控制系统设计与实现

2020-08-29熊斯年王海军吴小涛

数字海洋与水下攻防 2020年4期
关键词:外设航路舵机

熊斯年,王海军,吴小涛

(中国船舶重工集团有限公司第七一〇研究所,湖北 宜昌 443003)

0 引言

海洋里蕴含丰富的资源,发展海洋经济、海洋科研一直以来都是我国推动强国战略的一个重要方面[1]。海洋环境错综复杂,波浪滑翔器作为一种新型的无人自主航行器,能够利用海洋中源源不断的波浪能实现超远距离航行[2-3]。其续航时间长、能耗低、生存能力强等特点能够很好地执行观测及获取海洋环境数据的任务[4-5]。

影响波浪滑翔器航行性能的因素很多,如系统的总体流体动力参数配置、结构强度、防污防腐等[6],其中控制系统作为波浪滑翔器的大脑,其准确性和可靠性直接决定了波浪滑翔器的航行性能。为实现波浪滑翔器长期、有效的航行控制,需要采用可靠、稳定、实时数据传输的控制系统,而目前很多自主航行浮标采用无操作系统嵌入式系统设计,无法满足上述要求。本文设计的基于RT-Thread实时操作系统[7]的控制系统是以 STM32单片机为载体,具有实时协调控制能力强、可靠性高等优点[8],能够很好地满足波浪滑翔器对控制系统的需求。

1 控制需求与策略

作为波浪滑翔器诸多系统的核心,控制系统的可靠性与稳定性是波浪滑翔器长期、安全、有效运行的前提。控制系统主要由2个部分组成,包括运动控制和通信控制,其中通信控制又包括内部通信与外部通信控制。

1.1 舵机控制方法

海水由很多个海水质点组成,在风力的作用下,这些质点在其平衡位置附近作周期性运动,这种运动产生了波浪能。作为海洋中蕴含丰富、清洁环保的波浪能构成了波浪滑翔器前进的推力,但这种推力受到海洋环境变化的影响,导致波浪滑翔器航速和航向难以保持稳定。因此需要对波浪滑翔器舵机的舵角进行控制,使其能够在预先规划好的航路上航行。其控制方法如图1所示。

图1 运动控制流程图Fig. 1 Flow chart of motion control

式中,X1、Y1与X2、Y2分别表示当前位置与目标位置的经纬度,假设波浪滑翔器试验地点位于北半球,即纬度为北纬。其中R表示地球半径,为了计算方便,取其值为地球的平均半径6 371.004 km。方位角为目标位置之于当前位置的方向角,是以正北为0°起点,顺时针方向旋转的角度。

通过解算出的距离与误差允许范围进行比较,判断是否到达目标航路点位置,若未到达目标航路点位置,则通过磁罗盘读取的姿态角与目标方位角进行计算,并通过PID控制对舵机进行操舵,修正航向。若已到达目标航路点位置,则选择前往下一个航路点或保持原地,若为保持原地,则将目标航路点位置的经纬度保持不变。

1.2 通信控制策略

通信控制是波浪滑翔器控制系统的重要组成部分之一,包括外部通信控制与内部通信控制。外部通信是指波浪滑翔器与岸站之间的通信,是参数预置、航路规划、设备状态监测、外设控制等指令传输的途径,是远程控制波浪滑翔器唯一、有效的途径;外部通信控制由无线通信与卫星通信实现,其中无线通信距离近、速度快,用于波浪滑翔器布放之前的功能检查、参数预置、航路规划;卫星通信距离远、速度慢,用于周期性地传输心率报文,检测设备状态以及紧急情况下的系统控制。

内部通信是指主控芯片与各个外设之间的通信,是外设控制、数据采集等指令传输的途径,是波浪滑翔器稳定工作的前提。外设通过串口与主控芯片进行数据交换,传输外设控制报文以及任务数据如海洋环境观测数据等。

波浪滑翔器通信控制数据流如图2所示。

图2 通信控制数据流Fig. 2 Data flow of communication control

2 控制系统硬件设计

波浪滑翔器控制系统硬件部分主要由主控芯片 STM32F407、时钟输入模块、存储模块、电源模块以及各个外设组成。

2.1 STM32F407

STM32F407是由意法半导体开发的一种高性能32位微控制器,该嵌入式处理器集成了DSP和FPU指令,其主频达到了 168 MHz,具有外设丰富、低功耗、控制算法执行速度快、代码效率高等优点,被广泛应用于各个领域[8]。波浪滑翔器控制系统是一个复杂庞大的系统,选取STM32F407作为主控芯片能够很好地实现波浪滑翔器控制系统的基本需求。

具体的诉讼程序与普通民事诉讼相同,此处不再赘述。但需要提示的是,具体管辖法院可以参照《最高人民法院关于专利侵权纠纷案件地域管辖问题的通知》以及地方关于专利侵权管辖的具体规定确定。

2.2 控制系统总体方案

在波浪滑翔器的控制板上,作为数据存储器的SD卡通过SDIO接口与主控芯片进行连接与数据交换,保存通过各个外设传感器获取的数据。主控芯片通过串口分别与卫星通信模块和无线通信模块进行连接,这种通信接口的特点是信号线少、波特率选择灵活、采用负逻辑传输、传送距离远等,能够很好地满足波浪滑翔器控制系统对通信的需求。另外一条串口上连接着波浪滑翔器的所有外设,包括任务载荷如用于检测海洋环境或自身设备状态的各类传感器:波浪传感器、气象站、流速仪、ADCP(声学多普勒流速剖面仪)、磁罗盘、CTD(温盐深仪),以及用于系统辅助推进的推进器与舵机。通过串口上传输的内部控制报文将所有外设与主控芯片进行联系。控制板电路框图如图3所示。

图3 控制板电路框图Fig. 3 Diagram of control board circuit

3 软件设计

波浪滑翔器控制系统的软件是基于RT-Thread实现的,RT-Thread是一款由国内专业人员开发的开源嵌入式实时操作系统,遵循GPLv2许可协议,包含了实时嵌入式操作系统相关的各个组件:实时操作系统内核、TCP/IP协议栈、虚拟文件系统、Libc接口、图形界面、CAN框架、动态模块等。由于其系统的稳定性,被广泛应用工业控制和物联网应用等领域[9]。

3.1 软件总体设计

软件总体主要包括初始化模块、通信功能模块、指令处理模块、导航控制模块,每个模块由多个线程组成,线程之间相互独立,通过信号量与邮箱进行通讯。

系统上电后,完成对系统时钟、中断、串口的设置以及对内核对象、系统定时器、系统调度器的初始化,还包括对波浪传感器、气象站、流速仪、舵机、CTD、磁罗盘、ADCP、推进器等外接设备的初始化工作,工作指示灯线程、CPU监控线程、报文接收发送线程、报文指令处理线程、卫星组件线程、航行线程的初始化。

3.2 通信模块设计

通信模块主要包含以下线程:无线通信报文接收发送线程、卫星通信报文接收发送线程,各个线程之间相互独立。

完成系统、外设、线程初始化工作后,进入通信模块,等待接收通信报文,根据报文传递的途径分别进入不同的线程,这些线程功能为简单处理报文,将岸站发送给控制器的报文归类为控制器接收报文或控制器发送报文并发送给不同的邮箱进行处理。这些报文所包含的控制指令主要包含4个方面内容:系统指令、外设指令、文件控制指令、航行指令。系统指令主要的功能是读取或设置系统参数、软件复位、开始或停止发送心率报文等。外设指令主要的功能是读取或者设置外设属性及状态,获取外设数据,打开或关闭外设等。文件控制指令主要的功能是读取、发送、删除文件。航行指令主要的功能是添加删除或读取航路点,添加删除或读取航路,读取或设置有效航路和航路点,开始或停止航行。接收报文前需将串口接收设备状态、系统接收数据状态置为有效,当获取控制系统接收数据信号量后,从串口中获取报文数据,通过通信协议将数据整理成数组发送至报文处理线程进行处理。

3.3 指令处理模块设计

指令处理模块是控制系统的重要组成之一,根据岸站发送给控制系统的报文解析结果,执行相应的控制功能。

在报文指令处理线程唤醒后,首先查询控制系统报文接收设备工作状态,如果设备处于未工作状态,则将设备以读写方式、DMA接收模式开启,当控制系统报文接收设备处于工作状态时,挂起该线程直到等待接收报文信号量状态改变。当接收报文信号量改变后,将岸站发送给控制系统的指令码放于数组中进行处理,并使控制器执行对应操作。

控制系统在执行除重启指令外的功能后,组织回送报文,并等待获取报文发送信号量,将回送报文放入数组并写入串口设备中,最后释放信号量与分配给数组的动态内存。

所有指令函数的定义集成在指令处理函数中,在这个函数中申明了一个函数指针数组,数组里面的每一个元素都对应着一个指令函数,当岸站发送报文给控制系统时,控制系统便会根据指令选择执行不同的函数。每个函数里面包含对指令的响应以及回送报文的组织,通过这种方式使得软件代码清晰明了,减轻后期软件修改和维护的工作量。

3.4 导航控制模块设计

当有航行指令时会唤醒导航控制线程,为航行做准备工作。线程先读取舵机与磁罗盘数据并记录,同时将卫星与舵机外设工作状态置为有效。判断心率报文状态是否为开启以决定是否发送心率报文,通过卫星设备读取到的当前位置信息与目标位置信息进行计算,判断目标位置的距离与方位,再通过PID控制算法,将操舵指令发送给舵机,从而实现航行控制。

4 试验验证

基于RT-Thread实现的控制系统应用于由七一〇所自主研发的“海鳐-6000”型波浪滑翔器上。2019年5-8月,“海鳐-6000”型波浪滑翔器执行国家重点研发计划“无人无缆潜水器组网作业技术与应用示范”项目“海洋滑翔机改造与协作观测技术”课题,在南海中东部海域进行了走航观测、位置保持观测等试验,在经历了 4号台风“木恩”、5号台风“丹娜丝”、7号台风“韦帕”及9号台风“利奇马”的考验过后,产品完成了连续48 d的走航试验和连续46 d的定点观测试验,连续在位工作94 d,航行里程3 069.3 km,其中连续12 h定点位置保持精度小于100 m,自走航行试验在3级海况下,连续 12 h航行精度小于 500 m。“海鳐-6000”型波浪滑翔器定点观测与走航试验轨迹如图4所示。

图4 定点观测位置保持轨迹与误差Fig.4 Location trajectory and deviation of fix-point observation

图5 试验运动轨迹Fig.5 Movement trajectory in trial

5 结束语

本文针对波浪滑翔器的控制系统,主要完成了以下工作:

1)通过分析波浪滑翔器的控制需求,提出了一种舵机控制方法与通信控制策略,形成了波浪滑翔器控制系统的设计方案。

2)基于控制需求,设计了采用以STM32F407单片机作为主控芯片的波浪滑翔器控制系统硬件电路。

3)设计实现了基于 RT-Thread实时操作系统的波浪滑翔器控制系统软件功能,并通过长时间海上试验验证了该控制系统的可行性与稳定性。

然而由于波浪滑翔器的弱机动性和海洋环境复杂多变导致的大扰动性,使得其航行精度难以保持稳定,尽管波浪滑翔器的走航和定点性能整体表现良好,但从工程应用上航行精度还有进一步提升的空间,除了进一步优化波浪滑翔器平台系统外,在后续的研究中,要加大研究环境因素如风速、温度、浪高对航行控制的影响,进而优化波浪滑翔器控制系统,提高航行控制的精度。

猜你喜欢

外设航路舵机
基于改进连边删除评估法的关键航路段集合识别方法*
基于速度观测的双余度电液舵机系统容错同步控制
反舰导弹“双一”攻击最大攻击角计算方法*
基于改进RRT算法的无人机航路规划与跟踪方法研究
航班信息处理系统在灵活航路替换使用机制的应用
超音速舵机保护器
菜鸟看模型
舵机的应用
外设天地行情
外设天地行情