Python代码
class pH2pH:
def __init__(self,pH,pH_1,Temp,TDS):
self.pH=pH
self.pH_1=pH_1
self.T=Temp + 273.15
self.E=(60954/(self.T+116))-68.937
self.A=1825000*((self.E*self.T)**-1.5)
self.I=(2.5*10**-5)*TDS
self.lgfm=-self.A*(((self.I**1/2)/(1+self.I**1/2))-0.2*self.I)
self.lgfd=4*self.lgfm
self.Kw=6.0486-(4471.33/self.T)-(0.017053*self.T)-2*self.lgfm
def raisepH(self):
if self.pH<7:
a1 = (10**-self.pH) /0.83
else:
a1 = (10**-(-self.Kw-self.pH)) /0.76
if self.pH_1<7:
a2 = (10**-self.pH_1) /0.83
else:
a2 = (10**-(-self.Kw-self.pH_1)) /0.76
if self.pH<7:
if self.pH_1<7:
a = a1-a2
else:
a = a1+a2
else:
a = a2-a1
return (a)
def lowerpH(self):
if self.pH<7:
a1 = (10**-self.pH) /0.83
else:
a1 = (10**-(-self.Kw-self.pH)) /0.76
if self.pH_1<7:
a2 = (10**-self.pH_1) /0.83
else:
a2 = (10**-(-self.Kw-self.pH_1)) /0.76
if self.pH<7:
a = a2-a1
else:
if self.pH_1>7:
a = a1-a2
else:
a = a1+a2
return (a)
def re_Cr6byH2O2(pH1,pH2,Cr6,Temp,TDS):
pH = pH1
ne = Cr6/51.9961/1000*3
required_nH = ne*4/3
nH2O2 = ne/2
providenH_H2O2 = 0
controlpH_H2O2 = 1.8
a = pH2pH(pH, controlpH_H2O2,Temp,TDS).raisepH()+providenH_H2O2-required_nH
if a > 0:
nH_H2O2 = 0
endpH_H2O2 = -math.log10(a*0.83)
else:
nH_H2O2 = -a
endpH_H2O2 = controlpH_H2O2
scalingpH_H2O2 = pH2
nOH_H2O2 = pH2pH(endpH_H2O2, scalingpH_H2O2,Temp,TDS).raisepH()
return(nH_H2O2, nOH_H2O2, nH2O2,0)
def re_Cr6byHSO3(pH1,pH2,Cr6,Temp,TDS):
pH = pH1
ne = Cr6/51.9961/1000*3
required_nH = ne*4/3
nHSO3 = ne/2
providenH_HSO3 = ne/2
controlpH_HSO3 = 2.5
b = pH2pH(pH, controlpH_HSO3,Temp,TDS).raisepH()+providenH_HSO3-required_nH
if b > 0:
nH_HSO3 = 0
endpH_HSO3 = -math.log10(b*0.83)
else:
nH_HSO3 = -b
endpH_HSO3 = controlpH_HSO3
scalingpH_HSO3 = pH2
nOH_HSO3 = pH2pH(endpH_HSO3, scalingpH_HSO3,Temp,TDS).raisepH()
return(nH_HSO3, nOH_HSO3, nHSO3,0)
def re_Cr6byN2H4(pH1,pH2,Cr6,Temp,TDS):
pH = pH1
ne = Cr6/51.9961/1000*3
required_nH = ne*4/3
nN2H4 = ne/4
providenH_N2H4 = 0
controlpH_N2H4 = 2
c = pH2pH(pH, controlpH_N2H4,Temp,TDS).raisepH()+providenH_N2H4-required_nH
if c > 0:
nH_N2H4 = 0
endpH_N2H4 = -math.log10(c*0.83)
else:
nH_N2H4 = -c
endpH_N2H4 = controlpH_N2H4
scalingpH_N2H4 = pH2
nOH__N2H4 = pH2pH(endpH_N2H4 , scalingpH_N2H4,Temp,TDS).raisepH()
return (nH_N2H4, nOH__N2H4, nN2H4,0)
def re_Cr6byFeII(pH1,pH2,Cr6,Temp,TDS):
pH = pH1
ne = Cr6/51.9961/1000*3
required_nH = ne*4/3
nFeII = ne
providenH_FeII = -ne/2
controlpH_FeII = 11
d = pH2pH(pH, controlpH_FeII,Temp,TDS).raisepH()+providenH_FeII-required_nH
if d > 0:
nH_FeII = 0
endpH_FeII = -math.log10(d*0.83)
else:
nH_FeII = -d
endpH_FeII = controlpH_FeII
scalingpH_FeII = pH2
if scalingpH_FeII-endpH_FeII>0:
nOH__FeII = pH2pH(endpH_FeII , scalingpH_FeII,Temp,TDS).raisepH()+nFeII*3
else:
nOH__FeII = -pH2pH(endpH_FeII , scalingpH_FeII,Temp,TDS).lowerpH()+nFeII*3
return (nH_FeII, nOH__FeII, nFeII,nFeII*(55.845+17.0064*3))
def s_CrOH(TCr):
nTCr=TCr/1000/51.9961
return(nTCr*(51.9961+17.0064*3),nTCr*3)
def s_CuOH(Cu):
nCu = Cu/1000/63.546
return(nCu*(63.546+17.0064*2),nCu*2)
def s_NiOH(Ni):
nNi = Ni/1000/58.6934
return(nNi*(58.6934+17.0064*2),nNi*2)
def s_ZnOH(Zn):
nZn = Zn/1000/65.38
return(nZn*(65.38+17.0064*2),nZn*2)
def s_FeOH(Fe):
nFe = Fe/1000/55.845
return(nFe*(55.845+17.0064*3),nFe*3)
def s_CaSO4(Ca,SO4):
nCa = Ca/40.078/1000
nSO4 = SO4/96.0626/1000
ksp_CaSO4 = 1.5e-4
st = nCa * nSO4 *0.8*0.8*0.5*0.5
CaSO4 = 0
if st - ksp_CaSO4 > 0:
x = symbols('x') # 定义符号x
equations = [(nCa-x)*(nSO4-x)*0.8*0.8*0.5*0.5 - ksp_CaSO4] # 将方程添加到列表中
result = solve(equations, x) # 解方程
a = float(result[0][0])
b = float(result[1][0])
c = min(a,b)
Ca = (nCa - c) * 40.078*1000
SO4 = (nSO4 - c) * 96.0626*1000
CaSO4 = c*(40.078+96.0626+36) #这里计算二水硫酸钙
return (CaSO4,Ca,SO4)
def CostofCr6(price_H2O2,price_HSO3,price_N2H4,price_FeII,price_CaOH,percent_CaOH,price_NaOH,percent_NaOH,price_HCl,percent_HCl,pH1,pH2,TCr,Cr6,Cu,Ni,Zn,Fe,SO4,TDS,Temp):
H2O2 = re_Cr6byH2O2(pH1, pH2, Cr6, Temp, TDS)
HSO3 = re_Cr6byHSO3(pH1, pH2, Cr6, Temp, TDS)
N2H4 = re_Cr6byN2H4(pH1, pH2, Cr6, Temp, TDS)
FeII = re_Cr6byFeII(pH1,pH2,Cr6,Temp,TDS)
CrOH = s_CrOH(TCr)
CuOH = s_CuOH(Cu)
NiOH = s_NiOH(Ni)
ZnOH = s_ZnOH(Zn)
FeOH = s_FeOH(Fe)
#计算药剂摩尔价格
price_nH2O2 = 34/0.275*price_H2O2
price_nN2H4 = 32/0.90*price_N2H4
price_nHSO3 = 190/2/0.95*price_HSO3
price_nFeII = 56/0.20*price_FeII
price_nCaOH = 74/2*percent_CaOH*price_CaOH
price_nHCl = 36.5/percent_HCl*price_HCl
price_nNaOH = 40*percent_NaOH*price_NaOH
propCr, propCu, propNi, propZn, propFe = [0.99,0.95,0.9,0.99,0.99]#计算重金属阳离子沉淀比例
s_nCaOH = 74/2/percent_CaOH*(1-percent_CaOH) #每1/2摩尔石灰沉淀量
#计算重金属阳离子沉淀量以及沉淀所需的OH的量
s_OH =sum([CrOH[0]*propCr,CuOH[0]*propCu,NiOH[0]*propNi,ZnOH[0]*propZn,FeOH[0]*propFe])
nOH_OH =sum([CrOH[1]*propCr,CuOH[1]*propCu,NiOH[1]*propNi,ZnOH[1]*propZn,FeOH[1]*propFe])
# 计算双氧水成本及污泥量
nOH_h2o2 = H2O2[1]+nOH_OH
cost_h2o2_ca = H2O2[2]*price_nH2O2 + nOH_h2o2*price_nCaOH + H2O2[0]*price_nHCl
cost_h2o2_na = H2O2[2]*price_nH2O2 + nOH_h2o2*price_nNaOH + H2O2[0]*price_nHCl
Ca_h2o2 = nOH_h2o2/2*40*1000
CaSO4_h2o2 = s_CaSO4(Ca_h2o2,SO4)
sludge_h2o2_ca = (s_OH + CaSO4_h2o2[0] + nOH_h2o2*s_nCaOH)*2.5
sludge_h2o2_na = s_OH*2.5
# 计算焦亚硫酸钠成本及污泥量
nOH_hso3 = HSO3[1]+nOH_OH
cost_hso3_ca = HSO3[2]*price_nHSO3 + nOH_hso3*price_nCaOH + HSO3[0]*price_nHCl
cost_hso3_na = HSO3[2]*price_nHSO3 + nOH_hso3*price_nNaOH + HSO3[0]*price_nHCl
Ca_hso3 = nOH_hso3/2*40*1000
SO4_hso3 = SO4 + HSO3[2]*96.0626*1000
CaSO4_hso3 = s_CaSO4(Ca_hso3,SO4_hso3)
sludge_hso3_ca = (s_OH + CaSO4_hso3[0] + nOH_hso3*s_nCaOH)*2.5
sludge_hso3_na = s_OH*2.5
# 计算水合肼成本及污泥量
nOH_n2h4 = N2H4[1]+nOH_OH
cost_n2h4_ca = N2H4[2]*price_nN2H4 + nOH_n2h4*price_nCaOH + N2H4[0]*price_nHCl
cost_n2h4_na = N2H4[2]*price_nN2H4 + nOH_n2h4*price_nNaOH + N2H4[0]*price_nHCl
Ca_n2h4 = nOH_n2h4/2*40*1000
CaSO4_n2h4 = s_CaSO4(Ca_n2h4,SO4)
sludge_n2h4_ca = (s_OH + CaSO4_n2h4[0] + nOH_n2h4*s_nCaOH)*2.5
sludge_n2h4_na = s_OH*2.5
# 计算氯化亚铁成本及污泥量
nOH_feii = FeII[1]+ nOH_OH
cost_feii_ca = FeII[2]*price_nFeII + nOH_feii*price_nCaOH + FeII[0]*price_nHCl
cost_feii_na = FeII[2]*price_nFeII + nOH_feii*price_nNaOH + FeII[0]*price_nHCl
Ca_feii = nOH_feii/2*40*1000
CaSO4_feii = s_CaSO4(Ca_feii,SO4)
sludge_feii_ca = (s_OH + CaSO4_feii[0] + nOH_feii*s_nCaOH+FeII[3])*2.5
sludge_feii_na = (s_OH+FeII[3] )*2.5
return(round(cost_h2o2_ca, 2), round(cost_h2o2_na, 2), round(sludge_h2o2_ca, 2), round(sludge_h2o2_na, 2),
round(cost_hso3_ca, 2), round(cost_hso3_na, 2), round(sludge_hso3_ca, 2), round(sludge_hso3_na, 2),
round(cost_n2h4_ca, 2), round(cost_n2h4_na, 2), round(sludge_n2h4_ca, 2), round(sludge_n2h4_na, 2),
round(cost_feii_ca, 2), round(cost_feii_na, 2), round(sludge_feii_ca, 2), round(sludge_feii_na,2))函数与代码的方法和用途
函数
pH2pH:计算两种 pH 值之间的 pH 变化。re_Cr6byH2O2:计算使用双氧水还原六价铬所需的试剂量和 pH 值变化。re_Cr6byHSO3:计算使用焦亚硫酸钠还原六价铬所需的试剂量和 pH 值变化。re_Cr6byN2H4:计算使用水合肼还原六价铬所需的试剂量和 pH 值变化。re_Cr6byFeII:计算使用氯化亚铁还原六价铬所需的试剂量和 pH 值变化。s_CrOH:计算氢氧化铬的沉淀量和所需的氢氧化物量。s_CuOH:计算氢氧化铜的沉淀量和所需的氢氧化物量。s_NiOH:计算氢氧化镍的沉淀量和所需的氢氧化物量。s_ZnOH:计算氢氧化锌的沉淀量和所需的氢氧化物量。s_FeOH:计算氢氧化铁的沉淀量和所需的氢氧化物量。s_CaSO4:计算硫酸钙的沉淀量和所需的钙和硫酸根离子量。CostofCr6:计算使用不同试剂还原六价铬的成本和污泥量。
代码
- 代码首先定义了一些变量,包括 pH 值、六价铬浓度、重金属离子浓度、硫酸根离子浓度、总溶解固体浓度和温度。
- 然后,代码调用 CostofCr6 函数来计算使用不同试剂还原六价铬的成本和污泥量。
- 最后,代码打印出计算结果。
方法和用途
- 该函数和代码可以用来计算使用不同试剂还原六价铬的成本和污泥量。
- 该函数和代码可以帮助用户选择最合适的还原剂来处理六价铬污染。
- 该函数和代码还可以用来评估不同还原剂的成本和环境影响。
示例
假设我们想计算使用双氧水、焦亚硫酸钠、水合肼和氯化亚铁还原六价铬的成本和污泥量。我们可以使用以下代码:
pH1 = 2
pH2 = 7
TCr = 1000
Cr6 = 50
Cu = 100
Ni = 50
Zn = 100
Fe = 50
SO4 = 1000
TDS = 1000
Temp = 25
cost_h2o2_ca, cost_h2o2_na, sludge_h2o2_ca, sludge_h2o2_na, \
cost_hso3_ca, cost_hso3_na, sludge_hso3_ca, sludge_hso3_na, \
cost_n2h4_ca, cost_n2h4_na, sludge_n2h4_ca, sludge_n2h4_na, \
cost_feii_ca, cost_feii_na, sludge_feii_ca, sludge_feii_na = \
CostofCr6(price_H2O2, price_HSO3, price_N2H4, price_FeII, price_CaOH, percent_CaOH, price_NaOH, percent_NaOH, price_HCl, percent_HCl, pH1, pH2, TCr, Cr6, Cu, Ni, Zn, Fe, SO4, TDS, Temp)
print("双氧水还原六价铬的成本和污泥量:")
print("成本(钙基):", cost_h2o2_ca)
print("成本(钠基):", cost_h2o2_na)
print("污泥量(钙基):", sludge_h2o2_ca)
print("污泥量(钠基):", sludge_h2o2_na)
print("焦亚硫酸钠还原六价铬的成本和污泥量:")
print("成本(钙基):", cost_hso3_ca)
print("成本(钠基):", cost_hso3_na)
print("污泥量(钙基):", sludge_hso3_ca)
print("污泥量(钠基):", sludge_hso3_na)
print("水合肼还原六价铬的成本和污泥量:")
print("成本(钙基):", cost_n2h4_ca)
print("成本(钠基):", cost_n2h4_na)
print("污泥量(钙基):", sludge_n2h4_ca)
print("污泥量(钠基):", sludge_n2h4_na)
print("氯化亚铁还原六价铬的成本和污泥量:")
print("成本(钙基):", cost_feii_ca)
print("成本(钠基):", cost_feii_na)
print("污泥量(钙基):", sludge_feii_ca)
print("污泥量(钠基):", sludge_feii_na)或者使用应用CalcCr6Process,使用页面如下:
