From 4a8258341323448ce662e429cf388da0635b0cd2 Mon Sep 17 00:00:00 2001 From: Thomas Lambert <t.lambert@uliege.be> Date: Thu, 8 Dec 2022 00:46:05 +0100 Subject: [PATCH] fix(analysis): bugs in coeff calc --- resultsanalysis.m | 13 ++++++++----- utils/analysis/findwingphase.m | 5 +++++ utils/analysis/removeinertia.m | 6 +++--- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/resultsanalysis.m b/resultsanalysis.m index 65c726c..d007108 100644 --- a/resultsanalysis.m +++ b/resultsanalysis.m @@ -83,7 +83,6 @@ function ResData = getmeancoefficients(ResData) % Transform forces/moments into coefficients ResData(i, j) = calccoeff(ResData(i, j)); - end end end @@ -93,18 +92,22 @@ function ResData = calccoeff(ResData) POSITIONS = {'Front', 'Aft'}; CHORD = 0.05; SPAN = 2 * 0.2; + C_TO_K = 273.15; - if ~isempty(ResData.Phase.idx) - for i = 1:length(ResData.Phase.idx) + for i = 1:length(ResData.Phase) + if ~isempty(ResData.Phase(i).idx) for j = 1:length(POSITIONS) - dens = airdensity(ResData.Testcase.temp, ResData.Testcase.press); + dens = airdensity(ResData.Testcase.temp + C_TO_K, ResData.Testcase.press); speed = ResData.Testcase.airspeed; + coeffF = forcetocoeff(ResData.Phase(i).(POSITIONS{j}).forces, ... dens, speed, CHORD, SPAN, 'force'); coeffM = forcetocoeff(ResData.Phase(i).(POSITIONS{j}).moments, ... dens, speed, CHORD, SPAN, 'moment'); + + ResData.Phase(i).(POSITIONS{j}).cF = coeffF; + ResData.Phase(i).(POSITIONS{j}).cM = coeffM; end end end - end diff --git a/utils/analysis/findwingphase.m b/utils/analysis/findwingphase.m index 58023f6..65b9bfe 100644 --- a/utils/analysis/findwingphase.m +++ b/utils/analysis/findwingphase.m @@ -126,6 +126,11 @@ function signalRange = findsyncedpeaks(signal1, signal2, nPeriodIdx, offset, nPe % Signal ranges where it is properly synchronized signalRange = peakLocs1([offsetIdx - 1, offsetIdx + 1]); + % FIXME: Hackyway to make it work + if numel(signalRange) == 2 + signalRange = signalRange'; + end + if DEBUG peakLocs = peakLocs1(offsetIdx); % Location of the peaks figure; diff --git a/utils/analysis/removeinertia.m b/utils/analysis/removeinertia.m index 2d474ac..d154532 100644 --- a/utils/analysis/removeinertia.m +++ b/utils/analysis/removeinertia.m @@ -17,9 +17,9 @@ function ResData = removeinertia(ResData, ResDataWO, field) for i = 1:length(ResData.Phase) if ~isempty(ResData.Phase(i).idx) for j = 1:size(ResData.Phase(i).idx, 1) - syncedRange = ResData.Phase(i).idx(1):ResData.Phase(i).idx(2); - meanF(j, :) = mean(ResDataWO.(field).forces(syncedRange)); - meanM(j, :) = mean(ResDataWO.(field).moments(syncedRange)); + syncedRange = ResData.Phase(i).idx(j, 1):ResData.Phase(i).idx(j, 2); + meanF(j, :) = mean(ResData.(field).forces(syncedRange, :)); + meanM(j, :) = mean(ResData.(field).moments(syncedRange, :)); end ResData.Phase(i).(field).rawF = mean(meanF); ResData.Phase(i).(field).rawM = mean(meanM); -- GitLab