diff --git a/src/classes/@Result/plotperf.m b/src/classes/@Result/plotperf.m index ea096480e8d90a61750c34439ed8b7b435576323..90c312c3bb870375763e3579620ac69907871879 100644 --- a/src/classes/@Result/plotperf.m +++ b/src/classes/@Result/plotperf.m @@ -45,7 +45,8 @@ function plotperf(self, varargin) % Defaults and constants DEF.ALLOWED_PROPERTIES = {'thrust', 'torque', 'power', 'eff', 'cT', 'cQ', 'cP'}; - DEF.allowed_oper = self.operPts.Properties.VariableNames; + DEF.base_oper = self.operPts.Properties.VariableNames; + DEF.allowed_oper = [DEF.base_oper, 'advRat']; % Also allows advance ratio DEF.ALLOWED_SOLVERS = {'leishman', 'indfact', 'indvel', 'stahlhut'}; % Parse inputs @@ -62,9 +63,14 @@ function plotperf(self, varargin) thissolv = solvers{iSolv}; if ~isempty(self.(thissolv)) + if strcmpi(oper, 'advRat') + operVect = vectorize(filtered.(thissolv), 'advanceRatio'); + else + operVect = self.operPts(idx, :).(oper); + end dataVect = vectorize(filtered.(thissolv), perf); - plot(self.operPts(idx, :).(oper), dataVect, 'DisplayName', solvers{iSolv}); + plot(operVect, dataVect, 'DisplayName', solvers{iSolv}); hold on; end end @@ -93,11 +99,16 @@ function [perf, oper, solvers, operPt, newFig] = parseinputs(DEF, varargin) oper = p.Results.oper; solvers = p.Results.solvers; operPt = struct('altitude', [], 'speed', [], 'rpm', [], 'collective', []); - for i = 1:length(DEF.allowed_oper) - curOp = DEF.allowed_oper{i}; + for i = 1:length(DEF.base_oper) + curOp = DEF.base_oper{i}; operPt.(curOp) = p.Results.(curOp); end - operPt.(p.Results.oper) = NaN; + if strcmpi(p.Results.oper, 'advRat') + operPt.rpm = NaN; + operPt.speed = NaN; + else + operPt.(p.Results.oper) = NaN; + end newFig = p.Results.newFig; end