Plotting and coding problems
Afficher commentaires plus anciens
Hello, I'm currently creating a code in which it involves a trial and error wherein when abs(Vc-Va) is less than 0.0001 then Vc=V if not then Vc=Va. then I will plot the V (outcome from loop) vs T (from 300-500 with increment of 0.6) and Z(outcome of loop) Vs T.
I'm having a hard time setting up the plot as it shows no graphing
T = 300:0.6:500;
w = 0.224;
Tc = 304.2;
Pc = 73.83;
k = 0.37464+(1.54226*w)-((0.26992)*(w^2));
b = 0.07780*((R*Tc)/Pc);
e = 1 - sqrt(2);
s = 1 + sqrt(2);
for i = 350:0.5:500
Tr = i/Tc;
al = (1+k*(1-(Tr^(1/2))))^2;
a = 0.45724*(((R^2)*(Tc^2)*al)/Pc);
Va = (R*(i))/P;
Vc = ((R*(i))/P) + b - (a/P)*((Va-b)/((Va+e*b)*(Va+s*b)));
Ab = abs((Vc-Va)/Vc);
while (Ab>0.001)
Va = Vc;
end
V = Vc
Z = ((P*V)/(R*i))
end
x = T';
y = V;
plot(x, y),
Réponses (1)
More like this perhaps:
T = 300:0.5:500;
w = 0.224;
Tc = 304.2;
Pc = 73.83;
k = 0.37464+(1.54226*w)-((0.26992)*(w^2));
R = 1; %%% You haven't defined R and P, so I've used arbitrary values
P = 10;
b = 0.07780*((R*Tc)/Pc);
e = 1 - sqrt(2);
s = 1 + sqrt(2);
for i = 1:numel(T)
Tr = T(i)/Tc;
al = (1+k*(1-(Tr^(1/2))))^2;
a = 0.45724*(((R^2)*(Tc^2)*al)/Pc);
Va = (R*(T(i)))/P;
Vc = ((R*(T(i)))/P) + b - (a/P)*((Va-b)/((Va+e*b)*(Va+s*b)));
Ab = abs((Vc-Va)/Vc);
if (Ab<0.0001)
Vc = Va;
end
V(i) = Vc;
Z(i) = ((P*V(i))/(R*T(i)));
end
subplot(2,1,1)
plot(T, V)
xlabel('T'),ylabel('V')
subplot(2,1,2)
plot(T, Z)
xlabel('T'),ylabel('Z')
Catégories
En savoir plus sur Data Type Conversion dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
