ON OPTIMIZING NONLINEAR ADAPTIVE CONTROL ... - NTNU
ON OPTIMIZING NONLINEAR ADAPTIVE CONTROL ... - NTNU
ON OPTIMIZING NONLINEAR ADAPTIVE CONTROL ... - NTNU
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
T i ( x ; ! i ; i ) := T ni (! i ) i (! i ; x ) i (24)<br />
<br />
kT<br />
T ni (! i ) := pi ! 2 i ! i 0<br />
k T ni j! i j ! i ! i < 0 ;<br />
q<br />
i (! i ; x ) = ! i x ; 3 (! 3 ) := ( 2 x + 2 y) j! 3 j ! 3<br />
<br />
kT<br />
i =<br />
i (1 w) x 0<br />
x < 0 ; 3 := k T 3<br />
k T i<br />
where 0 < w < 1 is the wake fraction number,<br />
i (! i ; x ) i is the thrust loss due to changes in the<br />
advance speed, a = (1 w) x ; and the unknown<br />
parameters i represents the thruster loss factors dependent<br />
on whether the hull invokes on the inow of<br />
the propeller or not. The rudder lift and drag forces are<br />
projected through:<br />
(1+kLni !<br />
L i (u):=<br />
i )(k L1i +k L2i j i j) i ; ! i 0<br />
0 ; ! i < 0 ;<br />
<br />
(1+kDni !<br />
D i (u):=<br />
i )(k D1i j i j+k D2i 2 i ) ; ! i 0<br />
0 ; ! i < 0 :<br />
Furthermore it is clear from (24) that (; u; ) =<br />
G u (u)Q(u) + G u (u)(!; x ); where (!; x ) :=<br />
diag( 1 ; 2 ; 3 ) and Q(u) represents the nominal<br />
propeller thrust.<br />
The actuator error dynamic for each propeller is based<br />
on the propeller model presented in (Pivano et al.<br />
2007) and given by<br />
T ni<br />
J mi<br />
_~! i = k fi (~! i + ! di ) (~! i + ! di )<br />
a T<br />
+ i(! i ; x ) i<br />
a T<br />
+ u cmdi J mi _! di (25)<br />
where ~! i := (! i ! id ); J m is the shaft moment of<br />
inertia, k f is a positive coefcient related to the viscous<br />
friction, a T is a positive model constant (Pivano<br />
et al. 2006) and u cmd is the motor torque. By the<br />
quadratic Lyapunov function V ~!i := ~!2 i<br />
2<br />
it is easy to<br />
see that the control law<br />
<br />
u cmdi := K !p ~! i (! i ; x )^ i<br />
i + J mi _! di<br />
a T<br />
+ T ni(! di )<br />
+ k fi ! di : (26)<br />
a T<br />
makes the origin of (25) UGES when ^ i = i . The<br />
error dynmaics of the rudder is given by:<br />
m i <br />
_~ = ai ~ + di + b i u cmdi m i di _ (27)<br />
where ~ := i di , a i (t) is a known scalar function,<br />
b i is a known scalar parameter bounded away from<br />
zero, and the controller <br />
b i u cmdi := K <br />
~ ai (t) ~ + di + m i di _ (28)<br />
makes the origin of (27) UGES. The parameters for<br />
the actuator model and controllers are: a T = 1;<br />
J mi = 10 2 ; kf i = 10 4 ; a i = 10 4 ; b i = 10 5 ,<br />
m i = 10 2 ; K !p = 5 10 3 and K = 10 3<br />
A virtual controller c that stabilizes the system (23)<br />
uniformly, globally and exponentially; for some physically<br />
limited yaw rate, is proposed in (Lindegaard and<br />
Fossen 2003) and given by<br />
x := K i R T ( p ) K p R T ( p ) e K d ; (29)<br />
where (23) is augmented with the integral action state,<br />
_ = e :<br />
The cost function designed for the optimization problem,<br />
(4), is:<br />
η e1 [m]<br />
η e2 [m]<br />
η e3 [deg]<br />
1.5<br />
0.5<br />
0.5<br />
0.5<br />
1<br />
0<br />
1.5<br />
1<br />
0.5<br />
0.05<br />
0<br />
0.15<br />
0.1<br />
0.05<br />
0<br />
0 100 200 300 400 500 600<br />
0 100 200 300 400 500 600<br />
0 100 200 300 400 500 600<br />
t [s]<br />
Fig. 2. Desired (dashed) and actual ship positions<br />
(solid).<br />
ω 1 [Hz]<br />
ω 2 [Hz]<br />
ω 3 [Hz]<br />
5<br />
10<br />
15<br />
10<br />
5<br />
0<br />
20<br />
10<br />
10<br />
0<br />
20<br />
10<br />
0<br />
0 100 200 300 400 500 600<br />
0 100 200 300 400 500 600<br />
0 100 200 300 400 500 600<br />
t [s]<br />
Fig. 3. Actual propeller velocities<br />
3X<br />
2X 3X<br />
J(u):= k i j! i j ! 2 i + q i 2 i & lg( ! i + 18)<br />
i=1<br />
3X<br />
& lg(! i +18)<br />
i=1<br />
i=1<br />
i=1<br />
2X<br />
& lg( i +35)<br />
i=1<br />
2X<br />
& lg( i +35);<br />
i=1<br />
w = 0:05; k 1 = k 2 = 0:01; k 3 =0:02; q 1 = q 2 =500:<br />
The gain matrices are chosen as follows: A^u :=<br />
2I 55 ; ~ := 10 3 ; := diag(10 3 ; 10 3 ; 3) and<br />
<br />
:= H T^W 1<br />
H^<br />
+ "I<br />
where<br />
W := diag (1; 1; 1; 1; 1; 0:9; 0:9; 0:7) and " := 10 9 .<br />
The weighting matrix W is dened such that the<br />
<br />
deviation of @L^<br />
@<br />
= k(t; x) (t; x; u; ^)<br />
from<br />
zero is penalized more then the deviation of @L^<br />
@u<br />
<br />
from zero in the search direction.<br />
The static disturbance vector is b := 0:05(1; 1; 1) T ,<br />
and the thruster loss vector is given in Figure 6.<br />
The simulation results are presented in the Figures<br />
2-7. The control objective is satised and the commanded<br />
virtual controls are tracked closely by the<br />
forces generated by the adaptive control allocation<br />
law: see Figure 5. Note that there are some deviations<br />
since ! saturates at ca. 220s and 420s: Also note<br />
that the parameter estimates only converge to the true<br />
values when the ship is moving and the thrust loss is<br />
not zero. The simulations are carried out in a discrete<br />
MATLAB environment with a sampling rate of 20Hz: