Mr Compost: Hur man gör en i-kitchen kompost Turbo! (4 / 6 steg)
Steg 4: Genomförande av Feedback temperaturkontroll
Första, låt oss tala om att använda temperaturgivaren. Du ska få några nummer tillbaka från termistor kretsen när du kontrollerar A/D indata tilldelas, vilket naturligtvis inte är grader F. Så behöver vi kalibrera sensorn kretsen. En snabb och smutsig sätt att göra detta är att fylla i ugnsfast form med varmt vatten med ca 160 grader F, sätta en termometer i den, och låt det sitta i bröd maskinen med locket stängt tills termometern når ca 140. Du ska använda fönstret eller gissning och kolla, men försök att kontrollera endast en eller två gånger. När termometern läser omkring 140, Använd ditt program för att läsa A/D ingång och tillfälligt överväga detta antal motsvarar 140 grader. Det blir faktiskt mer som 120-130 grader, men vi ska fixa detta senare. Utöver detta måste du bekräfta om A/D-värde blir större eller mindre när temperaturen ökar. Dessa två bitar av information är nog att börja göra feedback temperaturkontroll.
Alternativ för kundfeedback kontroll
Det finns två sätt att genomföra temperaturkontroll feedback som jag ansåg: Termostatblandare och proportionell-integral (PI).
Termostatstyrning löser problemet mycket hur en gammal termostat för ett hem ugn gör: det visar på värmen full blast tills önskad temperatur uppnåtts, och sedan det stängs av tills temperaturen sjunker en vissa summa under önskad punkt. På detta sätt det cykler mellan dessa två temperaturer, och andelen som cyklar det beror på hur snabbt värmeelementet lägger värme, och hur mycket fördröjning det är mellan värme som läggs till och temperaturgivaren avkänning det.
Jag hittade det termostatstyrning fungerar, men det finns tillräckligt fördröjning mellan värmeelement och temperaturgivare som ugnen kommer overshoot ganska lite (förmodligen nära 200 grader F) när den ursprungligen kopplar på och måste stiga till 140F från rumstemperatur. Detta skapar en marginellt osäkra situation om någon öppnar locket ett par minuter efter enheten drivs först på. Det kommer också att lukta värre om organiskt material oavsiktligt faller på värmeelementet.
Proportionell-Integral (PI) kontroll är lite mer komplicerat, men fungerar bättre. Vi behöver använda det tillsammans med PWM - och jag ska först förklara PWM kort eftersom Wikipedia-artikeln är förvirrande och inleds med fula math.
Bredd för synkpuls modulering: Genomsnitt ON och OFF till något i mellan
Den grundläggande idén för PWM är att när vi får endast något ända aktivera eller inaktivera hela vägen, vi kan uppnå motsvarande halvvägs på verkan genom att snabbt slå på och av och reglerar förhållandet mellan i tid till off-tid. Detta fungerar endast när den sak vi styr naturligtvis i genomsnitt ut pulser på den hastighet med vilken vi byter. Du kan till exempel upprepade gånger peta knappen "puls" i en mixer eller gasen i en bil nästan tillräckligt snabbt för att få en konsekvent genomsnittliga hastighet. Men om du provat att snärta en strömbrytare på och av snabb nog att få i genomsnitt svag belysning, du är ute på tur- ännu en fluorescerande lampa blinkar på och av 120 gånger andra med AC och är i genomsnitt genom våra ögon. För större saker med mer tröghet, pulserna kan komma långsammare och fortfarande vara i genomsnitt. i vårt fall, vad vi bryr oss om är temperaturen av innehållet i en ugnsfast form, som inte kommer att värma och kyla nästan lika snabbt som den omgivande luften i ugnen (eller temperaturgivaren i väggen i ugnen). Om ugnen luften gungor av några grader varje några minuter, detta är acceptabelt och bakning pan innehållet kommer att bo på om medeltemperaturen.
Med detta i åtanke, jag valde 5 minuter som cykeltiden för PWM-styrning av värmeelementet: var 5 minuter, värmeelement aktiveras för mellan 0 och ca 45 sekunder, beroende på vad PI controller vill ha. För att inte vrida värmaren på och av mer ofta därför att byta det handlar koppla ett relä på kretskortet makt, vilket gör klickningsljud varje gång och skulle bära ut mycket snabbare om det var bytt ofta.
Genomföra en PI-regulator
Okej, nu för PI-styrenhet. En förklaring av PI kontroll skulle ta upp lite för mycket utrymme här, så jag hänvisar du till posten rimligen välskriven Wikipedia på PID styra. Anledningen till att jag lämnar bort ett härlett benämner (PI i stället för PID) är att jag vet min kände temperatur kommer att svänga lite hur som helst eftersom PWM cykeln tid är så lång, och svängningarna får jag utan ett härlett benämner är inte större.
Eftersom vi är kontrollerande medeltemperaturen , måste vi se till att vi mäter den genomsnittliga temperaturen för att utföra feedback kontroll - så i början av varje PWM cykel, registeransvarige bör genomsnitt ut temperaturen under sista cykeln att avgöra hur länge att lämna värmaren på för i den nya cykeln.
Resultat och Fininställning
Testa en feedback controller som tar 5 minuter att göra något intressant kan vara en riktig krångel. Ett sätt att göra livet lättare är att automatiskt spela in och Rita vad registeransvarige gör. Ditt planeringsverktyg för mikrokontroller ger utan tvekan en felsökning konsol som du kan skicka text till från ditt program. Dra fördel av detta genom att skicka en kommaavgränsad lista över användbara variabler varje gång din controller uppdaterar sig själv. Sedan kan du bara spara alla dessa nummer i en textfil, importera dem till Excel eller något annat kalkylbladsprogram och snabbt Rita alla variabler på en gång. Excels scatter plot funktion kommer att automatiskt Rita varje kolumn mot den första kolumnen, så om du ser till den första variabeln skickas är tiden, saker kommer att rita fint med standardinställningarna.
Efter lite experimenterande kunde jag få prestanda visas nedan från min PI controller. Nu är jag redo att göra en mer exakt temperatur kalibrering: Jag kan ställa feedback controller till en specifik setpoint utifrån termistor A/D värdet, fyll bakning Pan. halvvägs med vatten och dra in en termometer i det och vänta tills registeransvarige når steady state (noll fel för minst 2 cykler). Nu vet jag att detta särskilt termistor värde motsvarar en viss temperatur. Om jag gör detta två gånger eller ännu bättre tre gånger, kan jag Rita dem och dra en linje som ger mig min konvertering ekvation! Tänk på att din termistor inte kommer att fruktansvärt linjärt över ett brett spektrum av temperaturer, så fokus på att se till att din kurva passar passar med dina data exakt på den önskad setpoint. Vissa fel vid andra temperaturer är bra, den feedback controller fungerar fortfarande.