- reduced debug
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user