Plotting and coding problems
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
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),
0 comentarios
Respuestas (1)
  Alan Stevens
      
      
 el 26 de Feb. de 2022
        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')
0 comentarios
Ver también
Categorías
				Más información sobre Data Type Conversion en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


