diff --git a/brew/water_optimizer.m b/brew/water_optimizer.m index d6c4391..46bcbd3 100644 --- a/brew/water_optimizer.m +++ b/brew/water_optimizer.m @@ -53,13 +53,29 @@ A = 0*T Pa = [0 0 0 0]'; Pp = [M_CaSO4; M_CaCl2; M_MgSO4; M_NaCl]; -Dn = 1; -while Dn > 0.5, - [A1, Pa, Dn] = vecfit(Pp,mask,T,A,Pa, 0.0001.*(1-exp(-Dn))) +CONV_COUNTER_RELOAD = 10; +Dn0 = 1; +conv_counter = CONV_COUNTER_RELOAD; +while true, + [A1, Pa, Dn1] = vecfit(Pp,mask,T,A,Pa, 0.0001.*(1-exp(-Dn0))) + Dc = round_n(Dn1,3); + if Dn0 == Dc, + if conv_counter == 0, + break; + else + conv_counter -= 1 + end + else + conv_counter = CONV_COUNTER_RELOAD + end + Dn0 = Dc; end T=T A1=A1 Pa=Pa endfunction +function zr = round_n(z, n) + zr = round(z*10^n)/10^n; +endfunction