def F_bounce(self): """ Force bouncing on the surface """ y_pos = self.state['position'][1] y_vel = self.state['velocity'][1] F_spring = -self.k_bounce * negdiff(y_pos, limit=Y_SURFACE) c_damping = -self.c_bounce * below(y_pos, Y_SURFACE) F_damping = c_damping * negdiff(y_vel, limit=0) return np.array([0, F_spring + F_damping])
def test_1000(self): val = soft.negdiff(self.vals[3], self.limit, scale=0.001) self.assertEqual(val, 0)
def test_25(self): val = soft.negdiff(self.vals[1], self.limit, scale=0.001) self.assertEqual(val, self.vals[1] - self.limit)