基于多算法的ROV远程协同控制器设计与实现

2016-12-22 21:46董团阳魏国亮袁彬王建华
软件导刊 2016年11期
关键词:滑模控制

董团阳++魏国亮++袁彬++王建华

摘 要:ROV(Remotely Operated Vehicle)运动时,其精确的数学模型很难建立,往往达不到运动与操控的一致性。设计基于多算法的ROV远程协同控制器,主要包括两部分:ROV远程通信模块与多算法协同控制器。ROV远程通信设计采用串口转换以太网模块通信方式,将采集到的传感器信息以JSON数据格式实时发送给上位机;多算法协同控制器分别包括ROV偏航和深度的前馈PID控制器以及ROV俯仰的滑模控制器,可实现机器人自身的状态控制。最后,通过多组实验得出相应的控制效果和实验参数,验证了该远程协同控制器的有效性和实用性。

关键词关键词:ROV;JSON数据格式;滑模控制;远程协同控制器

DOIDOI:10.11907/rjdk.161937

中图分类号:TP319

文献标识码:A 文章编号文章编号:16727800(2016)011009404

0 引言

随着时代的发展,水下机器人在世界范围内的应用领域不断扩大,包括海洋研究(科学考察)、海洋开发和水下工程等,并在许多国家获得了迅速发展。以美国为代表的军事大国尤其重视水下机器人在未来战争中的应用。在海洋开发过程中,水下机器人将在复杂海洋环境探测与建模,以及海洋目标的水下探测与识别、定位与传输等方面发挥重要作用。如何有效地控制水下机器人的运动和姿态是很多研究者非常重视的问题。由于自治水下机器人运动控制具有时变、非线性、大时延、多自由度等特点,并且因为其所处水下环境的复杂性和多变性,人们很难得到精确的系统模型,给水下机器人的精确定位与控制带来了极大挑战。随着自治水下机器人的应用范围不断扩大,提高其自主性的关键技术之一是提高其控制器系统的性能[1]。

近年来,水下机器人得到了迅速发展,但是由于其作业形式多样,水下机器人的外形也各不相同,它们通常不具有流线型结构。然而现有的几种典型数学模型都是针对某一具体对象建立的,因此水下机器人至今也没有通用模型。另外,由于水下干扰(海流)较大,进一步加大了水下机器人定点控制(动力定位)的难度。在机器人的各种控制算法中,滑模控制由于具有对参数变化和系统未建模部分的鲁棒性和极强的抗干扰性,而成为水下机器人控制的有效方案之一。但是现有模型都是针对不同对象设计的,也没有研究过如何减轻因施加的控制作用而带来耦合作用的影响[2]。

因此,水下机器人的悬停控制算法和定向研究是一个极有价值的研究课题。鉴于此,本文设计出相应的控制器,通过PID算法控制ROV的深度和航向,滑模算法控制ROV的俯仰姿态。其中算法设计、参数整定,在MATLAB中已经实现仿真,并在实际测试中作了进一步验证。图1为本文设计的水下机器人。

1 ROV运动控制中存在的问题

针对ROV的俯仰姿态小角度控制,通常采用PID线性控制方法加以解决。但是当ROV的俯仰姿态角度大于15度时,PID算法将失效,ROV俯仰姿态出现振荡现象。通过多组实验研究,ROV的俯仰姿态与单摆模型类似,且都属于非线性控制问题。因此,本文设计了滑模控制算法来克服这种非线性控制问题。

ROV远程通信是水下机器人在水下执行任务时与地面进行通讯的枢纽。本文利用USR-WIFI232模块以及电力线载波模块,将水下机器人采集的数据实时反馈到水面。通信的数据格式是实现整个算法的基础。因此,选择一种有效的数据交换格式是设计的关键。本文采用JSON数据格式,解决了不同平台对传感器数据的解析和生成等问题。

2 ROV远程通信设计

2.1 ROV通信

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于ECMAScript的一个子集,采用完全独立于语言的文本格式,但也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等),易于阅读与编写,也易于机器解析和生成(一般用于提升网络传输速率)。这些特性使JSON成为理想的数据交换语言[3]。

因此,ROV系统采用C语言编写的JSON通信格式(见图2),实时发送传感器数据到上位机。在各种软件平台(MATLAB、LABVIEW等)上,都有相应的SDK解析该格式的数据包,方便了用户开发。

2.2 ROV编程解析

USR-WIFI232-D2模组是一款一体化的802.11b/g/n WiFi和以太网的模组,提供了一种将用户的物理设备连接到WiFi无线网络或以太网上,并提供USART数据传输接口的解决方案。通过该模组,传统的低端串口设备或MCU控制的设备可以很方便地接入WiFi无线网络或以太网,从而实现物联网络控制与管理[4]。

网络编程发送的通信指令如下:

{

"motors": {

"set_motor1_speed":0,

"set_motor2_speed":0,

"set_motor3_speed":0,

"set_motor4_speed":0

}

}

其中,motors对象在JSON中表示为“{}”中的内容,数据结构为第二层”{}”中的内容。在面向对象的语言中,set_motor1_speed为电机1的属性,0为对应的属性值,所以很容易理解,解析方法为motors. set_motor1_speed获取属性值。该属性值的类型可以是数字、字符串、数组、对象等。所以JSON不仅能够提高可读性,而且可以减少复杂性,容易编程,只需满足JSON格式即可。

3 ROV多算法协同控制器设计

3.1 ROV航向与深度控制器设计

在模拟系统中,算法表达式为:P(t)=KP[e(t)+1T1∫e(t)dt+TDde(t)dt ](1)

式(1)中,P(t)为调节器输出信号;e(t)为调节器偏差信号,它等于测量值与给定值之差;KP为调节器比例系数;KI为调节器积分时间;KD为调节器微分时间。

由于计算机控制是一种采样控制,它只能根据采样时刻的偏差值计算控制量。因此,在计算机控制系统中,必须首先对式(1)进行离散化处理,用数字形式的差分方程代替连续系统的微分方程[5]。

由式(4)可以看出,要计算P(k),不仅需要本次与上次的偏差信号E(k)和E(k-1),而且还要在积分项中把历次偏差信号E(j)进行相加,即从∑nj=0E(j)中得到离散系统的PID算法。然而,在应用于水下机器人的PID控制算法中,机器人自身的航向和深度控制始终会出现一些稳态误差和时滞性。因此本文对其作了一些改进,在PID输出后,加入一个前馈控制量(深度量和航向角度量)可以加快控制响应速度,及时消除稳态误差[6]。另外,深度控制和航向控制有一些区别,由于在姿态传感器的工艺中,航向的偏航角(yaw)为-180°~180°,在该过程中可采用一种最短路径算法,使水下机器人以最短路径和时间到达设定的航向角。

在水池实验中,讨论PID对水下机器人航向角控制的实现。当水下机器人的实际角度与设定值差的绝对值大于90°时,通过前馈控制给机器人一个前馈航向角度量,使机器人立即响应设定值;当差的绝对值小于等于90°时,机器人会自动采用PID控制器调整输出,以达到相应的设定值(允许误差范围内)。

以下介绍程序如何通过PID控制算法实现“前馈+反馈”控制水下机器人的过程:首先,通过串口中断接收JY-901采集回来机器人自身实际角度yaw的数据,并把数据发送到MATLAB上位机中;其次,判断此刻设定值与yaw差的绝对值是否大于90°,以决定在PID输出后,加入前馈航向角度量;最后,通过I2C发送输出转速到无刷直流电机,改变机器人自身角度去接近设定的目标角度[7]。程序框图如图3所示。

3.2 ROV俯仰控制器设计

水下机器人的俯仰角控制系统具有时变、非线性、大时延、多自由度的特性,由于水动力系数的复杂性和涌流环境的多变性,人们很难得到精确的系统模型,所以本文针对水下机器人俯仰角控制问题提出了一种近似数学模型——单摆模型,其动力学方程为:

其中,I表示转动惯量,θ、θ.、θ..分别表示水下机器人的俯仰角(pitch)、角速度、角加速度。m表示水下机器人的质量,l2表示水下机器人重心到浮心的垂直距离,F1、F2表示电机力矩,l表示电机力矩到浮心的垂直距离。

根据水下机器人系统所期望的动态特性设计系统的切换超平面,通过滑动模态控制器使系统状态从超平面之外向切换超平面收束。系统一旦到达切换超平面,控制作用将保证系统沿切换超平面到达系统原点。因此,本文设计的切换超平面方程为:

其中θ、θγ分别表示测量值pitch和设定值pitch,P表示需要调节的参数。滑模控制器方程为:

其中F、Ki、A、B表示需要调节的参数。这些参数的调节可满足到达条件,从而使趋近运动(非滑动模态)于有限时间内到达开关面。在趋近过程中具有快速、抖振小的特点,能够克服系统的不确定性,并且对于水动力系数的复杂性和涌流环境的变化具有很强的鲁棒性,使水下机器人的俯仰角控制取得良好效果。与PID控制相比,俯仰角的控制过程属于非线性系统控制,而PID控制是针对线性系统设计的算法控制器,其对干扰比较敏感[811]。因此,当被控对象采用滑模控制时,其对被控对象的模型误差、对象参数变化以及外部干扰具有极强的鲁棒性,可广泛用于复杂实际场合。其算法程序框图如图4所示。

4 ROV多算法协同控制器实现

通过多组实验数据以及仿真数据分析,针对水下机器人航向(yaw)和深度(roll)模型,可以得出前馈PID参数,如表1所示。

水下机器人俯仰角、航向控制仿真以及实验测试如图5、图6所示,细线代表机器人航向和深度控制,得到姿态传感器(IMU)和压力传感器数据,粗线表示MATLAB仿真得到的图形。由于传感器本身有大约2°或2mv的误差,所以在允许的误差范围内,实际波形会有一些波动。

ROV的稳定性及抗干扰能力是实际中机器人的关键指标,而水下最大的干扰是海流,进一步加大了ROV定点控制的难度。本文模拟海流实验将机器人放入具有一定水流速度的河流中,设定机器人-15°的俯仰角,让机器人自身通过滑模控制器控制机器人俯仰角为-15°。通过观察俯仰角数据曲线图,发现ROV稳定性以及抗干扰能力很好,验证了算法的实用性和有效性。

在模拟海流实验中,观察图6偏航角度数据曲线,ROV偏航角动态响应快,系统稳定性高,抗干扰能力强,达到了机器人运动与操控的一致性。其中机器人偏航控制采用前馈PID控制,参数调节简单,所以未使用滑模控制算法。而图中偏航角度波动属于传感器精度问题,在正常误差范围内可以忽略不计。

ROV以水面为基准电压表示0mv,横坐标代表时间,纵坐标代表压力传感器校准后的电压值。随着ROV潜水深度的增加,传感器电压值随之升高。而图7曲线描述了ROV在前馈PID控制下,深度稳定在设定值3mv的曲线,曲线波动表示在正常误差范围内,可以忽略不计。

5 结语

本文针对水下机器人的运动控制进行分析,通过串口转换以太网模块,将水下机器人自身的状态信息反馈到上位机,并利用MATLAB平台,对前馈PID和滑模算法控制进行仿真,以实现水下机器人的可操控性。在ROV偏航角、深度和俯仰角控制中,将其算法写入MCU中。由于ROV偏航和深度控制系统自带的时滞性,本文采用前馈PID控制算法对其进行控制,且通过多组实验得到了较好的控制效果。通过ROV多组测试的结果看,ROV俯仰角度变化过程与单摆运动类似,且都属于非线性时滞系统。故本文采用滑模控制算法,实现了水下机器人俯仰角控制的实际效果。最后,通过水下测试实验验证了控制算法的有效性和实用性。

参考文献:

[1] 黄佳.SAP程序设计[M].北京:机械工业出版社,2007.

[2] 邢志伟,封锡盛.水下机器人神经网络自适应逆控制[J].控制工程,2003(3):235238,258.

猜你喜欢
滑模控制
油气悬架车身高度控制研究
三相电压型PWM整流器新型双闭环控制策略研究
基于Buck变换器的滑模控制方法研究
P—模糊—PI滑模控制系统设计
适用于制导控制一体化的反馈线性化滑模控制方法
基于T⁃S模糊模型的机器人轨迹跟踪控制
穿浪双体船纵向运动滑模控制