|
ArduinoMega2560_SPI 1.0
|
Controlador PID con anti-windup, derivative-on-measurement y limitación de cambio de salida (slew-rate limit). Más...
#include <pid.h>
Métodos públicos | |
| PID (float Kp, float Ki, float Kd, float outputMin, float outputMax, float dt, float outputMaxChanged) | |
| Constructor del controlador PID. | |
| float | calculoPID (float setpoint, float feedback, bool debugMSG=false) |
| Calcula la salida del controlador PID. | |
| void | setKPID (float Kp, float Ki, float Kd) |
| Establece nuevas ganancias PID. | |
| void | setOutputLimits (float outputMin, float outputMax) |
| Establece los límites de salida del PID. | |
| void | setDt (float dt) |
| Establece un nuevo tiempo de muestreo. | |
| void | resetPID () |
| Reinicia el estado interno del PID. | |
| float | statedt (float dt) |
| Valida y corrige el tiempo de muestreo. | |
| void | printDebugPID (float setpoint, float feedback) |
| Imprime información de depuración del PID. | |
Atributos privados | |
| float | Kp |
| Ganancia proporcional. | |
| float | Ki |
| Ganancia integral. | |
| float | Kd |
| Ganancia derivativa. | |
| float | outputMin |
| Límite mínimo de salida. | |
| float | outputMax |
| Límite máximo de salida. | |
| float | dt |
| Tiempo de muestreo. | |
| float | error |
| Error actual. | |
| float | prevError |
| Error previo. | |
| float | proportional |
| Término proporcional. | |
| float | integral |
| Acumulador integral. | |
| float | pidNoIntegral |
| PID sin término integral. | |
| bool | saturated |
| Indica si el PID está saturado. | |
| float | derivative |
| Término derivativo. | |
| float | output |
| Salida final del PID. | |
| float | rawOutput |
| Salida sin limitación de cambio. | |
| float | prevOutput |
| Salida previa. | |
| float | deltaOutput |
| Cambio entre salidas. | |
| float | prevFeedback |
| Feedback previo para derivative-on-measurement. | |
| float | outputMaxChanged |
| Máximo cambio permitido por ciclo. | |
Controlador PID con anti-windup, derivative-on-measurement y limitación de cambio de salida (slew-rate limit).
Este controlador está diseñado para sistemas sensibles como motores paso a paso, actuadores lentos o sistemas donde se requiere suavidad y estabilidad.
| PID::PID | ( | float | Kp, |
| float | Ki, | ||
| float | Kd, | ||
| float | outputMin, | ||
| float | outputMax, | ||
| float | dt, | ||
| float | outputMaxChanged ) |
Constructor del controlador PID.
| Kp | Ganancia proporcional. |
| Ki | Ganancia integral. |
| Kd | Ganancia derivativa. |
| outputMin | Límite mínimo de salida. |
| outputMax | Límite máximo de salida. |
| dt | Tiempo de muestreo en segundos. |
| outputMaxChanged | Máximo cambio permitido por ciclo (slew-rate). |
Definición en la línea 20 del archivo pid.cpp.

| float PID::calculoPID | ( | float | setpoint, |
| float | feedback, | ||
| bool | debugMSG = false ) |
Calcula la salida del controlador PID.
| setpoint | Valor deseado. |
| feedback | Valor medido. |
| debugMSG | Si es true, imprime información de depuración del PID. |
Implementa:
| setpoint | Valor deseado. |
| feedback | Valor medido. |
Definición en la línea 58 del archivo pid.cpp.


| void PID::printDebugPID | ( | float | setpoint, |
| float | feedback ) |
Imprime información de depuración del PID.
Muestra en consola el estado interno del PID en formato tabla.
| setpoint | Valor deseado. |
| feedback | Valor medido. |
Definición en la línea 188 del archivo pid.cpp.

| void PID::resetPID | ( | ) |
Reinicia el estado interno del PID.
Definición en la línea 156 del archivo pid.cpp.
| void PID::setDt | ( | float | dt | ) |
| void PID::setKPID | ( | float | Kp, |
| float | Ki, | ||
| float | Kd ) |
| void PID::setOutputLimits | ( | float | outputMin, |
| float | outputMax ) |
| float PID::statedt | ( | float | dt | ) |
|
private |
|
private |
|
private |
|
private |
|
private |