# An Autonomous Underwater Vehicle Simulation Using Linear Quadratic Servo Based on Open Control Platform

Authors: Nanang Syahroni; Jae Weon Choi
Journal: Modelling and Simulation in Engineering
 (2012)

---

## Abstract

This paper presents an optimal regulator for depth control simulation of an autonomous underwater vehicle (AUV) using a new approach of decentralized system environment called open control platform (OCP). Simulation results are presented to demonstrate performance of the proposed method.


---

## Body

## 1. Introduction

To allow an efficient operation of AUV, a new algorithm with a decentralized structure is developed. A new software infrastructure called Open Control Platform (OCP) accommodates changing navigation information and control components [1–3]. An OCP extends real-time middleware technology via CORBA middleware. In [4], many examples of nice control algorithms for AUV had done in several platforms, but in the implementation are widely opened for software engineering.


## 2. Equations of Motion

The simplified 6DOF equations of motion in the dimensionless form are considered in this paper [5]:
(1)X=m[u˙-υr+wq-xG(q2+r2)+yG(pq-r˙)+zG(pr+q˙)],Y=m[υ˙+ur-wq+xG(pq+r˙)-yG(p2+r2)+zG(qr-p˙)],Z=m[w˙-uq+υp+xG(pr-q˙)+yG(qr+p˙)-zG(p2+q2)],K=Ixp˙+(Iz-Iy)qr+Ixy(pr-q˙)-Iyz(q2-r2)-Ixz(pq+r˙)+m[yG(w˙-uq+υp)-zG(υ˙+ur-wp)],M=Iyq˙+(Ix-Iz)pr-Ixy(qr+p˙)-Iyz(pq-r˙)-Ixz(p2-r2)+m[xG(w˙-uq+υp)-zG(u˙-υr+wq)],N=Izr˙+(Iy-Ix)pq-Ixy(p2-q2)-Iyz(pr+q˙)+Ixz(qr-p˙)+m[xG(υ˙+ur-wp)-yG(u˙-υr-wq)],
where, X, Y, and Z are surge, sway, and heave force, respectively; K, M, and  N  are roll, pitch, and yaw moment, respectively; p, q, and r  are roll, pitch, and yaw rate, respectively; u,  v,  and  w  are surge, sway, and heave velocity, respectively; x,  y, and  z  are body fixed axes in positive forward, starboard, and down, respectively; Ix,  Iy,  and Iz are moment of inertia at x-axis, y-axis, and z-axis, respectively; xG, yG, and zG are longitudinal, athwart, and vertical position of center of gravity, respectively; ϕ, θ, and ψ are roll, pitch, and yaw angle, respectively. After several steps of linearization as in [6, 7], vertical motion equations with a control input δ are given as the following:
(2)θ˙=q,(m-Zw˙)w˙-(mxG+Zq˙)q˙=ZwUw+(m+Zq)Uq+U2Zδδ,(-Mw˙-mxG)w˙+(Iy-Mq˙)q˙=-(zGW-zB)θ+MwUw+(Mq-mxG)Uq-MδU2δ,z˙=-Uθ+w.
Finally, refer to the physical parameters of NPS AUV1 in [8], the state space equation is obtained by:
(3)[θ˙w˙q˙z˙]=[00100.0175-1.273-3.5590-0.0521.273-2.6610-5100][θwqz]+[00.08521.790]δ.


## 3. Controller Design

Linear quadratic (LQ) servo is adopted to perform command following regarding to the reference input. Consider annth-order system with r inputs and m outputs. Let the state vector be x(t)=[xr(t);yp(t)], where yp(t)∈Rm×1 is output and xr(t)∈R(n-m)×1 is rest of the system states. Let  e(t)=r(t)-y(t)∈Rm×1 be the error vector with r(t)∈Rm×1 which is planed as output and y(t)∈Rm×1  is reference. Then the state space model can be rewritten as the following:
(4)x˙(t)=Ax(t)+Bu(t)
with y(t)=Cpx(t), xr(t)=Dpx(t), Cp is [0m×(n-m)Im×m], and Dp is [I(n-m)×(n-m)0(n-m)×m].LQ optimal control problem is to find a control lawu(t)=-Kx(t) which minimizes the performance index of  J=∫0∞[xT(t)Qx(t)+uT(t)Ru(t)]dt, where K=R-1BTP and P  is the solution of Riccati equation ATP+PA+PBR-1BTP+Q=0  with weighting matrices of Q≥0  and  R>0.The control input is given byu(t)=-Gx(t), where the control gain G  is consisted by G=[GyGr],  where Gy∈Rm×m and  Gr∈Rm×(n-m). Then the control law can be obtained by:
(5)u(t)=-Gyy(t)-Grxr(t)+Gyr(t).Substituting (5) into (4), we have differential equation of close-loop system as follows:
(6)x˙(t)=[Ar-BGyCp-BGyDp]x(t)+BGyr(t).Solution of (6) can be obtained by using Runge-Kutta 4th order approximation:
(7)x(t+1)=x(t)+(k1+2k2+2k3+k4)6,
where k1=f(t,x(t)), k2=f(t+(h/2),x(t)+(h/2)k1), k3=f(t+(h/2),x(t)+(h/2)k2), and  k4=f(t+h,x(t)+hk3).


## 4. System Environment

In Figure1, an OCP infrastructure for linear quadratic servo simulations using two nodes PC as test beds with a general 10 Mb Ethernet, PC1 as a server and PC2 as client, connected via middleware using CORBA event channel [9].Figure 1
OCP infrastructure.PC1 is used for running a Matlab simulation of the vehicle model and control algorithm, while PC2 is utilized for running a Matlab simulation as mission control station. Figure2 illustrates an operation of interface between C++ and Matlab. Through this interface, the C++ collects data from PC2 through CORBA and creates data files in ASCII format. The Matlab first picks up the data saved by C++ and then performs matrix operations. The results are sent back to C++ in the ASCII file format, and the C++ continues to execute the communication task to send the results.Figure 2
Matlab and C++ interfaces.In Figure3, a CORBA event service provides a flexible model for asynchronous and group communication among distributed objects. Consumers are the ultimate targets of events generated by suppliers. Suppliers and consumers can both play active and passive roles. An active push supplier pushes an event to a passive push consumer; passive pull supplier waits for active pull consumer to pull an event from it.Figure 3
Event channel architecture.


## 5. Simulation Results

In this simulation, our objective is to control the AUV with speed at 2 m/sec,θ near zero, and depth  z  near −5 meters with 15 times counter duration, and then change a depth to −3 meters with 15 times counter duration more.Then AUV returns to −5 meters depth with 15 times counter duration, and finally returns to −3 meters depth, as depicted in Figure4. Assume 4° dive planes when pitch angle deviates to 5° from zero, the AUV reaches a depth of −5 feet with 0.95 feet deviation. Therefore, all terms in Q→0 and R→0, except q11=(4/57.2958)-2=205.21,  q44=(5/57.2958)-2=131.31,  and  r11=(0.95)-2=110.Figure 4
Depth control trajectory.In Figure5, control input history is presented. It is based on depth reference input and output feedback. Compulsory control input value represents the differences between depth reference input and output feedback. The presented state variable history consists of input angle, pitch rate during moving, input angle with OCP, and pitch rate with OCP. We can also see that the control algorithm is optimal because of the input angle value is 12° and 14° to produce pitch rate to reach more than 40°/s and 15°/s; however by using OCP, input angle value is 20° and 5° to produce pitch rate to reach more than 36°/s and 8°/s.Figure 5
Input angle, pitch rate versus pitch angle.The weighting matrices selection can be performed during run time in OCP environment. In order to increase the degree of machine intelligence, we perform a standard simulation using single weighting matrices, comparative analysis of property of gain matrix, we have∥K∥F=0.4754 using standard simulations, and ∥K∥F=0.5814  with OCP.


## 6. Concluding Remarks

This paper presented a new approach of decentralized system environment using Matlab and CORBA event channel on several machines; we believe it will emerge more investigation in the current trends of real-time control system or bilateral control system.Our proposed method captures the simulation results demonstrated that OCP could be used to provide the additional delivery method for distributing any navigation message among AUV implementation. Our future works would be conducted on additional experiments and measurements in this area, to increase application scalability to distribute the large navigation information.



---

*Source: 291318-2012-09-13.xml*