Module pid
A basic PID type and common PID operations.
This may be useful when working with control systems.
An introduction to PIDs can be found on Wikipedia.
If you are interested in using CCSharp, here is the compatible PID.cs file.
Constructors
| new (target, p, i, d, discrete) | Constructs a new PID controller for either a scalar, vector, or quaternion target. |
Class PID
| pid.sp | The setpoint to reach. |
| pid.kp | The proportional gain - how aggressively to respond to the current error |
| pid.ki | The integral gain - how aggressively to eliminate accumulated error |
| pid.kd | The derivative gain - how aggressively to dampen the rate of change |
| pid.discrete | Whether to treat the PID as discrete or continuous |
| pid:step (self, value, dt) | Performs a PID control step. |
| pid:clampOutput (self, min, max) | Enables/disables the clamping of the output value |
| pid:limitIntegral (self, min, max) | Enables/disables the integral limits for anti-windup |
| pid:tostring (self) | Converts the PID instance into a human-readable string |
Constructors
- new (target, p, i, d, discrete)
-
Constructs a new PID controller for either a scalar, vector, or quaternion target.
See also:
Usage:
pid = pid.new(target)
Class PID
A PID, with a scalar, vector, or quaternion setpoint, kP, kI, and kD, both as discrete and continuous.
- pid.sp
-
The setpoint to reach. Uses Vector or Quaternion types when applicable.
See also:
- pid.kp
- The proportional gain - how aggressively to respond to the current error
- pid.ki
- The integral gain - how aggressively to eliminate accumulated error
- pid.kd
- The derivative gain - how aggressively to dampen the rate of change
- pid.discrete
- Whether to treat the PID as discrete or continuous
- pid:step (self, value, dt)
-
Performs a PID control step.
Uses Vector or Quaternion types when applicable.
See also:
Usage:
output = pid:step(value)output = pid:step(value, 0.5)
- pid:clampOutput (self, min, max)
- Enables/disables the clamping of the output value
- pid:limitIntegral (self, min, max)
- Enables/disables the integral limits for anti-windup
- pid:tostring (self)
- Converts the PID instance into a human-readable string