How to Graph more than one ODE on a plot

11 Ansichten (letzte 30 Tage)
Will Jeter
Will Jeter am 4 Nov. 2020
Beantwortet: Reshma Nerella am 10 Nov. 2020
I can't get my two functions for my ODEs to graph on the same plot. I'm not sure how get these to work with each other.
Volume = [0,2500];
Conversion = [0];
[V, X] = ode45(@odefun3,Volume,Conversion);
figure
plot(V,X)
xlabel('Volume')
ylabel('Conversion')
legend('No Inlet','Medium Inlet')
function dXdV = odefun3(V,X)
CA0 = 2/0.082/1100;
CI0 = CA0;
Theta = 0;
FA0 = 10;
CA01 = (CA0+CI0)/(Theta+1);
e = 1/(1+Theta);
T0 = 1100;
dHrx = 80000;
CpA = 170;
CpI = 200;
T = (X*(-dHrx)+(CpA+Theta*CpI)*T0)/(CpA+Theta*CpI);
k = exp(34.34-(34222/T));
ra = -k*CA01*(1-X)*T0/(1+e*X)/T;
dXdV = -ra/FA0;
end
[V, X] = ode45(@odefun4,Volume,Conversion);
function dXdV = odefun4(V,X)
CA0 = 2/0.082/1100;
CI0 = CA0;
Theta = 0.1;
FA0 = 10;
CA01 = (CA0+CI0)/(Theta+1);
e = 1/(1+Theta);
T0 = 1100;
dHrx = 80000;
CpA = 170;
CpI = 200;
T = (X*(-dHrx)+(CpA+Theta*CpI)*T0)/(CpA+Theta*CpI);
k = exp(34.34-(34222/T));
ra = -k*CA01*(1-X)*T0/(1+e*X)/T;
dXdV = -ra/FA0;
end

Antworten (1)

Reshma Nerella
Reshma Nerella am 10 Nov. 2020
Hi,
As per my understanding, you want to plot 2 ODEs on same graph. Use can use hold command to add many plots on existing axes.
You can do it this way:
[V, X] = ode45(@odefun3,Volume,Conversion);
plot(V,X);
xlabel('Volume');
ylabel('Conversion');
hold on % to add new plot to same axes
[V, X] = ode45(@odefun4,Volume,Conversion);
plot(V,X);
xlabel('Volume');
ylabel('Conversion');
hold off % to prevent other plots using the same axes
legend('No Inlet','Medium Inlet'); % You can add legends for the plots at a time.
Hope this helps!

Kategorien

Mehr zu Creating, Deleting, and Querying Graphics Objects finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by