Source code for bms.signals.functions

# -*- coding: utf-8 -*-

"""
Collection of mathematical function signals
"""

from bms import Signal
from math import sin

[docs]class Step(Signal): """ Create a Step of amplitude beginning at time delay """ def __init__(self,name='Step',amplitude=1,delay=0,offset=0): Signal.__init__(self,name) def function(t): if t<delay: return offset else: return amplitude+offset self.function=function
[docs]class Ramp(Signal): """ Create a ramp such as : f(t)=(t-delay)*amplitude+initial_value """ def __init__(self,name='Ramp',amplitude=1,delay=0,offset=0): Signal.__init__(self,name) def function(t): if t<delay: return offset else: return (t-delay)*amplitude+offset self.function=function
[docs]class Sinus(Signal): def __init__(self,name='Sinus',amplitude=1,w=1,phase=0,offset=0): Signal.__init__(self,name) self.function=lambda t:amplitude*sin(w*t+phase)+offset
[docs]class SignalFunction(Signal): """ User defined function for signal. :param function: a function that will give the time values to the signal """ def __init__(self,name,function): Signal.__init__(self,name) self.function=function