linearizar temperatura

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

linearizar temperatura

Mensagempor Controladores » 08 Jun 2009 18:41

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
Controladores
Byte
 
Mensagens: 180
Registrado em: 05 Jan 2007 17:10

Mensagempor fabim » 08 Jun 2009 18:50

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"
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor _blackmore_ » 08 Jun 2009 18:52

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!
_blackmore_
Dword
 
Mensagens: 1397
Registrado em: 28 Set 2008 13:26

Mensagempor _blackmore_ » 08 Jun 2009 21:30

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!
_blackmore_
Dword
 
Mensagens: 1397
Registrado em: 28 Set 2008 13:26

Mensagempor fabim » 08 Jun 2009 21:50

é 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
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor _blackmore_ » 09 Jun 2009 00:28

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 ..
_blackmore_
Dword
 
Mensagens: 1397
Registrado em: 28 Set 2008 13:26

Mensagempor takapy » 09 Jun 2009 09:56

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.
takapy
Bit
 
Mensagens: 25
Registrado em: 23 Nov 2006 17:31
Localização: Manaus_AM

Mensagempor takapy » 09 Jun 2009 10:15

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.
takapy
Bit
 
Mensagens: 25
Registrado em: 23 Nov 2006 17:31
Localização: Manaus_AM

Mensagempor Controladores » 09 Jun 2009 13:33

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
Controladores
Byte
 
Mensagens: 180
Registrado em: 05 Jan 2007 17:10

Mensagempor EDSONCAN » 09 Jun 2009 15:13

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
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Mensagempor fabim » 09 Jun 2009 16:07

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
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor MOR_AL » 09 Jun 2009 16:41

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
"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
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor dennisviana » 09 Jun 2009 23:32

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
Automação e Eletrônica
dennisviana
Bit
 
Mensagens: 18
Registrado em: 21 Mar 2007 20:16
Localização: Salvador - BA

Mensagempor fabim » 10 Jun 2009 07:55

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 %$#$#..
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x