フィルターのクリア

Plotting graphs with changing values for variables

40 ビュー (過去 30 日間)
Marie Cor Cruz
Marie Cor Cruz 2022 年 3 月 1 日
回答済み: Pavan Sahith 2023 年 10 月 16 日
So I'm trying to plot 4 different graphs. Each graph will have 2 plots. However, is there a way for me to change the value of the variable down the line? For example, for #4 graph, I only want to change Ma to linspace and not use the original Ma=0.92 value that was inputted in the very beginning of my code. I've attached my code below. Not sure what I'm doing wrong but I'm sure I may be missing some commands. Thank you for the help.
%% Problem 2.10
alt=0;
Ma=0.92;
deltaH=18100;
Pa=14.69;
mdot=100;
T_t4=2450;
T_a=518.7;
gamma=1.4;
g=gamma-1;
R=53.35;
Cp=0.2399565;
rho_8=1.308126E-03;
pi_c=2.223813
%Diffuser
aa=sqrt(gamma*R*32.17*T_a);
ua=Ma*aa;
T_ta=(1+0.5*(gamma-1)*Ma^2)*T_a;
P_ta=Pa*(T_ta./T_a).^(gamma/g);
T_t2=T_ta;
P_t2=P_ta;
pi_c=linspace(5,20);
%Compressor
P_t3=pi_c.*P_t2;
tau_c=pi_c.^((gamma-1)./gamma);
T_t3=tau_c.*T_t2;
%Primary Combustor
P_t4=P_t3;
m_dotf=(mdot.*Cp.*(T_t4-T_t3))./deltaH;
%Turbine
T_t5=([(m_dotf.*Cp.*(T_t3-T_t2))./(mdot.*Cp)]-T_t4).*-1;
tau_t=T_t5./T_t4;
tau_t=T_t5./T_t4;
pi_t=0.2827511;
P_t5=pi_t.*P_t4;
%Primary Nozzle
T_t6=T_t5;
P_t6=P_t5;
P_8= 14.69; %exit pressure matches ambient pressure
T_8=T_t6.*((P_8./P_t6).^((gamma-1)/gamma));
u_8=[2*Cp.*(T_t6-T_8)*32.17*778.16].^0.5;
a_8=(gamma*R*T_8.*32.17).^0.5;
M_8=u_8./a_8;
A_8=m_dotf.*144./(rho_8.*u_8*32.17);
%Total Thrust and TSFC
F=mdot.*u_8-mdot.*ua;
nDF=(F.*32.17)./(mdot.*aa);
TSFC=mdot.*3600./F;
TSFCaa=TSFC.*aa;
%%% Graphs
%% 1.
pi_c=linspace(5,20)
f1=figure(1);clf;
plot (pi_c,TSFCaa,'k')
title('Figure 1. TSFC_a vs. \pi_c');
xlabel('\pi_c')
ylabel('TSFC_a_a')
f2=figure(2);clf;
plot(pi_c,nDF,'k')
title ('Figure 2. nDF_a vs. \pi_c');
xlabel('\pi_c')
ylabel('F/m_a_a')
%% 2.
T_a=linspace(0.5,1.2);
f3=figure(3);clf;
plot(T_a,TSFCaa,'k')
title ('Figure 3. TSFC_a_a vs. T_a/T_s_t_p');
xlabel('T_a/T_s_t_p')
ylabel('TSFC_a')
f4=figure(4);clf;
plot(Ta_Tstp,nDF,'k')
title ('Figure 4. nDF_a vs. T_a/T_s_t_p');
xlabel('T_a/T_s_t_p')
ylabel('F/m_a_a')
%% 3.
T_t4=linspace(4,8);
f5=figure(5);clf;
plot(T_t4,TSFCaa,'k')
title('Figure 5. TSFC_a_a vs (T_t_4/T_a)')
xlabel('T_t_4/T_a')
ylabel('TSFC_a_a')
f6=figure(6);clf;
plot(T_t4,nDF,'k')
title('Figure 5. nDF vs (T_t_4/T_a)')
xlabel('T_t_4/T_a')
ylabel('F/m_a_a')
%% 4
Ma=linspace(0,5);
f7=figure(7);clf;
plot(Ma, TSFCaa,'k')
title('Figure 6. TSFC_a_a vs Ma')
xlabel('Ma')
ylabel('TSFC_a_a')
f8=figure(8);clf;
plot(Ma,nDF,'k')
title('Figure 6. nDF vs Ma')
xlabel('Ma')
ylabel('F/m_a_a')
  1 件のコメント
Ankit
Ankit 2022 年 3 月 1 日
You can include your calculation in a function and then pass Ma as constant and vector values

サインインしてコメントする。

回答 (1 件)

Pavan Sahith
Pavan Sahith 2023 年 10 月 16 日
Hi Marie,
I understand you are trying to plot multiple graphs and want to change the value of the variables down the line.
For that you can use function which plots the graph according to the variables being passed
For example :
% sample data
Ma=0.92;
TSFCaa=linspace(5,20);
% changing Ma
Ma = linspace(0, 5);
% calling the function plotFn
plotFn(Ma, TSFCaa,'TSFC_a vs. Ma','Ma','TSFC_a_a')
function plotFn(X,Y,title1,xlabel1,ylabel1)
plot (X,Y,'k')
title(title1);
xlabel(xlabel1);
ylabel(ylabel1);
end
If you want to plot 2 graphs in same figure you can use ‘subplot’ or ‘tiledlayout
Please refer to the following MathWorks documentation links to know more about them.
Hope it helps.

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

タグ

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by