- refactored

This commit is contained in:
2023-06-14 18:56:21 +02:00
parent d8cdbc83c3
commit ab5f754b2a
+6 -10
View File
@@ -43,8 +43,8 @@ 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 = 2; % mg/l
k_Ca_1_mg = 100; % mg/l
k_Mg_1_mg = 40; % mg/l
k_Na_1_mg = 40; % mg/l
k_Cl_1_mg = 100; % 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);
# 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
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,
# 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_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
@@ -89,14 +85,14 @@ end
na = zeros(N_subst, 1);
# ignore oxygen
mask = m_T > 0;
ignore_mask = m_T > 0;
_dn = [];
CONV_COUNTER_RELOAD = 20;
Dn0 = 1;
conv_counter = CONV_COUNTER_RELOAD;
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);
if Dn0 == Dc,
if conv_counter == 0,
@@ -113,7 +109,7 @@ end
plot(1:length(_dn), _dn); grid();
title("Distance"); xlabel("Iteration"); ylabel("Dn")
Dn1
m_elem=sum(Mp.*na)
m_elem=sum(Mp.*na);
m_subst_add_g_per_hl = na.*sum(Mp,2)/1000*100
m_T
m_A1