Stap 4: Implementeren van Feedback/nacht temperatuurregeling
Ten eerste, laten we praten over het gebruik van de temperatuursensor. U zou het krijgen van sommige nummer terug van het circuit thermistor tijdens het controleren van de input van de A/D toegewezen, die is natuurlijk niet graden F. We moeten dus het circuit sensor kalibreren. Een snelle en vuile manier om dit te doen is om te vullen de bakken pan met warm water op ongeveer 160 graden F, zet een thermometer in het, en laat het zitten in de brood machine met het deksel gesloten totdat de thermometer ongeveer 140 bereikt. U zult gebruik maken van het venster of de gok en de controle, maar wil alleen controleren of twee keer. Wanneer de thermometer leest ongeveer 140, gebruiken om uw programma te lezen van de A/D input en tijdelijk overwegen dit getal overeen moeten komen met 140 deg. Het zal eigenlijk meer als 120-130 deg, maar wij dit later zal bevestigen. Naast dit moet u bevestigen de A/D-waarde krijgt grotere of kleinere als de temperatuur stijgt. Deze twee stukken van informatie zijn genoeg om te beginnen doet feedback/nacht temperatuurregeling.
Feedbackopties controle
Er zijn twee manieren van de temperatuurregeling van feedback die ik overwogen: Thermostatische en evenredige-integrale (PI).
Thermostaat is het probleem opgelost veel de manier waarop een oude thermostaat voor een huis oven doet: het draait op de warmte volledige blast tot de gewenste temperatuur is bereikt, en vervolgens het uitgeschakeld totdat de temperatuur een bepaalde bedrag onder het gewenste punt daalt. Op deze manier het cycli tussen deze twee temperaturen en het tarief waartegen het cycli is afhankelijk van hoe snel het verwarmingselement wordt warmte toegevoegd, en hoeveel vertraging er is tussen warmte worden toegevoegd en de temperatuursensor sensing het.
Ik vond dat thermostaat werkt, maar er is genoeg vertraging tussen het verwarmingselement en de temperatuursensor die de oven nogal wat zal overschrijding (waarschijnlijk dicht bij 200 deg F) wanneer het in eerste instantie is ingeschakeld en moet aangaan om 140F van kamertemperatuur. Daardoor ontstaat een marginaal onveilige situatie als iemand de deksel een paar minuten opent na de eenheid voor het eerst wordt ingeschakeld. Het gaat ook om te ruiken slechter als alle organisch materiaal per ongeluk op het verwarmingselement valt.
Evenredige-integrale (PI) controle is een beetje ingewikkelder, maar werkt beter. We moeten gebruiken in combinatie met PWM - en ik zal eerst uitleggen PWM kort omdat het Wikipedia-artikel verwarrend is en met lelijke math begint.
Pulsbreedtemodulatie: Gemiddeld aan / uit in iets tussenin
Het basisidee van PWM is dat wanneer we alleen uitschakelen iets helemaal helemaal mogen, kunnen wij een deel-weg op gelijke werking door snel het aan en uitzetten en regulering van de verhouding van op tijd naar uit-tijd. Dit werkt alleen als het ding dat wij natuurlijk bent controle gemiddelden uit de pulsen op de snelheid waarmee we overstapt. U kan bijvoorbeeld herhaaldelijk de 'pulse'-knop in een blender of het gaspedaal steken in een auto die bijna snel genoeg om een consistente gemiddelde snelheid te krijgen. Maar als je probeerde te flick een lichte schakelaar aan en uit snel genoeg om gemiddeld dim verlichting en u bent uit geluk- nog een TL-lamp knippert aan en uit 120 keer tweede met de AC-levering is gemiddeld uit door onze ogen. Voor grotere dingen met meer traagheid, de pulsen langzamer kunnen komen en nog steeds worden gemiddeld uit. In ons geval, wat we schelen is de temperatuur van de inhoud van de pan bakken, die niet verhit en cool bijna net zo snel als de omringende lucht in de oven (of de temperatuursensor in de muur van de oven). Dus, als de lucht oven schommels door een paar graden om de paar minuten, dit is acceptabel en de bakken pan inhoud over de gemiddelde temperatuur zal verblijven.
Met dit in gedachten, ik koos voor 5 minuten als de cyclustijd voor het PWM-controle van het verwarmingselement: elke 5 minuten, het verwarmingselement wordt ingeschakeld voor tussen 0 en ongeveer 45 seconden, afhankelijk van wat de PI-controller wil. De reden voor het niet draaien de kachel aan en uit meer vaak is dat het schakelen een relais schakelen op de printplaat van de macht, die maakt een hoorbare klik telkens en zou verslijten veel sneller gaat als het werden vaak verwisseld.
Uitvoering van een PI-Controller
Oke, nu voor de PI-controller. Een uitleg van PI controle zou voeren opwaarts een beetje teveel ruimte hier, dus ik naar de redelijk goed geschreven Wikipedia-entry op PID controle verwijzen zal. De reden dat ik uit een afgeleide term (PI in plaats van PID vertrekken) is dat ik weet dat mijn sensormeting temperatuur gaat oscilleren toch een beetje omdat het PWM-cyclus tijd zo lang is, en de oscillaties krijg ik zonder een afgeleide term niet groter zijn.
Aangezien we bent de controle van de gemiddelde temperatuur, moeten we ervoor zorgen dat we meten de gemiddelde temperatuur voor het uitvoeren van feedback beheren -, zodat aan het begin van elke cyclus PWM, de controller uit de temperatuur moet gemiddeld over de laatste cyclus om te beslissen hoe lang om te vertrekken van de kachel op voor in de nieuwe cyclus.
Resultaten en fijnafstemming
Testen van een feedback-controller die duurt 5 minuten om te doen iets interessants kan een echte ruzie zijn. Een manier om het leven gemakkelijker maken is automatisch opnemen en plot wat de controller doet. Uw instrument is voor de microcontroller biedt ongetwijfeld een debug console die kunt u tekst vanuit uw programma. Profiteer hiervan door het sturen van een door komma's gescheiden lijst van nuttige variabelen telkens die je controller zichzelf werkt. Vervolgens, u kunt gewoon alle deze nummers opslaan in een tekstbestand importeren in Excel of een ander spreadsheetprogramma en snel alle variabelen in een keer uitzetten. Excel's scatter perceel functie zal automatisch uitzetten van elke kolom tegen de eerste kolom, dus als u er zeker van te zijn de eerste variabele verzonden is de tijd, dingen met de standaardinstellingen mooi zal uitzetten.
Na sommige experimenten was ik in staat om de prestaties van mijn PI controller hieronder. Nu ben ik klaar om te doen een meer nauwkeurige kalibrering van de temperatuur: Ik kan de feedback-controller aan een specifieke setpoint op basis van de waarde van de A/D thermistor instellen, halverwege de pan bakken met water vullen en een thermometer in het opschorten en wachten totdat de controller steady-state (nul fout voor ten minste 2 cycli bereikt). Nu weet ik dat deze bijzondere thermistor waarde komt met een bepaalde temperatuur overeen. Als ik hiervoor tweemaal of beter nog driemaal, kan ik hen uitzetten en teken een lijn die mij mijn conversie vergelijking geeft! Houd er rekening mee dat uw thermistor niet vreselijk lineaire over een breed scala van temperaturen, zodat focus op ervoor te zorgen dat uw curve passen overeenkomt met uw gegevens precies op de gewenste setpoint. Sommige fouten bij andere temperaturen zijn prima, de feedback-controller werkt nog steeds.