- many other improvements git-svn-id: http://moon:8086/svn/projects/HendiControl@116 fda53097-d464-4ada-af97-ba876c37ca34
35 lines
630 B
Python
35 lines
630 B
Python
class Smoother:
|
|
def __init__(self, alpha):
|
|
self.a = alpha
|
|
self.b = 1-alpha
|
|
self.y = 0
|
|
|
|
def process(self, x):
|
|
self.y = self.b*self.y + self.a*x
|
|
return self.y
|
|
|
|
def get_y(self):
|
|
return self.y
|
|
|
|
class Stable:
|
|
def __init__(self, stable_count, err_max):
|
|
self.stable_time = stable_count
|
|
self.count = stable_count
|
|
self.err_max = err_max
|
|
self.is_stable = 0
|
|
self.x = 0
|
|
|
|
def process(self, x):
|
|
if self.count > 0:
|
|
self.count -= 1
|
|
|
|
if abs(x - self.x) >= self.err_max:
|
|
self.count = self.stable_time
|
|
|
|
self.is_stable = (self.count == 0)
|
|
|
|
return self.is_stable
|
|
|
|
def is_stable(self):
|
|
return self.is_stable
|