datasets of wind coefficients for a range of generic ship types
In order to caluclate the wind resistance experienced by the ship, the wind resistance loading coefficients need to be known. The wind resistance loading coefficients are dependent on the direction the wind is blowing relative to the ship. These coefficients can be found using the following three methods
Wind tunnel test
CFD analysis
Coefficient datasets
Regression formula by Fujiwara et al.
The first two and fourth approaches are used to create the coefficients specific for the ship. The third option is used when no such simulations have been performed and are based on a set of generic ship designs.
0.1 Load wind resistance coefficients
When there has been no wind tunnel test or CDF analysis the wind resistance coefficients must be found using datasets of look up tables representing generic ship designs for a variety of classes. pyseatrials contains the wind loading factor datasets from ITTC. These data sets have been included as 9 dataframes depending on ship type. To load the data frame enter the name of the ship type to load. The available ship types are
The dataset loaded previously only contains the load coefficients at specific angles. Interpolation is needed to match these coefficients to the wind acting on the ship.There are many ways to interpolate these values, pyseatrials uses simple linear interpolation. Linear interpolation has been chosen over other approaches as it can be vectorised and reduces package dependencies. In addition the ultimate difference, between e.g. linear vs spline interpolation, in resistive force will be small compared to the magnitude of forces acting on the ship.
Find a linearly interpolated value for wind resistance coefficient
Type
Details
df
dataframe of the wind resistance dataset
relative_wind_direction
float
The angle of the wind relative to the ship [rads]
ship_state
str
The state of the ship the resistance should be evaluated in. Chosen from the columns of the wind resistance datasets
Returns
float
The dimensionless wind resistance coefficient
Using the example of the general cargo ship using four different wind direction scenarios (0, 55, 180, 280 degrees) we get the interpolated loading coefficients. Some ships have data for different states such as ‘laden’ and ‘ballast’ the General Cargo dataset only has a single state ‘average’.
degs = [0, 55, 120, 180 ]rads = np.deg2rad(degs) #convert the degrees to radianscx_vals = interpolate_cx(general_cargo, rads, 'average')print(cx_vals)
[-0.6 -0.75 0.84 0.82]
import pandas as pd
The wind resistance coefficients can then be used to find the actual wind resistance experienced by the ship
The difference between the load coefficients produced by the two models can be shown in the plot below. Across the full range there is almost no difference.
The difference in terms of actual resistive force between linear and spline interpolation is also very small.
wind_resistiance_spline = wind_resistance(air_density =1.2, wind_resistance_coef_rel = cx_spline(rads), wind_resistance_coef_zero = cx_spline(rads)[0], area =500, relative_wind_speed =20, sog =10)#convert to kNresitance_spline_kN = np.round(wind_resistiance_spline/1000)#difference in wind resistance between the two models in kNprint('difference in kN between the two interpolation methods for all 4 angles of attack '+str(resistance_linear_kN - resitance_spline_kN))
difference in kN between the two interpolation methods for all 4 angles of attack [0. 2. 0. 0.]
1 Fujiwara regression formula
The Fujiwara regression formula (Fujiwara 2006) calcualtes the wind resistance coeficient of a vessel using the ships geometry. It is often considered the default method, due to it’s adaptability to specific ships and the accessability of the input parameters. However, it’s input calculation is somewhat involved, we reccomend reading either the ITTC or ISO15016 Standards for detailed description of its application.
is the lateral projected area of superstructures on deck [m2]
axv
float
is the area of maximum transverse section exposed to the winds [m2]
alv
float
is the projected lateral area above the waterline [m2]
cmc
float
is the horizontal distance from midship section to centre of lateral projected area ALV, this is often negative. [m2]
hc
float
is the height from the waterline to the centre of lateral projected area ALV [m]
hbr
float
is the height of top of superstructure (bridge etc) [m]
loa
float
is the length overall [m]
b
float
is the ship breadth [m]
wind_dir
float
is the relative wind direction, 0 means head winds. [deg]
smoothing
float
10
is the smoothing range, normally 10 degrees. [deg]
Returns
float
returns the wind coefficient in the longitudinal direction [-]
import matplotlib.pyplot as pltwind_dir = np.arange(0, 361, 5)cx = [fujiwara(aod =905, axv =1750, alv =7400, cmc =-6.6, hc =11.72, hbr =40.7, loa =340, b =62, wind_dir = i, smoothing =10) for i in wind_dir]plt.plot(wind_dir, cx)plt.xlabel('Wind Angle [deg]')plt.ylabel('Wind Coefficient [-]')plt.xticks(np.arange(0,361,45))plt.grid()