Que problema o PID tenta resolver, de modo geral? Em termos simples, o PID é uma forma de responder à pergunta: quanta “força” é preciso aplicar para passar de um estado atual a um estado desejado?
Alguns exemplos:
- Ajustar a potência de um ar-condicionado para atingir uma temperatura
- Acelerar ou frear para atingir uma velocidade
- Ajustar a rotação dos motores de um drone, em RPM, para atingir determinada velocidade de rotação
Alguns conceitos:
- A “força”: a saída do sistema PID, também chamada de soma PID, é literalmente a soma dos três componentes P/I/D.
- O estado desejado: setpoint
Alguns fatos:
- É um algoritmo iterativo: precisamos reavaliar continuamente a saída com base no estado atual.
- Quanto maior a frequência, mais suave será o sinal de controle, respeitando os limites do componente que executa o sinal: o atuador.
A seguir está um diagrama de blocos do algoritmo PID
A seguir está uma implementação simples do algoritmo
const dt = time - this._prevTime;
const error = setpoint - measurement;
this._i += error * dt;
const p = this.kp * error;
const i = this.ki * this._i;
const d = this.kd * (measurement - this._prevMeasurement) / dt;
const f = this.kf * (command - this._prevCommand) / dt;
this._prevCommand = command;
this._prevTime = time;
return (p + i + d + f);