1. Introduction
Ocean monitoring and exploration are tasks that have gained an increased importance in the past decades, due to both scientific and economic reasons. This has raised the need for more accurate and robust equipment, allowing a more permanent human presence at sea. The development of underwater vehicles has been one of the major trends in this field as they are much more robust than their surface counterparts. However, devising autonomous underwater vehicles poses several challenges, one of which being its energy autonomy. In this regard, underwater gliders have shown that it is possible to spend months or even years continuously monitoring oceans. This is possible given the low energy that gliders require since their working principle is based on punctual buoyancy changes, which might lead to significant energy savings in comparison with propeller-based vehicles [
1]. At the core of an underwater glider is a buoyancy change device (BCD), responsible for changing the relationship between the vehicles’ mass and volume, thus ensuring a change in its buoyancy. The use of these devices is also at the core of profiler buoys. The Argo network [
2] is one of the most successful and known Ocean monitoring programs that uses approximately 4000 profiler buoys, distributed throughout the world, enabling the real time monitoring of ocean conditions up to 2 km depth. Two interesting studies aim to extend the use of profiler buoys [
3,
4]. In these studies, the authors investigate the possibility of combining the low energy vertical motion of profile buoys, using BCDs, with a horizontal motion exclusively based on ocean currents. The authors of [
3] developed a model and a control scheme ensuring that by actively and adequately choosing the oscillating tidal current direction, the float would eventually reach a neighbourhood of any desired destination. Since the main purpose of study [
3] is to assess the effect of tidal currents in the horizontal direction, the float vertical motion model is a very simple one, without detailing the effects of the float structural deformation or effects due to the increase in the force acting on the BCD with pressure. Given that the main concern in [
4] is also the horizontal motion of the float caused by currents, this simplifying approach to the vertical motion model is also followed in [
4], where it is assumed that the float is represented dynamically as a point mass that can change depth instantaneously.
The use of BCD can also be found, in recent years, in the development of hybrid vehicles (using both propeller and a BCD), in an attempt to simultaneously achieve the manoeuvrability provided by the propellers with the low energy consumption provided by the BCD. In fact, a BCD allows the fine tuning of the neutral buoyancy of the vehicle, therefore reducing the energy that propeller-based vehicles require just to counterbalance the (typically positive) buoyancy, which is passively tuned. This is particularly important since changes in the pressure, temperature and salinity of the water make it impossible, from a practical standpoint, to tune the buoyancy of an underwater vehicle to zero in a passive way. Furthermore, there are certain hovering tasks for which the use of vertical thrusters interferes with the mission application, for instance when filming close to a muddy seafloor, as it would cause water clouding.
All the above-mentioned studies highlight the need to develop accurate depth controllers for BCD. It is possible to find several works in the literature addressing the depth control of underwater vehicles. For instance, in [
5], a buoyancy control for an autonomous underwater vehicle designed for filming tasks is developed. The vehicle weight is 180 kg and has a maximum buoyancy change of 8 kg. The buoyancy change is obtained by injecting air from a compressed air source into four ballast tanks through a series of valves and manifolds that control and distribute air and water in the system. Unfortunately, no model of the system was determined, and in autonomous mode, the controller only uses thrusters for vertical motion. Buoyancy control is utilised only under fault conditions by means of a failsafe behaviour.
In [
6], a buoyancy control device using two bellows actuated by linear drives is developed. The device appears to perform only at very shallow depths (up to 2 m). A second order, a type 0 linear model is used to develop a PID controller that performs depth control. However, no information on how the model was derived is presented. Furthermore, although experimental results are described as leading to a maximum error of 47% and a minimum of 2%, very few details are provided on how these results were found.
In paper [
7], the motion model of a buoyancy-driven profiling float is determined analytically. The buoyancy change is achieved using a piston moving seawater in and out of the vehicle, similarly to what is utilized in this work. Depth control is performed using three different types of controllers, namely a conventional PD controller, a sliding mode controller and a segment PD controller, as proposed in that work. The segment PD controller controls depth velocity until the target depth is near and then switches to depth control around the target depth. Simulation and experimental results show that accurate depth control can be obtained with the proposed segment PD controller, since a maximum error of 0.3 m was obtained in experimental trials of up to 60 m depth. However, the results presented in this paper do not show any experimental validation of the depth motion model. Furthermore, the proposed model does not include the actuator dynamics nor the positive feedback due to the increase in water pressure with depth.
In paper [
8], a complex nonlinear model of the depth motion dynamics of a profiling float is developed, along with the use of a finite-time boundedness controller. The float weighs 52 kg, its height is 0.82 m and its maximum width is 0.54 m. The dynamic model includes drag forces, hull deformation with pressure and the effects of vertical currents disturbing the system. Experimental results using the proposed control strategy show that steady state errors of up to 30 m for target depths of up to 300 m could be achieved. Unfortunately, no experimental validation of the developed model was performed.
In [
9], a piston type buoyancy device is developed for integration in a lightweight hybrid aerial vehicle, which can dive up to 25 m. Both diving velocity and pitch angle control is achieved by controlling the piston position. Since these two controlled variables are coupled, a complex nonlinear model is developed for adequate controller development. Experimental results using a PID controller show that a reasonably good performance is achieved in pitch control, although a steady state error in diving velocity is obtained, which might compromise depth control. Once again, no results regarding the model validation are presented.
A novel approach has been devised in [
10] to regulate depth for an autonomous buoy robot tasked with tracking spilled oil and blowout gas. The new algorithm utilized for regulating depth relies on contrasting the anticipated duration required for the buoy to alter its buoyancy from its current setting to the neutral position with the projected time for the robot to attain the intended depth. The algorithm’s effectiveness was established in sea trials, demonstrating that it is capable of seamlessly manoeuvring the buoy to the target depth with minimal overshooting. One of the claimed advantages of the control law presented in [
10] is its versatility, as it does not necessitate a rigorous determination of the neutral buoyancy value.
An interesting study can be found in [
11] on the depth control of a floating ocean seismograph. In these types of devices, designed to detect seismic ocean waves, a rapid reaction time, minimal overshooting, negligible steady-state error and strong robustness to ocean currents, marine creatures, etc., is required. To achieve these goals, in [
11], a fuzzy sliding mode controller, taking into account the influence of seawater density change, is devised. The performance of this controller is compared in simulation with the performance of a traditional PID controller, a fuzzy PID controller and a sliding mode controller. Results of this comparison show that the controller proposed in [
11] leads to the shortest settling time and minimum steady-state error and overshoot, while presenting good robustness to disturbing forces.
In order to develop accurate depth controllers, it is of upmost importance to have good models of its vertical motion behaviour. Indeed, the experimental development of controllers is impractical or economically unfeasible, since either test pools or sea trials must be performed, requiring high costs and time. This work contributes to this field by developing a comprehensive linearized model of the vertical motion of a device (either float or vehicle) that, contrary to previously presented models in the literature, includes actuator dynamics. Only the vertical motion is considered, as it is assumed that the device is either a float (for which pitch and roll are constant) or that these variables are controlled by the (other) vehicle actuators. This model is experimentally identified using a BCD previously developed by the authors [
12]. Although it is a linearized model, it is demonstrated that it captures the relevant dynamics, therefore providing a very useful simulation tool in the development of depth controllers. The main scientific contributions of this paper are therefore the following: (i) the development of a linearized model of a BCD, including actuator and device dynamics, which can be used for devising controllers; (ii) an experimental identification of the devised model; and (iii) the development and experimental test of controllers, based on the identified model, for the BCD.
The paper is organized as follows:
Section 2 briefly describes the prototype developed in this work, with special emphasis on the improved main control unit. Next,
Section 3 presents the dynamic model of the vertical motion of the prototype as well as its experimental identification.
Section 4 presents the controller proposed in this work and experimental results obtained when testing the prototype in a 5 m depth test pool. Finally,
Section 5 summarizes the main conclusions of this work.
2. Prototype Description
In the literature, it is possible to find very different types of technological solutions for buoyancy compensation, including purely gas-stored pneumatic systems [
13], linear electric drives that use seawater as a working fluid [
14], hydraulic pumping systems [
15], combinations of these solutions [
16] or even thermal-actuated VBSs [
17]. However, the majority of the solutions found in the literature are either linear electric drives that use seawater as a working fluid or oil hydraulic pumping systems [
1], as schematically represented in
Figure 1. In both cases, the principle of operation is based on increasing or decreasing the volume of the BCD, thereby changing its buoyancy, by pumping water or oil in or out of a sealed variable volume.
The BCD used in this work (please see
Figure 2) is designed to be installed in small size AUVs based on modular building blocks [
18] or to be used as a standalone buoy to perform vertical profiling missions. It is designed for shallow waters (up to 100 m), to which the electromechanical solution is better suited [
1]. The development of this prototype has been described in detail in [
12], although the control unit has undergone several improvements, as described next, for the purposes of this work.
It consists of three main sections: section 1 encompasses the buoyancy change module, section 2 is an intermediate section used to include flotation foam and section 3 is the main control unit (MCU). The MCU developed in this work is an independent module to be coupled to the BCD, so that the whole set can work as a float. If the BCD is incorporated into an existing AUV, then the MCU developed in this work is no longer required, as the control unit of the AUV may be used for that purpose. The buoyancy change is achieved by pumping water in and out using a diaphragm-sealed piston. The piston is driven by an electrical motor coupled to a mechanical transmission and a spindle. This BCD allows a total volume change of approximately
cm
3 and is able to dive up to 100 m. Its full length is 1285 mm with an outer radius of 200 mm. Its dry weight is 33 kg. Further details of the BCD can be found in [
12].
In this work, the control unit of the BCD developed in [
12] has been improved in order to allow the measurement of the depth and to implement depth control strategies.
Figure 3 presents a schematic of the measurement and control devices as a whole, including the main control unit (MCU). This unit includes a Turnigy high capacity 14.8 V 4 Cell Battery for the power supply of both the MCU and the BCD. It also includes two DC–DC converters responsible for providing a correct and stable voltage to the Arduino Uno R3 (7 V) and the BCD (14 V). In order to measure depth, a Bar30 pressure sensor was mounted on the outside of the MCU. This sensor can measure up to 30 bar (300 m) and has a 0.2 mbar resolution, corresponding to a depth measurement resolution of 2 mm in the water column. It communicates via I2 C with the Arduino. An Ethernet Shield was mounted on the Arduino to establish an Ethernet connection with the PC used to retrieve data. This allows data logging and setting parameters, such as target depths, controller gains and maximum and minimum positions for the actuator during preliminary trials.
Inside the BCD there is linear electrical actuator, driven by a DC-brushed motor, which moves the diaphragm-sealed piston. The motor driver (ROBOCLAW 2x15A) receives an analogue signal from a FESTO SDAT-MHS position transmitter that measures the position of the diaphragm-sealed piston. The driver is also responsible for modulating, using pulse width modulation (PWM), with the command voltage u applied to it. To supply the position transmitter, another DC–DC converter is used to convert the 14 V from the MCU to 24 V. The Arduino at the MCU is responsible for running the control algorithm and communicating to the driver what the correct voltage to apply to the motor at any given time is, as well as recording the information retrieved by the driver (PWM percentage, actuator position, etc.).