MATLAB Answers

ode45 concentration problem

조회 수: 2(최근 30일)
Carey n'eville
Carey n'eville 2021년 1월 3일
댓글: Carey n'eville 2021년 1월 4일
Hello friends I wrote this code because,. But when I run the code, plot is wrong
Information about the system:
We have a lake which have zero concentration of organic pollutant C0=0mg/L, but there is an inflow to the lake which contain organic pollutant with a concentration Cin=31mg/L , when we measure the concentration of organic pollutant in the lake when t=15day=5475hr
C5475=12mg/L. I guess It should increase to the Cin=31mg/L
Cin= Concentration which is inflow of the system(lake), it is consumed with a rate k=5*(10^-6)
C=concentration of the lake, because of being complete mix system C=Cout.
V=volume of the lake
Q=inflow and ourflow of the lake
Min=total mass flux which also equal to Q*Cin
r=k.Cin*exp(-k*t)^2 which is second order decay reaction term
Actual complete mix system formula:
V*(dC/dt)=((Q*Cin)-(Q*C)-(r*V))
How to write a proper code for my purpose? Could you help me please, I need your help?
clear all;
clc;
close all;
%15day=365hr*15day=5475hr
C0=0;
C5475=12;
tspan = [0 5475];
[t,C]=ode45(@concentration, tspan, C0);
plot(t,C)
xlabel('time (hr)')
ylabel('Concentration (mg/L)')
function dCdt=concentration(t,C)
k=5*(10^-6);
A=100*10000;
h=2.5;
V=(A*h)/1000;
Q=500000;
Min=15.5*1000000;
Cin=Min/Q;
dCdt=((Q*Cin)/V-(Q*C)/V-(k*(Cin*exp(-k*t)^2)));
end
  댓글 수: 5
Cris LaPierre
Cris LaPierre 2021년 1월 4일
Units? Specifically
  • V
  • Q
  • k

댓글을 달려면 로그인하십시오.

채택된 답변

Cris LaPierre
Cris LaPierre 2021년 1월 4일
편집: Cris LaPierre 2021년 1월 4일
First big error I see is that, assuming your A and h are in meters, you have not correctly converted your to L. . You have divided where you should have multiplied. Try this.
C0=0;
tspan = [0 5475];
[t,C]=ode45(@concentration, tspan, C0);
plot(t,C)
xlabel('time (hr)')
ylabel('Concentration (mg/L)')
function dCdt=concentration(t,C)
k=5E-6;
A=100*10000;
h=2.5;
V=(A*h)*1000; % Changed to multiply
Q=500000;
Cin=31; % mg/L
dCdt=((Q*Cin)/V-(Q*C)/V-(k*(Cin*exp(-k*t)^2)));
end
  댓글 수: 1
Carey n'eville
Carey n'eville 2021년 1월 4일
I appreciate to you your answer, it works thank you so much!

댓글을 달려면 로그인하십시오.

추가 답변(0개)

제품


릴리스

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by