- refactored
This commit is contained in:
+6
-10
@@ -43,8 +43,8 @@ k_Cl_0_mg = 5; % mg/l
|
|||||||
k_SO4_0_mg = 50; % mg/l
|
k_SO4_0_mg = 50; % mg/l
|
||||||
|
|
||||||
# Target Profile
|
# Target Profile
|
||||||
k_Ca_1_mg = 50; % mg/l
|
k_Ca_1_mg = 100; % mg/l
|
||||||
k_Mg_1_mg = 2; % mg/l
|
k_Mg_1_mg = 40; % mg/l
|
||||||
k_Na_1_mg = 40; % mg/l
|
k_Na_1_mg = 40; % mg/l
|
||||||
k_Cl_1_mg = 100; % mg/l
|
k_Cl_1_mg = 100; % mg/l
|
||||||
k_SO4_1_mg = 50; % mg/l
|
k_SO4_1_mg = 50; % mg/l
|
||||||
@@ -64,7 +64,7 @@ n_Cl_1 = k_Cl_1_mg/sum(M_EL_Cl);
|
|||||||
n_SO4_1 = k_SO4_1_mg/sum(M_EL_SO4);
|
n_SO4_1 = k_SO4_1_mg/sum(M_EL_SO4);
|
||||||
|
|
||||||
# Initial profile
|
# Initial profile
|
||||||
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);
|
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
|
# Target profile
|
||||||
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);
|
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);
|
||||||
@@ -77,10 +77,6 @@ end
|
|||||||
if TEST_SUITE == 2,
|
if TEST_SUITE == 2,
|
||||||
# Create molar masses of allowed substances, difficult
|
# 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
|
end
|
||||||
|
|
||||||
# Init vecfit vars
|
# Init vecfit vars
|
||||||
@@ -89,14 +85,14 @@ end
|
|||||||
na = zeros(N_subst, 1);
|
na = zeros(N_subst, 1);
|
||||||
|
|
||||||
# ignore oxygen
|
# ignore oxygen
|
||||||
mask = m_T > 0;
|
ignore_mask = m_T > 0;
|
||||||
|
|
||||||
_dn = [];
|
_dn = [];
|
||||||
CONV_COUNTER_RELOAD = 20;
|
CONV_COUNTER_RELOAD = 20;
|
||||||
Dn0 = 1;
|
Dn0 = 1;
|
||||||
conv_counter = CONV_COUNTER_RELOAD;
|
conv_counter = CONV_COUNTER_RELOAD;
|
||||||
while true,
|
while true,
|
||||||
[m_A1, na, Dn1] = vecfit(Mp, mask, m_T, m_A0, na, learning_rate.*(1-exp(-Dn0)));
|
[m_A1, na, Dn1] = vecfit(Mp, ignore_mask, m_T, m_A0, na, learning_rate.*(1-exp(-Dn0)));
|
||||||
Dc = round_n(Dn1,2);
|
Dc = round_n(Dn1,2);
|
||||||
if Dn0 == Dc,
|
if Dn0 == Dc,
|
||||||
if conv_counter == 0,
|
if conv_counter == 0,
|
||||||
@@ -113,7 +109,7 @@ end
|
|||||||
plot(1:length(_dn), _dn); grid();
|
plot(1:length(_dn), _dn); grid();
|
||||||
title("Distance"); xlabel("Iteration"); ylabel("Dn")
|
title("Distance"); xlabel("Iteration"); ylabel("Dn")
|
||||||
Dn1
|
Dn1
|
||||||
m_elem=sum(Mp.*na)
|
m_elem=sum(Mp.*na);
|
||||||
m_subst_add_g_per_hl = na.*sum(Mp,2)/1000*100
|
m_subst_add_g_per_hl = na.*sum(Mp,2)/1000*100
|
||||||
m_T
|
m_T
|
||||||
m_A1
|
m_A1
|
||||||
|
|||||||
Reference in New Issue
Block a user