Boa noite pessoal, estou me batendo e até agora não consegui descobri o problema com a biblioteca PID. Estou preparando um controle de temperatura de uma resistencia usando um tiristor ( acho que é esse o nome, https://dxarts.washington.edu/wiki/ac-dimmer-circuit ) e um ds18b20. Estou lendo sobre a utilização de controle PID no arduino e gostei mas até agora não consegui utilizar a biblioteca PID_v1.h. Quando tento compilar um dos exemplos aparece o seguinte erro:

C:\Users\juliano\Documents\Arduino\libraries\PID_v1\PID_v1.cpp: In constructor 'PID::PID(double*, double*, double*, double, double, double, int)':
C:\Users\juliano\Documents\Arduino\libraries\PID_v1\PID_v1.cpp:46: error: type 'PID' is not a direct base of 'PID'

Também notei que o include PID_v1.h não aparece destacado. Gostaria de saber se alguem já passou por esse problema ou saberia dizer oque está acontecendo? Já salvei o diretorio da biblioteca libraries, e alterei o nome, mas nada!!!

Arduino-PID-Library-master.zip

Exibições: 2249

Responder esta

Respostas a este tópico

Bom dia Juliano, 

Responda todas perguntas, por favor.

1) Você instalou a biblioteca corretamente?

Clique em : Sketch > Incluir Biblioteca > Adicionar biblioteca.zip

Abra o arquivo, para instalar automaticamente a biblioteca. Após a instalação da Biblioteca, é necessário que feche e abra novamente o programa Arduino IDE.

2) A biblioteca que esta usando é essa ?

https://github.com/br3ttb/Arduino-PID-Library

Algumas bibliotecas antigas, tornam-se incompatíveis após atualizações de IDEs do Arduino. Não sei se é o seu caso. 

3) Qual a versão da IDE do Arduino esta usando?

https://www.arduino.cc/en/main/software

Sugiro que sempre use bibliotecas homologadas para a Arduino IDE :

Sketch > Incluir Biblioteca > Gerenciar Bibliotecas 

Após abrir a janela do Gerenciador de Biblioteca, refine a busca digitando  pid . Escolha uma bilbioteca, clique em More Info e depois em Instalar. Após alguns segundos, ela será automaticamente instalada. Lembre-se que o seu computador precisa estar conectado na internet, para poder baixar a biblioteca. Após a instalação da Biblioteca, é necessário que feche e abra novamente o programa Arduino IDE.

Sugiro que use essa biblioteca. Não usei ainda, mas já estudei-a. E parece ser excelente. 

Olá José, respondendo as perguntas:
Tentei instalar a biblioteca, salvando a pasta no diretório libraries da pasta da ide do arduino. Tentei instalar em duas
Versões de IDE: 1.0.5 e na 1.5. Em ambas o erro é o mesmo. A biblioteca que usei é essa mesmo que vc citou. Como é uma IDE antiga, não consigo entender porque da esse erro. Dei uma olhada na biblioteca mas não encontrei nada que possa dar este erro.

Boa tarde Juliano, 

Não use IDEs muito antigas ! Pode ser por isso que esta tendo problemas. 

1) Atualize a IDE 

https://www.arduino.cc/en/main/software

2) Instale a biblioteca do jeito recomendado. Apague antes, o diretório da Biblioteca que instalou. 

Clique em : Sketch > Incluir Biblioteca > Adicionar           Arduino-PID-Library-master.zip

Abra o arquivo, para instalar automaticamente a biblioteca. Após a instalação da Biblioteca, é necessário que feche e abra novamente o programa Arduino IDE.

2) Envie o Sketch que esta usando. Pode ser um erro no seu programa. 

Boa noite José, instalei a IDE 1.8.9 e instalei a biblioteca PID. Usei um exemplo da biblioteca para teste e a mesma não apresentou mais erro. Ufa, um problema a menos. Agora vai começar a trabalheira, hehehehe. Quero controlar a temperatura de uma caixa, utilizando uma resistencia eletrica e um ds18b20. Montei dois circuitos, um é este dimmer, e um scr aqui do laboratorio (wiechert)  

O primeiro ponto a descobrir é qual deste devo usar para usar o controle PID e o segundo ponto é escrever o código PID para este controle. Não vai ser fácil, Como toda sua experiencia, teria uma dica por onde devo partir?

    A implementação de um PID em Arduino é bem simples, talvez até dispense o uso de bibliotecas. Basicamente é uma conta com os operadores básicos que tem como parâmetro amostras anteriores.

    Você já modelou seu sistema e encontrou a função de transferência no domínio da frequência?

    Projetou seu controlador PID adequadamente?

    Feito isso, basta aplicar algum método de discretização (mais comuns são Trapezoidal, Forward e Backward) e obter a equação no domínio z.

   Implementando a função obtida está pronto sua malha de controle.

   Acredito que fazer desta forma lhe trará mais benefícios em questão de agregar conhecimento sobre controladores PID e sobre os efeitos de cada ganho ( proporcional (Kp), integral (Ki) e derivativo (Kd) ) implicam em seu sistema, e como eles podem, ou não, controbuir para o controle e estabilidade da planta e auxiliar para atingir os parâmetros desejados (tempo de subida, maior sobre sinal, tempo de estabilização e etc...).

  Existem métodos bem simples para sintonizar um PID, como analisar os polos e zeros da sua equação de malha aberta, e outros bem mais complexos envolvendo trocentas contas matriciais. Comece pelo simples!

Olá José Vitor, obrigado pelo seu retorno. Até estou dando uma olhada na biblioteca pra tentar entender e escrever o código, mas estou tendo dificuldade. Por isso estou tentando usar a biblioteca. Meu conhecimento em programação não é aquelas coisas, por isso a dificuldade.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço