Autor Tópico: Controle_PID_PIC18F2480  (Lida 16378 vezes)

Description:

0 Membros e 1 Visitante estão vendo este tópico.

Offline vinigusto

  • Novato
  • *
  • Posts: 45
  • Sexo: Masculino
  • GUIA-CNC
Re:Controle_PID_PIC18F2480
« Resposta #60 Online: 04 de Maio de 2011, 01:16 »
Enviado!!!

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Controle_PID_PIC18F2480
« Resposta #61 Online: 04 de Maio de 2011, 08:15 »
Vinícius,

Tirei alguns erros e acho melhor usar "unsigned long int" ao invés de "long int", pois os registros do ADC e PWM são sempre positivos (0 a 1023).


Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Controle_PID_PIC18F2480
« Resposta #62 Online: 04 de Maio de 2011, 08:35 »

Outra coisa, em sistemas de controle bem construídos, é usual separar as tarefas de tempo real das tarefas que possuem latência (como a comunicação USB, que depende do Windows no lado da IHM), de modo a não criar um intervalo de varredura (Ts) variável. Apesar disso não afetar na temporização da varredura, agrupei as tarefas de comunicação, para que o processamento do PID seja previsível.

Offline vinigusto

  • Novato
  • *
  • Posts: 45
  • Sexo: Masculino
  • GUIA-CNC
Re:Controle_PID_PIC18F2480
« Resposta #63 Online: 04 de Maio de 2011, 22:53 »
Oi, valeu. Entendi as modificaçoes.
Por exemplo, vou usar um potenciometro (0 a 5 V) para lê do ADC. Tem a necessidade de fzr a seguinte conversao?
 5 volts - 1023 - 360 graus.

entao um valor x para ser em graus é: x*(360/1023).

Offline vinigusto

  • Novato
  • *
  • Posts: 45
  • Sexo: Masculino
  • GUIA-CNC
Re:Controle_PID_PIC18F2480
« Resposta #64 Online: 04 de Maio de 2011, 23:07 »
...consequentemente teria que converter control_l da seguinte forma: control_l = control_l*(1023/360)

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Controle_PID_PIC18F2480
« Resposta #65 Online: 05 de Maio de 2011, 01:30 »

Voce só precisa converter x (lido do A/D) para graus se for apresentar o valor numa tela. A saída de controle (para o PWM) é a mesma coisa, só converte para 0 a 100% ao invés de 0 a 360 graus. Lembre que a saída (PWM) vai para o controlador seguinte (numa faixa de 0 a 1023 e depois numa tensão de 0 a 5V?), portanto, ao apresentar numa tela usar um fator de conversão compatível (mm/s ou graus/s).

Offline geancoelho

  • Fuso
  • **
  • Posts: 173
  • Sexo: Masculino
  • GUIA-CNC
  • Cidade - UF: Joinville SC
  • Nome:: Gean Carlos Coelho
  • Profissão: Projetista eletronico
Re:Controle_PID_PIC18F2480
« Resposta #66 Online: 05 de Maio de 2011, 08:10 »
Vinigusto

Seu hardware esta pronto??

Caso seja passivel de mudança em meus projetos que preciso de uma saida analogica uso o MCP4921C.

Este tem resolução de 12 bits e comunicação em I2C.

Tenho biblioteca em CCS para ele caso precise e posso ajudar em outras coisas tambem.

Venho Acompanhando a memoravel aula de implementação de PID que nosso amigo minilathe vem ministrando e sempre tive muita curiosidade de implementalo pois sempre usei o mesmo no MATLAB mas é muito mais simples.

Minilathe Estes programas em pyton podem gerar graficos de tempo X dado?? é muito complicado de geralos??

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Controle_PID_PIC18F2480
« Resposta #67 Online: 05 de Maio de 2011, 13:22 »
Gean,

O Python pode gerar gráficos de tendência, apesar de eu nunca ter feito nessa linguagem. Mas há várias bibliotecas gráficas compatíveis que poderiam ser usadas. Um exemplo é o software EMC2, que usa o Tcl/Tk para isso, que são perfeitamente utilizáveis junto com o Python.

Offline vinigusto

  • Novato
  • *
  • Posts: 45
  • Sexo: Masculino
  • GUIA-CNC
Re:Controle_PID_PIC18F2480
« Resposta #68 Online: 05 de Maio de 2011, 13:41 »
Gean:
Está quase, falta o mais importante, testar!.

minilathe:
Eu falei de converter tanto o valor lido do adc para graus quanto converter control_l de graus para 0 a 100%. Pensei nisso pq o valor que vou lê do software já vai vim em graus.
Mas vc acha que não precisa alterar mais alguma coisa não? Do jeito que está já pode realiazar os testes?

Grato

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Controle_PID_PIC18F2480
« Resposta #69 Online: 05 de Maio de 2011, 14:02 »
Vinícius,

minilathe:
Eu falei de converter tanto o valor lido do adc para graus quanto converter control_l de graus para 0 a 100%. Pensei nisso pq o valor que vou lê do software já vai vim em graus.
Mas vc acha que não precisa alterar mais alguma coisa não? Do jeito que está já pode realiazar os testes?

A saída lida na sua interface (IHM) não será em graus, mas em unidades compatíveis com o set-point do controlador escravo. Mas a nível de sinal e do software, tudo se passa na escala de volts e nos fatores aplicados aos conversores A/D e D/A.
 
Não precisa alterar mais nada, manda bala!!

Offline geancoelho

  • Fuso
  • **
  • Posts: 173
  • Sexo: Masculino
  • GUIA-CNC
  • Cidade - UF: Joinville SC
  • Nome:: Gean Carlos Coelho
  • Profissão: Projetista eletronico
Re:Controle_PID_PIC18F2480
« Resposta #70 Online: 05 de Maio de 2011, 14:17 »
Vou ficar aguardando os testes!!!

Offline vinigusto

  • Novato
  • *
  • Posts: 45
  • Sexo: Masculino
  • GUIA-CNC
Re:Controle_PID_PIC18F2480
« Resposta #71 Online: 23 de Maio de 2011, 00:39 »
Olá minilathe, realizei os testeis através do software proteus mas não obtive um bom resultado. Na verdade saíram valores muitos estranho (crescentes). Queria saber se vc tem alguma ideia do que poderia ser? Dei uma parada semana passada mas voltar por agora.

Grato

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Controle_PID_PIC18F2480
« Resposta #72 Online: 23 de Maio de 2011, 00:53 »
Olá minilathe, realizei os testeis através do software proteus mas não obtive um bom resultado. Na verdade saíram valores muitos estranho (crescentes). Queria saber se vc tem alguma ideia do que poderia ser? Dei uma parada semana passada mas voltar por agora.

Grato

Quais valores eram crescentes?

Offline vinigusto

  • Novato
  • *
  • Posts: 45
  • Sexo: Masculino
  • GUIA-CNC
Re:Controle_PID_PIC18F2480
« Resposta #73 Online: 23 de Maio de 2011, 21:48 »
O do controle mesmo. Acho que tenho que  limita-lo antes de enviar para o pwm.

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Controle_PID_PIC18F2480
« Resposta #74 Online: 23 de Maio de 2011, 22:30 »

Você tem que analisar o que está acontecendo, a saída do controlador é para saturar mesmo (valor menor ou igual a 100%) se o erro persistir, isso é normal. Consegue enviar um gráfico com as variáveis SP, PV e Saída?

Pode enviar um diagrama de blocos de sua simulação?

 

/** * */