Calculating the minimum air cushion pressure of an ACV used to break ice in the Arctic region
AIM: To calculate the minimum value of pressure required using the Newton Raphson Method using Python
OBJECTIVES:
- To use the Newton Raphson Method to find out the value of pressure for h = 0.6 ft.
- To find the optimal relaxation factor for this problem with the help of a suitable plot.
- To tabulate the results of p for h = [0.6,1.2,1.8,2.4,3,3.6,4.2] assuming a suitable relaxation factor.
INTRODUCTION
AIR CUSHION VEHICLES
These days, hovercrafts or air cushion vehicles (ACV), are used in some cases to break ice. Although fuel intensive, ACV are surprisingly effective as ice breakers. Hovercrafts break ice differently than conventional icebreakers.Dependent on ice thickness, a hovercraft can readily break ice in flexure by making a depression and send cracks through the ice.
Once a crack is made, the path of least resistance for the hovercraft's air curtain gets under the ice and reduces the supporting water under the ice. The ice then fails under it’s own weight. At speed an ACV can setup a wave in the ice and send cracks through it. This would act similar to the dynamics of a transport truck on an ice road. Yet a transport truck would adjust speed avoid setting up this wave to a destructive speed. An ice-breaking ACV is intending to setup this destructive wave.
`x_(n) =x_(guess) − α⋅(f(x_(guess))/(f'(x_(guess))))`
where
- `α`- relaxation factor
Equation used:
`p^3(1−β^2)+(0.4*h*β^2−(σ*h^2)/(r^2))p^2+(σ^2h^4)/(3r^4)p−((σh^2)/(3r^2))^3=0`
- `p`- pressure exerted by the air cushion
- `h`- thickness of the ice field
- `r`- size of the air cushion
- `sigma`- tensile strength of ice
- `beta`- width of the ice wedge
Input Parameters:
- `p`= 10
- `h`= [0.6, 1.2, 1.8, 2.4, 3.0, 3.6, 4.2]
- `r`= 40 feet
- `sigma`= 150 psi
- `beta`= 0.5
- `α`= 1
- tolerance =`10^-8`
PROGRAM CODE
1)Finding the minimum pressure for each case
import matplotlib.pyplot as plt #Importing the module to plot a graph
#The main function is defined by dividng the equation into terms
def f(p,h):
t1 = pow(p,3)*(1-pow(b,2))
t2 = 0.4*h*pow(b,2) - (d*pow(h,2))/pow(r,2)
t3 = (pow(d,2))*(pow(h,4))/(3*pow(r,4))
t4 = d*pow(h,2)/(3*pow(r,2))
t4 = pow(t4,3)
pj= t1 + pow(p,2)*t2 + p*t3 - t4
return pj
#Derivative of the equation after differentiation wrt p
def fprime(p,h):
t5 = 3*pow(p,2)*(1-pow(b,2))
t6 = 0.4*h*pow(b,2) - (d*pow(h,2))/pow(r,2)
t7 = (pow(d,2))*(pow(h,4))/(3*pow(r,4))
pj1 = t5 + 2*p*t6 + t7
return pj1
#Input parameters
b = 0.5 #width of the wedge
r = 40 #size of the air cushion
d = 150 #tensile strength of the ice
thickness= [0.6,1.2,1.8,2.4,3.0,3.6,4.2] #thickness of the wedge
#defining empty pressure array
pressure = [] #pressure array for adding the pressure for each respective thickness
#relaxation factor
alpha = 1.08
#tolerance variable
tol = 1e-8
#Running for loop for different values of thickness of ice
for t in thickness :
#first guess value
x_guess = 10
#initializing counter
iter = 1
#using newton-raphson formula in the while loop
while (abs(f(x_guess,t))>tol):
x_guess = x_guess - alpha*(f(x_guess,t)/fprime(x_guess,t))
iter = iter+1
#Filling up the pressure array to get the graph
pressure.append(x_guess)
#Printing the desired result
for i in range(0,7) :
if i ==0 :
print("SL.NO","THICKNESS"," ","PRESSURE")
print(" ",i+1," ",thickness[i]," ",pressure[i])
#printing and plotting the final results
print("Number of iterations = ",iter )
plt.plot(thickness,pressure,"red")
plt.grid()
plt.title("Cushion Pressure VS Thickness of the Ice Wedge")
plt.xlabel("Thickness of the Ice Wedge(feet)")
plt.ylabel("Air Cushion Pressure (psi)")
plt.show()
PROCEDURE
- Define two functions for the equation and its derivative
- The neccesary parameters are supplied as input
- The Newton Raphson algorithm is used to solve the problem iteratively until we arrive at the most accurate solution.
- All the solutions for each succesive case are tabulated
- A graph showing the variation of minimum pressure w.r.t the thickness of the ice wedge is plotted.
RESULT:
2. Finding the optimal relaxation factor
import matplotlib.pyplot as plt #Importing the module to plot a graph
import numpy as np
#The main function is defined by dividng the equation into terms
def f(p,h):
t1 = pow(p,3)*(1-pow(b,2))
t2 = ((0.4*h*pow(b,2) - ((d*pow(h,2))/pow(r,2)))*pow(p,2))
t3 = ((pow(d,2)*(pow(h,4)/(3*pow(r,4)))))*p
t4 = (pow((d*pow(h,2)/(3*pow(r,2))),3))
pj= t1 + t2 + t3 - t4
return pj
#Derivative of the equation after differentiation wrt p
def fprime(p,h):
t5 = 3*pow(p,2)*(1-pow(b,2))
t6 = (2*p*((0.4*h*pow(b,2)) - (d*pow(h,2)/pow(r,2))))
t7 = ((pow(d,2))*(pow(h,4)/(3*pow(r,4))))
pj1 = t5 + t6 + t7
return pj1
#Input parameters
b = 0.5 #width of the wedge
r = 40 #size of the air cushion
d = 150 #tensile strength of the ice
t=0.6#thickness of the wedge
#relaxation factor
alpha = np.linspace(0.1,1.9,99)
#tolerance variable
tol = 1e-8
iteration=[]
#Running for loop for different values of relaxation
for a in alpha :
#first guess value
x_guess = 10
#initializing counter
iter = 1
#using newton-raphson formula in the while loop
while (abs(f(x_guess,t))>tol):
x_guess = x_guess - a*(f(x_guess,t)/fprime(x_guess,t))
iter = iter+1
#Filling up the iteration array to get the graph
iteration.append(iter)
#printing and plotting the final results
plt.plot(alpha,iteration,"red")
plt.grid()
plt.title("Iterations VS Relaxation Factor")
plt.ylabel("No. of iterations")
plt.xlabel("Relaxation Factor")
plt.show()
x0= min(iteration))
for i in range(len(iteration)):
if x0==iteration[i]:
p=i
print("The most optimum relaxation factor for this problem is",alpha[p])
PROCEDURE
- Define two functions for the equation and its derivative
- The neccesary parameters are supplied as input
- The Newton Raphson algorithm is used to solve the problem iteratively until we arrive at the most accurate solution.
- The nuumber of iterations required for a particular value of alpha is appened into its respective list,.
- A graph depicting No.o f Iterations vs Relaxation Factor is plotted and the most optimum solution is displayed.
RESULTS
OBSERVATIONS
- The cushion pressure vs thickness plot shows that minimum pressure increases proportionaly but non-linearly w.r.t to the thickness
- The no.of iterations vs relaxation factor plot shows that the number of iterations is minimum at alpha=1.09, thereby making it the most optimum solution.
Only minor syntax errors were encountered
CONCLUSION
Thus, using the above programs, we were able to calculate the minimum pressure required to break ice based on its thickness and also calculate the optimum value of relaxation factor.