diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7d04738 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/Additional Numerical Models/TEAMERLUPA2_inf_depth_20m/TwoBodySixDOF diff --git a/Additional Numerical Models/TEAMERLUPA2_inf_depth_20m/TwoBodySixDOF/wecSimInputFile.asv b/Additional Numerical Models/TEAMERLUPA2_inf_depth_20m/TwoBodySixDOF/wecSimInputFile.asv deleted file mode 100644 index 2dc501d..0000000 --- a/Additional Numerical Models/TEAMERLUPA2_inf_depth_20m/TwoBodySixDOF/wecSimInputFile.asv +++ /dev/null @@ -1,92 +0,0 @@ -%% LUPA Two-Body Six-DOF -% 20x Model of TEAMERLUPA2 -% TEAMERLUPA2 Experimental Campaign Fall 2023 -% -% Water depth set to infinite -% -% Created by Hannah Mankle -% Last modified: 05/29/2025 - - -%% Simulation Data -simu=simulationClass(); -simu.simMechanicsFile = 'LUPAsimTBSD.slx'; -simu.endTime = 300; -simu.rampTime = 30; -simu.dt = 0.01; -simu.cicEndTime = 20; -simu.explorer = 'on'; -simu.domainSize = 74/2; % The domain is set to half of the 20x scaled flume width of 74 meters. - -%% Wave Information -waves = waveClass('noWave'); -waves.period = 10; - -% Regular waves -% waves = waveClass('regularCIC'); % Initialize waveClass -% waves.height = 3; % [m] From Two-Body Six-DOF experiments -% waves.period = 10; % [s] 4.47s to 14.53s Examples of scaled periods used for LUPA (Based on scaled experimental periods tested - - -% Regular waves -% waves = waveClass('irregular'); % Initialize waveClass -% waves.spectrumType = ('PM'); -% waves.height = 0.06; % [m] From Two-Body Six-DOF experiments -% waves.period = 3; - -%% Body Data -%% Body 1: Float -body(1) = bodyClass('..\hydroData\floatspar_20m.h5'); -body(1).geometryFile = '..\geometry\LUPA_float_20m.stl'; -body(1).mass = 'equilibrium'; -body(1).viz.color = [255/256 127/256 36/256]; -body(1).inertia = [206720000 208192000 57056000]; % [kg-m^2] scaled 20x from Lab-scale measured dry swing tests -body(1).quadDrag.cd = [0.54 0.54 0.15 0.54 0.54 0.15]; % [-] Quadratic drag coefficient Cd as found from Gu et al 2018 -body(1).quadDrag.area = [73 73 314.16 73 73 314.16]; % [m^2] Characteristic area in relevant plane - -%% Body 2: Spar -body(2) = bodyClass('..\hydroData\floatspar_20m.h5'); -body(2).geometryFile = '..\geometry\LUPA_spar_20m_full.stl'; -body(2).mass = 1617680; %'equilibrium'; % [kg] Positively bouyant spar. Scaled 20x -body(2).viz.color = [211/256 211/256 211/256]; -body(2).inertia = [975315200 976800000 50480000]; % [kg-m^2] scaled 20x from Lab-scale measured dry swing tests -body(2).quadDrag.cd = [0.6 0.6 2.8 0.6 0.6 2.8]; % [-] Quadratic drag coefficient Cd as found from Beatty 2015 and Singh & Mittal 2005 -body(2).quadDrag.area = [103.78 103.78 130 103.78 103.78 130]; % [m^2] Characteristic area in relevant plane -body(2).setInitDisp([0 0 0],[0 0 0 0],[0 0 -0.6]); % [m] Initial Displacement Set to engage mooring lines for pre-tension. - -%% PTO and Constraint Parameters -% NEED TO SCALE PTO DAMPING LOSS - -% Translational Joint -constraint(1) = constraintClass('Constraint1'); % Initialize Constraint Class for Constraint1 -constraint(1).location = [0 0 0]; % [m] Constraint Location - -% Translational PTO -pto(1) = ptoClass('PTO1'); % Initialize PTO Class for PTO1 -pto(1).stiffness = 0; % [N/m] PTO Stiffness -pto(1).damping = 0; % [N/(m/s)] PTO Damping. Typical values fall between 0-17e6 N/(m/s); scaled 20x from experimental values -pto(1).location = [0 0 0]; % [m] PTO Location - -% ~~Optional linear damping loss~~ -% Included in lab-scale numerical model to account for friction loss. -% Even scaled up 20x this loss is neglegible for a utility-scaled WEC. -% 20x scaled damping loss can be set to -626099 [N/m/s] based on -% experimentally found values. Value is negative due to electromechanical -% loss. -ptoDampingLoss = 0; % [N/m/s] Linear damping loss - - -%% Mooring Matrix - -R = 6.5; % [m] Radius of mooring plate scaled 10x -mooring(1) = mooringClass('mooring'); % Initialize mooringClass - -%%This is the combined equivalent stiffness of all 4 springs as calculated -%%from their equilbrium location and angle. Scaled up 20x from lab-scale -mooring(1).matrix.stiffness(1,1) = 1145600; % [N/m] -mooring(1).matrix.stiffness(2,2) = 1145600; % [N/m] -mooring(1).matrix.stiffness(3,3) = 224800; % [N/m] -mooring(1).matrix.stiffness(4,4) = 32712000*R; % [N/deg] Assumming small angle approximations acting axially -mooring(1).matrix.stiffness(5,5) = 32712000*R; % [N/deg] Assumming small angle approximations acting axially -mooring(1).matrix.stiffness(6,6) = 32712000*R; % [N/deg] Assumming small angle approximations acting axially -mooring(1).location = [0 0 -14.4-0.6]; % [m] Distance in meters from the still water line down to the mooring connection point when the spar is initially displaced. diff --git a/LUPATEAMER2 Fall 2023/TwoBodySixDOF/wecSimInputFile.m b/LUPATEAMER2 Fall 2023/TwoBodySixDOF/wecSimInputFile.m index 8ade17f..00ace09 100644 --- a/LUPATEAMER2 Fall 2023/TwoBodySixDOF/wecSimInputFile.m +++ b/LUPATEAMER2 Fall 2023/TwoBodySixDOF/wecSimInputFile.m @@ -3,7 +3,7 @@ % % Depth is set at 3.69 m % -% Updated by: Hannah Mankle 6/3/2025 +% Updated by: Hannah Mankle 9/3/2025 %% Simulation Data @@ -48,10 +48,8 @@ body(2).mass = 202.21; % [kg] Positively bouyant spar. body(2).viz.color = [211/256 211/256 211/256]; body(2).inertia = [304.786 305.250 15.775]; % [kg-m^2] As measured from dry swing tests -% body(2).initial.axis = [1 1 0]; -% body(2).initial.angle = -0.0010; -% body(2).linearDamping(4,4) = 3; -% body(2).linearDamping(5,5) = 3; +body(2).linearDamping(4,4) = 200; % Linear damping to help stablize model at beginning of simulation +body(2).linearDamping(5,5) = 200; body(2).quadDrag.cd = [0.6 0.6 2.8 0.6 0.6 2.8]; % [-] Quadratic drag coefficient Cd as found from Beatty 2015 and Singh & Mittal 2005 body(2).quadDrag.area = [0.546 0.546 0.636 0.546 0.546 0.636]; % [m^2] Characteristic area in relevant plane body(2).setInitDisp([0 0 0],[0 0 0 0],[0 0 -0.42]); % [m] Initial Displacement Set to engage mooring lines for pre-tension. @@ -67,8 +65,10 @@ pto(1) = ptoClass('PTO1'); % Initialize PTO Class for PTO1 pto(1).stiffness = 0; % [N/m] PTO Stiffness pto(1).damping = 0; % [N/(m/s)] PTO Damping Typical values fall between 0-10,000 N/(m/s) -ptoDampingLoss = -350; % [N/m/s] Linear damping Found experimentally through free decay tests. It is negative because it is a electromechanical loss. +ptoDampingLoss = 900; % [N/m/s] pto(1).location = [0 0 0]; % [m] PTO Location +pto(1).equilibriumPosition = -0.42; % [m] initial PTO location, coresponses with spar displacement & needed if model is using stiffness terms. + %% Mooring Matrix R = 0.325; % [m] Radius of mooring plate diff --git a/MULTIPHYSICSLUPA3 Spring 2024/TwoBodyHeaveOnly_D0_9m/wecSimInputFile.m b/MULTIPHYSICSLUPA3 Spring 2024/TwoBodyHeaveOnly_D0_9m/wecSimInputFile.m index f89eb82..281f6ea 100644 --- a/MULTIPHYSICSLUPA3 Spring 2024/TwoBodyHeaveOnly_D0_9m/wecSimInputFile.m +++ b/MULTIPHYSICSLUPA3 Spring 2024/TwoBodyHeaveOnly_D0_9m/wecSimInputFile.m @@ -6,7 +6,7 @@ % Heave plate diameter is 0.9 m % Depth is set at 2.78 m % -% Updated by: Hannah Mankle 6/6/2025 +% Updated by: Hannah Mankle 9/3/2025 %% Simulation Data @@ -51,16 +51,11 @@ body(2).mass = 202.21; % [kg] Positively bouyant spar. body(2).viz.color = [211/256 211/256 211/256]; body(2).inertia = [304.786 305.250 15.775]; % [kg-m^2] As measured from dry swing tests -% body(2).initial.axis = [1 1 0]; -% body(2).initial.angle = -0.0010; -% body(2).linearDamping(4,4) = 3; -% body(2).linearDamping(5,5) = 3; +body(2).linearDamping(3,3) = 700; body(2).quadDrag.cd = [0.6 0.6 2.8 0.6 0.6 2.8]; % [-] Quadratic drag coefficient Cd as found from Beatty 2015 and Singh & Mittal 2005 body(2).quadDrag.area = [0.546 0.546 0.636 0.546 0.546 0.636]; % [m^2] Characteristic area in relevant plane body(2).setInitDisp([0 0 0],[0 0 0 0],[0 0 -0.42]); % [m] Initial Displacement Set to engage mooring lines for pre-tension. -% add linear damping to pitch and roll - %% PTO and Constraint Parameters % Translational Joint constraint(1) = constraintClass('Constraint1'); % Initialize Constraint Class for Constraint1 @@ -70,8 +65,9 @@ pto(1) = ptoClass('PTO1'); % Initialize PTO Class for PTO1 pto(1).stiffness = 0; % [N/m] PTO Stiffness pto(1).damping = 0; % [N/(m/s)] PTO Damping Typical values fall between 0-10,000 N/(m/s) -ptoDampingLoss = -350; % [N/m/s] Linear damping Found experimentally through free decay tests. It is negative because it is a electromechanical loss. +ptoDampingLoss = -900; % [N/m/s] Linear damping Found experimentally through free decay tests. It is negative because it is a electromechanical loss. pto(1).location = [0 0 0]; % [m] PTO Location +% pto(1).location = -0.42; % [m] initial PTO location, coresponses with spar displacement & needed if model is using stiffness terms. %% Mooring Matrix R = 0.325; % [m] Radius of mooring plate diff --git a/MULTIPHYSICSLUPA3 Spring 2024/TwoBodyHeaveOnly_D1_14m/wecSimInputFile.m b/MULTIPHYSICSLUPA3 Spring 2024/TwoBodyHeaveOnly_D1_14m/wecSimInputFile.m index bd43e42..1e4eebb 100644 --- a/MULTIPHYSICSLUPA3 Spring 2024/TwoBodyHeaveOnly_D1_14m/wecSimInputFile.m +++ b/MULTIPHYSICSLUPA3 Spring 2024/TwoBodyHeaveOnly_D1_14m/wecSimInputFile.m @@ -6,7 +6,7 @@ % Heave plate diameter is 1.14 m % Depth is set at 2.78 m % -% Updated by: Hannah Mankle 6/6/2025 +% Updated by: Hannah Mankle 9/3/2025 %% Simulation Data simu=simulationClass(); @@ -43,6 +43,7 @@ body(2).mass = 202.21; % [kg] Positively bouyant spar. body(2).viz.color = [211/256 211/256 211/256]; body(2).inertia = [304.786 305.250 15.775]; % [kg-m^2] As measured from dry swing tests +body(2).linearDamping(3,3) = 700; % Based on 0.9 m heave plate, value may need to be changed body(2).quadDrag.cd = [0.6 0.6 2.8 0.6 0.6 2.8]; % [-] Quadratic drag coefficient Cd as found from Beatty 2015 and Singh & Mittal 2005 body(2).quadDrag.area = [0.558 0.558 0.636 0.558 0.558 0.636]; % [m^2] Characteristic area in relevant plane body(2).setInitDisp([0 0 0],[0 0 0 0],[0 0 -0.22]); % [m] Initial Displacement Set to engage mooring lines for pre-tension. @@ -56,8 +57,9 @@ pto(1) = ptoClass('PTO1'); % Initialize PTO Class for PTO1 pto(1).stiffness = 0; % [N/m] PTO Stiffness pto(1).damping = 0; % [N/(m/s)] PTO Damping Typical values fall between 0-10,000 N/(m/s) -ptoDampingLoss = -350; % [N/m/s] Linear damping Found experimentally through free decay tests. It is negative because it is a electromechanical loss. +ptoDampingLoss = -900; % [N/m/s] Linear damping loss. It is negative because it is a electromechanical loss. Value determined from validated 0.9 m heave plate and may need updating. pto(1).location = [0 0 0]; % [m] PTO Location +% pto(1).location = -0.22; % [m] initial PTO location, coresponses with spar displacement & needed if model is using stiffness terms. %% Mooring Matrix R = 0.325; % [m] Radius of mooring plate