You are on page 1of 5

APPENDIX

MATLAB CODES
MATLAB Code to Plot Heave Exciting Force from Analytical Expression
clc
clear all
close all
%%%%%%%%% define constants %%%%%%%%%%%%%%%%%
g =9.81; % gravity
rho =1000; % water density
pi =3.14159;
A = 1.0; % wave amplitude
%%%%%%%%%%%% define the buoy geometry %%%%%%%%%%%%%%%
a =1.0; % buoy's radius
b =1.0; % buoy's draft
syms x z
ct=0;
for k0a=[0 0.0005 0.2 0.3:0.2:4]
ct=ct+1;
k=k0a/a;
%%%%%%%%%%%% Bessel functions %%%%%%%%%%%%%%%
J0=besselj(0,k.*a);
J1=besselj(1,k.*a);
dJ0=-besselj(1,k.*a);
dJ1=-0.5*(besselj(0,k.*a)-besselj(2,k.*a));
H0=besselh(0,1,k.*a);
dH0=-besselh(1,1,k.*a);
dH1=-0.5*(besselh(0,1,k.*a)-besselh(2,1,k.*a));
%%%%%%%%%%% Heave excitation force calculation %%%%%%%%%%%%%
ss=(1/((k.^2)+(x.^2)))*((besseli(1,x*a))/(x*besseli(0,x*a)));
s1=(int(ss,x,0,inf));
s21=-g*A*1i*sqrt(2/pi)*(J0-dJ0.*H0./dH0).*k.*exp(-k.*0.*a);
s22=-g*A*1i*sqrt(2/pi)*(J0-dJ0.*H0./dH0).*k.*exp(-k.*0.1.*a);
s23=-g*A*1i*sqrt(2/pi)*(J0-dJ0.*H0./dH0).*k.*exp(-k.*0.25.*a);
s24=-g*A*1i*sqrt(2/pi)*(J0-dJ0.*H0./dH0).*k.*exp(-k.*0.5.*a);
s25=-g*A*1i*sqrt(2/pi)*(J0-dJ0.*H0./dH0).*k.*exp(-k.*1.*a);
s26=-g*A*1i*sqrt(2/pi)*(J0-dJ0.*H0./dH0).*k.*exp(-k.*2.*a);
F3e1=
F3e2=
F3e3=
F3e4=
F3e5=
F3e6=

-2*pi*1i*rho*a*sqrt(2/pi).*s1*s21;
-2*pi*1i*rho*a*sqrt(2/pi).*s1*s22;
-2*pi*1i*rho*a*sqrt(2/pi).*s1*s23;
-2*pi*1i*rho*a*sqrt(2/pi).*s1*s24;
-2*pi*1i*rho*a*sqrt(2/pi).*s1*s25;
-2*pi*1i*rho*a*sqrt(2/pi).*s1*s26;

absNormF3e1(ct)=abs(F3e1)/(pi*rho*g*A*a*a);
absNormF3e2(ct)=abs(F3e2)/(pi*rho*g*A*a*a);
absNormF3e3(ct)=abs(F3e3)/(pi*rho*g*A*a*a);

absNormF3e4(ct)=abs(F3e4)/(pi*rho*g*A*a*a);
absNormF3e5(ct)=abs(F3e5)/(pi*rho*g*A*a*a);
absNormF3e6(ct)=abs(F3e6)/(pi*rho*g*A*a*a);
end
k0a=[0 0.0005 0.2 0.3:0.2:4];
plot(k0a,absNormF3e1,'-k',k0a,absNormF3e2,'--k',k0a,absNormF3e3,'.k',k0a,absNormF3e4,'-k',k0a,absNormF3e5,':k',k0a,absNormF3e6,'--k')
legend('b=0','b/a=0.1','b/a=0.25','b/a=0.5','b/a=1','b/a=2')

MATLAB Code to Plot Pitch Exciting Force from Analytical Expresssion


clc
clear all
close all
%%%%%%%%% define constants %%%%%%%%%%%%%%%%%
g =9.81; % gravity
rho =1000; % water density
pi =3.14159;
A = 1.0; % wave amplitude
%%%%%%%%%%%% define the buoy geometry %%%%%%%%%%%%%%%
a =1.0; % buoy's radius
b =1.0; % buoy's draft
syms x z
ct=0;
for k0a=[0 0.0005 0.2 0.3:0.2:4]
ct=ct+1;
k=k0a/a;

%%%%%%%%%%%% Bessel functions %%%%%%%%%%%%%%%


J0=besselj(0,k.*a);
J1=besselj(1,k.*a);
dJ0=-besselj(1,k.*a);
dJ1=-0.5*(besselj(0,k.*a)-besselj(2,k.*a));
H0=besselh(0,1,k.*a);
dH0=-besselh(1,1,k.*a);
dH1=-0.5*(besselh(0,1,k.*a)-besselh(2,1,k.*a));
%%%%%%%%%%% Pitch excitation force calculation %%%%%%%%%%%%%
t1=-2*pi*1i*rho*g*A*a;
t2=(J1-((0.5*J0-besselj(2,k.*a))*besselh(1,k.*a))/((besselh(1,k.*a)/(k.*a))besselh(2,k.*a)));
tt31=(z-0.1.*a)*exp(-k.*z);
tt32=(z-0.25.*a)*exp(-k.*z);
tt33=(z-0.5.*a)*exp(-k.*z);
tt34=(z-1.*a)*exp(-k.*z);
tt35=(z-2.*a)*exp(-k.*z);
t31=int(tt31,z,0,0.1*a);
t32=int(tt32,z,0,0.25*a);
t33=int(tt33,z,0,0.5*a);
t34=int(tt34,z,0,1*a);
t35=int(tt35,z,0,2*a);
t41=((-g*A)*(2)*(1i^2)*(sqrt(2/pi))*(J1-((0.5*(besselj(0,k.*a)besselj(2,k.*a))*besselh(1,k.*a))/((besselh(1,k.*a)/(k.*a))besselh(2,k.*a))))*k.*exp(-k.*0.1.*a));
t42=((-g*A)*(2)*(1i^2)*(sqrt(2/pi))*(J1-((0.5*(besselj(0,k.*a)besselj(2,k.*a))*besselh(1,k.*a))/((besselh(1,k.*a)/(k.*a))besselh(2,k.*a))))*k.*exp(-k.*0.25.*a));
t43=((-g*A)*(2)*(1i^2)*(sqrt(2/pi))*(J1-((0.5*(besselj(0,k.*a)besselj(2,k.*a))*besselh(1,k.*a))/((besselh(1,k.*a)/(k.*a))besselh(2,k.*a))))*k.*exp(-k.*0.5.*a));
t44=((-g*A)*(2)*(1i^2)*(sqrt(2/pi))*(J1-((0.5*(besselj(0,k.*a)besselj(2,k.*a))*besselh(1,k.*a))/((besselh(1,k.*a)/(k.*a))besselh(2,k.*a))))*k.*exp(-k.*1.*a));
t45=((-g*A)*(2)*(1i^2)*(sqrt(2/pi))*(J1-((0.5*(besselj(0,k.*a)besselj(2,k.*a))*besselh(1,k.*a))/((besselh(1,k.*a)/(k.*a))besselh(2,k.*a))))*k.*exp(-k.*2.*a));
tt5=(1/((k.^2)+x^2))*((besseli(2,x*a))/(x*besseli(1,x*a)));
t5=(int(tt5,x,0,inf));
F5e1=t1*t2*t31+(pi*1i*rho*(a^2)*(sqrt(2/pi))*t41*t5);
F5e2=t1*t2*t32+(pi*1i*rho*(a^2)*(sqrt(2/pi))*t42*t5);
F5e3=t1*t2*t33+(pi*1i*rho*(a^2)*(sqrt(2/pi))*t43*t5);
F5e4=t1*t2*t34+(pi*1i*rho*(a^2)*(sqrt(2/pi))*t44*t5);
F5e5=t1*t2*t35+(pi*1i*rho*(a^2)*(sqrt(2/pi))*t45*t5);
absNormF5e1(ct)=abs(F5e1)/(pi*rho*g*A*(a^3));
absNormF5e2(ct)=abs(F5e2)/(pi*rho*g*A*(a^3));

absNormF5e3(ct)=abs(F5e3)/(pi*rho*g*A*(a^3));
absNormF5e4(ct)=abs(F5e4)/(pi*rho*g*A*(a^3));
absNormF5e5(ct)=abs(F5e5)/(pi*rho*g*A*(a^3));
end
k0a=[0 0.0005 0.2 0.3:0.2:4];
plot(k0a,absNormF5e1,'-k',k0a,absNormF5e2,'--k',k0a,absNormF5e3,'.k',k0a,absNormF5e4,'-k',k0a,absNormF5e5,':k')
legend('b/a=0.1','b/a=0.25','b/a=0.5','b/a=1','b/a=2')

MATLAB Code to Plot Surge Excitation Force from Analytical Expression


%Surge Response%
ka=0:0.001:3.5;
j1das=-besselj(2,ka)+besselj(1,ka)./ka;
h1das=-besselh(2,ka)+besselh(1,ka)./ka;
f1=((besselj(1,ka)-(j1das.*besselh(1,ka))./h1das).*(1-exp(0.1.*ka)))./(0.5.*ka);
f2=((besselj(1,ka)-(j1das.*besselh(1,ka))./h1das).*(1-exp(0.25.*ka)))./(0.5.*ka);
f3=((besselj(1,ka)-(j1das.*besselh(1,ka))./h1das).*(1-exp(0.5.*ka)))./(0.5.*ka);
f4=((besselj(1,ka)-(j1das.*besselh(1,ka))./h1das).*(1-exp(1.*ka)))./(0.5.*ka);
f5=((besselj(1,ka)-(j1das.*besselh(1,ka))./h1das).*(1-exp(2.*ka)))./(0.5.*ka);
plot(ka,f1,'-k',ka,f2,'--k',ka,f3,'-.k',ka,f4,'-k',ka,f5,':k');
legend('b/a=0.1','b/a=0.25','b/a=0.5','b/a=1','b/a=2');
xlabel('ka');
ylabel('F1,ext');

title('Plot of normalized surge excitation force as a function of ka for


various b/a ratio');

You might also like