Generell tempregleringsmodul

Berätta om dina pågående projekt.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 30012
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Inlägg av MadModder »

Heh... kalibreringen stoppar alltså uppvärmningen vid 100°? Det var en rejäl övervärmning där på 50° :D

Din låda är ju hur bra som helst. Bra jobbat!
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

Korrekt!
Användarvisningsbild
PeterH
Inlägg: 8614
Blev medlem: 15 mars 2006, 15:57:10
Ort: Gävle/Valbo

Inlägg av PeterH »

Hur är det tänkt att detta skall användas rent praktiskt? Det lär ju inte funka att klämma kretskortet mellan två metallbitar :roll: Om jag gissar rätt lägger du helt sonika kretskortet på plattan och värmer... Funkar det här med både pertinax- och fiberlaminat? En sak är säker, det lär inte funka med dubbelsidigt :lol:

Snygg lösning i alla fall, nu finns det ju en hel del lösningar att ta ställning till när man skall börja med ytmonterad i större skala!

/PeterH
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

Det bestyckade kretskortet får ligga direkt på plattan, eller rättare sagt direkt på strykjärnet. :) Värme som värme. Det spelar ingen roll om det är värmestrålning genom luften eller från en platta som kortet ligger på. För att hålla värmen bättre och jämnare ovanifrån kan man sätta en liten plåthuv ovanför kortet så varmluften inte smiter iväg så lätt.

Om du med dubbelsidigt menar kort med komponenter på båda sidor så nej, det fungerar inte med det här. Kort med kopparmönster på båda sidor går bra dock.

Vet ej vad pertinax har för värmebeständighet, men jag antar att det fungerar. Men vem använder pertinax numera?
Användarvisningsbild
PeterH
Inlägg: 8614
Blev medlem: 15 mars 2006, 15:57:10
Ort: Gävle/Valbo

Inlägg av PeterH »

Som jag gissade då... och ja, jag menade förståss komponenter på båda sidorna :P

*Fundering*: Skulle det funka med "dubbelsidiga" kort om komponenterna var limmade? Skulle det vara bättre med en ugn eller brödrost som diskuterats tidigare?

Pertinax använder man när man vill göra en billig prototyp och inte vill slita på borrstålen i onödan, inte lika snygga och hållbara, men som sagt billiga och spar på vektygen :wink:

/PeterH
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Inlägg av mri »

Tveksamt om man kan köra med komponenter på båda sidor när värmen kommer bara från ena sidan. Kortet måste hur som helst sväva lite ovanför plattan. Jag skulle inte vilja att själva komponenthöljena ligger mot plattan. :-) En liten plåthuv över skulle ju hjälpa men... hmmm... det skulle kanske bli en mikrougn.

Brödrosten tror jag faktiskt mer på än en ugn. Jag såg häromdan en brödrost var man sätter in brödskivorna på längden så att säga. Det var ett stort fack istället för två små. Rejält stora kort skulle rymmas in i den.

Man vill ju ha värmen jämt fördelar över kortets yta, samtidigt som det finns så lite övrig massa som kan ta åt sig värme (t.ex. metall) och ge tröghet i systemet. En värmeplatta är bättre ju mindre metall den har, men den måste förståss sprida värmen jämt, dvs metall måste finnas där. Brödrosten består ju av en lång värmetråd som ganska tätt slingrar runt på nån sorts isolerinsplatta. Det borde sprida värmen jämt samtidigt som det inte finns nån metall där... dessutom hamnar värmetråden nära kortet. Inte mycket luft emellan.
Användarvisningsbild
JimmyAndersson
Inlägg: 26308
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Jag tror också tyvärr (pga att jag redan har en ugn) mer på brödrost än ugn för att reflow-lödning. Har iofs inte provat, men det borde vara lättare att reglera värmen om den kommer från en liten värmekälla.


Riktigt fina kurvor (eh..) du fått till! :)
Jag hade ju en liknande tanke i någon annan tråd. Kul att se att det fungerar!
Användarvisningsbild
hyperion
Inlägg: 1306
Blev medlem: 8 maj 2009, 21:19:20
Ort: Nynäshamn

Re: Generell tempreglerings modul

Inlägg av hyperion »

Hej mri,

Skulle du kunna tänka dig att dela med dig utav artikeln "SMD-kort direkt från ugnen" och/eller förklara lite mer ingående. Jag är väldigt intresserad av att lära mig mer om att kontrollera värme/kyla och kunna reglera temperaturen utan overshoot eller undershoot samt med hög precision följa önskad kurva/profil. Inte bara för att kunna göra en reflowugn utan jag har ett par tilltänkta projekt där detta skulle komma till användning (blir garanterat projekttråd av dessa projekt när jag sätter igång med dom)

Använder du fuzzy logic i din kontroller? Speciellt nyfiken på hur man får till funktionen att kontrollern "lär sig" vilka egenskaper den måste anpassa sig till för att reglera med så stor nogrannhet som din kontroller uppnår. Mycket imponerande!
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: Generell tempregleringsmodul

Inlägg av mri »

Det här är ju 6+ år sen... :-)
Men jag ska ta en titt i koden. Jag är inte så säker algoritmen fungerar för peltier element dock, vilket jag antar du skall styra.
Användarvisningsbild
hyperion
Inlägg: 1306
Blev medlem: 8 maj 2009, 21:19:20
Ort: Nynäshamn

Re: Generell tempregleringsmodul

Inlägg av hyperion »

Ha :) Missade att denna tråd var från 2007 :) Nåväl, den har inte blivit mindre intressant med åren ;)

Nu har jag inte bara ett projekt igång så detta är inte tänkt att användas till mitt peltier-projekt även om jag säkert provar :)

Har fler projekt som har med värmekontroll att göra (förutom den mer uppenbara reflow-ugnen jag såklart tänker bygga någon gång). Reglera temperaturen i en egenkonstruerad BBQ smoker så man kan köra "low and slow" är ett projekt som jag och en polare håller på med. Ett annat tilltänkt temperatur-projekt är handtagsvärmare till MC (eller vad man nu vill ha värme i greppen på för fordon) som tar hänsyn till hastighet (windspeed) samt utomhus temperatur och försöker hålla en jämn UPPLEVD temperatur vilket kommer bli intressant att försöka lösa :)

Hoppas du hittar informationen och kanske artikeln. Väldigt imponerad av dina resultat (graferna) och som sagt, inlärningsfunktionen är också väldigt intressant då jag inte kan hålla på att justera PID-värden för att kompensera för alla tänkbara olika variabler och variationer. Det skulle inte vara hållbart.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: Generell tempregleringsmodul

Inlägg av mri »

Som sagt, 6+ år sen... :-)
Letade inte reda på artikeln, utan kollade bara i koden.

Före ugnen kan användas måste den karakteriseras. Jag gör karakteriseringen vid två olika temperaturer, eftersom värdena man får är temperaturberoende. Med två punkter kan jag sedan interpolera/extrapolera fram övriga punkter med någolunda nogrannhet.

Karakterisering går till så att man matar på full effekt till värme elementen upp till en viss temperatur, t.ex. 100'C, och exakt där stänger av effekten. Vid den punkten mäter man uppvärmningsderivatan ['C/s]. Sedan väntar man på att temperaturen skall börja sjunka. Man mäter här hur mycket temperaturen skjuter över ['C].

Dvs. man får två värden per karakteriseringpunkt: maximal uppvärmningderivata vid en given temperatur, samt hur mycket temperaturen skulle skjuta över om man stängde av effekten just vid den temperaturen.

Anta nu att vi befinner oss vid temperaturen T1, och vill höja temperaturen till T2, på ett visst antal sekunder D. Före man börjar sätter man Countdown = D.

Regulatorn updateras en gång per sekund och gör följande:

T = uppmätta temperaturen ['C]
Told = föregående uppmätta temperatur (för en sekund sen) ['C]

// Beräkna maximal derivata och "overheat" för T baserat på karakteriseringsdata
max_derivate = interpolate_derivate(T)
overheat = interpolate_overheat(T)

// Beräkna hur snabbt temperaturen ändras just nu
derivate = T - Told

// Beräkna vilken temperatur vi skulle vilja ha just nu (börvärde)
Twanted = T2 - ((T2 - T1) * Countdown) / D

// Beräkna sluttemperatur om vi stänger av effekten nu
Testimate = T + (derivate * overheat) / max_derivate

// Och nu själva effektstyrningen
if (Testimate < Twanted)
{
output_power = 100%
}
else
{
output_power = 0%
}

Told = T
Countdown = Countdown - 1
Användarvisningsbild
hyperion
Inlägg: 1306
Blev medlem: 8 maj 2009, 21:19:20
Ort: Nynäshamn

Re: Generell tempregleringsmodul

Inlägg av hyperion »

Tack!

Ska ta o labba lite med detta.

Har du några tips på hur man skulle kunna kompensera för olika yttre förhållanden?
Det jag menar är att som jag förstår det så fungerar din kod bra efter att ugnen karaktäriserats. Men bara sålänge temperaturen i rummet där ugnen står är någorlunda konstant. Vad hade hänt om ugnen stod vid ett fönster som stod öppet och det började blåsa kalla vindar runt ugnen? Hade kontrollern kunnat kompensera för detta på ett tillfredställande sätt? Kan bli knöligt att isolera en grill/BBQ smoker tillräckligt för att utomhusklimatet ej ska påverka temperaturregleringsförmågan. som ett exempel.
Användarvisningsbild
hyperion
Inlägg: 1306
Blev medlem: 8 maj 2009, 21:19:20
Ort: Nynäshamn

Re: Generell tempregleringsmodul

Inlägg av hyperion »

En liten fråga till, vad använder du för program för att programmera detta (skriva koden)?
Jag är inte direkt vass när det kommer till matte.
Användarvisningsbild
mri
Inlägg: 1165
Blev medlem: 15 mars 2007, 13:20:50
Ort: Jakobstad, Finland
Kontakt:

Re: Generell tempregleringsmodul

Inlägg av mri »

Den här regulatorn fungerar bra för det den används för, dvs. reflow lödning med relativt konstant omgivning, relativt liten termisk massa i ugnen och liten variation i den termiska lasten.
Hur man skulle modifiera den för att kompensera för stora förändringar i omgivningen, och hur många kg kött du sätter i grillen vågar jag mig inte på att gissa.
När jag ännu höll på med den här hade jag nog fingertoppskänsla på hur algoritmen fungerar och beter sig, men nu är det så länge sen att jag glömt nästan allt, tyvärr.

Koden är skriven i "C" och använder endast heltalsaritmetik (fixed point). Körs på en 16 bitars Renesas mikrocontroller.
Ingen högre matematik.
Användarvisningsbild
hyperion
Inlägg: 1306
Blev medlem: 8 maj 2009, 21:19:20
Ort: Nynäshamn

Re: Generell tempregleringsmodul

Inlägg av hyperion »

Ok,

Ska ta och titta på lite fuzzy logic också och se om jag använda det också.

Tack för hjälpen!
Skriv svar