Multiple line with different variable in a plot

3 views (last 30 days)
Yixiang Guice
Yixiang Guice on 3 Mar 2022
Commented: AndresVar on 7 Mar 2022
Hello people, I am current working on a homework. I am supposed to have a plot that contain multiple data line with varying B and pi_o. I tried to put it into a loop but it does not seem to work, Any help will be appreciated.
Pa = 23771;
Ta = 218.789;
R = 287;
gamma = 1.4;
Mf = 0.85;
fan_isen = 0.91;
nozzle_isen = 0.985;
ec = 0.915;
press_drop_CC = 0.04;
cpg = 1148;
cp = 1005;
Qr = 43800*(10^3);
cc_burner_eff = 0.99;
mecha_eff = 0.985;
et_HP = 0.93;
gammag = 1.333;
et_LP = 0.92;
%custom
pi_fb = 1.5; %<2.1
pi_fc = 1.5; %<2.1
% pi_o = 42; %<52
T04 = 1600; %Tet<2050K
% B = 8; %<11
B = 0:0.5:10;
pi_o = 2:2:30;
for k = 1:length(pi_hp)
vf = Mf * ((gamma*Ta*R)^(1/2));
T02 = Ta * (1+((gamma-1)/2)*0.85^2);
P02 = Pa * (1+((gamma-1)/2)*0.85^2)^(gamma/(gamma-1));
%Bypass
P013 = pi_fb * P02;
T013 = T02*(1+((1/fan_isen)*((P013/P02)^(((gamma-1)/gamma)))-1));
P019 = P013;
T019 = T013;
critical_pressure_ratio = 1/(1-((1/nozzle_isen)*((gamma-1)/(gamma+1))))^(gamma/(gamma-1));
P19 = P019/critical_pressure_ratio;
T19 = T019/(1/((1-((1/nozzle_isen)*((gamma-1)/(gamma+1))))));
V19 = (gamma*R*T19)^(1/2)
%Core
P023 = pi_fc * P02;
tau_c = pi_fc^((gamma-1)/(gamma*ec));
T023 = tau_c*T02;
pi_hp = pi_o/pi_fc;
P03 = pi_hp*P023;
comp_isen = (((pi_fc^((gamma-1)/(gamma))))-1)/((pi_fc^((gamma-1)/(gamma*ec)))-1);
T03s = T023*(P03/P023).^((gamma-1)/gamma);%added dot
T03 = T023 + ((T03s-T023)/comp_isen);
P04 = (1-press_drop_CC)*P03;
f = ((cpg*T04)-(cp*T03))/(Qr - (cpg*T04));
fa = f/cc_burner_eff;
T045 = T04 - (cp*(T03-T023))/(mecha_eff*(1+fa)*cpg);
tau_t_HP = T045/T04;
HP_turb_isen = (1-tau_t_HP)/(1-(tau_t_HP^(1/et_HP)));
P045 = P04*(1-((1-(T045/T04))/(HP_turb_isen)))^(gammag/(gammag-1));
T05 = T045 - ((cp.*(T023-T02))+(B.*cp.*(T013-T02))).*(((mecha_eff.*(1+fa).*cpg))).^-1;
tau_t_LP = T05/T045;
LP_turb_isen = (1-tau_t_LP)/(1-(tau_t_LP.^(1/et_LP)));
P05 = P045.*(1-((1-tau_t_LP)/(LP_turb_isen))).^(gammag/(gammag-1));
P9 = Pa;
T9s = T05.*(((P9.*P05.^-1).^(gammag-1).*(gammag)).^-1);
T9 = nozzle_isen*(T9s-T05)+T05;
V9 = (2*cpg*(T05-T9)).^(1/2);
Ratio_of_exit_velocities = V19*(V9.^-1);
Fs = ((1.*(B+1).^-1).*((1+fa).*V9-vf))+((((1+fa).*R.*T9).*((V9.*P9.*(B+1))).^-1).*(P9-Pa))+((B./(B+1)).*(V19-vf))+(((R.*T19.*B)/(V19.*P19.*(B+1))).*(P19-Pa));
sfc = fa/((B+1).*Fs)
h = plot(pi_o, Fs);
end

Accepted Answer

AndresVar
AndresVar on 3 Mar 2022
Edited: AndresVar on 3 Mar 2022
Here is an example. Loop for each B but use pi_o as a vector in your calculations.
clear;
pi_o = 2:2:30;
B=[3 5 8];
figure;
hold on;
% make lines for each B
for iiB=B
V9=sqrt(pi_o); % use pi_o as a vector
%...
Fs=V9*iiB;
plot(pi_o,Fs,'displayname',['B=' num2str(iiB)])
end
hold off;
legend('show');
An alternative would be 2 loops, populate a matrix in a loop, and plot each row (or column) after.
  4 Comments
AndresVar
AndresVar on 7 Mar 2022
If you want change more properties you can try something like this, but now plots might looks ugly.
clear;
close all;
pi_o = 2:2:30;
B_vec=[3 5 8];
Bstyles = {...
{'-mo','linewidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',8};...
{'--r^','MarkerFaceColor','none','MarkerSize',9}; ...
{':kd','MarkerSize',13}...
};
% make lines for each B
for ii=1:numel(B_vec)
Bii=B_vec(ii);
% calculations
V9=pi_o.^0.5; % use pi_o as a vector
%...
Fs=V9*Bii;
% update plots
figure(1);
plot(pi_o,Fs,Bstyles{ii}{:},'displayname',['B=' num2str(Bii)])
hold on;
end
% make plots pretty
figure(1);
hold off;
xlabel('B');
ylabel('Fs')
grid on; box on;
legend('show');

Sign in to comment.

More Answers (0)

Products


Release

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!