80
5 THE REGULATOR
The diagram of the regulator is shown on the
Figure 7. The database of a set path, it is a records
set of path segment, is stored in Data of trajectory
block. The information of a path segment consists of
coordinates of two waypoints, set heading and set
speed. The data of the path segments are sent to the
Processing block one by one in proper time. Basing
on actual data of the vessel x, y,
y
, r and data of
current path segment, the Processing block controls
the movement of reference point R with the
algorithm presented in Section 4.2.
Fig. 7. Regulator diagram
The Calculate speed block calculates the surge u
and sway v speed of vessel from the difference
positions of vessel in every second. The Kalman
filter is used in this block to reduce the noise and
abnormal signals. The Deviations calculate block
calculate the distances from vessel to the reference
point R. These deviations, in fact, are coordinates of
reference point R in the Body frame b-frame. The
control signals to the thrusters are sum of signals
from Course keeping controller and y-position
keeping controller so they may be out of range of
thruster’s input. To avoid this, the control signals are
processed by the Saturation signals block before
sending to thrusters. This block processes these
signals so that they are always in the input ranges of
thruster and their characters are as same as the
resultant signals of two these controllers.
Table 2. Fuzzy logic controllers’ properties
The three controllers are fuzzy logic type (Passino
K., 1998). They have same properties as shown in
Table 2 and their membership function and rules are
presented in the next paragraphs.
Course keeping controller: This controller
controls the bow thruster and stern thruster to keep
the vessel heading stably at the set heading. To fulfill
this task, the controller has to maintain the heading
error and turning rate at the value of 0. Due to this,
the inputs membership functions are established
symmetrically around 0 (Figure 8). The first input is
heading error
∆y
. Its range is [-180
o
+180
o
]. When
heading error is in the range [-30
o
+30
o
], the
controller controls the heading with different rules
depending on situations. When heading error is
greater than +30
o
, the controller controls the heading
with the rules for error heading +30
o
. It is similar for
the case heading error is less than -30
o
. The second
input is turning rate. Its input range is set to covers
range of turning rate of common vessels. In practice,
this range is [-1
o
/s +1
o
/s]. In the case, the rate of turn
is out of that range, the controller controls by the
rules for turning rate r of -1
o
/s or +1
o
/s.
Fig. 8. Inputs membership functions of the Course keeping
controller
The output membership functions and rules are
shown in the Figure 9. The levels are ±s, ±m and ±b
respective to 1/3, 2/3 and full power of the thruster.
The level ±s is used to stabilize vessel course. The
level ±m is used to turn vessel when the error course
is less than ±15
o
. The level ±b is used to accelerate
and turning vessel when error course is greater than
±15
o
.
This controller controls two thrusters (bow and
stern). Both control signals to these thrusters are
same amplitude but opposite sign (see Figure 7).
Fig. 9. Output membership functions and table of rules of the
Course keeping controller
y position keeping controller: This controller
controls side moving of vessel. The task of the
controller is keeping vessel position closest
reference point in y axis of b-frame. Two inputs
consist of dy deviation (m), sway v (m/s) with
-1 -0.5
0
0.5 1
0
0.2
0.4
0.6
0.8
1
Degree of membership
+b
+m+szer o-s-m-b
-1 -0.5
0
0.5 1
0
0.2
0.4
0.6
0.8
1
Degree of membership
+b+m
+szer o-s-m-b
-30 -20 -10 0 10 20 30
0
0.2
0.4
0.6
0.8
1
Degree of membership
+b+m+szero-s-m-b
a) Heading error b) Rate of turn