por MOR_AL » 18 Jan 2015 10:14
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
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain