Página 1 de 1

Controle de velocidade motor

MensagemEnviado: 17 Jan 2015 21:46
por longo.251272
Boa noite pessoal,

Preciso montar um circuito que fique comparando duas tensões para aumentar ou diminuir uma terceira tensão. Quando a primeira for maior que a segunda tem que aumentar a terceira tensão e quando a primeira for menos que a segunda tem que diminuir a terceira. Como um controle de velocidade, onde eu determino a velocidade que quero através da primeira tensão, monitoro a velocidade através da segunda tensão e a terceira amenta ou diminui a velocidade do sistema.

Utilizando microcontroladores até seria fácil de implementar a lógica, mas perco a precisão quando usar o pwm para obter a terceira tensão já que é difícil encontrar um microcontrolador com dac interno.
Pensei em usar um circuito subtraidor com AOP, mais não fico na dúvida sem vai ficar estável.

Alguém pode dar alguma dica ?
Valeu pela atenção.

Re: Controle de velocidade motor

MensagemEnviado: 18 Jan 2015 10:14
por MOR_AL
Em tempo: Hoje em dia quase todos os microcontroladores possuem CAD.
Na realidade o que você descreveu é um controle de velocidade e como tal, é simples.
Como a velocidade não varia rapidamente, no instante em que ela alcance o valor desejado, basta parar de aumentar (ou diminuir). É um sistema de primeira ordem e por isso aceita este procedimento.
Vamos renomear suas tensões.
Primeira tensão. Como estamos falando de velocidade, então vamos chama-la de Velocidade Desejada ou VD.
Segunda tensão. É a tensão que você quer alcançar. Faz ela como sendo uma amostra da terceira tensão. Chama ela de Velocidade Amostrada, ou VA.
Terceira tensão. Chama ela de Velocidade Final, ou VF
Bom. Agora o procedimento.
A ideia é comparar as duas velocidades. A desejada com a amostrada. Faça Erro = VD - VA
Se este erro tender para zero, então VD vai ser igual a VA, que é o que você deseja.
Ainda mais.
Como VA é uma amostra de VF, então VD = VA = k VF, ou seja:
Se você determinar o valor de k, então vai saber o valor de VF.
Na realidade o que se faz é:
Ex.
VR é uma tensão entre 0 e 5V, obtida de um divisor resistivo. Como você quer variar VR, então o divisor é um potenciômetro P1. Um dos lados é o terra e o outro é o +5V. O meio é o VR. Sugestão. P1 = 10k.
Você agora tem que conseguir um sensor que transforme a velocidade em tensão. Esta tensão é a tal tensão de amostra VA. Então você terá o valor de k = VF/VA.
Não é tão imediato assim, não.
Para que o sistema funcione como você deseja, tem que fazer o sensor com as seguintes características:
Para VF = 0 rps (rotações por segundo ou minuto), VA = 0V.
Para VF = VFmáx rps, VA = 5V.
Se esta sua função for linear será melhor ainda. Função linear é tal que o valor de k seja constante para toda a faixa de variação de VF. Em outras palavras, um incremento x da velocidade vai gerar um incremento y da tensão, tal que y/x = k.
Para fazer isso usando um microcontrolador Mc, boa parte já está preparada, já que as tensões analógicas (VR e VA) variam entre 0V e 5V. A tensão de alimentação tem que ser igual a 5V.

O programa.
1 - Leia o valor de VD e logo em seguida o valor de VA. Assim você vai ter ambos no mesmo instante, ou quase.
2 - Calcule o valor do erro. Erro = VD - VA.
3 - Se Erro for positivo então VD é maior que VA, logo aumente a saída, que deve ser um PWM. Então aumente o Ton.
4 - Se Erro for negativo então VA é maior que VD, logo reduza o valor de Ton.
5 - Gaste um tempo. Use este tempo para atualizar algo. Como você deve usar um LCD, então coloque o valor da velocidade nele. Mas a taxa de leitura vai ser bem superior à taxa de atualização do LCD. Faça a taxa de leitura ser aprox. 10 a 20 vezes por segundo e a taxa de atualização do LCD com 3 a 4 vezes por segundo. Logo aqui você vai ter que introduzir um contador. Este contador tem que ser incrementado a cada leitura das tensões. Somente quando ele alcançar, digamos 4 ou 5 é que o dado será enviado ao LCD. Ah. O contador tem que ser zerado no fim da contagem.
6 - Você tem que manter os cinco primeiros itens em loop, ou seja, este item manda retornar ao item 1.

Você tem que ajustar a taxa de incremento ou decremento de Ton. Se fizer um PWM com 256 valores, então seu erro mínimo seria de 1/512 x 100% = 0,2%.
O ideal seria fazer uma alteração dinâmica e (não fixa) em Ton.
Para cada valor da variável Erro, produza um valor de variação de Ton.
Se o erro estiver muito grande, varie muito Ton. Se o erro estiver pequeno, varie pouco Ton.

Ex.:
Variação de Ton = Erro/2. (é uma instrução de shift à direita).
Claro que você deve se preocupar com os limites de Ton. Caso eles sejam ultrapassados, retorne o valor para o limite.

Acho que aí estão quase todas as dicas.
Bons projetos.
MOR_AL

Re: Controle de velocidade motor

MensagemEnviado: 18 Jan 2015 10:52
por aldss
Bom dia!
Seria basicamente o circuito "High Impedance Differential Amplifier" mostrado na imagem abaixo:
http://www.analog.com/static/imported-f ... 1_0415.gif
ou
http://electronicdesign.com/site-files/ ... hip_F3.gif
Para o primeiro pode colocar nas entradas ampop seguidores como na imagem:
http://archives.sensorsmag.com/articles ... 1297_3.gif
Se precisar de ajuda para o dimensionamento me pergunte!
Abraço

Re: Controle de velocidade motor

MensagemEnviado: 18 Jan 2015 15:00
por ze
eu acho que (dependendo do projeto), teoricamente um mc e um encoder vc pode monitorar e corrigir diretamente a velocidade. Tende a ficar menos complicado sem ter que realimentar com tensão.

Re: Controle de velocidade motor

MensagemEnviado: 18 Jan 2015 15:25
por EvandrPic
Eu acho que você terá mais opções se disser o que exatamente você quer fazer com esse motor.
Do que se trata o projeto?

Re: Controle de velocidade motor

MensagemEnviado: 18 Jan 2015 18:02
por longo.251272
Vou tentar montar todas as alternativas para ver os pós e contras.

Há aplicação é para controlar a tensão de um fio que está sendo puxado. Esse fio passa por um polia de arraste que está acoplado ao motor e depois passa por um sensor de tensão. O circuito tem que ficar monitorando esse sensor e aumentar ou diminuir a velocidade do motor que esta puxando esse fio para ajustar a tensão dele de acordo com a pré determinada.

Não sei se fui bem claro, posso procurar um vídeo para ajudar a visualizar.

Valeu pessoal.

Re: Controle de velocidade motor

MensagemEnviado: 18 Jan 2015 22:04
por KrafT
Bom, um controlador P é meio inadequado para esse sistema... Ele pode ou ser muito lento ou oscilar demais.

Mas você tem que começar de algum lugar, então faz como o MOR_AL sugeriu, que pode inclusive ser com amp-op, mas um MCU te dá mais liberdade.

Sinceramente, a não ser que você queira estudar controle, sugiro usar esses CLPs (relativamente) baratos que tem por aí que já tem controlador PID embutido.

Colocar um controle PID num Piczinho não é difícil. O duro é modelar a tua planta e obter os coeficientes do controlador, além da maldita resolução do ADC e do PWM, que podem fazer teu motor ficar eternamente mudando de um passo para outro, por não encontrar o valor ideal entre dois degraus, tando do ADC como do PWM.

Re: Controle de velocidade motor

MensagemEnviado: 18 Jan 2015 22:22
por Maffeis
Vale a pena projetar a placa?

Qual o custo do CLP e do tempo de projeto da placa?

Eu fiz pro meu tcc um controle de motor entrada de encoder e saida 0-10V para controlar o motor, a saida 0-10V ficou bem meia boca

Da pra consertar mais vai dar trabalho, isso falando só em resolução se é 8 10 12bits agora tem a parte de EMC também.

Re: Controle de velocidade motor

MensagemEnviado: 19 Jan 2015 07:26
por andre_luis
longo.251272 escreveu:Utilizando microcontroladores até seria fácil de implementar a lógica, mas perco a precisão quando usar o pwm para obter a terceira tensão já que é difícil encontrar um microcontrolador com dac interno.
Pensei em usar um circuito subtraidor com AOP, mais não fico na dúvida sem vai ficar estável.


Mas a saída do PWM do uC ao ser devidamente driveada e passando por um capacitor vai gerar a tensão DC, não é isso que precisa ?

Re: Controle de velocidade motor

MensagemEnviado: 21 Jan 2015 19:52
por edison
longo.251272 escreveu:...........A aplicação é para controlar a tensão de um fio que está sendo puxado. Esse fio passa por um polia de arraste que está acoplado ao motor e depois passa por um sensor de tensão. O circuito tem que ficar monitorando esse sensor e aumentar ou diminuir a velocidade do motor que esta puxando esse fio para ajustar a tensão dele de acordo com a pré determinada...........


VI algo semelhante numa máquina de empalar revistas. O filme plástico passa por vários cilindros "esticadores" antes de entrar na máquina.
Num dos cilindros tem uma haste que atua um potenciômetro e esse envia qualquer variação direto ao inversor de frequência do motor de tração.

A sensibilidade da correção é feita nos parâmetros de rampa de aceleração e desacel. do inversor.
Nos extremos desta haste há sensores indutivos os quais só atuam se ocorrer excesso de velocidade ou rompimento do filme tracionado e assim desligando o sistema.

O maior cuidado nesse conjunto é com a parte mecânica ,os rolamentos e mancais dos rolos tem que estar 100% se não o mecanismo fica muito "nervoso" nas correções e desligamentos constantes.

Achei algo que ilustra isso :

Imagem

Aqui tem outras opçoes: ( didática e traduzido de gratis :D )

http://www.carotron.com/applications/csag-h/

Re: Controle de velocidade motor

MensagemEnviado: 21 Jan 2015 20:55
por longo.251272
O sensor que vou utilizar é o que está neste link www.retech-godet-rolls.ch/yarn-tension-sensors.html
Este link mostra um sistema completo sartek.in/sr-12

Aqui no Brasil é conhecido como alimentador positivo. Escolhi o microcontrolador attiny45 por já ter ele aqui e tem ADC e PWM, preferi usar microcontrolador por ter a facilidade de ajustar as rampas de aceleração e desaceleração. Só preciso tomar cuidado na parametrização do pwm, para ele ficar 100%.

Valeu pessoal.

Re: Controle de velocidade motor

MensagemEnviado: 17 Fev 2015 12:03
por longo.251272
Boa tarde pessoal, fiz alguns testes na aplicação e estou tendo uma tensão de 1 volt parasitada no sensor. Para eliminar esse 1 volt estou pensando em usar um circuito subtrador usando AOP. Vou ver se consigo deixar a resposta do adc mais rápida, para dar a possibilidade de pegar vários valores para calcular a média.

Estou usando o attiny13a. Valeu

Re: Controle de velocidade motor

MensagemEnviado: 28 Fev 2015 22:31
por mega.rod
Esta solução que o Edson menciona funciona bem. Por aqui chamam de bailarina. Já apliquei com CLP. É bastante simples e exige apenas 2 sensores ON/OFF simples e baratos(30 conto cada). Já ouvi que funciona também com potenciômetro preso no eixo da bailarina. A sacada do programa com sensores é começar a operação da máquina em velocidade baixa e a cada faixa de velocidade você corrige mais ou menos velocidade, ex.: No começo, quando a velocidade esta devagar, você adiciona/subtrai x rpm ao motor, mas quanto a velocidade já está alta, na nominal por exemplo, você corrige  x/y apenas para fazer o ajuste fino. Caso um sensor fique acionado por um período, a cada x tempo você corrige mais x de velocidade.



Independente da solução ser na base da eletrônica ou automação mais tradicional, acredito que para cada faixa de velocidade você vai precisar de tempos de respostas diferentes para não acorrer os problemas com o controle P(proporcional) mencionado pelo amigo KrafT. Esta sua necessidade já vi em uma fiação onde uma máquina importada aplica este controle muito bem. Para o controle da tensão do fio existe um inversor de frequência especial que queimou e o tal inversor é fabricado pelo próprio fabricante da máquina. Quiseram nacionalizar a solução com uma empresa local que não conseguiu fazer funcionar com Servoacionamento. No final das contas tiveram que importar o tal inversor por um preço grotesco, algo em torno de R$35000,00.



Espero ter ajudado!