andes.core.block.PIDAWHardLimit#

class andes.core.block.PIDAWHardLimit(u, kp, ki, kd, Td, aw_lower, aw_upper, lower, upper, name, no_lower=False, no_upper=False, ref=0.0, x0=0.0, tex_name=None, info=None)[source]#

PID controller with anti-windup limiter on the integrator and hard limit on the output.

                  upper
                /¯¯¯¯¯¯
     ┌────────────────────┐
     │      ki     skd    │
u -> │kp + ─── + ───────  │ -> y
     │      s    1 + sTd  │
     └────────────────────┘
         ______/
         lower

The controller takes an error signal as the input.

Limits lower and upper are on the final output, and aw_lower aw_upper are on the integrator.

The name is suggessted to be specified the same as the instance name.

Parameters:
uBaseVar

The input variable instance

kpBaseParam

The proportional gain parameter instance

kiBaseParam

The integral gain parameter instance

kdBaseParam

The derivative gain parameter instance

TdBaseParam

The derivative time constant parameter instance

__init__(u, kp, ki, kd, Td, aw_lower, aw_upper, lower, upper, name, no_lower=False, no_upper=False, ref=0.0, x0=0.0, tex_name=None, info=None)[source]#

Methods

define()

Define equations for the PI Controller.

enforce_tex_name(fields)

Enforce tex_name is not None

export()

Method for exporting instances defined in this class in a dictionary.

f_numeric(**kwargs)

Function call to update differential equation values.

g_numeric(**kwargs)

Function call to update algebraic equation values.

j_numeric(**kwargs)

Per-iteration numerical Jacobian update.

j_reset()

Helper function to clear the lists holding the numerical Jacobians.

j_setup()

One-time Jacobian sparsity pattern and constant value setup.

Attributes

class_name

Return the class name.