cascade.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from core.utils import *
  2. from pid.pid_base import BasePID
  3. '''
  4. reward primary PID controller.
  5. '''
  6. class RPID(BasePID):
  7. def __init__(self, controller_type, kp=0, ki=0, kd=0, dt=1, Kc=0, Ti=0, Td=0, Ts=0, debug=False):
  8. BasePID.__init__(self, PRIMARY_REWARD_TARGET, REWARD_MIN, REWARD_MAX, controller_type, kp=kp, ki=ki, kd=kd, dt=dt, Kc=Kc, Ti=Ti, Td=Td, Ts=Ts, debug=debug, type='reward', swap_error_fn=True)
  9. class FeePID(BasePID):
  10. def __init__(self, kp=0, ki=0, kd=0, dt=1, Kc=0, Ti=0, Td=0, Ts=0, debug=False):
  11. BasePID.__init__(self, MAX_BLOCK_CC, FEE_MIN, FEE_MAX, CONTROLLER_TYPE_DISCRETE, kp=kp, ki=ki, kd=kd, dt=dt, Kc=Kc, Ti=Ti, Td=Td, Ts=Ts, debug=debug)
  12. class PrimaryDiscretePID(RPID):
  13. def __init__(self, kp, ki, kd):
  14. RPID.__init__(self, CONTROLLER_TYPE_DISCRETE, kp=kp, ki=ki, kd=kd)
  15. class PrimaryTakahashiPID(RPID):
  16. def __init__(self, kc, ti, td, ts):
  17. RPID.__init__(self, CONTROLLER_TYPE_TAKAHASHI, Kc=kc, Ti=ti, Td=td, Ts=ts)
  18. '''
  19. lead secondary PID controller
  20. '''
  21. class LeadPID(BasePID):
  22. def __init__(self, controller_type, kp=0, ki=0, kd=0, dt=1, Kc=0, Ti=0, Td=0, Ts=0, debug=False):
  23. BasePID.__init__(self, SECONDARY_LEAD_TARGET, F_MIN, F_MAX, controller_type, kp=kp, ki=ki, kd=kd, dt=dt, Kc=Kc, Ti=Ti, Td=Td, Ts=Ts, debug=debug, type='f')
  24. class SecondaryDiscretePID(LeadPID):
  25. def __init__(self, kp, ki, kd):
  26. LeadPID.__init__(self, CONTROLLER_TYPE_DISCRETE, kp=kp, ki=ki, kd=kd)
  27. class SecondaryTakahashiPID(LeadPID):
  28. def __init__(self, kc, ti, td, ts):
  29. LeadPID.__init__(self, CONTROLLER_TYPE_TAKAHASHI, Kc=kc, Ti=ti, Td=td, Ts=ts)