Skip to main content
PLOS ONE logoLink to PLOS ONE
. 2017 Jul 6;12(7):e0179611. doi: 10.1371/journal.pone.0179611

Trajectory following and stabilization control of fully actuated AUV using inverse kinematics and self-tuning fuzzy PID

Mohanad M Hammad 1,*, Ahmed K Elshenawy 1, MI El Singaby 1
Editor: Xiaosong Hu2
PMCID: PMC5500310  PMID: 28683071

Abstract

In this work a design for self-tuning non-linear Fuzzy Proportional Integral Derivative (FPID) controller is presented to control position and speed of Multiple Input Multiple Output (MIMO) fully-actuated Autonomous Underwater Vehicles (AUV) to follow desired trajectories. Non-linearity that results from the hydrodynamics and the coupled AUV dynamics makes the design of a stable controller a very difficult task. In this study, the control scheme in a simulation environment is validated using dynamic and kinematic equations for the AUV model and hydrodynamic damping equations. An AUV configuration with eight thrusters and an inverse kinematic model from a previous work is utilized in the simulation. In the proposed controller, Mamdani fuzzy rules are used to tune the parameters of the PID. Nonlinear fuzzy Gaussian membership functions are selected to give better performance and response in the non-linear system. A control architecture with two feedback loops is designed such that the inner loop is for velocity control and outer loop is for position control. Several test scenarios are executed to validate the controller performance including different complex trajectories with and without injection of ocean current disturbances. A comparison between the proposed FPID controller and the conventional PID controller is studied and shows that the FPID controller has a faster response to the reference signal and more stable behavior in a disturbed non-linear environment.

Introduction

AUV is considered one of the most challenging and difficult fields of research. Contemporary markets are looking to improve this field of research because of its great commercial importance and need [1]. Recently, AUV usage expanded to include seabed mapping, oceanographic and underwater living species exploration and research [24], oil industry pipeline inspection and maintenance [57], search and rescue missions [8], and operations in polluted and shallow water [9, 10].

Controlling an AUV is challenging because of uncertainties in AUV parameters and coefficients, coupled AUV dynamics, and non-linearity of underwater environments due to ocean current disturbances, hydrodynamics drag forces, and uncertain coefficients [11, 12]. Because of this, the conventional linear controllers like PID will only give the desired behavior around certain inputs and disturbances that it is tuned for. That is why the utilization of artificial intelligence to do self-tuning of the PID parameters is required, and will allow the AUV to have a robust control system in the disturbed non-linear environment [1317].

The desired controller should be robust and adapt to the changes in AUV and environment parameters. It should also be adaptive to the changes in the control performance because of the ocean current disturbance and the variation in AUV dynamics. Thus many control techniques have been proposed for the control of the AUV such as linear controllers [18, 19], Sliding-Mode Controllers (SMC) [20, 21], Fuzzy Logic Control (FLC) [2226], adaptive Control [27, 28], and neural network-based control [29, 30].

The disadvantages of linear controllers like PID, Linear Quadratic Regulator (LQR) and Linear Quadratic Gaussian (LQG) are that they only have stable performance around specific operating points and are not stable for variations in the environment and AUV parameters. The SMC is considered as an efficient and robust control for high-order complex non-linear systems. The major advantage of sliding mode is its low sensitivity to plant parameter variations and disturbances that do not require exact modeling. However, the implementation of SMC may lead to an undesirable phenomenon of oscillations with finite frequency and amplitude called “chattering” that results in low control accuracy, high wearing of moving mechanical parts, and wasting energy in actuators. The main reason for the chattering is the ignoring of dynamics from actuators and sensors in the system modeling. Some researchers presented approaches for chattering mitigation and suppression [31]. The inverse neural network-based controller disadvantage is that it requires a long time for training, and it is very difficult to obtain a fit generic model as the model can be over-fitted.

Fuzzy logic is a way to make machines more intelligent by enabling them to reason in a fuzzy manner like humans. It was first proposed by Lotfy Zadeh in 1965 [32]. It can deal with uncertain and qualitative decision-making problems. Controllers that combine intelligent and conventional techniques are commonly used in the control of complex dynamic systems. In the design of the traditional controllers like the PID, the knowledge of the system’s realistic physical model is required but are mostly unavailable because of their complexity. Fuzzy controllers are rule-based controllers that benefit from the expertise of human knowledge. They use a reasoning rule base for estimating the required control signal regardless of the system’s physical model knowledge [22, 23]. The main disadvantage of the FLC is that it has a lot of parameters to tune like the ranges and shapes of the membership functions, as opposed to the PID that has only three parameters. Beside it requires much more computation time than the conventional PID because of the complex operations. The FLC doesn’t have much better characteristics in time domain than the PID but the main advantage is that it can work with non-linear systems [33].

In this study a combination of the FLC and PID is utilized to obtain an enhanced control response with the PID controller under the supervision of the FLC system. This method combines the simple mathematical equations and low computation time of the PID controller with the ability of the FLC to tune and adapt the PID parameters so that they may work with non-linear systems. A comparison with the conventional PID is done to demonstrate the time-domain performance and the function of the self-tuned Fuzzy PID controller (FPID). In the design of the fuzzy membership functions, a combination of trapezoidal, triangular inputs and Gaussian functions for outputs are utilized. In Khodayari’s 2015 study [34] a similar approach has been introduced, but the inputs have only triangular membership functions and the fuzzy tuning is used for non-fully actuated AUV. In this work the fuzzy rules differ from the study in [34] as they provide a better tuning behaviour for the fully actuated system in the disturbed non-linear environment. The aim of using Gaussian membership functions is to obtain a non-linear response because of the non-linearity of the AUV system dynamics and hydrodynamics [35]. The AUV configuration along with the inverse kinematics and control architecture used in this research is demonstrated and presented in our previous work [18]. The advantage of this configuration is that we are able to have a fully-actuated AUV in which all degrees of freedom are controllable. This is achieved by accurately controlling the angular speed of each thruster independently based on the reference trajectory signals. This feature makes the AUV capable of tasks that require precise stabilization to ocean current disturbances like underwater pipeline maintenance and path-following in very narrow spaces, such as in the exploration of drowned ships.

This paper is organized as follows. Section “Kinematics and Coordinate Systems” explains the coordinate systems and kinematic modeling. Section “Configuration and Inverse Kinematics control model” shows the AUV configuration, thruster model, and thrusters inverse kinematic equations. In Section “Dynamic Model”, the AUV and environment dynamic equations are discussed. In Section “Control Design”, the proposed control architecture and design is demonstrated. In Section “Results”, a comparative simulation’s results and analysis of the robustness of the controllers are presented.

Kinematics and coordinate systems

The frames of references and coordinate systems used in marine navigation systems are explained in Fossen’s 2002 study [36] and also shown in Fig 1, the Earth-Centered Inertial frame (ECI/ i-frame) represented by [xi, yi, zi], the Earth-centered Earth-Fixed reference frame (ECEF/ e-frame) represented by [xe, ye, ze], the North-East-Down coordinate system (NED/ n-frame) represented by [n, e, d], and finally the body-fixed reference frame (b-frame) represented by [xb, yb, zb].

Fig 1. Coordinate systems.

Fig 1

The ECI frame is a non-accelerating frame in which its origin is at the center of the Earth. The ECEF frame also has its origin fixed at the center of the Earth, but its axes is rotating relative to the ECI frame, which is fixed in space. The ECEF frame rotates at angular rate ωe = 7.2921.10−5 rad/sec [37]. The NED frame is defined as the tangent plane on the surface of the Earth. For this system, the x-axis points north, the y-axis points east, and the z-axis points to the center of the Earth. The location of the n-frame relative to the e-frame is determined by using angles l and μ to denote longitude and latitude, respectively. The body-fixed frame is a moving frame with the AUV and the origin “O” of the b-frame is usually coinciding with the center of gravity (CG). For marine vessels, the body axes [xb, yb, zb] are chosen to coincide with the principal axes of inertia as shown in Fig 2.

Fig 2. Motion variables for a marine vessel (SNAME 1950).

Fig 2

The motion variables for a marine vessel underwater are represented using six parameters such that the first three parameters describe the translational motions in x, y, and z coordinates while the last three describe the rotations and orientations around the x, y, and z axes as shown in Fig 2 and SNAM’s 1952 study [38]. Table 1 defines each variable.

Table 1. The notation of SNAME (1950) for marine vessels.

DOF Forces and Moments (b-frame) Velocities and Angular Rates (b-frame) Position and Euler Angles (n-frame)
1 motions in the x-direction (surge) X u x
2 motions in the y-direction (sway) Y v y
3 motions in the z-direction (heave) Z w z
4 rotation about the x-axis (roll, heel) K p ϕ
5 rotation about the y-axis (pitch, trim) M q θ
6 rotation about the z-axis (yaw) N r ψ

In this work, we assumed that the ECEF frame is fixed and the NED frame will be the inertial frame tangent to the surface of the Earth. This is because the angular speed of the Earth is very small, and the AUV application studied in this paper is low-speed and works within short distances. As a result, the Coriolis effect is negligible. The position and orientation of the AUV will be described in the NED inertial coordinates, while the linear velocities, angular velocities, forces, and moments will be described in the body-fixed frame coordinates as shown in Eqs (1), (2) and (3).

Pn=[ned]R3,Θ=[ϕθψ]S3 (1)
vob=[uvw]R3,ωnbb=[pqr]R3 (2)
fob=[XYZ]R3,mob=[KMN]R3 (3)

Where Pn is the AUV position vector in the NED frame, Θ is Euler angles vector, vob is body-fixed linear velocity vector, ωnbb is body-fixed angular velocity vector, fob is body-fixed forces vector, mob is body-fixed moments vector. The generalized 6-DOF kinematic equation is as shown in Eq (4), that transforms velocities from body-fixed frame coordinates to NED inertial frame coordinates, such that the transformation matrix in Eq (5) transforms from AUV linear velocities vob to AUV inertial rates P˙n, the matrix in Eq (6) transforms from AUV angular velocities ωnbb to Euler rates Θ˙. The Euler rotation has a disadvantage such that a singularity might happen in the calculations which is called Gimbal Lock phenomenon. This singularity is later solved using quaternions in doing rotations instead of Euler.

[P˙nΘ˙]=[Rbn(Θ)03x303x3TΘ(Θ)][vobωnbb] (4)

where;

Rbn(Θ)=[cψcθ-sψcϕ+cψsθsψsϕ+cψsθcϕsψcθcψcϕ+sψsθsϕ-cψsϕ+sψsθcϕ-sθcθsϕcθcϕ] (5)
TΘ(Θ)=[1sϕtθcϕtθ0cϕ-sϕ0sϕ/cθcϕ/cθ] (6)

Configuration and inverse kinematics control model

The AUV dimensions are 30cm, 30cm and 40cm for height, width, and length respectively. A total of eight thrusters are used. The thrusters have been mounted in a vectored orientation configuration, and they will be classified into two groups, vertical and horizontal thrusters. The proposed modular thrusters configuration allow the AUV to have a holonomic motion. Such modular configuration approaches have been studied in wheeled mobile robots [39] and has shown more controllability. The configuration is shown in Fig 3. The top and bottom floaters are adjusted such that the AUV is neutrally buoyant underwater.

Fig 3. AUV body configuration.

Fig 3

The aim of the oriented vertical and horizontal thrusters is to obtain a unified center of rotation for the AUV vessel as shown in Fig 4.

Fig 4. Vessel center point and thrusters allocation.

Fig 4

An inverse kinematic equations that relate resultant AUV vessel velocities in the body-axis frame to the required thruster angular velocities have been developed. With the aid of these equations it was possible to convert the AUV to be fully-actuated. The parameters used in the inverse kinematic model of the horizontal thrusters are demonstrated in Fig 5 where lh is the distance between the center of the horizontal thruster and the center O of the AUV chassis. Figs 6 and 7 show the geometrical configurations of the vertical thrusters where lv is the distance between the center of the vertical thruster and the center O of the AUV chassis. The thrusters are mounted such that the axle is normal to the diagonal where they are located.

Fig 5. Horizontal thrusters geometrical configuration.

Fig 5

Fig 6. Vertical thrusters geometrical configuration 1.

Fig 6

Fig 7. Vertical thrusters geometrical configuration 2.

Fig 7

The angles ξh and ξv is calculated using the equations:

ξh=arctan(widthlength) (7)
ξv=arctan(heightwidth2+length2) (8)

The inverse kinematic control model for the horizontal thrusters are represented by:

[ωHFLωHFRωHRRωHRL]=λPprop[-sec(ξh)csc(ξh)lh-sec(ξh)-csc(ξh)-lh-sec(ξh)csc(ξh)-lh-sec(ξh)-csc(ξh)lh][uvr] (9)

While for the vertical thrusters are represented by:

[ωVFLωVFRωVRRωVRL]=λPprop[sec(ξv)lv-lvsec(ξv)-lv-lvsec(ξv)-lvlvsec(ξv)lvlv][wpq] (10)

Where propeller pitch Pprop is the axial distance covered in one revolution of the propeller (m/rev). λ > 0 is a unit-less control factor that is tuned to improve the controller response. The thruster angular velocity is ωXYZ, such that “X” stands for Horizontal (H) or Vertical (V), “Y” stands for Front (F) or Rear (R), and “Z” stands for Left (L) or Right (R).

The rule of thumb to formulate the inverse kinematic control model is to define the role of each thruster in actuating a DOF such that, for example, in case of the Horizontal Front Right (HFR) thruster, The thruster axial motion may lead to surge and sway motions in the AUV besides yaw rotation. It does not contribute to the heave motion since the thruster is normal to the z-axis of the AUV body-frame and can not provide roll and pitch rotations. In the case of a vertical thruster for example the Vertical Rear Left (VRL) thruster, this thruster axial motion may lead to motions in surge, sway, and heave motions besides roll, pitch, and yaw rotations since it has polar and azimuthal angles in x-y-z planes. However, in generating the control signals, we don’t need to command vertical thrusters to do surge and sway motions and yaw rotation, because it will be accompanied with undesired rotations and hence unstable movements. Vertical thrusters are commanded only if a heave motion or roll and pitch rotations are required. The controller will correct the undesired surge and sway movements using equations for horizontal thrusters and the feedback loop.

Dynamic model

Rigid body dynamics

The rigid body dynamic equations used in this study are derived from and formulated by [36] using Newton-Euler method.

The final general equations for translational motions are:

X=m[u˙-vr+wq-xg(q2+r2)+yg(pq-r˙)+zg(pr+q˙)] (11)
Y=m[v˙-wp+ur-yg(r2+p2)+zg(qr-p˙)+xg(qp+r˙)] (12)
Z=m[w˙-uq+vp-zg(p2+q2)+xg(rp-q˙)+yg(rq+p˙)] (13)

And for rotational motions are:

K=Ixxp˙+(Izz-Iyy)qr-(r˙+pq)Ixz+(r2-q2)Iyz+(pr-q˙)Ixy+m[yg(w˙-uq+vp)-zg(v˙-wp+ur)] (14)
M=Iyyq˙+(Ixx-Izz)rp-(p˙+qr)Ixy+(p2-r2)Izx+(qp-r˙)Iyz+m[zg(u˙-vr+wq)-xg(w˙-uq+vp)] (15)
N=Izzr˙+(Iyy-Ixx)pq-(q˙+rp)Iyz+(q2-p2)Ixy+(rq-p˙)Izx+m[xg(v˙-wp+ur)-yg(u˙-vr+wq)] (16)

Such that “m” is the mass of the vessel in kg and the rgb=[xg,yg,zg]T is the vector from the vessel origin O to the center of gravity (CG) decomposed in b-frame and Io is the inertia tensor of the vessel which is described by:

Io=[Ixx-Ixy-Ixz-IyxIyy-Iyz-Izx-IzyIzz] (17)

Where Ixx, Iyy, and Izz are the moments of inertia about xb, yb, and zb-axes:

Ixx=V(y2+z2)ρmdVIyy=V(x2+z2)ρmdVIzz=V(x2+y2)ρmdV (18)

And Ixy = Iyx, Ixz = Izx, and Izy = Iyz are the products of inertia:

Ixy=VxyρmdVIyz=VyzρmdVIxz=VxzρmdV (19)

Further simplification for the 6-DOF rigid body equations of motion is done such that it is assumed that the vessel is already buoyant and the center of buoyancy and body-axis frame [O, xb, yb, zb] coincides with the CG and principal axis of inertia, hence rgb=[0,0,0]T and Io = diag(Ixx, Iyy, Izz). As a result, the simplified equations of motion is defined as:

X=m[u˙-vr+wq]Y=m[v˙-wp+ur]Z=m[w˙-uq+vp]K=Ixxp˙+(Izz-Iyy)qrM=Iyyq˙+(Ixx-Izz)rpN=Izzr˙+(Iyy-Ixx)pq (20)

According to [40] the rigid body dynamics can be expressed in vectorial form as:

MRBν˙+CRB(ν)ν=τRB (21)

Where ν = [u, v, w, p, q, r]T is the body-fixed linear and angular velocity vector. τRB = [X, Y, Z, K, M, N]T is a generalized vector of external forces and moments. MRB and CRB will be referred to as the rigid body inertia, and Coriolis and centrifugal matrices, respectively.

MRB=[mI3×3-mS(rgb)mS(rgb)Io]=[m000mzg-myg0m0-mzg0mxg00mmyg-mxg00-mzgmygIxx-Ixy-Ixzmzg0-mxg-IyxIyy-Iyz-mygmxg0-Izx-IzyIzz] (22)
MRB=MRBT=[m11m12m21m22]<0 (23)

CRB can be calculated from system inertia matrix. Such that:

CRB=[03×3-S(m11ν1+m12ν2)-S(m11ν1+m12ν2)-S(m21ν1+m22ν2)] (24)

Where ν1 = [u, v, w] and ν2 = [p, q, r]. And expression S(.) denotes a skew-symmetric matrix or the cross operator such that:

a×=S(a)=[0-a3a2a30-a1-a2a10] (25)

Hydrodynamics

The hydrodynamic damping forces affecting underwater vehicles dynamics contain both drag and lift forces. However, the AUV works at low speeds so the lift force could be neglected because it has effect only at high speeds. As a result, only the drag forces will be considered. D’Alambert’s paradox states that that no hydrodynamic forces act on a solid moving completely submerged with constant velocity in a non-viscous fluid. But in a viscous fluid, frictional forces are present such that the system is not conservative with respect to energy. The drag forces can be separated into linear and non-linear terms, D(ν) = Dl + Dn(ν), where Dl is linear drag forces and Dn(ν) is non-linear drag forces. Since it is assumed that the vehicle body has symmetry about all planes, then Dl can be expressed as:

Dl=[Xu000000Yv000000Zw000000Kp000000Mq000000Nr] (26)
Xl=XuuYl=YvvZl=ZwwKl=KppMl=MqqNl=Nrr (27)

Where;

Xu=-12ρCduAduYv=-12ρCdvAdvZw=-12ρCdwAdwKp=-116ρCdpxz4Mq=-116ρCdqyx4Nr=-116ρCdrzx4 (28)

Such that ρ is the water medium density in kg/m3. Cd is the unit-less drag coefficient which depends on Reynolds number. Ad is the drag contact area in m2, and x, y, and z are the length, width, and height in meters of the AUV, respectively.

The non-linear drag forces due to vortex shedding in the translational motions can be modeled as shown by:

Xnl=-(12ρCduAdu)u|u|=Xu|u|u|u|Ynl=-(12ρCdvAdv)v|v|=Yv|v|v|v|Znl=-(12ρCdwAdw)w|w|=Zw|w|w|w| (29)

The non-linear drag moments due to rotational motions can be modeled as:

Knl=-(116ρCdpxz4)p|p|=Kp|p|p|p|Mnl=-(116ρCdqyx4)q|q|=Kq|q|q|q|Nnl=-(116ρCdrzx4)r|r|=Kr|r|r|r| (30)

The non-linear drag matrix is expressed as:

Dn(ν)=[Xu|u||u|000000Yv|v||v|000000Zw|w||w|000000Kp|p||p|000000Mq|q||q|000000Nr|r||r|] (31)

The vectorial form of the dynamic model including damping forces will be:

MRBν˙+CRB(ν)ν+D(ν)ν=τRB (32)

Such that D(ν) is the damping matrix.

Gravitational and buoyancy matrix

Besides mass and damping forces, the underwater vehicles will also be affected by gravity and buoyancy forces. In hydrodynamics terminology these are called restoring forces as shown in [36]. As shown in Fig 8 the gravitational force fgn will act through the center of gravity (CG) defined by rgb=[xg,yg,zg] while the buoyancy force fbn will act through the center of buoyancy (CB) of the vessel defined by rbb=[xb,yb,zb].

Fig 8. Gravitational and buoyancy forces acting on center of gravity and center of buoyancy of an underwater vessel.

Fig 8

According to the SNAME (1950) notation [38], the submerged weight of the body and buoyancy force are defined as:

W=mg,B=ρg (33)

Therefore;

fgn=[00W],fbn=-[00B] (34)

The weight and buoyancy force can be transformed to the body-fixed coordinate system by:

fgb=Rbn(Θ)-1fgn,fbb=Rbn(Θ)-1fbn (35)

Finally, the gravitational and buoyancy matrix can be expressed as:

g(η)=[fgb+fbbrgb×fgb+rbb×fbb] (36)

Which can be expanded to:

g(η)=[(W-B)sin(θ)-(W-B)cos(θ)sin(ϕ)-(W-B)cos(θ)cos(ϕ)-(ygW-ybB)cos(θ)cos(ϕ)+(zgW-zbB)cos(θ)sin(ϕ)(zgW-zbB)sin(θ)+(xgW-xbB)cos(θ)cos(ϕ)-(xgW-xbB)cos(θ)sin(ϕ)-(ygW-ybB)sin(θ)] (37)

In this work it is assumed that both centers of gravity and buoyancy are coincided at origin O of the vessel rgb=[0,0,0]T and rbb=[0,0,0]T, and the vessel is neutrally buoyant W = B. Therefore;

g(η)=[06x1] (38)

The vectorial form including the gravitation and buoyancy forces will be:

MRBν˙+CRB(ν)ν+D(ν)ν+g(η)=τRB (39)

Such that g(η) is the vector of gravitational/ buoyancy forces and moments.

Ocean current and disturbances

As explained in [41], ocean currents are horizontal and vertical circulation systems of ocean waters produced by gravity, wind friction, and water density variation in different parts of the ocean. The oceans are conveniently divided into two water spheres, the cold and warm water spheres. Since the Earth is rotating, the Coriolis force will try to turn the major currents to the east in the northern hemisphere and west in the southern hemisphere. Finally, the major ocean circulations will also have a tidal component arising from planetary interactions and gravity. In coastal regions the tidal speeds can reach 2–3 m/s, which is considered a very high speed.

Ocean currents’ forces on marine crafts can be accounted for by replacing the generalized velocity vector in the hydrodynamic terms with relative velocities:

νr=ν-νc (40)

The ocean current speed is denoted by Vc while its direction relative to the moving vessel is expressed by angle of attack αc and side-slip angle βc as shown in Fig 9.

Fig 9. Angle of attack and side-slip angle for a marine craft.

Fig 9

Hence the vectorial form dynamic model including ocean current disturbances will be:

MRBν˙r+CRB(νr)νr+D(νr)νr+g(η)=τRB (41)

For computer simulations, the ocean current speed and direction can be generated using first order Gauss-Markov processes:

V˙c+μ1Vc=w1 (42)
α˙c+μ2αc=w2 (43)
β˙c+μ3βc=w3 (44)

Where wi (i = 1, 2, 3) are zero-mean Gaussian white noise processes, and μi ≥ 0 (i = 1, 2, 3) are constants. If μ1 = μ2 = μ3 = 0 then the models are reduced to a random walks corresponding to the time integration of the white noise. A limitation shall be applied to the integration process to limit the current speed:

VminVc(t)Vmax (45)

A 3-D irrotational ocean current model is obtained by transforming the ocean current speed Vc and directions (αc; βc) from current flow axes to NED velocities:

vcn=Ry,αcTRz,-βcT[Vc00]=[Vccos(αc)cos(βc)Vcsin(βc)Vcsin(αc)cos(βc)] (46)

Where;

Ry,αc=[cos(αc)0sin(αc)010-sin(αc)0cos(αc)] (47)
Ry,-βc=[cos(βc)sin(βc)0-sin(βc)cos(βc)0001] (48)

The expression in Eq (46) can be transformed from NED to body-axis frame of the vessel using Euler angle rotation matrix Rbn(Θ) shown in Eq (5):

[ucvcwc]=Rbn(Θ)T[Vccos(αc)cos(βc)Vcsin(βc)Vcsin(αc)cos(βc)] (49)

Thruster dynamics

The thruster can be separated in to two parts which are the actuator and the propeller as shown in Fig 10.

Fig 10. Thruster parts.

Fig 10

A model of brushed DC motor is used as an actuator and the dynamic equations are:

T=Kti (50)
e=Keθ˙ (51)
Jθ¨+bθ˙=Kti (52)
Ldidt+Ri=V-Keθ˙ (53)

The abbreviations of the physical parameters are defined in the Table 2.

Table 2. DC motor model abbreviations.

Parameter Abbreviation Unit
J moment of inertia of the rotor kg.m2
b motor viscous friction constant N.m.s
Ke electromotive force constant V/rad/sec
Kt motor torque constant N.m/Amp
R electric resistance Ohm
L electric inductance H

The propeller torque and thrust equations as mentioned in [42] are formulated as:

Q=KQρD5|n|n (54)
T=KTρD4|n|n (55)

Where T and Q are the thrust and torque produced by the propeller, KT and KQ are the thrust and torque coefficients, respectively. ρ is the water density, n is the propeller angular velocity in rev/s. The thrust T is the thrust produced in the thruster frame (t-frame).

The resultant forces acting on the AUV body-axis frame in are formulated using force analysis and based on the configuration demonstrated in Figs 5 and 6. They are expressed by:

X=cos(ξh)[-THFL-THFR-THRR-THRL]+sin(ξv)cos(ξh)[-TVFL-TVFR+TVRR+TVRL] (56)
Y=sin(ξh)[THFL-THFR+THRR-THRL]+sin(ξv)sin(ξh)[-TVFL+TVFR+TVRR-TVRL] (57)
Z=cos(ξv)[TVFL+TVFR+TVRR+TVRL] (58)
K=lv×[TVFL-TVFR-TVRR+TVRL] (59)
M=lv×[-TVFL-TVFR+TVRR+TVRL] (60)
N=lh×[THFL-THFR-THRR+THRL] (61)

Where the thrust force is TXYZ, such that X stands for Horizontal (H) or Vertical (V), Y stands for Front (F) or Rear (R), and Z stands for Left (L) or Right (R). lh is the distance between the center of the horizontal thruster and the center O of the AUV chassis. And lv is the distance between the center of the vertical thruster and the center O of the AUV chassis, as shown in the above Figs 6 and 7.

Control design

The control system has been design with double control loops. The inner loop is for controlling the AUV b-frame velocity while the outer loop is for controlling the AUV n-frame global position and Euler orientations as shown in Fig 11. The usage of double control loops has two major advantages. First, it provides faster control actions and rapidly attenuating environment disturbances. Second, it gives the control architecture the flexibility to control position and velocity of the AUV independently based on the user need and the required task.

Fig 11. Control system block diagram.

Fig 11

The AUV system, ocean currents model and hydrodynamics model blocks are only used for computer simulation, while the rest of the control architecture should be coded and implemented in the electronic control unit (ECU) to control the real AUV system.

Trajectory generator

This block is responsible for generating the reference trajectory by which the control system will be tracked. The trajectory is generated by means of way-points at fixed time-steps. Since the underwater system is considered a slow system, a larger fixed time-step will be used such that the AUV has the enough time to reach the desired way-point. Different shapes for trajectories can be used, such as straight line, circle, infinite and Möbius shapes.

For a straight line trajectory in 3D the equation will be:

kf=k0+(t×h) (62)
x=x0+(t×hx)y=y0+(t×hy)z=z0+(t×hz) (63)

Where h=[hx,hy,hz] specifies the direction or the slope of the line, [x0, y0, z0] specifies the initial point of the line, and [x, y, z] specifies the new point of the line.

For a 2D circle shape trajectory the equation will be:

x=R×cos(δ)y=R×sin(δ) (64)

Where R is the radius and δ is the angle in radians. δ is incremented by a fixed value at each fixed time-step.

For a 3D Möbius shape trajectory the equation will be:

x=(1+R2cos(δ2))cos(δ)y=(1+R2cos(δ2))sin(δ)z=R2sin(δ2) (65)

Where R is the radius in x-y plane describing the width of the Mobius shape.

NED to body frame block

This block is responsible for transforming the position control signals in n-frame to b-frame. The equations are:

υob=R-1P˙ωnbb=T-1Θ˙ (66)

Where R and T are shown in matrix notations Eqs (5) and (6).

Inverse kinematics control model

This block is responsible for generating the reference angular speed in rad/s for each thruster corresponding to the desired AUV motion based on Eqs (9) and (10).

Velocity and position controllers

The PID controller used in this research is of the parallel form as shown in Fig 12.

Fig 12. Continuous-time PID controller block diagram.

Fig 12

The representation in continuous-time domain can by expressed as:

u(t)=Kpe(t)+Ki0te(τ)dτ+Kdde(t)dt (67)

Regarding the discrete-time controller Forward Euler method is selected for the integration and derivation as they are shown in:

Discrete-timeintegration(ForwardEuler)Ts(z-1)Discrete-timederivation(ForwardEuler)N1+N.Ts(z-1) (68)

The resultant discrete-time PID controller is represented by

u(z)=Kp+KiTs(z-1)+KdN1+NTs(z-1) (69)

Such that Kp, Ki, and Kd are the proportional, integral, and derivative gains, respectively. u(z) is the control output. Ts is the sampling time. N is a scaling factor.

A Self-Tuned Fuzzy PID (STFPID) is designed as shown in Fig 13 such that the fuzzy inference system tunes the PID parameters intelligently based on the fuzzy rules of the expertise. Where the inputs to the fuzzy inference system are the error e and change in error ce and the outputs are dKp, dKi, and dKd.

Fig 13. Discrete-time STFPID controller block diagram.

Fig 13

The new STFPID tuning parameters can be expressed by:

Kp=Kp+dKpKi=Ki+dKiKd=Kd+dKd (70)

The purpose of fuzzy logic is to formalize and implement a human being’s method of reasoning. It can therefore be classified as a field of artificial intelligence. The fuzzy rule base tool is the most common tool that is used in control applications. It is made of rules based on the human expertise. A number of rules have been defined based on the experiments and expertise to tune the PID parameters based on the knowledge of error and change in the error. These inputs are fuzzified as a first step. Then a reasoning is performed based on the rules defined, and degree of activation is calculated for each rule that depends on the classes the fuzzified inputs belong to. After that implication is performed. Aggregation is done to compute the final fuzzified output from the outputs of each rule. Finally, the output is de-fuzzified to obtain a crisp output that can be used to tune the PID parameters as illustrated in Fig 14.

Fig 14. Fuzzy logic system.

Fig 14

As a result, the discrete-time PID represented by Eq (69) can be reformulated such that

u(z)=Kp+KiTs(z-1)+KdN1+NTs(z-1)=[Kp+dKp]+[Ki+dKi]Ts(z-1)+[Kd+dKd]N1+NTs(z-1) (71)

To generate the dKp, dKi, and dKd a Fuzzy rules table has been proposed in Tables 35, respectively, based on the expertise. The fuzzy linguistic variables are Negative Big (NB), Negative Medium (NM), Negative Small (NS), Zero (ZO), Positive Small (PS), Positive Medium (PM) and Positive Big (PB).

Table 3. dKp fuzzy rule table.

ce NB NM NS ZO PS PM PB
e
NB ZO ZO NS NS PS ZO ZO
NM NS NS NM NM NS ZO NS
NS PS ZO NS PS ZO ZO NS
ZO PM PM PS ZO NS NM NM
PS PS PS ZO NS NM NM NM
PM PS ZO NS NS NM NM NB
PB ZO ZO NM NM NB NB NB

Table 5. dKd fuzzy rule table.

ce NB NM NS ZO PS PM PB
e
NB PB PS NB NB NB NM PB
NM PB NM NB NB NM NM ZO
NS PM PB NM NB NS PS PS
ZO ZO NS NS ZO NS NS ZO
PS ZO ZO ZO ZO ZO ZO ZO
PM PS NB PB PB NM NS NB
PB PB NS NB NB NB NM PB

Table 4. dKi fuzzy rule table.

ce NB NM NS ZO PS PM PB
e
NB PB PB PB PB PB PB PB
NM PB PB PB PB PB PB PB
NS NB NM NM PB PB PB PS
ZO NB NM NS ZO PS PM PB
PS ZO ZO PS PS PM PM PB
PM ZO ZO PS PM PM PB PB
PB ZO ZO PS PM PM PB PB

When the deviation |e| is large, in order to have fast-tracking performance, kp should be greater. Taking a smaller value of kd prevents instantaneous value of |ec| to be too large, at the same time a larger system response in order to avoid the overshoot, the integral action should be limited, the ki value should normally be very small.

When the deviation |e| is of medium size, in order to ensure fast system response and have small overshoot, kp should be reduced. Larger kd increases the impact of system response, ki should be appropriate.

When |e| is small, kp and ki should be bigger to ensure that the system has the ideal static performance. To avoid the vicinity of a shock at the system settings, kd shall be chosen by the change of |e|.

The membership functions for the inputs are trapmf and trimf, which represent trapezoidal and triangular membership functions, respectively, as shown in Fig 15. The output is gaussmf, which represents Gaussian membership function as shown in Fig 16.

Fig 15. Inputs membership functions.

Fig 15

Fig 16. Output membership functions.

Fig 16

The final schematic for the STFPID including the fuzzy inference system is as shown in Figs 17 and 18. The inputs and outputs of the fuzzy inference system are normalized by ranging factors that describe the ranges of inputs and outputs.

Fig 17. STFPID controller schematic.

Fig 17

Fig 18. PID.

Fig 18

AUV system

This block is used only for simulation and consists of the model of eight thrusters actuator as listed in Eqs (50)–(53), such that a closed loop control using conventional PID are implemented for each thruster as shown in Fig 19.

Fig 19. Thruster control loop.

Fig 19

The thruster model equations are that listed in Eqs (54) and (55). The block also consists of the thrusters-vessel forward kinematics listed in Eqs (56)–(61). These calculate the resultant forces and moments on the AUV resulting from each thruster’s propeller rotation. Finally, it also contains the dynamic model of the AUV formulated in Eq (20), but is reformulated as shown in Eq (72) such that the inputs are the forces acting on the AUV body frame and the outputs are the vessel velocity states, as shown in the hydrodynamic environment model shown in Eqs (27), (29) and (30).

u˙=Xm+vr-wqv˙=Ym+wp-urw˙=Zm+uq-vpp˙=1Ix[K-(Iz-Iy)qr]q˙=1Iy[M-(Ix-Iz)rp]r˙=1Iz[N-(Iy-Ix)pq] (72)

Results

The simulation of this research is implemented and validated using Mathworks Simulink. The system specifications and parameters that have been chosen are as demonstrated in the Table 6.

Table 6. System specifications and values used for the simulation.

Parameter Value
Sampling Time (dt) 0.001 (s) or 1 (ms)
AUV length 0.4 (m)
AUV width 0.3 (m)
AUV height 0.3 (m)
Origin-horizontal thruster distance (lh) 0.17 (m)
Origin-vertical thruster distance (lv) 0.17 (m)
Propeller Pitch (Pprop) 0.1 (m/rev)
Control Factor (λ) 0.04 (unit-less)

The parameters of both velocity and position controllers have been selected as demonstrated in Tables 7 and 8, respectively.

Table 7. Velocity controller parameters.

Parameter u Control v Control w Control p Control q Control r Control
Kp 1 1.5 1 1 1 1
Ki 1 1.5 1 1 1 1
Kd 0.1 0 0 0 0 0
e range 2 2 2 2 2 2
ce range 500 500 500 200 200 200
dkp range 2 2 2 2 2 2
dki range 2 2 2 2 2 2
dkd range 0 0 0 0 0 0

Table 8. Position controller parameters.

Parameter x Control y Control z Control ϕ Control θ Control ψ Control
Kp 5 5 5 10 10 10
Ki 0 0 0 0 0 0
Kd 10 10 10 10 10 10
e range 4 1 1 0.7 0.7 0.7
ce range 400 400 400 0.05 0.05 0.05
dkp range 20 20 20 10 10 10
dki range 0 0 0 0 0 0
dkd range 0 0 0 0 0 0

Several test scenarios have been executed to validate the control model using different trajectories with and without ocean disturbances. The results shown in the figures below are for STFPID performance relative to conventional PID. In the first test scenario a circle trajectory in x-y has been generated with and without disturbances, the results are shown in Figs 20 and 21. Fig 22 shows the performance of following the reference of the yaw orientation. Figs 23 and 24 demonstrate the time response of the xy positions for the system without and with disturbances, respectively. From a time response perspective, Figs 20 and 23 show that STFPID response is faster to achieve the reference waypoints such that the rising times are Ts = 12.01s and Ts = 8.38s for PID and STFPID, respectively. Figs 21 and 24 show that the overshoots are ranges between 7.5% and 11.2% in the case of PID, which means that the STFPID has much better disturbance attenuation capability. The STFPID response time is better, at Ts = 8.383s as compared to Ts = 11.73s for PID. The data sets of the test scenario for circle trajectory in xy-plane with injecting disturbances can be found in S1 File.

Fig 20. x-y plan circle trajectory scenario (without disturbances).

Fig 20

The red trajectory is the output from the fuzzy PID controller, the blue trajectory is the output from the PID controller, and the green-dotted line is the reference trajectory.

Fig 21. x-y plan circle trajectory scenario (with disturbances).

Fig 21

The red line is the output from the fuzzy PID controller, the blue line is the output from the PID controller, and the green-dotted line is the reference.

Fig 22. Time response of yaw orientation of the x-y plan circle trajectory scenario (without disturbances).

Fig 22

The red line is the fuzzy PID yaw angle output, the blue line is the PID yaw angle output, and the green-dotted line is the reference yaw angle.

Fig 23. Time response of x-y plan circle trajectory scenario (without disturbances).

Fig 23

The red line is the output from the fuzzy PID controller, the blue line is the output from the PID controller, and the green-dotted line is the reference.

Fig 24. Time response of x position of the circle trajectory scenario (with disturbances).

Fig 24

The red line is the output from the fuzzy PID controller, the blue line is the output from the PID controller, and the green-dotted line is the reference.

The noise wave form is a sinusoidal wave with additive white Gaussian noise as shown in Fig 25 with a frequency of 0.1 Hz and a signal to noise ratio (SNR) 10 dB. The resultant ocean current in n-frame and b-frame are as shown in Figs 25 and 26, respectively.

Fig 25. Disturbance effect in n-frame coordinates.

Fig 25

The sinusoidal blue wave is the noise wave in the current disturbance reference frame. The red waves in the three below figures are the current disturbances in the inertial n-frame axes.

Fig 26. Disturbance effect in b-frame coordinates.

Fig 26

The disturbances in the body reference frame.

The second test scenario is an attitude control for yaw, pitch, and roll successively without injecting disturbances as demonstrated in Fig 27. For attitude and orientation control, the STFPID also proves a significant improvement in achieving the reference attitude with almost no oscillations and very small overshoots compared to conventional PID. It also shows stability over time, while in case of PID, the system starts to oscillate due to system non-linearity.

Fig 27. Attitude control (yaw-pitch-roll sequence).

Fig 27

The red line is the output from the fuzzy PID controller, the blue line is the output from the PID controller, and the green-dotted line is the reference.

The third test scenario is for validating separate control of speed and position at the same time. In this test, the AUV is controlled such that it follows a trajectory with a Mobius shape in the 3D plan, along with having a constant angular rate around the AUV z-axis [p angular velocity]. There were no disturbances in this scenario. The results for following the way-points in xyz plan and time-response of angular velocity are shown in Figs 28 and 29, respectively. Fig 30 shows the time response of the xyz positions where the STFPID reached the reference way-points at rising time equal to 12 s while the PID reached the reference at more than 20 s. The data sets can be found in S2 File.

Fig 28. Trajectory following of a Mobius shape trajectory in 3D environment.

Fig 28

The red line is the output from the fuzzy PID controller, the blue line is the output from the PID controller, and the green-dotted line is the reference.

Fig 29. Time response of the angular velocity about b-frame z-axis in following Mobius trajectory.

Fig 29

The red line is the output from the fuzzy PID controller, the blue line is the output from the PID controller, and the green-dotted line is the reference.

Fig 30. Time response of the xyz positions of Mobius trajectory.

Fig 30

The red line is the output from the fuzzy PID controller, the blue line is the output from the PID controller, and the green-dotted line is the reference.

The control architecture here proves that it is capable of isolating position and velocity control of any DOF. For example, one can control the position for x, y, and z DOFs, and at the same time control the angular velocity of the rotation about b-frame z-axis [zb] as presented in Figs 28 and 29. As Fig 29 demonstrates, the oscillations frequency in the angular velocity is very high and that’s because the position controller for x, and y DOFs are controlling the horizontal thrusters, which affects the yaw rate rotation. At the same time, the angular velocity control of [r] changes the speeds of the horizontal thrusters as listed in Eq (9). So both controllers are pushing against each others, but the angular velocity is oscillating around the reference velocity and not deviating to instability. In case of using the STFPID the oscillations amplitude is higher than that of conventional PID but its response time is faster.

Conclusion

The designed STFPID controller coupled with the inverse kinematic control model studied in this research shows a significant improvement in the time-response performance in controlling a fully-actuated AUV with fast response and minimum error compared to conventional PID. STFPID also shows better performance, even when ocean current disturbances are injected to the AUV system with almost very small overshoots compared to conventional PID that had a very large overshoot and slow response time. Furthermore, the control architecture presented in this work shows that the double control loops make the system capable of controlling both velocity and position independently as desired by the user or the references.

Supporting information

S1 File. Data sets and script.

This file contains the data sets and script to visualize the scenario XY Circle with disturbances.

(RAR)

S2 File. Data sets and script.

This file contains the data sets and script to visualize the scenario XYZ Mobius trajectory.

(RAR)

Data Availability

All relevant data are within the paper and its Supporting Information files.

Funding Statement

The authors received no specific funding for this work. It is funded by ourselves.

References

  • 1. Wynn RB, Huvenne VAI, Le Bas TP, Murton BJ, Connelly DP, et al. Autonomous underwater vehicles (AUVs): Their past, present and future contributions to the advancement of marine geoscience. Marine Geology. 2014. June;352(18):451 10.1016/j.margeo.2014.03.012 [DOI] [Google Scholar]
  • 2.Bellingham JG, and Willcox JS. Optimizing AUV oceanographic surveys. Proceedings of Symposium on Autonomous Underwater Vehicle Technology, IEEE. 1996 June.
  • 3.Upadhyay V, and Gupta S. Design and motion control of autonomous underwater vehicle, Amogh. Underwater Technology (UT), IEEE. 2015 Feb.
  • 4.Busquets J, Busquets JV, Tudela D, Pérez F, Carbonell JB, Barberá A, and et al. Low-cost AUV based on arduino open source microcontroller board for oceanographic research applications in a collaborative long term deployment missions and suitable for combining with an USV as autonomous automatic recharging platform. IEEE/OES Autonomous Underwater Vehicles (AUV). 2012 Sep.
  • 5.Fernandes VH, and Neto AA. Pipeline inspection with AUV. Acoustics in Underwater Geosciences Symposium (RIO Acoustics), IEEE/OES. 2015 July.
  • 6.Tipsuwan Y, and Hoonsuwan P. Design and implementation of an AUV for petroleum pipeline inspection. International Conference on Information Technology and Electrical Engineering (ICITEE). 2015 Oct;(6)382.
  • 7.Painumgal UV, and Thornton B. Positioning and control of an AUV inside a water pipeline for non-contact in-service inspection. Oceans. 2013 Sep.
  • 8.Lin WP, Chin CS, and Mesbahi E. Remote robust control and simulation of robot for search and rescue mission in water. Oceans. 2014 April.
  • 9.Martins R, de Sousa JB, Afonso CC, and Incze ML. REP10 AUV: shallow water operations with heterogeneous autonomous vehicles. OCEANS, IEEE—Spain. 2011 June.
  • 10.Xia G, Pang C, and Liu J. Neural-network-based adaptive observer design for autonomous underwater vehicle in shallow water. ICNC. 2013 July;(6)216.
  • 11.Kim J, Kim K, Choi HS, Seong W, and Lee KY. Depth and heading control for autonomous underwater vehicle using estimated hydrodynamic coefficients. OCEANS. 2001 Nov;(7)429.
  • 12. Kim J, Kim K, Choi HS, Seong W, and Lee KY. Estimation of hydrodynamic coefficients for an AUV using nonlinear observers. IEEE Journal of Oceanic Engineering. 2003. January;(7)830. [Google Scholar]
  • 13.Shine S, Xiong H, and Fu J. Active disturbance rejection control for AUV pitch angle. CAC. 2015 Nov;(5)411.
  • 14.Juan L, Ming K, Farouk N, and Xing-hua C. Horizontal plane motion control of AUV based on active disturbance rejection controller. Chinese Control and Decision Conference (CCDC). 2015 May;(6)6118.
  • 15.Azrak RA, Treichel K, and Reger J. Discrete-time AUV tracking controller design based on disturbance rejection and dynamic trajectory planning. OCEANS, IEEE. 2013 June.
  • 16.Zhe-ping Y, Chao D, Jia-jia Z, and Yu-fei Z. Research on dive plane trajectory tracking control method of AUV under current disturbance. World Congress on Intelligent Control and Automation (WCICA). 2012 July;(5)3887.
  • 17. Teo K, An E, and Beaujean PPJ. A robust fuzzy autonomous underwater vehicle (AUV) docking approach for unknown current disturbances. IEEE Journal of Oceanic Engineering. 2012. April;37(13)143–2. 10.1109/JOE.2011.2180058 [DOI] [Google Scholar]
  • 18.Hammad MM, Elshenawy AK, and Singaby MIE. Position control and stabilization of fully actuated AUV using PID controller. SAI Intelligent Systems Conference. 2016 Sep;(10):947.
  • 19.Kim MJ, Baek WK, Ha K, and Joo MG. Way-point tracking for a hovering AUV by PID controller. ICCAS. 2015 Oct;(3):744.
  • 20.Oktafianto K, Herlambang T, Mardlijah, and Nurhadi H. Design of autonomous underwater vehicle motion control using sliding mode control method. ICAMIMIA. 2015 Oct;(5):162.
  • 21.Song YS, and Arshad MR. Sliding mode depth control of a hovering autonomous underwater vehicle. IEEE International Conference on Control System, Computing and Engineering. 2015 Nov;(6):435.
  • 22.Aguilar LP, and Donha DC. AUV guidance and navigation using intelligent control. IFAC International Conference on Manoeuvring and Control of Marine Craft. 2009 Sep;(6):223.
  • 23. González J, Gomáriz S, Batlle C, and Galarza C. Fuzzy controller for the yaw and velocity control of the Guanay II AUV. IFAC-PapersOnLine. 2015. September;48(6):268–2. [Google Scholar]
  • 24.Wang Y, Shen Y, Wang K, and Sha Q. Fuzzy controller used smoothing function for depth control of autonomous underwater vehicle. OCEANS. 2016 April;(5).
  • 25.Hu B, Tian H, Qian J, Xie G, Mo L, and Zhang S. A Fuzzy-PID method to improve the depth control of AUV. ICMA. 2013 Aug;(6):1528.
  • 26.Hassanein O, Anavatti SG, and Ray T. Fuzzy modeling and control for autonomous underwater vehicle. ICARA. 2011 Dec;(6):169.
  • 27.Zhang G, Du C, Huang H, and Wu H. Nonlinear depth control in under-actuated AUV. IEEE International Conference on Mechatronics and Automation. 2016 Aug;(5):2482.
  • 28.Chu Z, and Zhu D. Adaptive sliding mode heading control for autonomous underwater vehicle including actuator dynamics. OCEANS. 2016 April.
  • 29.Guo X, Yan W, and Cui P. Observer design for an AUV intercepting targets based on nonlinear-in-Parameter neural Network. International Conference on Advanced Robotics and Mechatronics (ICARM). 2016 Aug;(6):388.
  • 30.Amin R, Khayyat AA, and Osgouie KG. Neural networks control of autonomous underwater vehicle. 2nd International Conference on Mechanical and Electronics Engineering (ICMEE). 2010 Aug;(5):117.
  • 31. Lee H, and Utkin VI. Chattering suppression methods in sliding mode control systems. Annual Reviews in Control. 2007. October;31(10):179–2. 10.1016/j.arcontrol.2007.08.001 [DOI] [Google Scholar]
  • 32. Zadeh LA. Fuzzy sets. Information and Control. 1965;(16): 338–8. 10.1016/S0019-9958(65)90241-X [DOI] [Google Scholar]
  • 33.Godjevac J. Comparison between PID and fuzzy control. Internal Report R93.36I. 1993.
  • 34. Khodayari MH, and Balochian S. Modeling and control of autonomous underwater vehicle (AUV) in heading and depth attitude via self-adaptive fuzzy PID controller. Sci Technol. 2015. March;(20): 559. [Google Scholar]
  • 35. Boiocchi R, Gernaey KV, and Sin G. Systematic design of membership functions for fuzzy-logic control: A case study on one-stage partial nitritation/anammox treatment systems. Water Research. 2016. October;102(10):346 10.1016/j.watres.2016.06.047 [DOI] [PubMed] [Google Scholar]
  • 36.Fossen TI. Marine control systems. Marine Cybernetics AS. 2002.
  • 37. Smith RW. Department of Defense World Geodetic System 1984: its definition and relationships with local geodetic systems. Defense Mapping Agency; 1987. [Google Scholar]
  • 38. SNAM E. Nomenclature for treating the motion of a submerged body through a fluid JR. New York: Technical and Research Bulletin; 1952. [Google Scholar]
  • 39.Shenawy AKE, Wellenreuther A, and Baumgart AS. Comparing different holonomic mobile robots. Systems, Man and Cybernetics ISIC. IEEE International Conference. 2007 Oct.
  • 40. Fossen TI and Fjellstad OE. Nonlinear modelling of marine vehicles in 6 degrees of freedom. International Journal of Mathematical Modelling of Systems. 1995;1(6)17 10.1080/13873959508837004 [DOI] [Google Scholar]
  • 41. Fossen TI. How to incorporate wind, waves and ocean currents in the marine craft equations of motion. IFAC Proceedings. 2012;47(6)126–27. 10.3182/20120919-3-IT-2046.00022 [DOI] [Google Scholar]
  • 42. Sørensen AJ, and Smogeli ØN. Torque and power control of electrically driven marine propellers. Control Engineering Practice. 2009;17(12):1053–9. [Google Scholar]

Associated Data

This section collects any data citations, data availability statements, or supplementary materials included in this article.

Supplementary Materials

S1 File. Data sets and script.

This file contains the data sets and script to visualize the scenario XY Circle with disturbances.

(RAR)

S2 File. Data sets and script.

This file contains the data sets and script to visualize the scenario XYZ Mobius trajectory.

(RAR)

Data Availability Statement

All relevant data are within the paper and its Supporting Information files.


Articles from PLoS ONE are provided here courtesy of PLOS

RESOURCES