Professional Documents
Culture Documents
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')
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')