From bc414e02773aacc6e642a3f079f6d994818aec93 Mon Sep 17 00:00:00 2001 From: giuliaghirardini <giuliaghirardini2001@gmail.com> Date: Sat, 20 Jul 2024 10:42:06 +0200 Subject: [PATCH] [refactoring-missions][2021_Lynx_Roccaraso_September] Modified Rocket methods for updating stages mass to be compatible with parafoil-less rockets and modified check geometry method to be compatible with Karman ogive --- classes/Rocket.m | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/classes/Rocket.m b/classes/Rocket.m index c9cc13e..947edb2 100644 --- a/classes/Rocket.m +++ b/classes/Rocket.m @@ -156,10 +156,10 @@ classdef Rocket < Component end function updateStagesMass(obj) - stage1 = obj.cutoffMass - (obj.payload.mass + obj.parachutes(1,2).mass + obj.parachutes(2,2).mass); + stage1 = obj.cutoffMass - sum([obj.parachutes(:,1).mass]); % Everything at cut off without payload, payload drogue and % payload airfoil - stage2 = obj.payload.mass + obj.parachutes(1,2).mass + obj.parachutes(2,2).mass; + stage2 = sum([obj.parachutes(:,1).mass]); % only payload: payload, payload drogue and payload airfoil obj.stagesMass = [stage1 stage2]; end @@ -365,8 +365,35 @@ classdef Rocket < Component obj.coefficients.geometry.xcg(1); obj.coefficients.geometry.xcg(end); ], 3); - - geometryRocket = round([ + + if (obj.payload.noseCMod & obj.payload.nosePMod) == 0 % KARMAN ogive case, no modified p and c coefficients + geometryRocket = round([ + obj.diameter; + obj.payload.noseLength; + obj.lengthCenter; + obj.rear.finsRootChord; + obj.rear.finsFreeChord; + obj.rear.finsHeight; + obj.rear.finsDeltaXFreeChord; + obj.rear.nPanel; + obj.rear.boatLength; + obj.rear.boatFinalDiameter; + ], 3); + + geometryTest = round([ + obj.coefficients.geometry.diameter; + obj.coefficients.geometry.lNose; + obj.coefficients.geometry.lCenter; + obj.coefficients.geometry.chord1; + obj.coefficients.geometry.chord2; + obj.coefficients.geometry.height; + obj.coefficients.geometry.deltaXLE; + obj.coefficients.geometry.nPanel; + obj.coefficients.geometry.boatL; + obj.coefficients.geometry.boatD; + ], 3); + else % MHAAK ogive case, modified p and c coefficients + geometryRocket = round([ obj.diameter; obj.payload.noseLength; obj.lengthCenter; @@ -395,6 +422,7 @@ classdef Rocket < Component obj.coefficients.geometry.boatL; obj.coefficients.geometry.boatD; ], 3); + end checks = [ xCgRocket == xCgTest; -- GitLab