Página 1 de 3
PID no PIC em C (controle motor CC)

Enviado:
10 Set 2008 00:20
por ricks_and
Galera, estou precisando controlar um motor CC via PIC e o controle tem de ser feito através de PID, mas não tenho ideia d como implementar isso na programação em C. Alguem tem um programinha semelhante ai pra mim ver como ficaria adaptado ao meu programa (o PID)? Sei fazer isso no LABVIEW, mas para colocar na empilhadeira fica dificil né?
Sei q no site da microchip tem exemplo lá de PID, mas não consegui implementar, o que deve levar em consideração para a implementação?
(o programa irá controlar um motor CC de aproximadamente 3CV, a eletrônica eu já fiz, quer dizer, tem algo pra modificar, e preciso da ajuda de todos vocês para a automatização da empilhadeira elétrica como projeto pra uma empresa). Assim que finalizado eu coloco o projeto todo aqui para o conhecimento de todos vocês...
Overview da automação!
A empilhadeira terá:
1 - Controle de velocidade realimentado (PID) - (NÃO FEITO)
2 - Display com indicação de RPM, CORRENTE (shunt), BATERIA, etc (este já feito)
3 - Proteções - (ALGORITMO NA LOGICA)
4 - No programa eu posso selecionar a velocidade máxima pra controle (SP de máx velocidade como limitação) - (ALGORITMO NA LOGICA)
Valeu galera,
Abração a todos!

Enviado:
10 Set 2008 01:26
por Djalma Toledo Rodrigues
o que deve levar em consideração para a implementação?
Bom, o PID obrigatoriamente tem que ser otimizado para cada aplicação.
E qual o procedimento para isso?
1º Faz-se o Controle Proporcional, aumenta o Ganho até que o sistema entre em oscilação.
Reduz o Ganho para metade desse valor.
2º Implementa o Controle Integral --- Erroneamente, creio eu, falam em Ganho de Integração acho que o correto seria a
velocidade da integração. Digo isso porque no PID analógico* o Controle Integral é um Amplificador Operacional na Configuração Integrador, onde o elo de realimentação é apenas um Capacitor.
De qualquer modo o integrador é o principal responsável pelo controle, lógico, pois a saída do Proporcional tende a zero a medida que o erro diminui.
3ª Implementa o Controle Diferencial, este somente é necessário se o Controle for muito exigente a velocidade de resposta a um transiente, isto é a uma pertubação. Muitos sistemas nem tem o Diferencial.
Este exige ajuste critico para que o sistema tenha o máximo de velocidade a um degrau mas, não ocorra instabilidade.
Dito de outra forma o Diferencial antecipa a correção necessária devido a inércia do Servo mecanismo.
Abraço e bom PID
(*) Ver minha assinatura abaixo:

Enviado:
10 Set 2008 05:47
por joao
aproveitando o tópico...
Alguém ai poderia dar uma pincelada sobre PID? Explicar o básico do que é e de como funciona?
[]'s

Enviado:
10 Set 2008 08:21
por fabim
Proporcional integral derivado.
Com estas 3 grandezas, voce pode controlar uma carga, motor, luz por exemplo.
O PID é simplesmente, um circuito que se aplicando uma referencia fixa, voce tem uma resultante tendendo a fixa seguindo a referencia.
Por exemplo um AMP/OP.
Amplificação pela porta nao inversora.
Realimentação através de rede resistiva em divisor X 10.
Você aplica 100mV, a saida do amp/op vai ser de 1V.
Observe que no exemprinhu, voce fez um PID analogico, o amp op tem tudo que precisa para, proporcionar intergrar e derivar a resultante de tal forma que se iguale a referencia, seja para uma tensão de ganho ou atenuação por exemplo.
Para motores, o controle baseia-se no seguinte, suponha que voce sabe que o gerador de alimentação de rotação do motor..
Para 1000 RPM ele gere 100mV, 2000 200mV, 3000 300mV.
ESte motor trabalhando com PWM no controle de rotação/torque.
TL494 da vida.
O PID se daria de tal forma que se voce aplica-se 200mV, o TL iria se comportar de tal forma na grandeza PWM, que o motor tenderia a 2000RPM, para poder gerar uma tensão igual a referencia aplicada.
Tendeu ?
Mais ói, PID é um pouco mais complexo que apenas isto que eu coloquei.
Pois você dependendo do caso, tem que levar em consideração mais um punhadu de variaveis, que determina o controle.
Fabim

Enviado:
10 Set 2008 08:51
por joao
dificilzinho heim!
Não entendi direito ainda...
Aparentemente ele é usado para que vc tendo uma entrada X, vc pode ter um resultado fixo que seja uma formula dessa entrada, como por exemplo, X/2 ou X*2+X/10 ou X+1
Essa é a idéia? Então teoricamente e para modelos simples, para um PID feito em PIC vc precisa na verdade "ler" a entrada, resolver a formula do PID e sair com um valor. Essa é a idéia de PID em PIC? Ou tem mais alguma coisa?
Sobre as outras variáveis que você falou ai em cima, nada mais é do que entradas para a sua formula, não é não? Por exemplo, se a temperatura for Y, deve ser X/2, mas se ela for Y+2, deve ser X/10. Logo, essa variavel temperatura vai entrar na formula. Não é isso?
[]'s
Tentando ajudar

Enviado:
10 Set 2008 10:44
por Andredeos
Pessoal, aqui tem um pdf que pode ajudar a entender o que é um PID, e como ele é implementado de maneira digital:
http://www.freescale.com/files/microcon ... AN1215.pdf
É da Freescale, mas como tá em C.
Pra calcular as constantes existem diversas maneira, tanto experimentais como teóricas, ai vai da aplicação.
Pra um aprofundamento, tem que buscar os livros de teoria de controle, tipo Ogata ou Nise. Mas o basico é simples, com pequenos artigos na internet mesmo dá pra entender.
Espero ter ajudado.

Enviado:
10 Set 2008 12:14
por Djalma Toledo Rodrigues
João , Fabim ...
No PID Analógico:
Imagina um Círculo com a Letra Sigma ( símbolo de somatório) em seu interior , duas entradas e uma saída, então temos S=Esp+Er, onde Esp é o Set Point , ou o objetivo a ser alcançado. Er é a realimentação da saída para a entrada, isto é, o elo que fecha o Loop de controle. E S a saída de erro do sistema .
Sugiro que faça o desenho.
No PID esse estágio Sigma é na verdade um "Subtrator" (*) já que a entrada de realimentação tem polaridade invertida em seu interior. Então fica assim: S=Esp+(-Er) então S=Esp-Er . Exemplo Set Point 10 Volts , Realimentação 9 Vdc , Saída igual 1 Volt, 1 Volt é a tensão de erro.
Agora vamos ao P de PID
P é um estágio multiplicador do erro, Um Amp. Operacional na configuração Amplificador / Inversor, vamos implementa-lo com ganho ajustável ?
Agora ao I do PID
Este é bem simples apenas um Amp. Op. na Configuração Integrador.
(Inversor também por sua própria configuração).
Mas, é o mais importante como disse na msg acima. Este estágio faz a intração do erro (sua saída vai aumentado enquanto houver erro).
Se for um sistema que não necessita velocidade de inicial de atuação pode dispensar o P e o D. Bastando apenas um Integrador.
Alguém ensina isso? Ceio que não.
Agora ao D do PID
Também é simples um Amp. Op. na Configuração Diferenciador.
Precisamos agora juntar essas 3 saídas
Um Amp. Op. na Configuração Somador / Inversor ( Inversor para desinverter as 3 entradas.
3 R (Rp, Ri, Rd) ligadas ao pino 2 e um Rs na realimentação. Rp = Ri = Rd = Rs, esta feito o Somador.
A Saída deste Somador vai ao Servo Amplificador, pode ser apenas um transistor potência na versão mínima, e dai ao Atuador (Servo Motor, Resistores de Aquecimento se for controle de temperatura, etc., etc. ).
O Atuador tem um Transdutor para gerar a tensão Er de Realimentação.
Objetivo: Erro Nulo no menor tempo possível.
(*) Subtrator não é um comparador como muitos erroneamente ensinam.

Enviado:
10 Set 2008 12:16
por ze
joão, pra lhe pagar as noções de struct & union que nos deste qdo lhe foi sugerido no "curso" C que dava nas escapadas. rs
javascript:OpenDownload('../downloads/downloads.asp?FileID=535273');
(será que o link é esse mermo?) ou senão veja em
www.novus.com.br
tem + lá, mas tem que pedir-lhes. mas o especialista é o djalma...
abs

Enviado:
10 Set 2008 12:47
por fabim
Djalma, o amigo joão de Santo Cristo do pé de maconha.
Pediu só uma noção basica do que é o PID.
DEFINE-SE.
Controle autonomo de uma grandeza, sob uma referencia.
Seja voltagem, corrente, " ou o que essas duas grandezas possam controlar".
João, sabe aquela fonte regulavel de 1,25V a 32V usando o LM"não lembro o o sufixo".
Nada mais é de que um PID de controle de tensão, ele tem 1,25V de tensão fixa de referencia, você através de arranjos pode criar uma segunda grandeza como corrente tensão ou que seja, baseado nestes 1,25V.
Por exemplo, Vref 1,25V, na porta de um AMP/OP, faz a realimentação pela porta inversora com um divisor resistivo de 3.
1 + 3 * 1,25V = 5V.
Agora entra aquelas variaveis que eu lhe falei.
O pid tem que ter algo que dependendo da temperatura possa, diminuir a corrente, dependendo da corrente possa diminuir a tensão, dependendo do ruido através de um integrador possa anular a dita cuja etc.
Este processo pode ser aplicado em.
Controle de torque, Rotação, Temperatura, campo eletromagnético.. e afins.
Espero ter sido menos, CABALISTICO..rsrs
E mais claro nos exemplos.
Fabim

Enviado:
10 Set 2008 13:16
por Djalma Toledo Rodrigues

Enviado:
10 Set 2008 13:20
por joao
Ola,
Valeu pessoal!
Tem mais informação aqui do que eu poderia esperar!
Agora já tenho uma idéia do assunto para poder me aprofundar mais!
Obrigado,
Joao

Enviado:
10 Set 2008 13:25
por Djalma Toledo Rodrigues
João sugiro que monte um de posição - Pendulo Invertido por exemplo. È muito interessante e apaixonante.
Enquanto não:
Faça a seguinte experiência, encoste de lado em uma parede e tente erguer o braço, faça a maior força possível. Agora se afaste da parede.
Põ porque seu braço esta se elevando sózinho ?

Enviado:
10 Set 2008 13:52
por fabim
o que fode em PID digital, é a maledita hysteresi "assim que escreve/?".
e o tempo de resposta.
Não basta apenas pegar um exemplo da net e simplesmente tentar implementar..
Olha que interessante um pid para um controlador de temperatura.
Temp = 90°C "módicuzinha ovu nagua"
Vou ter um elemento de aquecimento " que tem um tempo para temp X"
A agua que vai ter a sua constante termica, de N joules para N litros pelo tempo X.
E o tempo de resposta do elemento de medida de temperatura.
Ou seja, cerveja....."coca com paçoquinha na verdade"
Suponha que a temperatura esta a 25°C, o pid vai socar o maximo de excitação para que a agua atinja os 90°C, mais aí tem aquela questão, o ponto de medida as vezes ja passou dos 90°C faz tempo, por causa do tempo do sensor de TEMP... etc etc etc etc...
São as variaveis joão..

Enviado:
10 Set 2008 14:00
por turuna
Sei que os mestres passaram bem a teoria, mas aqui vai dois links da fábula da caixa d'água que explica legal essa história de PID.
http://www.cti.furg.br/~santos/apostilas/Fabula_PID.pdf
http://www.therma.com.br/artigos_tecnicos/pid.htm
Turuna

Enviado:
10 Set 2008 14:40
por Djalma Toledo Rodrigues
Fadim Pois é, as variáveis, as incertezas sempre a variarem.... Variável então nem se fala varia pakas
