Vous êtes sur la page 1sur 12

2011

MOTION OF SUBMARINE

By: Anil Chejara (9003022) Deep Kumar (9003031)

INTRODUCTION:
A submarine is a watercraft capable of independent operation below the surface of the water. Submarines are ingenious bits of engineering designed to carry people safely through this very harsh environment. A submarine is fundamentally an air space contained by a hull that is designed to withstand deep ocean pressures and to move easily underwater. The hull is a double steel shell. The inner, or pressure, hull contains all the machinery for propelling and guiding the vessel, plus living quarters for the crew. The outer hull holds the ballast tanks. When the vessel submerges, these tanks are opened and flooded with seawater. For surfacing, the seawater is forced out of the ballast tanks and replaced by compressed air. A submarine can float because the weight of water that it displaces is equal to the weight of the ship. This displacement of water creates an upward force called the buoyant force. A submarine has tanks that are called ballast tanks. When these tanks are flooded with sea water, the submarine sinks because the submarine weighs more than the water it displaces. To rise again, the submarine reduces its weight by pushing compressed air into the ballast tanks. The air forces the sea water out and sub returns to the surface. It manoeuvres using its rudder and planes.

Underwater, the submarine uses inertial guidance systems (electric, mechanical) that keep track of the ship's motion from a fixed starting point by using gyroscopes for navigation. Thus underwater the submarine experiences large amounts of pressure. The submarine also experiences a force in the opposite direction of motion, which is more commonly known as the DRAG FORCE.

PROBLEM STATEMENT:
Consider a submarine moving underwater at Great Depths. Using the RUNGE KUTTA method of 4th order to solve an equation to find its velocity and corresponding displacement in MATLAB. Assumption: It has geometry complication so consider the submarine to be a solid sphere of mass m and radius R. Since the submarine is in moving in great depth of fluid having density Rho and the velocity of fluid is V.

Considering that that submarine is FULLY submerged inside the fluid at great depth so its weight should exceed its buoyant force. So the density of the sphere should be high compare to water.

The Buoyant force < Mg


The approximate velocity of submarine in fluid is given by the equation given below. It is a second order differential equation which has components of velocity and square of dx/dt. The mathmetical formulation is given by

(1)

Mdx2/d2t = 1/2Rho*Cdpi*R2*(v2+ (dx/dt)2 -2vdx/dt )


M Mass of the body Rho Density of the fluid in which the body is immersed Cd Co-efficient of Drag force R Radius X Displacement of the body V Velocity of the fluid The above is a second order equation of motion of a body. Use the fourth order RUNGE KUTTA method to calculate the Velocity, which in turn is used to calculate the Displacement.

RUNGE KUTTA METHOD:


In numerical analysis, the RungeKutta methods are an important family of implicit and explicit iterative methods for the approximation of solutions of ordinary differential equations. These techniques were developed around 1900 by the German mathematicians C. Runge and M.W. Kutta.

One member of the family of RungeKutta methods is so commonly used that it is often referred to as "RK4", "classical Runge-Kutta method" or simply as "the RungeKutta method". Let an initial value problem be specified as follows.

Thus, the next value (yn + 1) is determined by the present value (yn) plus the product of the size of the interval (h) and an estimated slope. The slope is a weighted average of slopes:

k1 is the slope at the beginning of the interval; k2 is the slope at the midpoint of the interval, using slope k1 to determine the value of y at the point tn + h / 2 using Euler's method; k3 is again the slope at the midpoint, but now using the slope k2 to determine the y-value; k4 is the slope at the end of the interval, with its y-value determined using k3.

In averaging the four slopes, greater weight is given to the slopes at the midpoint:

The RK4 method is a fourth-order method, meaning that the error per step is on the order of h5, while the total accumulated error has order h4.

EULAR METHOD:
nature and today it is implemented on modern computers and is called Eulers method. The basic idea is as follows. By the definition of a derivative,

y_(x) = lim f (x + h) f (x)/ h h0


Or, in explicit recursive form

yi+1 = yi + hF(xi, yi), i = 0, 1, 2, . . . , n 1.

ALGORITHM:
TAKE INPUT VALUES OF THE CONSTANTS T,h,Rho,v,u,x FROM THE USER

DEFINE K1,K2,K3,K4,u(i) and x(i)

Use for loop to get the values of K1,K2,K3,K4 , velicity and displacement.

APPLY RUNGE KUTTA METHOD, EULAR AND ANALYTICAL INTEGRATION METHOD for N NUMBER OF TIMES WITH THE HELP OF A LOOP.

CALCULATE THE NEXT VALUE OF DISPLACEMENT AND VELOCITY

CALCULATE THE ERROR IN DISPLACEMENT AND VELOCITY FOR DIFFERENT STEP SIZES

PLOT THE GRAPH OF DISPLACEMENT V/S TIME ALONG WITH THE ERROR IN DISPLACEMENT

PROCEDURE:
Rewriting the equation 1 in First order we get, Let dx/dt = u du/dt = Rho * Cd* R2 * Pi* ( V-U)2 / 2M du/dt = Rho * Cd* R2 * Pi*(V2+U2-2UV)

Hence using matlab to write a program to solve and plot the graph for the equation of motion. For further reference refer the code of the program attached with this file.

DISCUSSION:
Note: because the weight is more than buoyant force hence radius should very small compare to mass. Hence
Assume that velocity of water is 1m/s, radius of sphere is .01M,mass of sphere is 5kg,density of water is 1000kg/m3,initial velocity and displacement of water is zero and drag coefficient is 1 si unit. Hence, V= 1m/s R=.01 M=5kg U=0 X=0 Cd=1

For T=10s and step size .5


1.5

distance covered

numerical integration runge kutta method eular method

0.5

5 time(s)

10

6.8 6.6 runge kutta eular

error%

6.4 6.2 6

5 time(s)

10

For T=10s and step size .25


1.5

distance covered

numerical integration runge kutta method eular method

0.5

5 time(s)

10

3.15

error%

3.1 3.05 3 2.95 0 1 2 3 4 5 time(s) 6 7 8

runge kutta eular

10

For T=10s and step size .1


1.5

distance covered

numerical integration runge kutta method eular method

0.5

5 time(s)

10

1.22 runge kutta eular

error%

1.2

1.18

1.16 0

5 time(s)

10

For T=100s and step size .5


60

distance covered

40

numerical integration runge kutta method eular method

20

10

20

30

40

50 time(s)

60

70

80

90

100

0.488 runge kutta eular

error%

0.4875

0.487

0.4865

10

20

30

40

50 time(s)

60

70

80

90

100

CONCLUSION AND RESULTS:


For time equal to 10 second the error decrease as the step size decrease. The error obtained displacement in runge kutta method is less compare to eular method. As step size decreases the difference error between rk method and eular method decrease. As the time period increases the error obtained decrease more (see for t=100) hence it can be seen that for a large time period the error difference between rk method and eular method. For different step sizes the error obtained in different but less(<5%). For small time period in submarine motion insist of the numerical integration method Runge Kutta method can be used. For large time period the difference between rk method is less so either can be used but rk is more suitable method.

Bibliography:
www.wikipedia.org www.howstuffworks.com www.efunda.com Numerical Methods by Engineers by Steven Chapra. http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods http://www.youtube.com/watch?v=yb3e4IegeJ0

Matlab Codingclear all % to clear recent datas clc p=input('ENTER THE RANGE\n'); % input value of time range from user . h=input('ENTER THE STEP SIZE\n');% );% input valueof step size from user n=p/h; % define the no of steps k1=zeros(1,n); % space allotment k2=zeros(1,n); % space allotment k3=zeros(1,n); % space allotment k4=zeros(1,n); % space allotment u=zeros(1,n); % space allotment x=zeros(1,n); % space allotment z1=zeros(1,n); m=zeros(1,n); R=input('ENTER THE RADIUS OF THE SPHERE\n');% input value of radius from user. Rho=input('ENTER THE DENSITY OF THE FLUID\n');% input value of density from user. Cd=input('ENTER THE VALUE OF DRAG CO-EFFICIENT\n');% input value of drag cofficient from user. M=input('ENTER THE MASS OF THE SPHERE\n');% input value of mass from user. V=input('ENTER THE VELOCITY OF THE FLUID\n(should be less than 10)');% input value of velocity of fluid from user. u(1)=input('ENTER THE INITIAL VELOCITY OF THE SPHERE(should be less than velocity of fluid)\n');% input value of initial velocity from user. x(1)=input('ENTER THE INITIAL DISPLACEMENT OF THE SPHERE\n');% input value of initial displacement from user. for i=1:n-1 % using rung kutta method order of fourth. k1(i)=(Rho*Cd*pi*R*R/(2*M))*(V-u(i))^2; k2(i)=(Rho*Cd*pi*R*R/(2*M))*(V-(u(i)+h*(k1(i)/2)))^2; k3(i)=(Rho*Cd*pi*R*R/(2*M))*(V-(u(i)+h*(k2(i)/2)))^2; k4(i)=(Rho*Cd*pi*R*R/(2*M))*(V-(u(i)+h*k3(i)))^2; u(i+1)=u(i)+h*(k1(i)+2*k2(i)+2*k3(i)+k4(i))/6; % velocity at time t+h x(i+1)=x(i)+h*u(i); % distance at time t=h end z=0:n-1; t=h*z; ue=zeros(1,n); xe=zeros(1,n); C=(1/(V-u(1))); for i=1:n % velocity using numerical integration ue(i)= V-(1/((Rho*Cd*pi*R*R/(2*M))*(t(i))+C)); % distance covered using numerical integration xe(i)=(V*t(i)log((Rho*Cd*pi*R*R/(2*M))*(t(i))+1)/(Rho*Cd*pi*R*R/(2*M)))+x(1)+log(C)/Rho* Cd*pi*R*R/(2*M); end er=zeros(1,n); for i=1:n

% distance error analysis in(%) er(i)=(xe-x)/xe*100; end

for i=1:n % eular method z1(i)= u(i)+h*(Rho*Cd*pi*R*R/(2*M))*(V-u(i))^2; m(i)= x(i)+h*z1(i); %distance covered end ee=zeros(1,n); for i=1:n % error in velocity of sphere (%) ee(i)=(m-xe)/xe*100; end % ploting of curves of distance covered using runge kutta method,eularmethod and % numerical integrationand comparing. subplot(2,1,1) plot(t,x,t,xe,'--r',t,m,'*') ylabel('distance covered')%labeling axis xlabel('time(s)')%labeling axis legend('numerical integration','runge kutta method','eular method')%labeling axis subplot(2,1,2) plot(t,er,t,ee,'--') legend('runge kutta','eular') %labeling axis ylabel('error%')%labeling axis xlabel('time(s)')%labeling axis

Vous aimerez peut-être aussi