Gisting volgen met weegschaal

Gestart door hansHalberstadt, 01-01-2015 15:08 u

Vorige topic - Volgende topic

0 leden en 1 gast bekijken dit topic.

hansHalberstadt

Dit is het versterkertje met nulpuntsafstelling met op OP07 operational amplifiers.
de 4 opnemers heb ik in een brugschakeling opgenomen net zoals deze in de originele wegschaal zat.
node N3=3Volt, node N1 is aarde en node n2, n4 zijn de meetingangen naar de versterker.
zo meet de brug de som van de signalen van de 4 opnemers en die wordt dan 500 x versterkt.
de gevoeligheid van de brug is in dit geval dan 29.6 nanovolt/ gram. 

nu verder kijken naar drift van het nulpunt om te zien of deze constuctie bruikbaar is om het SG mee te meten tijdens de gisting.

Albertus

Leuk dat je het experiment voortzet. Ik ben heel benieuwd.

Bert

hansHalberstadt

De drift op de offset was toch redelijk groot. Komt mogelijk omdat R9 te klein was zodat de instelpotmeter veel te veel invloed had op de brug. Inmiddels R 9 aangepast naar 500 kOhm op basis van de brugongelijkheid van 1.5 mV gemeten bij 3V spanning over de brug. R1 en R2 ook aangepast naar 1Mohm zodat ze samen ook 500 kOhm zijn op de andere kant van de brug (nodig om gelijke gevoeligheid te krijgen in alle hoeken van de weegschaal)

Weegschaal staat nu met ca 25 kg gewicht erop om te zien of het nulpunt verloopt als ik straks het gewicht eraf haal.
Met onderstaande nulling constructie kun je de steeds ijken bij elke meting

idee is een balg van 2 rond houten platen met binnenband van fiets eromheen. Eea kun je oppompen met aquariumluchtpomp. 40 cm diameter met 50mbar levert al meer dan 60 kg kracht. Hiermee kun je de weegschaal optillen en tegen de gistingsemmer aandrukken en zo komt het volle gewicht op de weegschaal. Bals leeg laten lopen en het gewicht komt op de draagsteunen en je kunt dan de weegschaal nullen.
Eea te besturen via Arduino.
Maar misschien is de zaak ook al voldoende nauwkeurig zonder nullen en dan kun je gewoon het gistingsvat op de weegschaal laten staan gedurende de gisting.

hansHalberstadt

Toch redelijk veelbelovend op dit moment. 25 kg de hele avond op de weegschaal gezet 1000 mV zonder gewicht en met 23 kg erop ca 1400 mV. Na weghalen weer keurig 1000 mV. als je SG wilt meten van bv 50 liter bier met SG=1060 dan is dat 53000 gram. 1 SG punt komt dan overeen met 50 gram en dat komt weer overeen met 0.77 mV. dus voor ±2 SG punten wat overeenkomt met een standaard hydrometer moet je ca 1.5 mV kunnen meten. Lijkt dus te kunnen. Met nulling kan het zeker.

tdp

Hans, mooi om te zien dat je dit weer opgepakt hebt! Lees je topics altijd met veel interesse!

hansHalberstadt

Afgelopen dagen verder gekeken naar de weegschaal. Met een gewicht van 27.3 kg op de weegschaal komt de uitgangsspanning van de meetschakeling keurig binnen 1mV terug op de originele waarde na weghalen van de 27kG. Daarmee lijkt de weegschaal een verwaarloosbaar geheugen effect te hebben, dus hoef je hem niet bij iedere meting te nullen door het gewicht eraf te halen.

De meetversterker moet dan wel heel goed zijn en geen verloop hebben van bv offsetspanning van de versterkers. De gebruikte OP07 opamp is al heel goed, maar de vereiste 50 gram tolerantie voor 1 SG punt afwijking bij 50 liter bier (39nV/g gevoeligheid van de weegbrug) vereist dat het offsetverloop kleiner is dan 2uV. Dat wordt toch lastig, ook voor deze goede opamps.

Oplossing hiervoor is een zogemaande chopperversterker constructie. Daarbij sluit je de ingangs spanning op de weegbrug (brug van wheatstone : https://nl.wikipedia.org/wiki/Brug_van_Wheatstone) eerst positief aan en dan omgekeerd. De uitgangsspanning van de versterkers gaat dan ook positief en negatief tov de evenwichts stand, maar als je nu het verschil neemt van beide uitgangsspanningen dan vallen alle offsets van versterkers eruit.
Wat ik dus wil doen is eerst de brug op een positieve referentiespanning aansluiten (3V via TL431 spanningsreferentie) en dan vervolgens andersom via relais met 2 wisselcontacten.
dan 2 x meten. 1e keer met positieve spanning op de brug, resultaat inlezen via analoge ingang van Arduino. vervolgens brug andersom aansluiten via relais in andere stand en resultaat weer inlezen via analoge ingang van Arduino. Dan beide van elkaar aftrekken en dan heb je een zeer nauwkeurige waarde die overeen komt met het gewicht en dus een bekende relatie geeft met het te meten SG.

Hier een plaatje van de simulatie setup in LTspice.
bv Vout meten op t=0.9s en 1.4 s en verschil bepalen. in de simulatie is dat gedaan door het signaal out 0.5s te vertragen zodat op het zelfde moment het originele en vertraagde signaal er zijn zodat je beide van elkaar kunt aftrekken. test met verschillende offsetspanning laat inderdaad zien dat die eruit valt.





 

hansHalberstadt

Voor een resolutie van minder dan 1 SG punt (=50 gram voor 50 liter wort) heb je 3.9 uV signaal op de weegbrug met aan Arduino met 5 V analoge input met 1024 stapjes heb je 4.9mV per stapje. Dus moet de meetversterker minimaal 4.9 mV/3.9 uV=1250 x versterken. Als je wilt meten van SG=1100 tot SG=1000 voor 50 kg dan moet je 5 kg verschil kunnen meten en dat is 490 mV. Maar het is beter om het maximale bereik van de analoge input van de Arduino te benutten met wat marge. Stel dat je analoge input dan nominal op 2.5 V staat en kan variëren van 1 V tot 4 V bij 5 kg =3 V dan is de benodigde versterking dus +/-1500 mV bij een brugsignaal van 5000*39 nV= +/-195 uV dus versterking is dan 13000 x maximaal. met wat extra marge lijkt een versterking van 5000 x in de praktijk een goede keuze. (resolutie is dan 0.25 SG punt)

De procedure om te meten in de praktijk is dan als volgt:
1) Zet het gistingsvat op een normale personenweegschaal en meet het totale gewicht en noteer dat. Meet ook het begin SG of Brix.
2) zet gistingsvat op de 'SG weegschaal'
3) stel met de instellingsknop de SG weegschaal af zodat deze 0 aangeeft (begin ijking)
3) geeft in het bijbehorende programma de volgende inputs
    -totaal gewicht
    -leeggewicht gistingsvat
    -begin SG
4) nu kan het meten beginnen. Elke gram afname van het gewicht levert +/- 195uV signaal naar de Arduino (2 meetcicli met meetbrug positief en negatief) en die berekent hieruit het momentane SG op basis van de ingegeven waarden (totaal gewicht, leeggewicht vat en opgegeven begin SG) 
         

hansHalberstadt

Inmiddels de schakeling met omschakelbare brugpolariteit en 5000x versterking (voorlopig via dubbele wisselschakelaar in de testschakeling) gebouwd en aangesloten op de weegschaal. via een instelpotmeter kan ik de brug afstellen zodat die geen signaal afgeeft na 5000x versterking van (Vbias+deltaV of Vbias-deltaV bij schakelaar in beide standen met deltaV=0mV en Vbias ingesteld op 2.5 V ) met het volle gewicht erop (27 kg watertank plus 3500 g ijzer)

Met 1000 gram extra gewicht geeft de schakeling deltaV=+/-140 mV
Na 1 dag met volle gewicht erop bleek dat  deltaV nog steeds minder dan een paar mV was. Dat betekent dus dat je een verloop hebt van minder dan een SG punt over een dag tijd. Dat lijkt veelbelovend.
Wel is het zo dat Vbias al snel 100 mV of meer kan verlopen. Dat is op zich niet erg omdat Vbias bij het meten eruit valt, maar Vbias mag niet te ver verlopen anders valt de te meten spanning niet meer binnen de 0-5V van de Arduino analoge ingang. Optie is om Vbias via de Arduino steeds bij te tunen.
Zoals het er nu naar uit ziet is het dus mogelijk om het SG te volgen van ca 30-50 liter bier met waarschijnlijk 1 SG punt nauwkeurigheid met een simpele omgebouwde personenweegschaal (met 4 opnemers) van ca 20 euro.

hansHalberstadt

Vanavond de weegschaal voorzien van 2 nette afgeschermde kabels en de testprint weer aangesloten. Met zulke kleine spanninkjes van microvolten zie ik dat je last krijgt van thermo elektrische effecten door zeer lokale temperatuurvariaties gaan de aansluitdraden ook spanningkjes maken als de temperatuur lokaal verandert. Dat blijkt de hoofdreden waardoor de bias instelling verloopt. door het geheel straks in een kastje in te bouwen verwacht ik daar geen last meer van te hebben omdat de temperatuur dan egaal gelijk is in het kastje of overal even snel verandert.

Je ziet wel heel mooi dat toevoegen van bv 50 gram bij een gewicht van 30 kg bij de ene stand van de schakelaar 10 mv erbij komt en in de andere stad er 10 mV afgaat. Dat toont aan dat het idee werkt en je 50 gram nauwkeurig kunt onderscheiden op een gewicht van 50 kg.

Morgen verder met de Arduino.   

hansHalberstadt

Het probleem lijkt toch veroorzaakt te worden door het principe van de schakeling. Er is een opamp gebruikt me input clamp diodes en die zorgt voor een ongewenst meekoppeleffect op de andere opamp en ook een latch toestand.

Vandaag de constructie vervangen door een echte instrumentatie versterker

bijgaande meetdata in Excel gestopt. met 30 kg op de weegschaal en bij 30 kg delta (verschil tussen digitale waardes met Arduino met schakelaar in stand 0 en 1) op 0 afgesteld.
andere grafiekjes zijn bij 53 g, 204 g en 1000 g extra tov 30 kg
er is een lineair verband tussen delta AD waarde en het gewicht volgens:
gewicht=9.7xdeltaAD-24.
Voor 27 kg komt 1 SG punt overeen met 27 gram en bij 50 kg is dat 50 g
dus SG bepaling op 1 SG punt lijkt zeker mogelijk met dit systeem.
Nu nog kijken hoe eea verloopt over temperatuur en tijd.

hansHalberstadt

Hier een voorbeeld van een meting die ik gisteren herb gedaan met de arduino analoge input aangesloten op de weegschakeling.

je ziet horizontaal de genomen samples en verticaal de gemeten AD waarde (van 0 tot 1023) bij sample 40 en 66 schakel ik met een wisselschakelaar de andere polariteit in van de spanning op de meetbrug van de weegschaal De gewicht informatie zit in het verschil tussen beide situaties a -b, in dit voorbeeld zit de stand a rond AD=512 en de stand b rond AD=538 dus a-b=26. (overeenkomend met 204 gram gewichtsafname tov het nullingnivo van in dit geval 30 kg) De ruis is ca 4 AD waardes, maar die kun je uitfilteren door het gemiddelde te nemen van bv 100 samples. Dat ga ik allemaal nog implementeren in de software.

als de zaak straks goed werkt dan kun je de weegschaal laten nullen met het gistingsvat erop aan het begin van de gisting. Het systeem regelt dan de weegbrug zodanig af dat a-b nul wordt. Als dan het gewicht langzaam afneemt omdat het SG zakt wordt a-b steeds groter en is een nauwkeurige maat voor het SG.

Vanavond ga ik nog een keer meten of het nullingsnivo is verlopen en of het temperatuurafhankelijk is.     

hansHalberstadt

Gisteren een eerste schatting gemaakt van het verloop over temperatuur en tijd.
Na een dag blijkt bij dezelfde omgevingstemperatuur het gemeten gewicht nauwelijks te verlopen. De temperatuur invloed is echter wel aanwezig en wordt veroorzaakt in de weegschaal.
Bijgaande Excel sheet laat de resultaten zien.
Ik heb gemeten bij 30 kg gewicht op de weegschaal en de uitkomt om 0 geregeld bij 13 ºC en 30 kg (gemeten waarde is dan 1.21)
Met 204 g extra gewicht meet ik 21.95
Daarna temperatuur van de meetruimte verhoogd naar 23 ºC en 2 uur gewacht voor ik gemeten heb
30 k g+ 0 g, 23 ºC :gemeten waarde=-39.2
30 kg + 203 g, 23 ºC :gemeten waarde=-18.2

Op  basis hiervan kun je concluderen dat de schaalfactor nauwelijks temperatuurafhankelijk is (-39.2-18.2=21.0 en 21.95-1.21=20.7=9.7gram/eenheid)  maar het nulpunt wel ca 40 eenheden verloopt per 10 ºC=4 eenheden/ ºC en dat is dus ca 39 gram/ ºC en dat komt weer overeen met ca 1 SGpunt verloop per  ºC omgevingstemperatuur verloop bij 40 liter bier

Om nauwkeurig te kunnen meten ga ik daarom nog een temperatuurcompensatie via een sensor in de weegschaal toevoegen.   

hansHalberstadt

Gisteren en vandaag verder nagedacht over de temperatuurcompensatie.
Volgens de LTspice simulaties gaat dat lukken met een PWM signaal vanaf de Arduino. Hiermee kan ik in 256 stappen een temperatuurcompensatie toepassen met onderstaand principeschema. Er zit een filter in (C2,C3,C4 en R6,R7,R10,R11) wat het pwm signaal omzet naar een gelijkstroom zodat het meetsignaal nog steeds binnen digitale waarde (0-1024) blijft.

Er komt dan een temperatuursensor in de weegschaal  en via aan tabel in de software kan ik dan een volledige temperatuurcompensatie doen.
 


Petertje

Is de temperatuur compensatie echt nodig? De massa van de totale vloeistof is onafhankelijk van de temperatuur, het is alleen het volume dat wijzigd. Zou je de temperatuur schommelingen niet kunnen afvangen door de weegschaal te isoleren? Nu ga je mogelijk de weegschaal corrigeren op een temperatuur gemeten in het gistvat.

hansHalberstadt

Citaat van: Petertje op 22-04-2017  15:44 uIs de temperatuur compensatie echt nodig? De massa van de totale vloeistof is onafhankelijk van de temperatuur, het is alleen het volume dat wijzigd. Zou je de temperatuur schommelingen niet kunnen afvangen door de weegschaal te isoleren? Nu ga je mogelijk de weegschaal corrigeren op een temperatuur gemeten in het gistvat.
Het gaat om het temperatuurverloop van de weegschaal zelf, niet om dat van het gistende bier, het SG daarvan wordt immers altijd verrekent naar 20 ºC en door opwarmen wordt het gewicht van je wort niet anders.
De weegschaal verloopt ca 40 gram per graad Celsius. maw: als de temperatuur in de gistingskast 1 graad verandert dan maakt de weegschaal een fout van 40 gram en dat is al snel 1 SG punt. vandaar de compensatie via temp sensor in de weegschaal. De temperatuur in je gistingsruimte kan makkelijk een paar graden variëren als je de temperatuur van je wort naar constante temperatuur regelt.

hansHalberstadt

Mbt de (ongewenste) temperatuur afhankelijkheid van de weegschaal ben ik nog eens wat verder na gaan denken. Ik denk dat ik nu begrijp waar die echt vandaan komt en hoe je het dus principieel kunt oplossen. (Ik realiseer me dat eea nu erg technisch wordt, maar wel van belang om eea netjes op een rijtje te hebben, mocht dit project gaan slagen)

Tot nu toe gebruikte ik de standaard weegbrug zoals die in de weegschaal zit (Brug_van_Wheatstone) met 4 sensors gecombineerd en daaraan toegevoegd extra weerstandsdelers om het brug evenwicht af te stellen op het nominale gewicht van het gistingsvat om zo de volle 10 bits van de AD conversie mbt de arduino te kunnen benutten rond het gewichtsverloop tijdens de gisting.


Punt is nu dat de weegsensoren weerstanden zijn met een temperatuurcoefficient (waarschijnlijk koper met TC=0.0039), terwijl de externe afstelweertanden veel kleinere temperatuurcoefficient hebben en op een andere plek zitten. Door de kleine gevoeligheid van de meetbrug (ca 65nV/gemeten gram bij 5V brugspanning) ontstaat het probleem dat door de externe afstelweerstanden geïnjecteerde compensatiestroom vrijwel constant is, maar omdat de sensor weerstand toeneemt met 0.4% per  ºC ontstaat er meer geïnjecteerde spanning in de brug als de temperatuur van de weegschaal oploopt. omdat ik nu ca 1.5 uA injecteer in 1 kohm brugweerstand (1.5 mV) om de brug in evenwicht te krijgen ontstaat een temperatuurafhankelijk signaal van 1.5 uA x 0.0039 x 1 kohm=5.8 uV per  ºC. En dat terwijl de gevoeligheid van de brug voor gewicht maar 65 nV/gram is.
Dat betekent dus een temperatuurafhankelijkheid van 5.8 uV/ ºC een fout veroorzaakt van 5.8 uV/65nV = 89 gram/ ºC verloop.
Dat is ook ongeveer wat ik meet.

De oplossing is om  de brug niet te nullen met weerstanden, maar met een spanning.

Dat ga ik nu verder onderzoeken om te zien hoe dat in de praktijk te implementeren. Als dat lukt kan de temperatuursensor en compensatie er weer uit.

hansHalberstadt

Vanmiddag geprobeerd de temperatuurcoefficient van de brugrekstrookjes te meten. Daartoe de weegschaal in mijn temperatuur geregelde gistingskast gezet, eerst een paar uur bij 12 ºC  dat gaf R=1995ohm tussen plus en min van de brug met rest van de brugweerstanden verwijderd. idem bij 22 ºC, nog steeds 1995ohm na paar uur wachten. lijkt dus een voor mij niet meetbare temperatuurcoefficient te hebben en zeker veel kleiner dan die van koper. (dan zou R naar 1.04 x 1995=2074ohm moeten en dat had ik kunnen detecteren)

Maar dit neemt niet weg dat het principe met kalibratieweerstanden parallel aan de brug beter vervangen kan worden door het principe met een spanningsbron in een van de brugtakken. als die spanningsbron een juiste constante factor x de brugspanning is dan kun je het geheel precies nullen met als het goed is geen temperatuurcoeffiient.

Dat kan als volgt:


Ik ga nu de bestaande schakeling ombouwen om het geschikt te maken voor dit principe en dan nog eens temperatuurcoëfficiënten meten en hopen dat het dan beter wordt.

hansHalberstadt

Gisteravond de schakeling aangepast en gisteren gemeten bij 10.4 ºC omgevingstemperatuur met 0 gram en 3860g op de weegschaal. vanmorgen idem bij 20.4 ºC
Zie bijgaand resultaat.
Schalingsfactor is binnen 0.5% nauwkeurig over 10 ºC temperatuurvariatie.
Temperatuurcoefficient is ca 11gram/ ºC bij 0 gram en 13 gram/ ºC bij ca 4 kg.
Dit is voldoende nauwkeurig om zelfs zonder temperatuurcompensatie het SG te meten van 20-50 liter gistende wort binnen 1 SG punt nauwkeurig. Met temperatuurcompensatie kun je binnen 1SG punt het SG bepalen over het hele temperatuurbereik.

Ik ga nu verder met het maken van het complete prototype, wetende dat de schakeling en het principe voldoende nauwkeurig is in combinatie met een goedkope personenweegschaal.

hansHalberstadt

Citaat van: hansHalberstadt op 23-04-2017  10:00 u89 gram/ ºC verloop.
Dat is ook ongeveer wat ik meet.
Hier zit nog een foutje in, nl dat ik 10 ºC temperatuurverschil had en dus 89 gram/10 ºC verloop=8.9 gram/ºC
Dus factor 10 beter dan ik dacht. Omdat de temperatuurcoëfficiënt van de rekstrookjes ook veel kleiner bleek dan eerst gedacht (geen koper, maar toch iets wat vrijwel niet temperatuurafhankelijk is) is eea wel weer in overeenstemming. Feit blijft dat het laatste schema wat ik nu gebruik met spanningscompensatie van de brug ipv stroomcompensatie toch principieel beter is, dus ga ik daar mee verder zoals al gemeld.

hansHalberstadt

Vandaag het relais en wat componenten binnengekregen zodat ik het prototype kan afmaken.
Het relais wordt via het Arduino bordje aangestuurd en maakt de normale of omgekeerde spanning op de weegschaal brug voor de chopperverschilversterker (de 3 zwarte opamp blokjes op de print ). Ik ga nu het complete printje en kastje verder aansluiten en het programma'tje voor de communicatie met de laptop en het Arduino programmatje verder afmaken.


hansHalberstadt

Het printje is helemaal aangesloten en ik ben het nu aan het testen met weegschaal en temperatuursensor aangesloten.(temperatuur sensor komt in de weegschaal voor temperatuurcompensatie)

Via en tussenversie van het programma kan ik het relais voor de brug ompoling besturen en de data voor temperatuursensor en dat van de weegbrugversterker inlezen. De volgende stap is het definitieve programma schrijven waarmee het SG gemeten en gelogd wordt.
 

hansHalberstadt

Inmiddels het programma zo ver dat ik data kan loggen van de temperatuursensor en het gewicht.
de resolutie is 10 gram en in onderstaande grafiekje wordt elke minuut een meting gelogd.
bovenste grafiekje aan onderkant is referentiegewicht (in dit geval 0g) en boven is met 1000g extra op de weegschaal. het verschil is ca 100 punten (1 punt is dus ca 10 gram).

voor 20 liter bier komt 1000 g verschil overeen met SG afname van 50 SG punten. voor 50 liter bier is dat 20 SG punten voor een kilo. Ik verwacht een nauwkeurigheid van ca 50 gram. Dit geeft een indicatie voor de nauwkeurigheid van de SG meting ca 2.5 SG punt voor 20 liter bier en 1 SG punt bij 50 liter bier. 
 

hansHalberstadt

Inmiddels weer verder gekomen. Het kastje bleek problemen te geven in combinatie met de laptop die ik in de brouwerij gebruik terwijl met mijn gewone laptop verstoring van het gemeten gewicht optrad van ca +/- 50 gram. De USB communicatie va de brouwerij laptop werd zelfs zodanig verstoord dat hij ermee ophield. Toen ik de 12 V adapter voeding die het kastje voedt verving door een auto accu was het probleem opgelost. De oorzaak is dus de storing van de adapter. Ook de meetdata ziet er nu nog veel strakker uit. Ik kan nu dus pas de echte nauwkeurigheid van het kastje+ weegschaal gaan bekijken, maar ziet er veelbelovend uit. 

hansHalberstadt

Vandaag gekeken hoe ik het SG moet berekenen uit de gewicht data.
Wat je moet opgeven is het leeggewicht van je gistingsvat, het totale begingewicht, te meten met bv een personenweegschaal en het begin SG (via hydrometer of refractometer)
daarna kun je via de gemeten gewichtsafname simpel het huidige SG meten.
Het weegsysteem zet je op 0 aan het begin van de gisting en dan meet het systeem vervolgens de gewichtsafname met ca 50 gram nauwkeurig.



hansHalberstadt

Vandaag het gewicht gemeten met 21.7 kg op de weegschaal, toen op 0 gezet en daarna gewichten van 999.4 g en 3862 g toegevoegd.
Bijgaand plaatje laat het verloop over een dag zien.
Eerst de 999.4 gram erbij, daarna de 3862g en daarna samen (3862+999.4 g) elke minuut 1 meetpunt.
De gevoeligheid blijkt 9.52 gram/DA waarde (ca 500 bij 3862+999.4 g en -6 bij 0 gram tov 21.7 kg)
De eerste uren verliep het nulnivo van -6 naar -10 (ca 40 gram) daarna bleef hij op -10 staan.
Dus verloop over de eerste uren is ca 40 gram en daarna geen verloop meer.



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.