por MOR_AL » 19 Mar 2011 09:18
Itamar.
Acho que, para equacionar seu problema, você deveria determinar qual é a "constante de tempo térmica" do seu sistema.
Por exemplo:
Sem nenhum controle, parta da temperatura mínima (Tamb ?) e aplique a potência máxima nas resistências, ou Ton = T, ou delta = 100%.
Meça, de alguma forma, a temperatura em seu ponto de monitoração. Você deverá chegar a uma curva bem próxima a uma exponencial do tipo
Temp(t) = Temp_Inicial + Temp_Máx * [1 - Exp(-t / Tal)]
Onde:
Temp(t) é a temperatura que você está medindo, ao longo do tempo t. Por exemplo. Verifique, antes, quanto tempo leva para que a temperatura vá do seu valor inicial até aprox. 90% da final. Suponha que durou T_quase_final = 10s. Divida este tempo por aprox. 10. Então faça delta_T_amostra = T_quase_final / 10 = 1s. Esse deve ser o seu intervalo entre leituras da temperatura.
Temp_Inicial é o valor da temperatura mínima do seu sistema. Talvez seja a ambiente, não sei.
Temp_Máx é aprox. igual a T_quase_final. Na realidade é um pouco maior. No experimento anterior, deixe (se possível ... sem queimar nada) que a temperatura suba até o máximo. aí você terá o valor de Temp_Máx. Caso não seja possível fazer isso, então você poderá ir até um valor, ainda seguro, da temperatura. Aí, para obter a sua constante de tempo, o processo menos complicado poderia ser gráfico.
t são os valores dos instantes em que você deverá fazer as medições da temperatura. No exemplo: t = 0s; t = 1s; t = 2s, ..., t = 10s.
Tal é a constante de tempo do seu sistema. O que você deseja saber. Agora já no seu sistema funcionando, normalmente, dependendo da precisão desejada, bastaria medir a temperatura entre cada Tal / 10 e Tal /100. Quanto maior o valor (Tal /10) mais tempo entre as medições, o que alivia o seu PIC, porém com menos precisão. Quanto menor o valor (Tal / 100) você tem menos tempo para medir e providenciar uma correção, porém vai ter mais precisão. Há um valor ótimo a ser escolhido aí. Vamos chamá-lo de Totimo.
Faça um gráfico, Temperatura em função do tempo, e, caso não tenha o valor da temperatuara máxima, tente extrapolar a curva até o valor máximo. Siga a curva e acrescente, suavemente, sem criar desvios inapropriados. Note que há meio de fazer isso com maior precisão, mas como o valor que você precisa (Tal), vai ser usado apenas para estimar o período de amostragem (delta_T_amostra), para saber o período de seu PWM, essa aproximação é perfeitamente válida.
Você pode tirar o valor de Tal tanto por meio da equação, como por meio gráfico. Talvez o meio gráfico seja o mais apropriado para você.
Você tem que medir o tempo que levou do início de suas medidas (t = 0s), até outro instante, que é o próprio Tal. Esse instante é tal (hehe) que:
1 - Reduza toda a curva do valor Temp_Inicial. A curva vai começar em t = 0 e temperatura igual a zero.
2 - Marque uma horizontal a 63% da temperatura máxima. Onde a horizontal cortar a curva, desça com uma vertical até o instante de tempo. Esse valor será o Tal!
Seu PWM pode ser todo por software, caso haja tempo, o que normalmente acontece em casos de temperatura.
O período T do seu PWM será o valor Totimo, escolhido acima. Faça um TIMER cíclico com esse período. Note que este timer será usado nos três PWMs.
Divida esse período por 100, ou outro valor mais apropriado para que T / esse valor dê um número inteiro de us.
No programa.
A forma mais correta de controlar a temperatura seria usando um controle PID.
Já a forma mais simples de controlar a temperatura seria:
"Se a temperatura está menor que a desejada, aumente o delta do PWM, caso contrário, diminua!"
Caso cada resistência deva controlar a temperatura em um ponto, ou local, você deverá fazer isso para as tres resistências. Ou seja monitorar a temperatura em tres pontos diferentes e calcular o valor do delta de cada um dos PWMs. O TIMER é o mesmo, pois o período T dos tres PWM serão os mesmos. Isso é válido caso cada ponto tenha o mesmo Tal, ou valores próximos.
Bons projetos.
MOR_AL
Editado pela última vez por
MOR_AL em 19 Mar 2011 09:24, em um total de 1 vez.
"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