ME 305 Group 6 Documentation
Public Member Functions | List of all members
closedloop.ClosedLoop Class Reference

Driver class for a Closed Loop Controller. More...

Public Member Functions

def __init__ (self, shares.Share position_signal, shares.Share deriv_signal, shares.Share target_pos, shares.Share target_deriv, float prop_gain, float deriv_gain, float int_gain, int sat_limit_low, int sat_limit_high, int integral_limit=None, int integral_influence_limit=None, shares.Share controller_signals=None, int integral_limit_region=None)
 Initializes the ClosedLoop object. More...
 
def update (self)
 Returns an output signal based on the initialized share variables. More...
 
def set_Kp (self, new_Kp)
 Sets the Kp to a new value. More...
 
def set_Kd (self, new_Kd)
 Sets the Kd to a new value. More...
 
def set_Ki (self, new_Ki)
 Sets the Ki to a new value. More...
 

Detailed Description

Driver class for a Closed Loop Controller.

Used to control a signal and provide output to achieve desired steady state

Constructor & Destructor Documentation

◆ __init__()

def closedloop.ClosedLoop.__init__ (   self,
shares.Share  position_signal,
shares.Share  deriv_signal,
shares.Share  target_pos,
shares.Share  target_deriv,
float  prop_gain,
float  deriv_gain,
float  int_gain,
int  sat_limit_low,
int  sat_limit_high,
int   integral_limit = None,
int   integral_influence_limit = None,
shares.Share   controller_signals = None,
int   integral_limit_region = None 
)

Initializes the ClosedLoop object.


Objects of this class act as a PID Controller, taking in an input signal and target value, along with a proportional, integral, and differential gain.

Parameters
position_signalShare object containing the position input signal to the controller.
deriv_signalShare object containing the input derivative signal for the controller.
target_posShare object containing the desired reference value for the controller position.
target_derivShare object containing the desired reference value for controller velocity.
prop_gainFloat value for the Kp for the controller.
deriv_gainFloat value for the Kd for the controller.
int_gainFloat value fot the Ki for the controller.
sat_limit_lowMinimum value to saturate the controller output at.
sat_limit_highMaximum value to saturate the controller output at.
integral_limitOptional parameter to specify limit to how much build-up can occur in the integral term
integral_influence_limitOptional parameter to specify the maximum value the integral term (Ki * integral) can contribute to the output signal
controller_signalsShared object to encapsulate the controller term values (prop, deriv, integral) to pass to user interface for easier debugging
integral_limit_regionInteger limiting the region where integral term has any effect. An input signal with absolute value greater than this value will have no integral term in the output signal.

Member Function Documentation

◆ set_Kd()

def closedloop.ClosedLoop.set_Kd (   self,
  new_Kd 
)

Sets the Kd to a new value.

Replaces the existing Kd with a new value.

Parameters
new_KdThe new value of Kd (derivative gain) to be set.

◆ set_Ki()

def closedloop.ClosedLoop.set_Ki (   self,
  new_Ki 
)

Sets the Ki to a new value.

Replaces the existing Ki with a new value.

Parameters
new_KiThe new value of Ki (integral gain) to be set.

◆ set_Kp()

def closedloop.ClosedLoop.set_Kp (   self,
  new_Kp 
)

Sets the Kp to a new value.

Replaces the existing Kp with a new value.

Parameters
new_KpThe new value of Kp (proportional gain) to be set.

◆ update()

def closedloop.ClosedLoop.update (   self)

Returns an output signal based on the initialized share variables.

Multiplies the error signal by the proportional gain and adds the velocity/derivitive error signal to obtain an output signal. If the output signal exceeds the saturation limits, return the saturation limit instead.


The documentation for this class was generated from the following file: