-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #68 from symbiotic-engineering/float-stress
Float stress
- Loading branch information
Showing
11 changed files
with
166 additions
and
38 deletions.
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
81 changes: 81 additions & 0 deletions
81
mdocean/simulation/modules/structures/float_plate_stress.m
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
|
||
|
||
|
||
function [sigma_vm_bot,sigma_vm_top] = float_plate_stress(D_f, D_f_in, F_heave, num_sections, t_bot, t_top, h_stiff, w_stiff, D_f_tu, nu) | ||
|
||
A = pi/4 * (D_f^2 - D_f_in^2); | ||
P_hydrodynamic = F_heave / A; | ||
W = F_heave / num_sections; | ||
|
||
b_out = pi * D_f / num_sections; | ||
b_in = pi * D_f_in / num_sections; | ||
b_avg = sqrt(b_out * b_in); | ||
|
||
h = (D_f-D_f_in)/2; | ||
if h >= b_avg | ||
m = (b_out-b_in)/(2*h); | ||
shorter_length = b_in*(m+sqrt(1+m^2)); | ||
longer_length = h; | ||
else | ||
shorter_length = h; | ||
longer_length = b_out; | ||
end | ||
|
||
length_ratio = longer_length / shorter_length; | ||
r0 = 1.02;%D_f_tu / 2; | ||
width_plate = b_out; % fixme, should be combo of b_out and b_in? but b_in gives imag number | ||
|
||
sigma_vm_bot = bottom_plate_stress(length_ratio, shorter_length, P_hydrodynamic, t_bot, h_stiff, w_stiff, width_plate); | ||
sigma_vm_top = top_plate_stress(length_ratio, shorter_length, W, t_top, h_stiff, w_stiff, r0, width_plate, nu); | ||
|
||
end | ||
|
||
function sigma_vm_top = top_plate_stress(length_ratio, shorter_length, W, t_top, h_stiff, w_stiff, r0, width_plate, nu) | ||
|
||
length_ratio_data = [1 : 0.2 : 2 1000]; | ||
beta_1_data = [-0.238 -0.078 0.011 0.053 0.068 0.067 0.067]; | ||
beta_2_data = [0.7542 0.8940 0.9624 0.9906 1.0000 1.004 1.008]; | ||
beta_1_fcn = @(length_ratio) interp1(length_ratio_data, beta_1_data, length_ratio); | ||
beta_2_fcn = @(length_ratio) interp1(length_ratio_data, beta_2_data, length_ratio); | ||
beta_1 = beta_1_fcn(length_ratio); | ||
beta_2 = beta_2_fcn(length_ratio); | ||
|
||
% Roark's table 11.4 case 8b page 514 | ||
% fixme - this is potentially not applicable since it assumes force in | ||
% middle, but my force is on the edge and therefore creates ~no bending moment | ||
% perhaps check ref 26 and 21 to see if they have a more general (off center) equation | ||
sigma_edge_no_stiff = 3*W/(2*pi*t_top^2) * ( (1+nu)*log(2*shorter_length/(pi*r0)) + beta_1); | ||
sigma_cent_no_stiff = -beta_2 * W / t_top^2; | ||
|
||
M_edge = sigma_edge_no_stiff * t_top^2 / 6; | ||
M_cent = sigma_cent_no_stiff * t_top^2 / 6; | ||
|
||
M_max = max(abs([M_edge,M_cent])); | ||
sigma_max = get_stiffener_equivalent_stress(t_top, h_stiff, width_plate, w_stiff, M_max); | ||
sigma_vm_top = sigma_max; | ||
|
||
end | ||
|
||
function sigma_vm = bottom_plate_stress(length_ratio, shorter_length, P_hydrodynamic, t_bot, h_stiff, w_stiff, width_plate) | ||
|
||
% data from table: Timoshenko table 35 p219 | ||
length_ratio_data = [1 : 0.1 : 2 1000]; | ||
alpha_shorter_data = -0.0001*[513 581 639 687 726 757 780 799 812 822 829 833]; | ||
alpha_longer_data = -0.0001*[513 538 554 563 568 570 571 571 571 571 571 571]; | ||
alpha_shorter_fcn = @(length_ratio) interp1(length_ratio_data, alpha_shorter_data, length_ratio); | ||
alpha_longer_fcn = @(length_ratio) interp1(length_ratio_data, alpha_longer_data, length_ratio); | ||
|
||
M_shorter = alpha_shorter_fcn(length_ratio) * P_hydrodynamic * shorter_length^2; | ||
M_longer = alpha_longer_fcn(length_ratio) * P_hydrodynamic * shorter_length^2; | ||
|
||
sigma_shorter = get_stiffener_equivalent_stress(t_bot, h_stiff, width_plate, w_stiff, M_shorter); | ||
sigma_longer = get_stiffener_equivalent_stress(t_bot, h_stiff, width_plate, w_stiff, M_longer); | ||
|
||
sigma_zz = P_hydrodynamic; | ||
|
||
s_11 = sigma_shorter; s_22 = 0; s_33 = sigma_zz; | ||
sigma_vm = sqrt(1/2 * ( (s_11 - s_22).^2 + (s_22 - s_33).^2 + (s_33 - s_11).^2 )); | ||
|
||
end | ||
|
||
|
23 changes: 23 additions & 0 deletions
23
mdocean/simulation/modules/structures/get_stiffener_equivalent_stress.m
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
function sigma = get_stiffener_equivalent_stress(t_plate, h_stiff, width_plate, width_stiff, moment_per_length) | ||
% https://ocw.mit.edu/courses/2-080j-structural-mechanics-fall-2013/f8fd2ad49d100766335b4e129a8a4791_MIT2_080JF13_Lecture7.pdf | ||
|
||
h = t_plate; | ||
H = h_stiff; | ||
a = width_plate/2; | ||
b = width_stiff; | ||
M = moment_per_length; | ||
|
||
eta_over_h = 1/2 * (1 - b/a * (H/h)^2) / (1 + b/a * (H/h)); % eq 7.67 MIT 2.080 | ||
h_eq_over_h_3 = 4 * ( (1-3*eta_over_h+3*eta_over_h^2) + b/(2*a) * ( (H/h)^2 + 3*(H/h)^2*eta_over_h + 3*H/h*eta_over_h^2 ) ); % eq 7.69 | ||
if h_eq_over_h_3 < 0 | ||
warning('stiffener equivalence broke') | ||
h_eq_over_h_3 = 1; | ||
end | ||
h_eq_over_h = h_eq_over_h_3^(1/3); | ||
h_eq = h_eq_over_h * h; | ||
|
||
y_max = h-eta_over_h*h; | ||
|
||
sigma = 12 * M * y_max / h_eq^3; | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters