Zelfbouw temperatuurregeling (advies) (geautomatiseerd)

Gestart door AnneW, 13-04-2018 08:33 u

Vorige topic - Volgende topic

0 leden en 1 gast bekijken dit topic.

AnneW

Hallo iedereen,  :) (Nieuw op het forum)

Een maat van mij brouwt hobbymatig kleinschalig bier. Samen zijn we op het idee gekomen om een deel van dit proces te automatiseren. Om te beginnen de temperatuurregeling van de ketel.

Zijn setup voor dit is op het moment:
- Open geslepen biervat als brouwketel
- Gasbrander Powerfire 4 + 30 mBar reduceer + propaanfles
- Losse temperatuur meter
- Koelbox
- Overige apparatuur welke niet van belang zijn bij dit automatiserings deel

Wij zijn op dit moment op onderstaand idee gekomen:


Dit bevat:
Een MQTT server (Laptop) met Wifi hotspot welke de data kan verzamelen en python scripts kan draaien zoals tijdsschemas en real time grafieken kan laten zien.
[Kastje 1]
Een ESP32 met 5 inputs voor digitale temperatuur sensoren zodat er op verschillende hoogtes in de ketel temperatuur kan worden gemeten (Waarschijnlijk zijn er maar 2 of 3 nodig maar liever iets teveel inputs dan te weinig).
[Kastje 2]
ESP32 (met PID in de software)
Solenoid valve voor totale afsluiting van het gas.
Regelbare restrictie voor het behouden van een waakvlam op een hardwarematige manier
Regelbare restrictie met een DC motor (reductie) en een potentiometer voor positiefeedback (Samen dus eigenlijk een servo op een gasrestrictie)

Het plan is om in eerste instantie de huidige ketel te gebruiken voor zowel maischen als wort koken. Op deze manier zou een multistaps maisch proces haalbaar moeten zijn.
Mogelijk toch nog een upgrade van brouwketel in het achterhoofd houden

Mijn vraag aan jullie is:
Is dit een realistische setup?
Wat vinden jullie van het maischen in een pan welke direct wordt aangedreven door een brander? (We zullen de PID dan ook zoveel mogelijk optimaliseren om hotspots te voorkomen)

Voetnoot:
De keuze van de server is om het systeem modulair te houden, op deze manier zouden we dezelfde gas controller ook nog voor andere ketels/doeleinden kunnen gebruiken.
Onze bouw zal niet vliegensvlug gaan omdat wij beide nog student zijn en daar redelijk druk mee zijn, dit levert ook een beperking in het budget. (Kosten beide kastjes +/- 75 euro + Oude laptop)

Alvast bedankt voor jullie advies! :)

mbroek

Een ESP32 is heel goed in staat om zelf de PID te doen, bovendien heb je aan 1 ESP meer dan genoeg. Geen rekenwerk op een externe laptop doen, je ESP moet zelfstandig kunnen werken. Programmeer die met FreeRTOS van expressif zelf en multitasking wordt een makkie.

jaapz

Ik zou het denk ik eerst een stuk simpeler aanpakken met 1 ESP32 ipv 2 en alles op de ESP zelf laten rekenen.

Een PID is super simpel, ik denk dat je langer bezig bent met het inlezen van je inputs en het uitschrijven van je outputs dan met het berekenen van je volgende PID-waarde, dus om nou de IO te verdelen over twee verschillende ESP32'jes en de berekeningen te laten lopen op een laptop lijkt me enorme overkill.

Als het dan later nodig is kan je het altijd nog modulairder maken mocht je dat willen.

AnneW

Bedankt voor de feedback mbroek en jaapz.

Mee eens dat de ESP inderdaad de PID control makkelijk zelf kan draaien, meteen even aangepast.

De verspreiding van de IO is meer gedaan uit gemak van alleen de voeding bedrading omdat de setup niet een permanent plekje kan hebben ivm ruimtegebrek. En om makkelijk meerdere temperatuur probes te kunnen wisselen met een klik op een knop (voor soms mogelijk een kleinere of andere pan). Dit had ik even moeten omschrijven in de tekst.

Dit zou natuurlijk ook kunnen dat er vanaf de sensor probe een kabeltje loopt naar de gasregelaar zonder tussenkomst van een tweede ESP. Ik zal hier nog even over nadenken :)

Dan is het enige wat de (oude) laptop nog doet:
- Programma bijhouden (Meerdere staps temperaturen enz..)
- Grafiekjes live tonen en loggen


AnneW

Mogelijk alternatief:



PID op ESP laten draaien
Verwisselbare probe via connector

Oude laptop voor interface en logging

seed7

Als je tzt verder wilt uitbreiden dan een PID als MQTT client op wat dan ook, een enkele PID op wat vlots kan zo een tiental processen bedienen.

Een broker met daaraan vast de database op de laptop of beter separaat (een RPI met usb schijf).  Dus niet de data base als een aparte client.

Je kunt ook een MQTT client aan een webserver knopen (half af project van me) dat zou ik op de laptop draaien als GUI.

Gebruik "semantische MQTT zinnen" niet sensor/actuator georiƫnteerde.

ESP32 is hot maar voor je sensoren en actuators overkill, een Wemosje (ESP8266) doet dat probleemloos.

Ingo

hansHalberstadt

De gasklep aansturing werkt met een servo zo te zien (de potmeter?) dat kan natuurlijk, maar zal qua regeling lastig zijn, en vereist een roerwerk om de warmte snel te verdelen anders krijg je looptijden en overshoots en/of instabiele regelloop voor de temperatuur.
Zelf gebruik ik alleen een aan uit klep en roerwerk. om overshoots te voorkomen gebruik ik de gemeten temperatuur+ de afgeleide van de temeratuur (dTemp/dt) daardoor slaat het gas al af voordat de temperatuur bereikt is en kun je met de juiste factor in de dTemp/dt een bijna perfecte regeling krijgen. Maar roeren blijft zeer belangrijk daarvoor.

AnneW

Klopt het gas wordt op de volgende manier geregeld:
Naaldventiel => DC motor => Positiefeedback via potmeter

Roerwerk zijn we nu naar aan het kijken, heb jij dit roeren zelf ook geautomatiseerd hansHalberstadt?

hansHalberstadt

Citaat van: AnneW op 14-04-2018  13:15 uKlopt het gas wordt op de volgende manier geregeld:
Naaldventiel => DC motor => Positiefeedback via potmeter

Roerwerk zijn we nu naar aan het kijken, heb jij dit roeren zelf ook geautomatiseerd hansHalberstadt?
Ja het roeren kan ik instellen op verschillende manieren
1) met potmeter via PWM 0-max toeren
2) met aan/uit tijd programmeerbaar via brouwcomputer
3) herhalingsinterval instelbaar via brouwcomputer en aantijd automatisch. in dat geval zit er een vlak voven het vloeistofoppervlak een plaatje met microswitch. als het roeren start begint de beweging onderin de ketel en verplaatst zich naar boven. eenmaal boven gaat het vloeistofoppervlak draaien en dat verplaatst het plaatje en de microswitch beeindigt dan het roeraantijd interval.

In de praktijk gebruik ik vrijwel altijd methode 1. Bij het inmaischen wat harder roeren en daarna rustig zodat alle mout net mooi blijft zweven. Door het roeren mengt de toegevoerde warmte snel en gelijkmatig waardoor de looptijd naar de sensor minimaal is en de temperatuur regeling mooi werkt.     

Henielma

Zelf gebruik ik sinds 2007 een geautomatiseerde brouwinstallatie met een PWM geregelde gasklep en inderdaad een roerwerk. Hier is nog een oud topic van. Misschien kan je er nog inspiratie uit halen. De foto's zitten er helaas niet meer bij. Het roerwerk is in snelheid geregeld afhankelijk van de gasvlam van dat moment.

https://www.hobbybrouwen.nl/forum/index.php/topic,5847.0/all.html

Vandaag weer mee gebrouwen en het werkt nog steeds prima. Deze installatie is overigens de voorloper van wat later Tcontrol is geworden.

hansHalberstadt

Citaat van: Henielma op 14-04-2018  22:45 uZelf gebruik ik sinds 2007 een geautomatiseerde brouwinstallatie met een PWM geregelde gasklep en inderdaad een roerwerk. Hier is nog een oud topic van. Misschien kan je er nog inspiratie uit halen. De foto's zitten er helaas niet meer bij. Het roerwerk is in snelheid geregeld afhankelijk van de gasvlam van dat moment.

https://www.hobbybrouwen.nl/forum/index.php/topic,5847.0/all.html

Vandaag weer mee gebrouwen en het werkt nog steeds prima. Deze installatie is overigens de voorloper van wat later Tcontrol is geworden.
Met een PWM geregelde gasklep bedoel je dan denk ik feitelijk via PWM het gas regelen tussen 0 en 100%?
Samen met een (PID) regelaar heb je dan een continue regeling met de nodige stabiliteitsvoorwaardes zodat de regeling stabiel is en voldoende snel naar zijn eindwaarde regelt. Wat ik me dan afvraag is of dat beter werkt dan een aan/uit regeling die gebaseerd is op setpoint en gemeten Temp+a*dTemp/dt. 

Henielma

Citaat van: hansHalberstadt op 14-04-2018  23:52 uMmet een PWM geregelde gasklep bedoel je dan denk ik feitelijk via PWM het gas regelen tussen 0 en 100% ?
Samen met een (PID) regelaar heb je dan een continue regeling met de nodige stabiliteitsvoorwaardes zodat de regeling stabiel is en voldoende snel naar zijn eindwaarde regelt. Wat ik me dan afvraag is of dat beter werkt dan een aan/uit regeling die gebaseerd is op setpoint en gemeten Temp+a*dTemp/dt.

In werkelijkheid is de regeling tussen 15 .. 100% omdat de klep een minimale waarde nodig heeft om iets open te gaan. Tevens zit er in mijn ook iets van feed forward regeling die afhankelijk van de aansturing in de afgelopen paar minuten voor het bereiken van het setpoint stop zodat uiteindelijk het juiste setpoint bereikt wordt. Een nadeel van met gas werken is dat je echt een goedwerkende vlambeveiliging moet hebben anders moet je er niet aan beginnen. Een waakvlam met thermokoppel is hierbij eenvoudiger dan elektronische ontsteking.

Met een aan/uit regeling krijg je dit ook prima werkend wanneer het vermogen een beetje in balans is met de grote van het brouwsel. Niet voor niets is Tcontrol als opvolger van mijn geautomatiseerde brouwinstallatie alleen voorzien van een aan/uit regeling.

mbroek

Citaat van: seed7 op 13-04-2018  16:30 uAls je tzt verder wilt uitbreiden dan een PID als MQTT client op wat dan ook, een enkele PID op wat vlots kan zo een tiental processen bedienen.

Een broker met daaraan vast de database op de laptop of beter separaat (een RPI met usb schijf).  Dus niet de data base als een aparte client.

Je kunt ook een MQTT client aan een webserver knopen (half af project van me) dat zou ik op de laptop draaien als GUI.

Gebruik "semantische MQTT zinnen" niet sensor/actuator georiƫnteerde.

ESP32 is hot maar voor je sensoren en actuators overkill, een Wemosje (ESP8266) doet dat probleemloos.

Ingo

De Wemos heeft voor mij afgedaan voor het besturen van een brouwinstallatie, die heeft te kort capaciteit om het proces te besturen en tegelijk netwerk verkeer af te handelen. Bovendien heel weinig IO poortjes. Om die reden gebruik ik nu de ESP32, veel meer IO en de Expressif programmeeromgeving met FreeRTOS lost veel problemen voor je op op het gebied van multitasking. De Arduino omgeving is niet echt geschikt door de platte structuur met loops.

Een taakje om de sensoren te lezen, een taakje om je element/gasklep te regelen inclusief PWM, een taakje voor MQTT, een taakje webserver enzovoort. En dan is een dual core systeem heel nuttig om je programma soepel te laten draaien zonder dat er iets blokkeert.


Zoeken met Google op deze site.
Brouwspullen zijn ook te koop via Bol.com.
Als je iets bestelt bij Bol.com (ook andere zaken dan brouwspullen) via deze link steun je het forum.


Het boek van de beheerder van deze site.