From d180e07836ff48a3a0956319a9aeaa57ea3c3c59 Mon Sep 17 00:00:00 2001 From: Mauco03 <marco.gaibotti@skywarder.eu> Date: Wed, 26 Mar 2025 21:53:17 +0100 Subject: [PATCH] [handle-value-conversion] Removed externalUpdaters and adapted apogeeAnalysis --- aerodynamicsOptimization/src/OptimizationGA.m | 4 ---- apogeeAnalysis/mainApogeeAnalysis.m | 10 ++++------ apogeeAnalysis/src/engineCutApogee.m | 1 - apogeeAnalysis/src/plotApogeeAnalysis.m | 4 ++-- apogeeAnalysis/src/standardApogee.m | 2 +- caAnalysis/src/initCaAnalysis.m | 1 - sensitivityAnalysis/sensitivityConfig.m | 2 +- sensitivityAnalysis/src/sensitivityStochRun.m | 6 +++--- sensitivityAnalysis/src/stochParameters/updateData.m | 4 ---- 9 files changed, 11 insertions(+), 23 deletions(-) diff --git a/aerodynamicsOptimization/src/OptimizationGA.m b/aerodynamicsOptimization/src/OptimizationGA.m index 77f02f20..9e7a828e 100644 --- a/aerodynamicsOptimization/src/OptimizationGA.m +++ b/aerodynamicsOptimization/src/OptimizationGA.m @@ -67,7 +67,6 @@ azCase = (360)*pi/180; wind.magnitudeParameters = ones(2,2).*magCase; wind.azimuthParameters = ones(2,2).*azCase; -wind.updateAll(); apogee1 = quickApogeeOnly(rocket, environment, wind, settings, wrapper); @@ -76,7 +75,6 @@ azCase = (180)*pi/180; wind.magnitudeParameters = ones(2,2).*magCase; wind.azimuthParameters = ones(2,2).*azCase; -wind.updateAll(); apogee2 = quickApogeeOnly(rocket, environment, wind, settings, wrapper); @@ -86,7 +84,6 @@ azCase = (360)*pi/180; wind.magnitudeParameters = ones(2,2).*magCase; wind.azimuthParameters = ones(2,2).*azCase; -wind.updateAll(); apogee3 = quickApogeeOnly(rocket, environment, wind, settings, wrapper); @@ -95,7 +92,6 @@ azCase = (180)*pi/180; wind.magnitudeParameters = ones(2,2).*magCase; wind.azimuthParameters = ones(2,2).*azCase; -wind.updateAll(); apogee4 = quickApogeeOnly(rocket, environment, wind, settings, wrapper); diff --git a/apogeeAnalysis/mainApogeeAnalysis.m b/apogeeAnalysis/mainApogeeAnalysis.m index 49485729..8fba1605 100644 --- a/apogeeAnalysis/mainApogeeAnalysis.m +++ b/apogeeAnalysis/mainApogeeAnalysis.m @@ -52,14 +52,12 @@ winds(1).magnitudeDistribution = "u"; winds(1).azimuthDistribution = "u"; winds(1).magnitudeParameters = settings.cases(1).wind.magVec * ones(2, 1); winds(1).azimuthParameters = settings.cases(1).wind.azVec * ones(2, 1); -winds(1).updateAll; winds(2).altitudes = settings.cases(2).wind.altitudes; winds(2).magnitudeDistribution = "u"; winds(2).azimuthDistribution = "u"; winds(2).magnitudeParameters = settings.cases(2).wind.magVec * ones(2, 1); winds(2).azimuthParameters = settings.cases(2).wind.azVec * ones(2, 1); -winds(2).updateAll; % Environments environments = [Environment(mission, rocket.motor); Environment(mission, rocket.motor)]; @@ -70,7 +68,7 @@ environments(2).omega = settings.cases(2).omega; environments(2).phi = settings.cases(2).phi; % Airbrakes -airbrakes = [Airbrakes(mission, rocket.motor); Airbrakes(mission, rocket.motor)]; +airbrakes = [Airbrakes(mission); Airbrakes(mission)]; airbrakes(1).enabled = settings.cases(1).airbrakes.enabled; airbrakes(1).extension = settings.cases(1).airbrakes.extension; airbrakes(1).deltaTime = settings.cases(1).airbrakes.deltaTime; @@ -80,7 +78,7 @@ airbrakes(2).extension = settings.cases(2).airbrakes.extension; airbrakes(2).deltaTime = settings.cases(2).airbrakes.deltaTime; %% MOTORS SELECTION -if settings.analysis.isEngineCut && ~(rocket.motor.isHRE) +if settings.analysis.isEngineCut && rocket.motor.type ~= MotorType.Hybrid msg="The Engine Cut Analysis can be used for HRE motors only"; error(msg) end @@ -105,8 +103,8 @@ if isempty(settings.selection.motorName) for i=1:size(motors, 1) if (motors(i).Itot > settings.selection.totalImpulseRange(1) && motors(i).Itot < settings.selection.totalImpulseRange(2) ... && any(strcmp(motors(i).producer, settings.selection.producer)) ... - && ( (rocket.motor.isHRE == false) || (motors(i).ODfus == rocket.diameter) ) ... - && ( (rocket.motor.isHRE == false) || ((settings.selection.transient == 2) || ... + && ( (rocket.motor.type ~= MotorType.Hybrid) || (motors(i).ODfus == rocket.diameter) ) ... + && ( (rocket.motor.type ~= MotorType.Hybrid) || ((settings.selection.transient == 2) || ... (settings.selection.transient == motors(i).transientFlag)))) selectedMotors(j) = motors(i); j = j + 1; diff --git a/apogeeAnalysis/src/engineCutApogee.m b/apogeeAnalysis/src/engineCutApogee.m index 1321e849..41c24000 100644 --- a/apogeeAnalysis/src/engineCutApogee.m +++ b/apogeeAnalysis/src/engineCutApogee.m @@ -63,7 +63,6 @@ for i = 1:2 % highest and lowest apogee cases for l = 1:nCutOffTime rocket.motor.cutoffTime = timeEngineCutVect(l); - rocket.updateAll; rocket.coefficients.state.xcgTime = linspace(0, rocket.motor.cutoffTime, ... length(rocket.coefficients.state.xcgTime)); % Apogee diff --git a/apogeeAnalysis/src/plotApogeeAnalysis.m b/apogeeAnalysis/src/plotApogeeAnalysis.m index f0bf990a..be61a386 100644 --- a/apogeeAnalysis/src/plotApogeeAnalysis.m +++ b/apogeeAnalysis/src/plotApogeeAnalysis.m @@ -120,12 +120,12 @@ for i = 1:2 % green rectangle below the target line if delta(1) > 0 rectangle('Position', [xGridMin minApo (xGridMax-xGridMin) delta(1)], ... - 'FaceColor', [0 1 0 0.1], 'Linestyle', 'none'); + 'FaceColor', [0 1 0 0.1], 'Linestyle', 'none', 'FaceAlpha', 0.3); end else % green rectangle over the target line rectangle('Position', [xGridMin settings.plots.targetApogee (xGridMax-xGridMin) delta(2)], ... - 'FaceColor', [0 1 0 0.1], 'Linestyle', 'none'); + 'FaceColor', [0 1 0 0.1], 'Linestyle', 'none', 'FaceAlpha', 0.3); end plotApogee.XLim = [xGridMin-margin, xGridMax+margin]; diff --git a/apogeeAnalysis/src/standardApogee.m b/apogeeAnalysis/src/standardApogee.m index ec3da7a9..efd81950 100644 --- a/apogeeAnalysis/src/standardApogee.m +++ b/apogeeAnalysis/src/standardApogee.m @@ -48,8 +48,8 @@ for i = 1:2 % highest and lowest apogee cases for k = 1:nMotors tempMotor.name = selectedMotors(k).MotorName; + rocket.mass = []; % Disables any ovverrides rocket.motor = tempMotor; - rocket.updateAll; rocket.coefficients.state.xcgTime = linspace(0, tempMotor.cutoffTime, ... length(rocket.coefficients.state.xcgTime)); rocket.motor.thrust = rocket.motor.thrust * ... diff --git a/caAnalysis/src/initCaAnalysis.m b/caAnalysis/src/initCaAnalysis.m index b4803e25..b61d5bf9 100644 --- a/caAnalysis/src/initCaAnalysis.m +++ b/caAnalysis/src/initCaAnalysis.m @@ -52,5 +52,4 @@ wind.magnitudeParameters = [0; 0]; wind.azimuthDistribution = 'u'; wind.azimuthParameters = [0; 0]; -wind.updateAll(); end \ No newline at end of file diff --git a/sensitivityAnalysis/sensitivityConfig.m b/sensitivityAnalysis/sensitivityConfig.m index a7d713ff..7653b39f 100644 --- a/sensitivityAnalysis/sensitivityConfig.m +++ b/sensitivityAnalysis/sensitivityConfig.m @@ -13,7 +13,7 @@ % SPDX-License-Identifier: GPL-3.0-or-later %% SIMULATION PARAMETERS -sensitivity.n = 2000; % Number of cases +sensitivity.n = 100; % Number of cases sensitivity.type = 4; % Simulation type: % 1-apogee only diff --git a/sensitivityAnalysis/src/sensitivityStochRun.m b/sensitivityAnalysis/src/sensitivityStochRun.m index 155ec703..ca0cbc1b 100644 --- a/sensitivityAnalysis/src/sensitivityStochRun.m +++ b/sensitivityAnalysis/src/sensitivityStochRun.m @@ -102,10 +102,10 @@ if stabFlag stability(1, n) = stability; end -parfor i = 1:n +for i = 1:n ascentSol = []; - rocket = copy(rocketRef); - env = copy(envRef); + rocket = rocketRef; + env = envRef; uncertanty = struct(); updateData(rocket, env, wind, parameters, i); diff --git a/sensitivityAnalysis/src/stochParameters/updateData.m b/sensitivityAnalysis/src/stochParameters/updateData.m index 6c1c26c8..1360c7bc 100644 --- a/sensitivityAnalysis/src/stochParameters/updateData.m +++ b/sensitivityAnalysis/src/stochParameters/updateData.m @@ -102,9 +102,5 @@ for i = 1:length(parameters) error(strcat('Parameter: <', parameters(i).name ,'> not known')); end end - -rocket.updateAll(); -env.updateAllExcetpG0(); -wind.updateAll(); end -- GitLab