Table of Contents Author Guidelines Submit a Manuscript
Modelling and Simulation in Engineering
Volume 2012 (2012), Article ID 291318, 4 pages
Research Article

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

1Telecommunication Department, Politeknik Elektronika Negeri Surabaya, Surabaya 60111, Indonesia
2School of Mechanical Engineering, Pusan National University, Busan 609-735, Republic of Korea

Received 4 April 2012; Accepted 10 July 2012

Academic Editor: Ahmed Rachid

Copyright © 2012 Nanang Syahroni and Jae Weon Choi. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.


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.

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 [13]. 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]: 𝑋=𝑚̇𝑢𝜐𝑟+𝑤𝑞𝑥𝐺𝑞2+𝑟2+𝑦𝐺(𝑝𝑞̇𝑟)+𝑧𝐺,(𝑝𝑟+̇𝑞)𝑌=𝑚̇𝜐+𝑢𝑟𝑤𝑞+𝑥𝐺(𝑝𝑞+̇𝑟)𝑦𝐺𝑝2+𝑟2+𝑧𝐺,̇(𝑞𝑟̇𝑝)𝑍=𝑚𝑤𝑢𝑞+𝜐𝑝+𝑥𝐺(𝑝𝑟̇𝑞)+𝑦𝐺(𝑞𝑟+̇𝑝)𝑧𝐺𝑝2+𝑞2,𝐾=𝐼𝑥𝐼̇𝑝+𝑧𝐼𝑦𝑞𝑟+𝐼𝑥𝑦(𝑝𝑟̇𝑞)𝐼𝑦𝑧𝑞2𝑟2𝐼𝑥𝑧𝑦(𝑝𝑞+̇𝑟)+𝑚𝐺(̇𝑤𝑢𝑞+𝜐𝑝)𝑧𝐺,(̇𝜐+𝑢𝑟𝑤𝑝)𝑀=𝐼𝑦𝐼̇𝑞+𝑥𝐼𝑧𝑝𝑟𝐼𝑥𝑦(𝑞𝑟+̇𝑝)𝐼𝑦𝑧(𝑝𝑞̇𝑟)𝐼𝑥𝑧𝑝2𝑟2𝑥+𝑚𝐺(̇𝑤𝑢𝑞+𝜐𝑝)𝑧𝐺,(̇𝑢𝜐𝑟+𝑤𝑞)𝑁=𝐼𝑧𝐼̇𝑟+𝑦𝐼𝑥𝑝𝑞𝐼𝑥𝑦𝑝2𝑞2𝐼𝑦𝑧(𝑝𝑟+̇𝑞)+𝐼𝑥𝑧(𝑥𝑞𝑟̇𝑝)+𝑚𝐺(̇𝜐+𝑢𝑟𝑤𝑝)𝑦𝐺,(̇𝑢𝜐𝑟𝑤𝑞)(1) where, 𝑋, 𝑌, and 𝑍 are surge, sway, and heave force, respectively; 𝐾, 𝑀, and 𝑁 are roll, pitch, and yaw moment, respectively; 𝑝, 𝑞, and 𝑟 are roll, pitch, and yaw rate, respectively; 𝑢, 𝑣, and 𝑤 are surge, sway, and heave velocity, respectively; 𝑥, 𝑦, and 𝑧 are body fixed axes in positive forward, starboard, and down, respectively; 𝐼𝑥, 𝐼𝑦, and 𝐼𝑧 are moment of inertia at 𝑥-axis, 𝑦-axis, and 𝑧-axis, respectively; 𝑥𝐺, 𝑦𝐺, and 𝑧𝐺 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𝑍𝛿𝛿,𝑀̇𝑤𝑚𝑥𝐺̇𝐼𝑤+𝑦𝑀̇𝑞𝑧̇𝑞=𝐺𝑊𝑧𝐵𝜃+𝑀𝑤𝑀𝑈𝑤+𝑞𝑚𝑥𝐺𝑈𝑞𝑀𝛿𝑈2𝛿,̇𝑧=𝑈𝜃+𝑤.(2) Finally, refer to the physical parameters of NPS AUV1 in [8], the state space equation is obtained by: ̇𝜃̇𝑤=𝜃𝑤𝑞𝑧+00̇𝑞̇𝑧00100.01751.2733.55900.0521.2732.661051000.08521.79𝛿.(3)

3. Controller Design

Linear quadratic (LQ) servo is adopted to perform command following regarding to the reference input. Consider an 𝑛th-order system with 𝑟 inputs and 𝑚 outputs. Let the state vector be 𝑥(𝑡)=[𝑥𝑟(𝑡);𝑦𝑝(𝑡)], where 𝑦𝑝(𝑡)𝑅𝑚×1 is output and 𝑥𝑟(𝑡)𝑅(𝑛𝑚)×1 is rest of the system states. Let 𝑒(𝑡)=𝑟(𝑡)𝑦(𝑡)𝑅𝑚×1 be the error vector with 𝑟(𝑡)𝑅𝑚×1 which is planed as output and 𝑦(𝑡)𝑅𝑚×1 is reference. Then the state space model can be rewritten as the following: ̇𝑥(𝑡)=𝐴𝑥(𝑡)+𝐵𝑢(𝑡)(4) with 𝑦(𝑡)=𝐶𝑝𝑥(𝑡), 𝑥𝑟(𝑡)=𝐷𝑝𝑥(𝑡), 𝐶𝑝 is [0𝑚×(𝑛𝑚)𝐼𝑚×𝑚], and 𝐷𝑝 is [𝐼(𝑛𝑚)×(𝑛𝑚)0(𝑛𝑚)×𝑚].

LQ optimal control problem is to find a control law 𝑢(𝑡)=𝐾𝑥(𝑡) which minimizes the performance index of 𝐽=0[𝑥𝑇(𝑡)𝑄𝑥(𝑡)+𝑢𝑇(𝑡)𝑅𝑢(𝑡)]𝑑𝑡, where 𝐾=𝑅1𝐵𝑇𝑃 and 𝑃 is the solution of Riccati equation 𝐴𝑇𝑃+𝑃𝐴+𝑃𝐵𝑅1𝐵𝑇𝑃+𝑄=0 with weighting matrices of 𝑄0 and 𝑅>0.

The control input is given by 𝑢(𝑡)=𝐺𝑥(𝑡), where the control gain 𝐺 is consisted by 𝐺=[𝐺𝑦𝐺𝑟], where 𝐺𝑦𝑅𝑚×𝑚 and 𝐺𝑟𝑅𝑚×(𝑛𝑚). Then the control law can be obtained by: 𝑢(𝑡)=𝐺𝑦𝑦(𝑡)𝐺𝑟𝑥𝑟(𝑡)+𝐺𝑦𝑟(𝑡).(5)

Substituting (5) into (4), we have differential equation of close-loop system as follows: 𝐴̇𝑥(𝑡)=𝑟𝐵𝐺𝑦𝐶𝑝𝐵𝐺𝑦𝐷𝑝𝑥(𝑡)+𝐵𝐺𝑦𝑟(𝑡).(6)

Solution of (6) can be obtained by using Runge-Kutta 4th order approximation: 𝑥(𝑡+1)=𝑥(𝑡)+(𝑘1+2𝑘2+2𝑘3+𝑘4)6,(7) where 𝑘1=𝑓(𝑡,𝑥(𝑡)), 𝑘2=𝑓(𝑡+(/2),𝑥(𝑡)+(/2)𝑘1), 𝑘3=𝑓(𝑡+(/2),𝑥(𝑡)+(/2)𝑘2), and 𝑘4=𝑓(𝑡+,𝑥(𝑡)+𝑘3).

4. System Environment

In Figure 1, 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. Figure 2 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 Figure 3, 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 𝑧 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 Figure 4. 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 𝑄0 and 𝑅0, except 𝑞11=(4/57.2958)2=205.21, 𝑞44=(5/57.2958)2=131.31, and 𝑟11=(0.95)2=110.

Figure 4: Depth control trajectory.

In Figure 5, 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 𝐾𝐹=0.4754 using standard simulations, and 𝐾𝐹=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.


This paper was financially supported by the Ministry of Knowledge Economy (MKE) and Korea Industrial Technology Foundation (KOTEF) through the Human Resource Training Project for Strategic Technology.


  1. T. Samad and G. Balas, Software-Enabled Control: Information Technology for Dynamical Systems, John Wiley & Sons/IEEE Press, Hoboken, NJ, USA, 2003.
  2. J. L. Paunicka, W. E. Corman, and B. R. Mendel, “A CORBA-based middleware solution for UAVs,” in Proceedings of the 4th International Symposium on Object-Oriented Real-Time Distributed Computing, Germany, 2001.
  3. L. Wills, S. Kannan, B. Heck et al., “Open software infrastructure for reconfigurable control systems,” in Proceedings of the American Control Conference, pp. 2799–2803, Chicago, Ill, USA, June 2000. View at Scopus
  4. K. P. Valavanis, D. Gracanin, M. Matijasevic, R. Kolluru, and G. A. Demetriou, “Control architectures for autonomous underwater vehicles,” IEEE Control Systems Magazine, vol. 17, no. 6, pp. 48–64, 1997. View at Google Scholar · View at Scopus
  5. The Society of Naval Architects and Marine Engineers, “Nomenclature for treating the motion of a submerged body through a fluid,” Research Bulletin, no. 1–5.
  6. J. S. Riedel, Pitchfork bifurcations and dive plane reversal of submarines at low speeds [Engineer's Thesis], Naval Postgraduate School, Calif, USA, 1993.
  7. R. Cristi, F. A. Papoulias, and A. J. Healey, “Adaptive sliding mode control of autonomous underwater vehicles in the dive plane,” IEEE Journal of Oceanic Engineering, vol. 15, no. 3, pp. 152–160, 1990. View at Publisher · View at Google Scholar · View at Scopus
  8. A. J. Healey, F. A. Papoulias, and R. Cristi, “Design and experimental verification of a model based compensator for rapid AUV depth control,” in Proceedings of the 6th International Symposium on Unmanned Untethered Submersible Technology, pp. 458–474, Washington, USA, June 1989. View at Scopus
  9. D. C. Schmidt, “An overview of the real-time CORBA specification,” Computer, vol. 33, no. 6, pp. 56–63, 2000. View at Google Scholar · View at Scopus