Skip to content
Snippets Groups Projects
Verified Commit 14dab9d2 authored by Thomas Lambert's avatar Thomas Lambert :helicopter:
Browse files

feat(analysis): isolate phases, calc inertia, get coefficients

parent 5928a15a
No related branches found
No related tags found
No related merge requests found
......@@ -31,7 +31,11 @@ function ResData = resultsanalysis(matFiles)
tmp = load(resFile);
ResData(iFile, :) = tmp.ExpData;
end
ResData = rmfield(ResData, {'arduStart', 'tunnelStart'});
% Remove useless data
ResData = rmfield(ResData, {'arduStart', 'tunnelStart'}); % Useless
% FIXME: remove deprecated
ResData = rmfield(ResData, {'arduFile', 'tunnelFile', ...
'dx', 'airspeed', 'freq', 'front', 'aft'});
% Cache values to prevent excessive reloads
matFiles_ = matFiles;
......@@ -40,14 +44,65 @@ function ResData = resultsanalysis(matFiles)
ResData = ResData_;
end
ResData = getallphases(ResData, OFFSET_VALUES);
ResData = getmeancoefficients(ResData);
end
function ResData = getallphases(ResData, offsetVal)
% GETALLPHASES Determine the range for all phase offsets
for i = 1:size(ResData, 1)
for j = 1:size(ResData, 2)
fprintf('\nFinding phase for element (%d,%d): %0.2fm, %0.2fHz, %0.1fm/s\n', ...
i, j, ResData(i, j).dx, ResData(i, j).freq, ResData(i, j).airspeed);
i, j, ...
ResData(i, j).Testcase.dx, ...
ResData(i, j).Testcase.freq, ...
ResData(i, j).Testcase.airspeed);
for k = 1:length(offsetVal)
ResData(i, j).Phase(k).phaseVal = offsetVal(k);
ResData(i, j).Phase(k).idx = findwingphase(ResData(i, j), offsetVal(k));
end
end
end
end
function ResData = getmeancoefficients(ResData)
% GETMEANCOEFFICIENTS Returns the true mean coefficients
for i = 1:size(ResData, 1)
for j = 1:size(ResData, 2)
% Remove inertia forces
woIdx = (j) - mod(j - 1, 4);
ResData(i, j) = removeinertia(ResData(i, j), ResData(i, woIdx), 'Front');
ResData(i, j) = removeinertia(ResData(i, j), ResData(i, woIdx), 'Aft');
% Transform forces/moments into coefficients
ResData(i, j) = calccoeff(ResData(i, j));
end
end
end
function ResData = calccoeff(ResData)
POSITIONS = {'Front', 'Aft'};
CHORD = 0.05;
SPAN = 2 * 0.2;
for k = 1:length(OFFSET_VALUES)
ResData(i, j).Phase(k).phaseVal = OFFSET_VALUES(k);
ResData(i, j).Phase(k).idx = findwingphase(ResData(i, j), OFFSET_VALUES(k));
if ~isempty(ResData.Phase.idx)
for i = 1:length(ResData.Phase.idx)
for j = 1:length(POSITIONS)
dens = airdensity(ResData.Testcase.temp, 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');
end
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment