andes.core.block.PIDController#

class andes.core.block.PIDController(u, kp, ki, kd, Td, name, ref=0.0, x0=0.0, tex_name=None, info=None)[source]#

Proportional Integral Derivative Controller.

     ┌────────────────────┐
     │      ki     skd    │
u -> │kp + ─── + ───────  │ -> y
     │      s    1 + sTd  │
     └────────────────────┘

The controller takes an error signal as the input. It takes an optional ref signal, which will be subtracted from the input.

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

This block assembles a PIController and a Washout.

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

x0BaseParam

The initial value of the integrator

__init__(u, kp, ki, kd, Td, name, ref=0.0, x0=0.0, tex_name=None, info=None)[source]#

Methods

define()

Define equations for the PID 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.