Página 1 de 1

linearizar temperatura

MensagemEnviado: 08 Jun 2009 18:41
por Controladores
Ola!

Estou fazendo uma rotina para ler um sensor de temperatura onde o sinal vem 4-20mA converto de 1-5V e faço leitura de temperatura de 0 - 60°C, só que estou tendo um problema, se calibro meu sensor em 25°C e depois coloco ele para medir 40°C a temperatura no sensor é de 40°C mas no meu instrumento é 49°C como faço para corrigir esse problema via software? essa diferença ´´e sempre a mesma e aumenta proporcionalmente conforme a tempearatura sobe. estou utilizando Mikro C

Marco

MensagemEnviado: 08 Jun 2009 18:50
por fabim
tio.
De 4mA está para 0°C, e 20mA está para 60°C ?

Se o resistor for de 500R "PADRÃO"
é de 2 a 8V né ..rs
Div 2.
1 a 4V.

4000mV - 1000mV = 3000mV.
3000mV / 60 = 50mV°C
Ofset = 1000mV.

Seu ADC é de quantos bits ?

"continua no próximo episódio"

MensagemEnviado: 08 Jun 2009 18:52
por _blackmore_
se tu souber qual é o erro dah para fazer com cálculo a cada conversão .. sem tabelas ...
primeiro saiba quanto é o valor da temperatura mostrada com o teu sensor qdo a temperatura estiver em 0 grau Celsius (tu falou que a leitura é de 0 - 60 graus) depois tu deve saber qual é o valor da temperatura mostrada com o teu sensor qdo a temperatura estiver em 60 graus Celsius.
Depois é só usar estes dados para o cálculo de temperatura da escala desejada, vou procurar depois passo a fórmula.

abrax!

MensagemEnviado: 08 Jun 2009 21:30
por _blackmore_
fabim

bixo .. essa forma não seria para sensor linear? pelo que entendi o sensor do amigo não está apresentando linearidade.
agora quando o sensor não é linear como deve ser feito? tabela?

abrax!

MensagemEnviado: 08 Jun 2009 21:50
por fabim
é né cabecinha, mete o pau na minha ispinicação, me chinga, joga na parede, me chama de lagarticha.
Depois vem com essa pensancia de "será que !?!"

Intão black amore.

Olha lá o que ele disse.
1V a 5V.
Se é 4/20MA, e eu perguntei se é 500R padrão.
Se for, o erro ja começou no divisor dele.
4mA em 500R está para 2V
20mA em 500R está para 8V.

Como pode ele converter de 1 a 5 ?rsrs tendeu.

Possivelmente, ele "TERÁ QUE INFORMAR QUAL É O SENSOR, OUVIU AÍ"

Depois que ele responder, e dar mais informação, nós ajudamos ele direitinho. Por enquanto vamos esperar.

Fabim

MensagemEnviado: 09 Jun 2009 00:28
por _blackmore_
fabim

veja isso que o colega disse ...

..como faço para corrigir esse problema via software? essa diferença e sempre a mesma e aumenta proporcionalmente conforme a tempearatura sobe.

bom ... como vc disse .. vamos esperar ..

MensagemEnviado: 09 Jun 2009 09:56
por takapy
Inicialmente, vc precisa de dois pontos pra calibrar seu sistema. Se fosse de 0 a 100 C, poderia usar a água no seu estado sólido (0 C) e no seu estado de ebulição (100 C), mas como o seu sistema vai de 0 a 60 C, o ideal seria pontos os mais extremos possível.

Coloca pra gente, a parte do código que está fazendo a tratativa dos dados...

OBS: geralmente, sensores de temperaturas são lineares. Ou está havendo um erro no código, ou no hardware entre o sensor e o PIC.

MensagemEnviado: 09 Jun 2009 10:15
por takapy
Se a conversão de 1 a 5 V para 0 a 60 C estiver correta, em algum lugar no seu código deve ter a seguinte conta: Temp = 15 x Tensão - 15, que é a equação da reta que converte o seu sistema de entrada (tensão) na sua temperatura.

MensagemEnviado: 09 Jun 2009 13:33
por Controladores
Seguinte

Recebo um sinal de 4-20ma coloco um resistor de 249R (250R) í tenho uma tensão de 1 - 5V.

Meu circuito de 4-20mA não possui um controle de ganho, por isso não consigo linearizar meu sensor.

Então essa linearização devo fazer via software, aí que está a minha dificuldade, em como fazer isso.

Quando recebo sinal linerizado do circuito eu simplesmente multiplico e depois divido para graduar minha escala de temperatura isso sempre funciona bem.

Meu conversor é um PIC18F4520 de 10Bits

MensagemEnviado: 09 Jun 2009 15:13
por EDSONCAN
A escolha de como agir depende da precisão, tamanho da memoria e capacidade de processamento:
1) Cria uma tabela,
2) Lineariza por segmentos de retas, quantos forem necessarios para obter a precisão desejada.
3) decompoem a curva em fatores do tip ax**3+by**2 ...., calcula o grau da equação baseado na precisão e encontra os fatores
4) Analise fractal;
5) etc.


Edson

MensagemEnviado: 09 Jun 2009 16:07
por fabim
Controladores escreveu:Seguinte

Recebo um sinal de 4-20ma coloco um resistor de 249R (250R) í tenho uma tensão de 1 - 5V.

Meu circuito de 4-20mA não possui um controle de ganho, por isso não consigo linearizar meu sensor.

Então essa linearização devo fazer via software, aí que está a minha dificuldade, em como fazer isso.

Quando recebo sinal linerizado do circuito eu simplesmente multiplico e depois divido para graduar minha escala de temperatura isso sempre funciona bem.

Meu conversor é um PIC18F4520 de 10Bits


qual o tipo de sensor ? comercial ?
Qual tipo, PT100, NTC, etc..
pelos seus testes em 40°C, qual a corrente que o sensor gera sobre os 249R
fabim

MensagemEnviado: 09 Jun 2009 16:41
por MOR_AL
Controladores escreveu:Seguinte
....
Meu circuito de 4-20mA não possui um controle de ganho, por isso não consigo linearizar meu sensor.


O controle do ganho não lineariza a função de transferência. O controle de ganho altera o coeficiente angular da sua transferência. Simplesmente multiplica a sua transferência pelo valor do ganho. Se a transferência não for linear, com um ganho qualquer, diferente de zero, a transferência continuará não linear.
Você tem que ajustar dois pontos extremos de temperatura, conforme o colega Takapy disse. A equação que ele mostrou também está correta. A sua conversão, caso a relação de corrente e tensão esteja correta (4mA corresponde a 0V e 20mA correspondem a 5,00V), deve ser:
Temperatura (em graus Célcios) = 15xTensão (em volts, obtida do conversor corrente-tensão) - 15 graus[/b]
Exemplo:
Para i = 4mA --> v = 1V --> T = 0 graus
T = 15x1 - 15 = 0 graus.

Para i = 20mA --> v = 5V --> T = 60 graus
T = 15x5 - 15 = 60 graus

Para i = 10mA --> v = 2,5V --> T = 22,5 graus
T = 15x2,5 - 15 = 22,5 graus

MensagemEnviado: 09 Jun 2009 23:32
por dennisviana
Boa Noite,



Você pode armazenar alguns pontos na EPROM e fazer uma interpolação numérica para obter a curva aproximada do sensor.
Vai ter que pesquisar sobre métodos numéricos (especificamente interpolação).





Atenciosamente,



Dennis

MensagemEnviado: 10 Jun 2009 07:55
por fabim
pô, podem parar gente.
Nem o cara quer ajuda, nem mesmo dar maiores detalhes.
Ele deve pensar que as pessoas tem bola de cristal.
Sou assim, 1 pouco, 2 bom, 3 vai zuar com a %$#$#..