def measurement( s ):
    def setpoint(t):
        if t<5*60/fb.DT: return 1
        else: return s

    p = CpuWithCooler()
    fb.step_response( setpoint, p, 60000 )    
def stepresponse():
    def demand(t):
        return int(random.gauss(0, 15))

    def setpoint(t):
        return 40

    p = SmoothedCache(0, demand, 100)

    fb.step_response(setpoint, p)
def innerloop_steptest():
    def loadqueue():
        return 1000

    def setpoint( t ):
        if t < 1000 or t >= 1500:
            return 25
        else:
            return -25
    
    p = InnerLoop( 0.5, 0.25, loadqueue )
    fb.step_response( setpoint, p, tm=2000 )
def innerloop_steptest():
    def loadqueue():
        return 1000

    def setpoint(t):
        if t < 1000 or t >= 1500:
            return 25
        else:
            return -25

    p = InnerLoop(0.5, 0.25, loadqueue)
    fb.step_response(setpoint, p, tm=2000)
def min_fan():
    def setpoint(t): return 1
    
    p = CpuWithCooler()
    fb.step_response( setpoint, p, 60000 )