Source code for morse.helpers.filt2
import math
[docs]class Filt2:
""" filtre du second ordre Yann """
def __init__(self, wn = 1.0, ksi = 1.0):
self.wn = wn
self.ksi = ksi
self.x = [0.0, 0.0, 0.0, 0.0 ]
self.xn = [0.0, 0.0 ]
[docs] def setParam(self,wn , ksi):
self.wn = wn
self.ksi = ksi
[docs] def init():
self.x = [0.0, 0.0, 0.0, 0.0 ]
[docs] def simulate(self,u, dt):
self.xn[0] = self.x[0] + (self.x[3] + self.x[1])*dt/2.0
self.xn[1] += (self.x[2] + self.wn * self.wn * (u - self.x[0]) - 2.0 * self.ksi * self.wn * self.x[1]) * dt / 2.0
self.x[2] = self.wn * self.wn * (u - self.x[0]) - 2.0 * self.ksi * self.wn * self.x[1]
self.x[3] = self.x[1]
self.x[0] = self.xn[0]
self.x[1] = self.xn[1]