- added sulfat ion
This commit is contained in:
+17
-12
@@ -31,52 +31,56 @@ water_constants()
|
||||
k_Ca_0_mg = 94.0; % mg/l
|
||||
k_Mg_0_mg = 18.1; % mg/l
|
||||
k_Na_0_mg = 3.6; % mg/l
|
||||
k_S_0_mg = 44.1; % mg/l
|
||||
k_Cl_0_mg = 4.6; % mg/l
|
||||
k_SO4_0_mg = 44.1; % mg/l
|
||||
k_HCO3_0_mmol = 5.5; % mmol/l
|
||||
|
||||
# Profile from tap water (Debug)
|
||||
k_Ca_0_mg = 100; % mg/l
|
||||
k_Mg_0_mg = 20; % mg/l
|
||||
k_Na_0_mg = 5; % mg/l
|
||||
k_S_0_mg = 50; % mg/l
|
||||
k_Cl_0_mg = 5; % mg/l
|
||||
k_SO4_0_mg = 50; % mg/l
|
||||
|
||||
# Target Profile
|
||||
k_Ca_1_mg = 50; % mg/l
|
||||
k_Mg_1_mg = 20; % mg/l
|
||||
k_Mg_1_mg = 2; % mg/l
|
||||
k_Na_1_mg = 40; % mg/l
|
||||
k_Cl_1_mg = 100; % mg/l
|
||||
k_S_1_mg = 50; % mg/l
|
||||
k_SO4_1_mg = 50; % mg/l
|
||||
|
||||
# Tap water: Calc Stoffmenge/l [mmol/l]
|
||||
n_Ca_0 = k_Ca_0_mg/sum(M_EL_Ca);
|
||||
n_Mg_0 = k_Mg_0_mg/sum(M_EL_Mg);
|
||||
n_Na_0 = k_Na_0_mg/sum(M_EL_Na);
|
||||
n_Cl_0 = k_Cl_0_mg/sum(M_EL_Cl);
|
||||
n_S_0 = k_S_0_mg/sum(M_EL_S);
|
||||
n_SO4_0 = k_SO4_0_mg/sum(M_EL_SO4);
|
||||
|
||||
# Target: Calc Stoffmenge/l [mmol/l]
|
||||
n_Ca_1 = k_Ca_1_mg/sum(M_EL_Ca);
|
||||
n_Mg_1 = k_Mg_1_mg/sum(M_EL_Mg);
|
||||
n_Na_1 = k_Na_1_mg/sum(M_EL_Na);
|
||||
n_Cl_1 = k_Cl_1_mg/sum(M_EL_Cl);
|
||||
n_S_1 = k_S_1_mg/sum(M_EL_S);
|
||||
n_SO4_1 = k_SO4_1_mg/sum(M_EL_SO4);
|
||||
|
||||
# Initial profile
|
||||
m_A0 = k_ve*create_mol([i_Ca i_Mg i_Na i_Cl i_S], [n_Ca_0 n_Mg_0 n_Na_0 n_Cl_0 n_S_0], mol_masses)
|
||||
m_A0 = k_ve*create_mol([EL_Ca EL_Mg EL_Na EL_Cl EL_SO4], [n_Ca_0 n_Mg_0 n_Na_0 n_Cl_0 n_SO4_0], mol_masses);
|
||||
|
||||
# Target profile
|
||||
m_T = create_mol([i_Ca i_Mg i_Na i_Cl i_S], [n_Ca_1 n_Mg_1 n_Na_1 n_Cl_1 n_S_1], mol_masses)
|
||||
m_T = create_mol([EL_Ca EL_Mg EL_Na EL_Cl EL_SO4], [n_Ca_1 n_Mg_1 n_Na_1 n_Cl_1 n_SO4_1], mol_masses);
|
||||
|
||||
if TEST_SUITE == 1,
|
||||
# Create molar masses of allowed substances, easy
|
||||
Mp = [M_EL_Ca; M_EL_Mg; M_EL_Na; M_EL_Cl; M_EL_S];
|
||||
Mp = [M_EL_Ca; M_EL_Mg; M_EL_Na; M_EL_Cl; M_EL_SO4];
|
||||
end
|
||||
|
||||
if TEST_SUITE == 2,
|
||||
# Create molar masses of allowed substances, difficult
|
||||
Mp = [M_CaSO4+2*M_H2O; M_CaCl2+2*M_H2O; M_MgSO4+7*M_H2O; M_NaCl; M_HCl]
|
||||
Mp = [M_CaSO4+2*M_H2O; M_CaCl2+2*M_H2O; M_MgSO4+7*M_H2O; M_NaCl; M_HCl];
|
||||
Mp = [M_CaCl2+2*M_H2O; M_MgSO4+7*M_H2O; M_NaCl; M_HCl];
|
||||
Mp = [M_CaCl2+2*M_H2O; M_MgSO4+7*M_H2O; M_NaCl];
|
||||
Mp = [M_CaSO4+2*M_H2O; M_CaCl2+2*M_H2O; M_NaCl];
|
||||
#Mp = [M_MgSO4+7*M_H2O; M_CaCl2+2*M_H2O; M_NaCl];
|
||||
end
|
||||
|
||||
# Init vecfit vars
|
||||
@@ -85,7 +89,7 @@ end
|
||||
na = zeros(N_subst, 1);
|
||||
|
||||
# ignore oxygen
|
||||
mask = create_mol([i_Ca i_Mg i_S i_Cl i_Na], [1 1 1 1 1], mol_masses) > 0;
|
||||
mask = m_T > 0;
|
||||
|
||||
_dn = [];
|
||||
CONV_COUNTER_RELOAD = 20;
|
||||
@@ -108,10 +112,11 @@ while true,
|
||||
end
|
||||
plot(1:length(_dn), _dn); grid();
|
||||
title("Distance"); xlabel("Iteration"); ylabel("Dn")
|
||||
m_A1
|
||||
Dn1
|
||||
m_elem=sum(Mp.*na)
|
||||
m_subst_add_g_per_hl = na.*sum(Mp,2)/1000*100
|
||||
m_T
|
||||
m_A1
|
||||
|
||||
endfunction
|
||||
|
||||
|
||||
Reference in New Issue
Block a user