diff --git a/missions/2024_Lyra_Roccaraso_September/config/geometryConfig.asv b/missions/2024_Lyra_Roccaraso_September/config/geometryConfig.asv deleted file mode 100644 index 5e23dc1f8898b662c94631f754361ddc51b61c38..0000000000000000000000000000000000000000 --- a/missions/2024_Lyra_Roccaraso_September/config/geometryConfig.asv +++ /dev/null @@ -1,50 +0,0 @@ -% CONFIG - This script contains information about the geometry of the -% rocket - -%%% Boat-tail -% The boat-tail is simulated as a trunc of cone with the major diameter -% equal to the rocket one (settings.C) -geometry.boat.length = 000; % [m] Boat-tail length -geometry.boat.diameter = 000; % [m] Boat-tail base diameter - -%%% Center-body -geometry.center.length = 000; %1.517; % [m] Central body length -geometry.center.caliber = 000; % [m] Caliber (Fuselage Diameter) -geometry.center.crossSection = pi*geometry.center.caliber^2/4; % [m^2] Cross-sectional Surface - -%%% Nose -geometry.nose.length = 000; % [m] Nosecone Length -geometry.nose.ogiveType = 'MHAACK'; % [-] Nosecone shape -geometry.nose.power = 000; %3/4; % [-] Nosecone power type parameter -geometry.nose.p = 000; %1.250152e+00; % [-] P coefficient for modified nosecone shapes -geometry.nose.c = 000; %1.799127e-01; % [-] C coefficient for modified nosecone shapes - -%%% Pitot tube -geometry.pitot.initialConeLength = 0; % [m] Pitot initial conic section length -geometry.pitot.finalConeLength = 0; % [m] Pitot final conic section length -geometry.pitot.initialConeDiameter = 0; % [m] Pitot initial conic section diameter -geometry.pitot.finalConeDiameter = 0; % [m] Pitot final conic section diameter -geometry.pitot.length = 0; % [m] Pitot tube length -geometry.pitot.diameter = 0; % [m] Pitot tube diameter - -%%% Finset -geometry.fins.attachedChordLength = 0.30; % [m] attached chord length -geometry.fins.freeChordLenght = 0.14; % [m] free chord length -geometry.fins.height = 0.11; % [m] fin heigth -geometry.fins.deltaXLE = 0.13; % [m] start of Chord 2 measured from start of Chord 1 -geometry.fins.nPanel = 3; % [m] number of fins -geometry.fins.leadingEdgeRadius = [0 0]; % [deg] Leading edge radius at each span station -geometry.fins.axialDistance = 0.012; % [m] distance between end of root chord and end of center body -geometry.fins.zupRaw = 0.00175; % [m] fin semi-thickness -geometry.fins.LmaxuRaw = 0.00175; % [m] Fraction of chord from leading edge to max thickness - -%%% Protub data -geometry.protuberances.xDistance = 1.517; % [m] axial position from nosecone base -geometry.protuberances.n = 3; % [-] number of brakes -geometry.protuberances.length = 0.008; % [m] brakes thickness -geometry.protuberances.width = 0.1002754821; % [m] brakes width (normal) - -%%% -% geometry.mNoMot = 000; %16.423; % [kg] Mass of everything above engine -% geometry.xcgNoMot = 000; %1.149; % [m] XCG of everything above engine (from nosecone base) - diff --git a/missions/2024_Lyra_Roccaraso_September/config/geometryConfig.m b/missions/2024_Lyra_Roccaraso_September/config/geometryConfig.m index bfc832e8151d58604feacbe0d804374a28364456..34e54711845a8bd6e7d562fa9c63535394b2cff9 100644 --- a/missions/2024_Lyra_Roccaraso_September/config/geometryConfig.m +++ b/missions/2024_Lyra_Roccaraso_September/config/geometryConfig.m @@ -1,5 +1,6 @@ % CONFIG - This script contains information about the geometry of the % rocket +geometry = Geometries(); %%% Boat-tail % The boat-tail is simulated as a trunc of cone with the major diameter @@ -10,7 +11,6 @@ geometry.boat.diameter = 000; % [m] Boat-tai %%% Center-body geometry.center.length = 000; %1.517; % [m] Central body length geometry.center.caliber = 000; % [m] Caliber (Fuselage Diameter) -geometry.center.crossSection = pi*geometry.center.caliber^2/4; % [m^2] Cross-sectional Surface %%% Nose geometry.nose.length = 000; % [m] Nosecone Length @@ -31,12 +31,12 @@ geometry.pitot.diameter = 0; % [m] Pitot tub geometry.fins.rootChord = 0.30; % [m] attached chord length geometry.fins.freeChord = 0.14; % [m] free chord length geometry.fins.height = 0.11; % [m] fin heigth -geometry.fins.deltaXLE = 0.13; % [m] start of Chord 2 measured from start of Chord 1 +geometry.fins.deltaXFreeChord = 0.13; % [m] start of Chord 2 measured from start of Chord 1 geometry.fins.nPanel = 3; % [m] number of fins geometry.fins.leadingEdgeRadius = [0 0]; % [deg] Leading edge radius at each span station geometry.fins.axialDistance = 0.012; % [m] distance between end of root chord and end of center body -geometry.fins.zupRaw = 0.00175; % [m] fin semi-thickness -geometry.fins.LmaxuRaw = 0.00175; % [m] Fraction of chord from leading edge to max thickness +geometry.fins.semiThickness = 0.00175; % [m] fin semi-thickness +geometry.fins.maxThicknessPosition = 0.00175; % [m] Fraction of chord from leading edge to max thickness %%% Protub data geometry.protuberances.xDistance = 1.517; % [m] axial position from nosecone base @@ -46,7 +46,6 @@ geometry.protuberances.width = 0.1002754821; % [m %%% xCG -geometry.nXCG = 5; -geometry.xCG = NaN; % [m] XCG entire rocket (from nosecone base - leave NaN to auto-compute xCG) -geometry.xCGNoMotor = 000; %1.149; % [m] XCG of everything above engine (from nosecone base) +geometry.nXCg = 5; +geometry.xCgNoMotor = 000; %1.149; % [m] XCG of everything above engine (from nosecone base) diff --git a/missions/2024_Lyra_Roccaraso_September/config/inertiaConfig.m b/missions/2024_Lyra_Roccaraso_September/config/inertiaConfig.m index 2ff12cf69bd7c592bde7ea48b31522f78c9ce41b..dbb6cf0bc4816e127ed98ad78044050e77dc0446 100644 --- a/missions/2024_Lyra_Roccaraso_September/config/inertiaConfig.m +++ b/missions/2024_Lyra_Roccaraso_September/config/inertiaConfig.m @@ -6,26 +6,29 @@ % y-axis: right wing % z-axis: downward +[geometry, mass, motor] = ... + loadConfig('geometryConfig.m', 'massConfig.m', 'motorConfig.m'); + %%% Inertias for fuselage only (no engine) inertia.rocket.Ixx = 0.06535397; % [kg*m^2] Inertia to x-axis inertia.rocket.Iyy = 12.07664659; % [kg*m^2] Inertia to y-axis inertia.rocket.Izz = 12.07701314; % [kg*m^2] Inertia to z-axis %%% Inertias for engine only -% inertia.engine.Ixx = HREmotors(iMotor).Ixx; % [kg*m^2] Inertia to x-axis -% inertia.engine.Iyy = HREmotors(iMotor).Iyy; % [kg*m^2] Inertia to y-axis -% inertia.engine.Izz = HREmotors(iMotor).Izz; % [kg*m^2] Inertia to z-axis - -% %%% Total inertias -% inertia.Ixx = inertia.rocketIxx + engineIxx; -% -% inertia.Iyy = inertia.rocketIyy + ((inertia.xcgNoMot - inertia.xcg).^2) .* inertia.mNoMot + ... -% (engineIyy + ((inertia.motor.xcg + inertia.LcenterRocket - inertia.xcg).^2 ) .* (inertia.motor.expM + inertia.motor.mc)); -% -% inertia.Izz = inertia.rocketIzz + ((inertia.xcgNoMot - inertia.xcg).^2) .* inertia.mNoMot + ... -% (engineIzz + ((inertia.motor.xcg + inertia.LcenterRocket - inertia.xcg).^2) .* (inertia.motor.expM + inertia.motor.mc)); -% -% inertia.I = [inertia.Ixx; inertia.Iyy; inertia.Izz]; +inertia.engine.Ixx = HREmotors(iMotor).Ixx; % [kg*m^2] Inertia to x-axis +inertia.engine.Iyy = HREmotors(iMotor).Iyy; % [kg*m^2] Inertia to y-axis +inertia.engine.Izz = HREmotors(iMotor).Izz; % [kg*m^2] Inertia to z-axis + +%%% Total inertias +inertia.Ixx = inertia.rocketIxx + engineIxx; + +inertia.Iyy = inertia.rocketIyy + ((inertia.xcgNoMot - inertia.xcg).^2) .* inertia.mNoMot + ... + (engineIyy + ((inertia.motor.xcg + inertia.LcenterRocket - inertia.xcg).^2 ) .* (inertia.motor.expM + inertia.motor.mc)); + +inertia.Izz = inertia.rocketIzz + ((inertia.xcgNoMot - inertia.xcg).^2) .* inertia.mNoMot + ... + (engineIzz + ((inertia.motor.xcg + inertia.LcenterRocket - inertia.xcg).^2) .* (inertia.motor.expM + inertia.motor.mc)); + +inertia.I = [inertia.Ixx; inertia.Iyy; inertia.Izz]; %%% Inertias derivatives (avoiding calculations in ascent.m) % inertia.Idot = diff(inertia.I')'./diff(inertia.motor.expTime); diff --git a/missions/2024_Lyra_Roccaraso_September/config/massConfig.m b/missions/2024_Lyra_Roccaraso_September/config/massConfig.m index 9566315aa5126f226f7622859468af72a53abc20..ace1a116441a764b720d14b65e461bfd221371e2 100644 --- a/missions/2024_Lyra_Roccaraso_September/config/massConfig.m +++ b/missions/2024_Lyra_Roccaraso_September/config/massConfig.m @@ -1,10 +1,10 @@ % CONFIG - This script contains all masses +mass = Masses(); mass.noseCone = 0; % [kg] Nosecone Mass -mass.structure = 0; % [kg] Total structural Mass +mass.noMotor = 0; % [kg] Total structural Mass + %mass.noEngine + mass.motor.structure + ... mass.noseCone; -mass.initial = 0; %mass.structure + mass.motor.expM(1); % [kg] Total initial Mass -mass.mTotalTime = 0; %mass.noEngine + mass.motor.mc + mass.noseCone + mass.motor.expected; % Total mass (in time) diff --git a/missions/2024_Lyra_Roccaraso_September/config/motorConfig.m b/missions/2024_Lyra_Roccaraso_September/config/motorConfig.m index 4e2dbe791f9c8925c1991b6c7d063346d7e10b6f..887d844ded3162177e18d4f7ba7364127230b672 100644 --- a/missions/2024_Lyra_Roccaraso_September/config/motorConfig.m +++ b/missions/2024_Lyra_Roccaraso_September/config/motorConfig.m @@ -1,8 +1,7 @@ % CONFIG - This script sets up parameters for the engine -motor.name = 'HRE_FURIA-Rv2-T04T03'; -motor.burnTime = inf; % [s] Burn duration -% motor.ignitionTime = 0.4; % [s] Ignition transient -% motor.cutOffTime = 0.3; % [s] Cut-off transient +motor = Motor(); -filename_coeffs = strcat(motor.name, '.mat'); \ No newline at end of file +motor.name = 'HRE_FURIA-Rv2-T04T03'; +motor.ignitionTime = 0.4; % [s] Ignition transient +motor.cutoffTime = 0.3; % [s] Cut-off transient \ No newline at end of file diff --git a/missions/2024_Lyra_Roccaraso_September/data/motors.mat b/missions/2024_Lyra_Roccaraso_September/data/motors.mat index 1ffa2dbb3d70ca3e4350f7c90acc37ec7549e8ee..d80a7e6bfb1a134e5622b08ab7726ec7cfd77d13 100644 --- a/missions/2024_Lyra_Roccaraso_September/data/motors.mat +++ b/missions/2024_Lyra_Roccaraso_September/data/motors.mat @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fbb0e6fb46b31cadbc084461987aa8f45d9128c7e6b8d59483b88809e1495f3f -size 6730820 +oid sha256:798a1824876aae70a59aeea4c83c9763d69353fbb28dbd81e97bc86f1f726009 +size 6730803 diff --git a/missions/superConfig.m b/missions/missionConfig.m similarity index 72% rename from missions/superConfig.m rename to missions/missionConfig.m index fa4c19f5b2e3d276e8873449c963c3fbcbe3fffa..3fdc59afb6850f090ae9de8b46034f5ddab4c9c7 100644 --- a/missions/superConfig.m +++ b/missions/missionConfig.m @@ -2,5 +2,6 @@ % % Use this file to store relevant, universally true settings, % such as the current mission. The config "BIOS" +mission = Mission(); -super.mission = '2024_Lyra_Roccaraso_September'; \ No newline at end of file +mission.name = '2024_Lyra_Roccaraso_September'; \ No newline at end of file