Sensor NTC 10K + PIC + CCS

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Re: Sensor NTC 10K + PIC + CCS

Mensagempor MOR_AL » 30 Jan 2014 09:23

andre_teprom escreveu:Olá MOR_AL,

Acho que o mais indicado pra isso - até porque já deve ter isso pronto no MATLAB com raiz média quadrada - seria traçar uma reta considerando como media, os pontos dentro da região linear de temperatura [0,50].

Isso é verdade. Seria algo como calcular os pontos da curva dentro dos limites que ela pareça linear e achar a reta da regressão linear.
Na realidade, como a função é linear, uma opção de reta seria calcular a segunda derivada da curva e igualar a zero. Esse seria o ponto de inflexão. O ponto pertencente à reta r1. A inclinação das reta seria o valor da primeira derivada no ponto encontrado.


Mas na verdade, o conceito desse modelo, é justamente sair do caso mais genérico, que seria uma reta, pois ele dá o comportamento mais próximo do real, permitindo que computacionalmente estimemos o valor na saída.
Mas encontrando uma reta e conhecendo o erro introduzido, pode-se simplificar.
O que sugeri foi justamente poder resolver o problema com qualquer PICzinho, pois os cálculos deixariam de ser com ponto flutuante, calculando logaritmo e passariam a ser com inteiros cm as 4 operações básicas.
Já fiz isso com um termopar do tipo k. Dividi a curva por algumas retas com erro menor que 1ºC, desde 0ºC até 1360ºC.


Por acaso, quem entrar no meu LinkedIn, vai ver anexado um trabalho que fiz na escola técnica, algo muito próximo desse conceito, mas não computacionalmente. Naquele caso, eu gerei um circuito com OTA, que compensava a não linearidade da leitura de temperatuda de um corpo-negro com um foto-transistor.

Mas enfim, o que eu estava curioso mesmo - e pensei em você como a pessoa certa para decifrar isso - era entender como o camarada deduziu aquela formula mais acima, de modo que pudessemos inserir os valores de VCC e R1 como variáveis...

Olha! Há muito tempo, fazendo mestrado, meu professor mostrou como aproximar uma curva por um polinômio. O processo foi usado para determinar os filtros Tchebytchev. Sabe aqueles filtros passa-baixa, com o número de raízes (N), etc? Ele colocava regiões proibidas limites em um eixo cartesiano, definindo a região que a curva polinomial poderia passar.
Quanto mais estreita era a região permitida, menor era o erro da função polinomial com a desejada, mas também, maior era a ordem do polinômio.
O conceito deve ser o mesmo. Ao invés de usar polinômios o cara usou logaritmos. Não sei qual foi a técnica usada.
Quanto à técnica polinomial, confesso que só foi cair a ficha um bom tempo depois. Hoje eu não teria mais condições de fazer. Teria que dedicar alguns dias para tal.
Outra ocasião, com aqueles computadores TK-95 (acho), Aproximei as curvas de um casco de veleiro por trechos de parábolas (equações do 2º grau). Ficou muito bom.


+++


Mas voltando à terra!
Acho que não vale a pena usar uma equação complexa para a curva do termistor. Os termistores não me parecem que sejam feitos com precisão dos parâmetros. Isso leva a crer que se for feito um estudo estatístico, se encontre um desvio que não valha a pena usar o termopar.
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
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Re: Sensor NTC 10K + PIC + CCS

Mensagempor andre_luis » 30 Jan 2014 11:19

EDSONCAN escreveu:Todo o NTC tem um curva logarítmica aproximadamente, se me lembro de calculo numérico da época da faculdade toda curva pode ser aproximada a um polinômio e quando maior o grau maior é a precisão. acredito que o mesmo pode ser feito com uma curva logarítmica e coeficientes.


Então, na verdade, isso não é necessariamente correto não, como pude constatar no trabalho que comentei anteriormente.

Pelo menos na aplicação que fiz no MATLAB, o modelo das medidas baseado no polinomio de grau 2, tinha uma capacidade baixa de representar o comportamento real da grandeza medida, digamos "derrapando" nos pontos que a curva inclinava mais.

Já o polinomio de grau 4, tendia a acompanhar o erro ( os chamados "pontos fora da curva" ).

Nesse caso, o polinomio de grau 3 foi o que melhor atendeu.

EDSONCAN escreveu:Não gosto muito dessa solução devido ao tempo de multiplicação dos coeficientes que não acho muito adequado para um PIC, me lembro que uma vez em um controle de estufa dividimos a curva do NTC em 6 curvas lineares e ajustamos os trechos de maneira a minimizar os erros, como ficou com precisão acima de 1 grau que era o máximo que o display mostrava foi um solução bem adequada ao projeto.


É uma solução bem interessante.
Se não estou enganado, você já havia comentado isso aqui numa outra ocasião, não foi ?



+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Sensor NTC 10K + PIC + CCS

Mensagempor andre_luis » 30 Jan 2014 11:24

MOR_AL escreveu:
andre_teprom escreveu:Mas na verdade, o conceito desse modelo, é justamente sair do caso mais genérico, que seria uma reta, pois ele dá o comportamento mais próximo do real, permitindo que computacionalmente estimemos o valor na saída.
Mas encontrando uma reta e conhecendo o erro introduzido, pode-se simplificar.
O que sugeri foi justamente poder resolver o problema com qualquer PICzinho, pois os cálculos deixariam de ser com ponto flutuante, calculando logaritmo e passariam a ser com inteiros cm as 4 operações básicas.
Já fiz isso com um termopar do tipo k. Dividi a curva por algumas retas com erro menor que 1ºC, desde 0ºC até 1360ºC.


Tem razão, também já fiz de certas artimanhas em microcontrolador de 8-bits pra contornar necessidade de realizar divisões.

+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Sensor NTC 10K + PIC + CCS

Mensagempor EDSONCAN » 30 Jan 2014 13:53

Andre a interpolação polinomial é uma teoria muita conhecida o problema são os cálculos dos polinômios e os graus, confesso que não li o que você fez, mas pense comigo , somente se a equação do NTC for de grau 3, no caso de um polinômio de grau n, os coeficientes acima de 3 terão que ser zerados, não foi o caso, já que você calculou os de grau 4 e o coeficiente 4 não estava zerado, é plausível supor que haja algum erro no calculo.

Edson
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Re: Sensor NTC 10K + PIC + CCS

Mensagempor andre_luis » 31 Jan 2014 20:26

EDSONCAN escreveu:...somente se a equação do NTC for de grau 3, no caso de um polinômio de grau n, os coeficientes acima de 3 terão que ser zerados, não foi o caso, já que você calculou os de grau 4 e o coeficiente 4 não estava zerado, é plausível supor que haja algum erro no calculo...


Edson,



Na verdade, o erro que mencionei acima, não é relacionado ao cálculo, mas sim á medida. São os "pontos fora da curva", facilmente visíveis quando a curva estimada pelo programa é traçada superposta aos pontos medidos. De fato, poderiamos até forçar a barra, e os aproximar manualmente da média - alternado os valores - afim de tornar o modelo mais veridico, mas na ocasião que o trabalho foi feito, havia digamos assim, um rigor científico na execução do projeto.

Bom, quanto aos coeficientes utilizados, foram calculados automaticamente pelo MATLAB, da seguinte forma:

Existe uma função chamada [p,S]=polyfit(x,y,n), que gera o polinômio que modela uma função definida numericamente pelos valores medidos no vetor x e y, ou seja, no caso acima, poderiamos por exemplo inferir os coeficientes do polinômio [p3 p2 p1 p0], apenas com as medidas das variáveis ADRES e temp. Ou seja, a função para a curva seria:

Código: Selecionar todos
ADRES = p3*temp^3 + p2*temp2^2 + p1*temp1 + p0


Desse modo, o juracipereira poderia obter a curva real do NTC que ele está usando, apenas com os valores medidos na prática.


+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Sensor NTC 10K + PIC + CCS

Mensagempor EDSONCAN » 03 Fev 2014 06:57

Usava o Mplab e agora o SCILab, mas tem algumas cálculos que eles fazem que fazendo manualmente os resultados são completamente diferentes, a pouco tempo atras fiz um sistema que simulava um sigma delta, um filtro sinc 3, uma decimilzação e um filtro fiir, resultados completamente diferentes, comprei alguns livros do SCilab e descobri alguns erros que fiz devido ao setup do tamanho de variável e etc, comecei a tentar corrigir, mas não tive muito tempo para ir mais a fundo no problema.

Edson
EDSONCAN
Word
 
Mensagens: 876
Registrado em: 11 Out 2006 14:11

Re: Sensor NTC 10K + PIC + CCS

Mensagempor andre_luis » 03 Fev 2014 11:34

Poisé, esse outro programa aí eu não conheço, mas no caso, o MATLAB possui uma certa vantagem de ser bastante difundido, e assim para obtermos algum suporte nas comunidades científicas fica mais fácil.


+++
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Sensor NTC 10K + PIC + CCS

Mensagempor Andre_Cruz » 11 Fev 2014 07:34

Ola amigo,

Já pensou em linearizar o NTC por hardware ? Algo do tipo

???
--
Ter palavra é tudo !
Andre_Cruz
Word
 
Mensagens: 559
Registrado em: 03 Jan 2009 14:06

Anterior

Voltar para PIC

Quem está online

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

cron

x