水環境

2010年9月 1日 (水)

2連完全混合反応器からの流出濃度の図解解法

■2連完全混合反応器からの流出濃度の図解解法(11.01.30)
・Wastewater Engineering  Treatment and Reuse  Fourth Edition  p273 example 4-6
二次反応とみなせる2連の完全混合反応器がる.各反応器からの流出濃度を図解法で求める.算出条件は作図例中に示す.矢印の座標値のx座標値が解となる.
KETpicを用いると作図により理解の助けになると思われる.

Reactor
■コード例
rm(list=ls(all=TRUE))#ワークスペース上の全てのオブジェクトを消去する
setwd("C:/rwork")
load("ketpic101207.RData")
load("tgpack101207.RData")
load("cpack110130.RData")#未公開 SetArrowHeadを含む
Setwindow(c(0,100),c(0,100))
WindispT()
koutenAll<- list()
senL<- list()
senS<- list()
reactor<- 2#反応器の数
k<- 0.01#速度定数(L/mg/d)     1/(mg/L)/d  n次反応の単位[(濃度)^(1-n)/(時間)]
C0<- 100#初期濃度(mg/L)
Q<- 500#流量(m^3/d)
V<- 1000#体積(m^3)
G<- Plotdata("k*con^2","con=c(0,100)")
con0<- c(C0,0)
for (i in 1:reactor){
  l1<- con0 + 1/1000*c(-V,Q)# -Q/V l1<- con0 + c(-V,Q)
  half_line<- Lineplot(con0,l1)
  kouten<- Intersectcrvs(G,half_line)[[1]]
  koutenAll<- Flattenlist(list(koutenAll,kouten))
  sen<- Listplot(con0,kouten)
  senL<- Flattenlist(list(senL,sen))
 
  sen1<- Listplot(kouten,c(kouten[1],0))
  senS<- Flattenlist(list(senS,sen1))

  con0<- c(kouten[1],0)
  cat("反応器",i,": ",con0[1],"mg/L","\n")#解の表示
}
num<- length(senS)#リストの長さを求める
for (i in 1 : num){#この箇所は修正予定
  SetArrowHead(senS[[i]],w=1/4,h=1,h2=1,scale=2,col="red",border="red",density=NA,
arrowpos=0)
}
WindispT(G,koutenAll,senL,senS,new=TRUE)
Puttext(c(40,90),"2連完全混合反応器からの流出濃度の図解解法", pos=3)
Puttext(c(40,80),"初期濃度100mg/L", pos=3)
Puttext(c(40,70),"Q=500m^3/d  V=1000m^3", pos=3)
Puttext(c(40,60),"2次反応  速度定数 k=0.01",pos=3)
Puttext(c(85,50),"rc=0.01C^2",pos=3)
Puttext(c(80,15),"Slope=-1/τ=-0.5/d",pos=3)
Puttext(c(25,30),"反応器1:49.99306 mg/L",pos=4)
Puttext(c(12,15),"反応器2:30.89416 mg/L",pos=4)

【解】
反応器1からの流出濃度: 49.99306 mg/L
反応器2からの流出濃度: 30.89416 mg/L

無料ブログはココログ
2017年5月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31