09.03.2014 Views

ON OPTIMIZING NONLINEAR ADAPTIVE CONTROL ... - NTNU

ON OPTIMIZING NONLINEAR ADAPTIVE CONTROL ... - NTNU

ON OPTIMIZING NONLINEAR ADAPTIVE CONTROL ... - NTNU

SHOW MORE
SHOW LESS

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:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!