- reduced debug

This commit is contained in:
2023-06-11 21:02:15 +02:00
parent 4876753055
commit dd87a2c318
+8 -9
View File
@@ -14,7 +14,7 @@
## along with this program. If not, see <https://www.gnu.org/licenses/>. ## along with this program. If not, see <https://www.gnu.org/licenses/>.
## -*- texinfo -*- ## -*- texinfo -*-
## @deftypefn {} {@var{retval} =} brewwater_optimizer (@var{input1}, @var{input2}) ## @deftypefn {} {@var{retval} =} water_optimizer (@var{input1}, @var{input2})
## ##
## @seealso{} ## @seealso{}
## @end deftypefn ## @end deftypefn
@@ -22,7 +22,7 @@
## Author: Jens <jens@orion> ## Author: Jens <jens@orion>
## Created: 2023-06-08 ## Created: 2023-06-08
function brewwater_optimizer (TEST_SUITE, k_ve) function water_optimizer (TEST_SUITE, k_ve)
# Load constants # Load constants
water_constants() water_constants()
@@ -63,7 +63,7 @@ M_Mg_0_mmol = k_Mg_0_mg/M_Mg; % mmol/l
M_Na_0_mmol = k_Na_0_mg/M_Na; % mmol/l M_Na_0_mmol = k_Na_0_mg/M_Na; % mmol/l
M_Cl_0_mmol = k_Cl_0_mg/M_Cl; % mmol/l M_Cl_0_mmol = k_Cl_0_mg/M_Cl; % mmol/l
M_S_0_mmol = k_S_0_mg/M_S; % mmol/l M_S_0_mmol = k_S_0_mg/M_S; % mmol/l
A = k_ve*create_mol([i_Ca i_Mg i_Na i_Cl i_S], [M_Ca_0_mmol M_Mg_0_mmol M_Na_0_mmol M_Cl_0_mmol M_S_0_mmol], mol_masses) A0 = k_ve*create_mol([i_Ca i_Mg i_Na i_Cl i_S], [M_Ca_0_mmol M_Mg_0_mmol M_Na_0_mmol M_Cl_0_mmol M_S_0_mmol], mol_masses)
# Target profile # Target profile
M_Ca_1_mmol = k_Ca_1_mg/M_Ca; % mmol/l M_Ca_1_mmol = k_Ca_1_mg/M_Ca; % mmol/l
@@ -76,13 +76,13 @@ T = create_mol([i_Ca i_Mg i_Na i_Cl i_S], [M_Ca_1_mmol M_Mg_1_mmol M_Na_1_mmol M
if TEST_SUITE == 1, if TEST_SUITE == 1,
# Allowed substances, easy # Allowed substances, easy
Pp = [M_EL_Ca; M_EL_Mg; M_EL_Na; M_EL_Cl; M_EL_S]; Pp = [M_EL_Ca; M_EL_Mg; M_EL_Na; M_EL_Cl; M_EL_S];
learning_rate = 0.01 learning_rate = 0.01;
end end
if TEST_SUITE == 2, if TEST_SUITE == 2,
# Allowed substances, difficult # Allowed substances, difficult
Pp = [M_CaSO4; M_CaCl2; M_MgSO4; M_NaCl]; Pp = [M_CaSO4; M_CaCl2; M_MgSO4; M_NaCl];
learning_rate = 0.001 learning_rate = 0.001;
end end
# Init vecfit vars # Init vecfit vars
@@ -90,7 +90,7 @@ end
Pa = zeros(N_subst, 1); Pa = zeros(N_subst, 1);
# ignore oxygen # ignore oxygen
mask = create_mol([i_Ca i_Mg i_S i_Cl i_Na], [1 1 1 1 1], mol_masses) > 0 mask = create_mol([i_Ca i_Mg i_S i_Cl i_Na], [1 1 1 1 1], mol_masses) > 0;
V = 50; % liter V = 50; % liter
_dn = []; _dn = [];
@@ -98,7 +98,7 @@ CONV_COUNTER_RELOAD = 20;
Dn0 = 1; Dn0 = 1;
conv_counter = CONV_COUNTER_RELOAD; conv_counter = CONV_COUNTER_RELOAD;
while true, while true,
[A1, Pa, Dn1] = vecfit(Pp,mask,T,A,Pa, learning_rate.*(1-exp(-Dn0))) [A1, Pa, Dn1] = vecfit(Pp,mask,T,A0,Pa, 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,
@@ -114,9 +114,8 @@ while true,
end 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")
T=T
A1=A1 A1=A1
Pa=Pa Dn1 = Dn1
endfunction endfunction