Kan skriva litt om korleis eg løyste det, viss det skulle vera av interesse. Det er litt meir komplekst (ikkje nødvendigvis betre) enn STC løysinga, og ein bør sikkert ha litt kjennskap til programmering og reguleringsteknikk om det skal prøvast.
Problemet var at eg skulle på ferie og ville ha oversikt på gjæringstemperaturen. Temperaturen vert oppdatert kvert minutt og kan sjåast på ei nettside eg har frå pc eller mobil.
Ein arduino styrer alt, og presenterer i tillegg data på eit 2x16 LCD display. Heile stasen ligg i ein koblingsboks og er kobla på breadboard, så det ser ikkje så profft ut. Har planer om å lage eit eige kretskort til denne så då blir det sikkert bra.
Akkurat no er det PID regulering i eit kaskadeoppsett, eg hadde i utgangspunktet tenkt å "overengineere" det ved å nytte kalmanestimator og meir avansert reguleringsteknikk som t.d. LQG saman med adaptiv regulering, men det tok litt for lang tid og eg måtte få det til å virke først, og det vart ikkje jobba so mykje meir med det i ettertid. Kanskje til sommaren
Har og leikt med tanken å legge inn eit RTOS på arduinoen.
Brukte ein raspberry pi som tar i mot målinger frå Arduinoen og dytter dei til ei nettside eg har, som presenterer målingane med ein highcharts graf (Viktig å nytte lokale resursar, Highcharts er i frå Vik i Sogn).
Nettsida er
http://folk.ntnu.no/erlenese/ og det går an å sjå på historikken der. (Det står berre corneliusfat i skapet no)
Eit blokkskjema eg lagde i draw.io:
Eg har ein nettverks kabel (Cat6, utp) som går frå Arduinoen og inn i kjøleskapet gjennom overløpsslangen, då slapp eg å lage hol. (Eg måtte lage hol i toppen til tappetårn seinare, men men).
I kabelen har eg kommunikasjon (one wire) til DS18B20 sensorar, samt forsyning til vifter som skal sirkulere lufta, eit pwm signal som eg har forsterka til 12V.
Eg styrer eit solid state relè direkte frå arduinoen, dette fungerer fint, men NB! når eg bestilte 10 SSR, så var 2 av dei defekte (det kom ulydar av dei)
Eg har laga eit loopskjema til kontrollalgoritmen (det er litt rotete då det ikkje var laga for presentasjon, eg hadde eit anna oppsett der eg ikkje målte vørteren direkte, ref "gammalt system")
For å måle vørteren indirekte på utsida teipa eg fast en sensor med ein bit av eit liggeunderlag utpå slik at lufttemperaturen skulle påvirke i minst mogleg grad. Eg tykte at dette ikkje var godt nok under stormgjæringa då mesteparten av dynamikken foregår og ville prøve å måle direkte.
For å måle vørteren direkte, utan å legge ebay sensorane oppi ølen så kjøpte eg ein themowell frå bryggmaker. Det er den dyraste investeringa til gjæringsskapet, og det var sikkert fullstendig overkill, men den var veldig fin og eg fekk super service. Det er ca 1,7 grader forskjell (kaldare utfor) frå midten av vørteren og å måle den på utsida når vørteren er rundt 17 grader. Eg har planar om å logge differansen mellom direkte og indirekte måling betre neste gang eg skal brygge for å sjå om det faktisk er noko poeng i det, eller om det er godt nok å måle indirekte.
For å sirkulere lufta, brukte eg 2 stk 120mm pc vifter, og 2 stk "aksial" vifter (ebay). Dersom eg ikkje sirkulerer lufta så er det stor forskjell mellom temperatur foran og bak gjæringskar so eg vil anbefale å ha vifter, då kan du kjøle lenger og slepp at kjøleskapet må slå seg av og på så ofte. Eg styrer viftehastigheita med ein PID regulator, men det er ikkje nødvendig, det held å slå på viftene når du slår på kjøleskapet, og så slå dei av igjen ca 5 minutt etter kjøleskapet har slått seg av.
Med kaskadeoppsettet er temperaturen styrt med ca 0.1 grad nøyaktigheit, og kjøleskapet slår av på ca kvert 40. minutt. Om du ser på "kølsch" fanen på nettsida kan du sjå forskjellen mellom hystereseregulering (STC metoden) og kaskade PID regulering (eg la inn PID laurdag 22/8 rundt 12) oversvinget der er fordi eg ikkje hadde tuna regulatoren skikkelig, og anti windup på integratoren var litt dårleg.
Eg klarte å kortslutte 12V spenninga til viftene i raspberry pi bussen, og den tok kveld, (breadboard er ikkje ein bra løysing) og har derfor ikkje fått logga fleire brygg sidan då.
Har fått tak i ein ny raspberry og skal lage eit dedikert kretskort til arduinoen, og bruke ein ESP8266 til å få wifi på den så eg slepp å koble til raspberryen med ledning.
Har og planar om å få lagt inn slik at eg kan fjernstyre settpunkt og tuningvariablar slik at eg slepp å omprogrammerer for kver gang eg skal gjera endringar.
Og ein rotasjonsenkoder med knapp til å styre menysystemet til displayet.
Under kegerering har eg leikt med tanken om å få lagt inn vektsensorar som skal måle kor mykje øl det er igjen på fata og CO2 flaska, har skissert ut at eg kan bruke trykkresistive sensorar, og ein ADC med i2c kommunikasjon inni kjøleskapet, men såg at nøyaktigheita til desse trykkresitive sensorane er ganske dårleg.
Eg har og fundert på å få målt SG under gjæring, men har ikkje komt fram til noko løysing som ikkje innebærer å måle vekta på noko som ligger i vørteren. Eg lurte på om vekta på vørteren endrar seg og om dette kan koblast til SG men har ikkje funne noko svar på dette.
Ein liten oppdatering; har laga ein simulator i matlab for kjøleskapet. Held og på med ein separat gjærcelle simulator, og planlegger å bruke denne for å legge til vørteren i simuleringa på kjøleskapet, så fort eg finner ut av sammenhengen mellom temperaturutvikling og gjærceller.
Eg har sett litt på "Hardware in the loop" tilnærminga på å utvikle styringssystem, og det verkar veldig interessant, sidan eg no må brygge ein batch for kvar gang eg har lyst å eksperimentere med styringssystemet. Tanken er då at eg kan koble til f.eks ein arduino via seriell på PCen, og kjøre ut målingane fra simulatoren til arduinoen, og den trur at den jobber mot "ekte" verdiar.
Simulatoren gir og eit greit innblikk i korleis kjøleskapet fungerer for dei som kanskje lurer på det. Her er eit skjermbilde frå ei 48 timers simulering:
Det ser veldig likt ut på det folk logger så det lover bra