frappy_psi.convergence: improvments
- merge_status - empty string instead of 'approaching' - dif <= tol Change-Id: I6f10875f7ef5d2109c13d7448ede114b8e30d86e
This commit is contained in:
parent
c04337c3a4
commit
f2d795cfba
@ -81,9 +81,10 @@ class HasConvergence:
|
|||||||
self.read_status()
|
self.read_status()
|
||||||
|
|
||||||
def read_status(self):
|
def read_status(self):
|
||||||
return merge_status(super().read_status(), self.convergence_state.status)
|
try:
|
||||||
#self.log.warn('inner %r conv %r merged %r', super().read_status(), self.convergence_state.status, merged)
|
return merge_status(super().read_status(), self.convergence_state.status)
|
||||||
#return merged
|
except AttributeError:
|
||||||
|
return self.convergence_state.status # no super().read_status
|
||||||
|
|
||||||
def convergence_min_slope(self, dif):
|
def convergence_min_slope(self, dif):
|
||||||
"""calculate minimum expected slope"""
|
"""calculate minimum expected slope"""
|
||||||
@ -109,7 +110,7 @@ class HasConvergence:
|
|||||||
"""approaching, checking progress (busy)"""
|
"""approaching, checking progress (busy)"""
|
||||||
state.spent_inside = 0
|
state.spent_inside = 0
|
||||||
dif, tol = self.convergence_dif()
|
dif, tol = self.convergence_dif()
|
||||||
if dif < tol:
|
if dif <= tol:
|
||||||
state.timeout_base = state.now
|
state.timeout_base = state.now
|
||||||
return self.convergence_inside
|
return self.convergence_inside
|
||||||
if not self.timeout:
|
if not self.timeout:
|
||||||
@ -117,7 +118,7 @@ class HasConvergence:
|
|||||||
if state.init:
|
if state.init:
|
||||||
state.timeout_base = state.now
|
state.timeout_base = state.now
|
||||||
state.dif_crit = dif # criterium for resetting timeout base
|
state.dif_crit = dif # criterium for resetting timeout base
|
||||||
self.__set_status(BUSY, 'approaching')
|
self.__set_status(BUSY, '')
|
||||||
state.dif_crit -= self.convergence_min_slope(dif) * state.delta()
|
state.dif_crit -= self.convergence_min_slope(dif) * state.delta()
|
||||||
if dif < state.dif_crit: # progress is good: reset timeout base
|
if dif < state.dif_crit: # progress is good: reset timeout base
|
||||||
state.timeout_base = state.now
|
state.timeout_base = state.now
|
||||||
@ -142,7 +143,7 @@ class HasConvergence:
|
|||||||
def convergence_outside(self, state):
|
def convergence_outside(self, state):
|
||||||
"""temporarely outside tolerance, busy"""
|
"""temporarely outside tolerance, busy"""
|
||||||
dif, tol = self.convergence_dif()
|
dif, tol = self.convergence_dif()
|
||||||
if dif < tol:
|
if dif <= tol:
|
||||||
return self.convergence_inside
|
return self.convergence_inside
|
||||||
if state.now > state.timeout_base + self.settling_time + self.timeout:
|
if state.now > state.timeout_base + self.settling_time + self.timeout:
|
||||||
self.__set_status(WARN, 'settling timeout')
|
self.__set_status(WARN, 'settling timeout')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user