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

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.


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][2][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.

Equations of Motion
The simplified 6DOF equations of motion in the dimensionless form are considered in this paper [5]: 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; I x , I y , and I z are moment of inertia at x-axis, y-axis, and z-axis, respectively; x G , y G , and z G 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: Finally, refer to the physical parameters of NPS AUV1 in [8], the state space equation is obtained by: δ. (3)

Controller Design
Linear quadratic (LQ) servo is adopted to perform command following regarding to the reference input.Consider an nthorder system with r inputs and m outputs.Let the state vector be x(t) = [x r (t); y p (t)], where y p (t) ∈ R m×1 is output and x r (t) ∈ R (n−m)×1 is rest of the system states.Let e(t) = r(t)−y(t) ∈ R m×1 be the error vector with r(t) ∈ R m×1 which is planed as output and y(t) ∈ R m×1 is reference.Then the state space model can be rewritten as the following: with and LQ optimal control problem is to find a control law u(t) = −Kx(t) which minimizes the performance index of J = ∞ 0 [x T (t)Qx(t) + u T (t)Ru(t)]dt, where K = R −1 B T P and P is the solution of Riccati equation A T P + PA + PBR −1 B T P + Q = 0 with weighting matrices of Q ≥ 0 and R > 0.
The control input is given by u(t) = −Gx(t), where the control gain G is consisted by where G y ∈ R m×m and G r ∈ R m× (n−m) .Then the control law can be obtained by: ( Substituting ( 5) into (4), we have differential equation of close-loop system as follows: Solution of (6) can be obtained by using Runge-Kutta 4th order approximation: where ), and k4 = f (t + h, x(t) + hk3).

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].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.
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.

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.
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.
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.

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.