Artigo: Controlador PID (Proporcional-Integral-Derivativo) - Parte 2 - Utilizando PID no Arduino

Dando continuidade ao artigo anterior, vamos mostrar como utilizar o controlador PID no Arduino.

Neste artigo vamos mostrar como utilizar a biblioteca PID para Arduino. Esta biblioteca necessita apenas das constantes Kp, Ki, Kd e o sentido (se é a saída tem o mesmo sinal, positivo ou negativo, que a entrada).

Na biblioteca PID existem alguns exemplos disponíveis. Vamos ver o exemplo PID_basic:

/********************************************************
* PID Basic Example
* Reading analog input 0 to control analog PWM output 3
********************************************************/

#include <PID_v1.h>

//Define Variables we'll be connecting to
double Setpoint, Input, Output;

//Specify the links and initial tuning parameters
PID myPID(&Input, &Output, &Setpoint,2,5,1, DIRECT);

void setup()
{
//initialize the variables we're linked to
Input = analogRead(0);
Setpoint = 100;

//turn the PID on
myPID.SetMode(AUTOMATIC);
}

void loop()
{
Input = analogRead(0);
myPID.Compute();
analogWrite(3,Output);
}

Primeiramente, precisamos declarar as variáveis iniciais: Setpoint, Input e Output. São essas variáveis que mudarão ao longo do tempo. Depois precisamos declarar uma instância PID. Neste exemplo está declarado como "myPID". Nesta instância precisamos colocar os parâmetros: Input, Output, Setpoint, as constantes Kp, Ki e Kd e o sentido do PID (positivo ou negativo). 

Agora, vamos configurar o PID para operar em modo automático com a função "SetMode". Caso queira configurá-lo como manual, é necessário chamar a função Initialize() depois. Existe a função "SetTuning()", o qual você pode configurar o PID com variáveis diferentes. A função "Compute()" executa o cálculo do PID e o resultado Output irá para o PWM da porta digital 3.

Referências:

http://arduino.cc/en/

http://en.wikipedia.org/wiki/PID_controller

http://arduino.cc/playground/Code/PIDLibrary

http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid...

Exibições: 37099

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de fernando okubo em 25 dezembro 2013 às 13:28

Pessoal baixei a biblioteca PID e o aplicativo parou de funcionar (o programa não funciona somente os driver),quando clico para abrir o programa não abre mais.

Se alguém poder me ajudar ficarei muito grato.

Comentário de Cristiano Mentz em 4 outubro 2013 às 12:32

E ai galera, olha estou com o mesmo problema do Robson Alves. Ja renomeei aquela pasta para PID_v1 que deveria ser, porem a IDE não reconhece.

Alguem sabe o motivo???

Comentário de Gessé Haroldo Marietto Junior em 18 junho 2013 às 10:33

Meus amigos, preciso de uma ajudinha bem básica, eu acho.

Preciso fazer um controle de corrente e não estou conseguindo achar um controle ótimo para tal.

Essa corrente, que varia de 0 a 20A na rede, no arduino varia de 0 a 5V, porem, ela distorce muito, por exemplo, quando coloco 3A no instrumento, por exemplo, ele está dando quase 6A. a formula que estou utilizando é 5*sinalentrada/1023. Alguem tem alguma sugestão de como devo fazer para não distorcer resultado?

Comentário de Robson Alves Dias em 18 abril 2013 às 23:44

Nao consigo fazer o upload do programa para o arduino, ele diz que a  não é um tipo de nome "PID does not a name type" . Tem alguma ideia do porque. 
Eu tive um problema na hora de add a biblioteca porque o programa não aceita o nome com traços separando-os como vem no zip. tive que tirar os traços, talvez dai o problema.

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço