Zelfbouw droogkast o.b.v. Raspberry Pi/Mycodo

Gestart door floriske.nl, september 07, 2018, 11:00:57 AM

Vorige topic - Volgende topic

floriske.nl

#150
Weer behoorlijk wat gedaan vandaag. Alle kabels die ik aan kon sluiten aangesloten.



Alleen de 12/5V voeding (daar moet ik de kabel nog van verlengen) nog en het LCD

floriske.nl

Nu de eerste testrun dan toch eindelijk dichterbij lijkt te komen vroeg ik me af of iemand wellicht eens z'n Mycodo PID instellingen voor temp en luchtvochtigheid zou willen delen.

Ik snap dat dat voor iedere kast anders is maar het geeft me wel een uitgangspunt hoe- en waarmee te beginnen.

floriske.nl

 C00L op m'n I2C aansluiting na is het bordje nu volledig aangesloten (voeding nog tijdelijk) en getest.

De 2 Fans werken, de 2 AM2302 sensoren en de 8 relais ook dus gelukkig lijkt m'n ontwerp op orde te zijn!

1 dezer dagen ook nog even het I2C LCD testen en dan weten we het helemaal zeker.

Tot dusver ben ik tevreden  Wh^^w

floriske.nl

Ik loop tegen een probleem aan waar hopelijk iemand hier me wel mee kan helpen:

Ik heb inmiddels op basis van een screenshot van Ralph een PID controller aangemaakt voor de temperatuur en deze staat proef te draaien. Op dit moment zonder tweaken draait de Temp daarmee met minder dan 1 graad schommeling.

De Heater en Koelkast worden nog wat vaak geschakeld naar mijn zin dus er moet nog wat getweakt worden maar dat komt wel goed.

Nu wil ik voor de RV ook een PID controller aanmaken met de luchtbevochtiger voor Raise en de koelkast voor Lower. Echter krijg ik dan de melding dat de koelkast output al in gebruik is bij een andere PID controller en dus niet gebruikt kan worden.

Nu kan ik dit oplossen door de koelkast parallel op een tweede relais te zetten maar het lijkt me dat dit ook anders moet kunnen. Of niet .... ?

BertM

praat je nu over een geschreven  programma?

floriske.nl

#155
Dit gaat over de Mycodo Software voor de Raspberry Pi

Ik heb inmiddels uitgevogeld dat in de software voor ontvochtigen een tweede output aanmaken die dezelfde Gpio pin voor de koelkast aanstuurd ook werkt. Geen relais parallel nodig dus.

Ik kan nu koelen en/of ontvochtigen met de koelkast.

Qua PID ben ik wel wat gewend vanuit een andere hobby (vliegen met rc heli's) maar dit is toch wel weer heel andere tak van sport waar ik mezelf maar eens wat meer in moet gaan verdiepen.

BertM

Ja, zit idd ook wel eens dagen te pielen met de PID om onze koelcompressoren goed ingeregeld te krijgen

floriske.nl

#157
Vanuit m'n RC heli's ben ik gewend dat de output achter de PID regeling ook proportioneel is (servo's).

Zodra de error kleiner wordt wordt er ook daadwerkelijk minder gecorrigeerd.

In dit geval is de output een relais, dus ofwel 100% ofwel 0%. Dat is nogal een verschil. Je wil ook niet dat je koelkast te snel achter elkaar voor korte perioden in en uitgeschakeld wordt, hetzelfde geldt voor de heater en luchtbevochtiger.

Ik heb ergens een advies van de maker gelezen dat in dit geval bij Mycodo het volgende geldt:

P = Kp * e waarbij in geval van een relais P de tijd in seconden is waarmee de output hoog gehouden wordt. De error wordt iedere PID periode opnieuw bekeken en de P (=in dit geval tijd) opnieuw berekend.

Het heeft volgens hem geen zin om een Kp in te stellen waarbij de resulterende P waarde altijd hoger is dan de PID periode. Dan wordt je relais pas uitgeschakeld op het moment dat de error 0 is. Met hoogstwaarschijnlijk overshoot tot gevolg. Advies wat ik las is om bij max. error maximaal 2x de PID periode aan te houden.

De truc is dus om de P waarde zo in te stellen dat het relais op het juiste moment voordat de error 0 is afvalt en het resultaat na overshoot de juiste temp.

Dat vergt nogal wat testen lijkt me.

Mijn kast staat op het moment uit en heeft een gemiddelde temperatuur van 20,7°. In de zomer zal dit nog wel oplopen. Neem ik hiervoor een vrij extreme waarde dan kom ik bijvoorbeeld op 30°. Stel dat ik de temperatuur op 15° wil hebben is de error dan dus 15°

Mijn PID period staat nu op 30s (mag nog wel wat hoger gok ik maar ga hier even van uit). Dan kom ik adh van bovenstaande dus op:

PID period * 2 = 60
P=Kp * e
60=Kp * 15
Kp=4

Als ik dan zie dat Ralph bijvoorbeeld een Kp van 200 heeft ga ik dus weer enorm twijfelen aan bovenstaand advies.

Edit

ik heb bovenstaande eens terug zitten redeneren naar het moment waarop de inschakeltijd van het relais gelijk wordt aan de PID periode.

Bij Ralph is dit:

P=Kp * e
20=200 * e
e = 0,1°

Als de temperatuur dus binnen de eerstvolgende 2 PID perioden nog 0,1° extra stijgt of zakt dan zal het relais niet gaan pulseren. Dat zou moeten lukken maar de vraag is hoeveel overshoot er dan nog is welke de heater weer zal moeten corrigeren enz....

Kijk ik naar wat er in mijn geval uit het advies P=2*PID periode komt:

30=4 * e
e= 7,5°

Dan moet dus binnen de eerstvolgende 2 PID periodes de temperatuur nog 7,5° wijzigen anders zal het relais iedere nog volgende PID periode gaan pulseren omdat de inschakeltijd korter wordt dan de PID periode. Dat zal dus geheid gaan gebeuren en zal de compressor en/of heater niet leuk vinden. De kans op overshoot wordt dan wel kleiner.

Ik denk dus dat het zaak is om te testen hoeveel graden per tijdsperiode de koelkast koelt en hoeveel overshoot er daarna nog is. En andersom voor de heater en daar een gulden middenweg in te vinden.

Is deze gulden middenweg er niet dan 2 separate PID controllers voor de koelkast en heater zodat beiden geoptimaliseerd kunnen worden.

Of wellicht zelfs 2 simpele conditional controllers met iets van: als Temp > 15,5° dan koelkast aan, als Temp < 14,5° dan heater aan.

Verder denk ik dat een langere PID periode en wat hogere Kp afgestemd op bovenstaande test een lager risico op pulserende relais oplevert en daar bovenop het risico op overshoot beperkt.

Ik zal hier eens een post aan wagen op het forum van de maker van Mycodo.

floriske.nl

#158
Ik heb aan bovenstaande inmiddels een post gewaagd op het Mycodo forum en ook nog eens wat meer rond gelezen op o.a. brouw forums.

Een koelkast compressor vindt vaak schakelen inderdaad niet leuk. Kort inschakelen en daarna weer uitschakelen is niet erg maar kort na elkaar in- uit- en weer inschakelen is er niet goed voor.

Dit heeft schijnbaar te maken met drukverschil dat opgebouwd wordt. Na een tijdje draaien is de druk aan de uitgaande kant van de compressor heel hoog. Schakel je compressor uit en te snel weer in dan is deze druk nog steeds hoog maar de compressor druk zelf gezakt.  Dan moet de compressor te hard werken om deze druk weer te bereiken. De uitgaande druk moet eerst vereffend worden alvorens opnieuw in te schakelen.

*bovenstaande blijkt niet helemaal te kloppen ook al zit er een kern van waarheid in, zie onderstaande reactie van Bert

Er moet dan ook een 'compressor delay' ingesteld worden (Min. Off Duration).

Het advies hierin varieert zo'n beetje van 3 tot 10 minuten.

Verder blijkt PID als je je compressor wilt ontzien en de levensduur er van niet teveel wilt verkorten enigszins een overbodige luxe omdat aan- en uitschakelen dan vrijwel hetzelfde resultaat biedt.
Het voordeel van PID controllers is dat veel waarden in 1 controller in te stellen zijn (setpoint, hysteresis, compressor delay, meet periode, ...)

Ga je een PID controller zonder delays etc. gebruiken en dus je compressor te vaak schakelen dan is de kans blijkbaar groot dat je compressor een stuk minder lang mee gaat.

Weer wat wijzer geworden dus. Eens kijken wat daarnaast de reactie van Kyle van Mycodo gaat zijn.

BertM

Citaat van: floriske.nl op mei 21, 2019, 02:58:28 PM

Een koelkast compressor vindt vaak schakelen inderdaad niet leuk. Kort inschakelen en daarna weer uitschakelen is niet erg maar kort na elkaar in- uit- en weer inschakelen is er niet goed voor.

Dit heeft te maken met drukverschil dat opgebouwd wordt. Na een tijdje draaien is de druk aan de uitgaande kant van de compressor heel hoog. Schakel je compressor uit en te snel weer in dan is deze druk nog steeds hoog maar de compressor druk zelf gezakt.  Dan moet de compressor te hard werken om deze druk weer te bereiken. De uitgaande druk moet eerst vereffend worden alvorens opnieuw in te schakelen.
Is niet helemaal waar...
De druk aan de perszijde van de compressor is idd hoog en die zal na het uitschakelen inderdaad zakken (vereffenen) met de zuigzijde maar het grootste probleem is dat er je elektro motor het niet leuk vind. De compressor zelf maakt geen druk, die verplaatst alleen het gas.
De motor in een koelkastcompressor ligt in de smeerolie en door het vaak starten  en stoppen wordt deze te warm en zal doorbranden omdat hij geen koeling krijgt.Nadeel is ook dat het koelmiddel oplost in de olie en daardoor de smering slechter wordt. Ook wordt de olie meegenomen door het gas en zal wanneer je veelvuldig start geen kans krijgen terug te lopen in het systeem (terug naar de compressor)
Bij het opstarten van een electro motor gaan grote stromen lopen, die dus extra warmte geven. Deze warmte moet worden afgevoerd. Dit is de reden dat grote motoren vaak maar eens in de 3 minuten gestart mogen worden.

wij maken koelmachines voor de industrie (van slachterijen tot machines voor de offshore) en ik leg de werking bij een training altijd uit aan de hand van een koelkast. Zal dat gedeelte wel eens omzetten en hier op het forum zetten.

floriske.nl

#160
Thx voor deze aanvulling Bert!  C00L

Wat zou jouw advies dan zijn qua delay tijd voor de compressor?

BertM

Ik zou eerder voor de 10 dan de 3 minuten gaan.

floriske.nl

Ok, ga ik daar eens mee experimenteren.

Ben verder eigenlijk toch wel erg benieuwd hoe de collega zelfbouwers dit doen en/of naar hun Mycodo instellingen.

floriske.nl

Inmiddels terug van een weekje vakantie en maar eens gewoon aan de slag gegaan. Zit al wat vordering in maar zal nog wel even wat tijd nodig hebben om te fine tunen.

floriske.nl

Na wat prutsen ben ik een heel eind met de temperatuur regeling.

Wat me hierbij opvalt is dat de 'verwarming' eigenlijk averechts werkt.

Bij een setpoint van 15° blijft de temperatuur veel mooier rond dit setpoint met gebruik van alleen de koelkast, de compressor schakelt dan om de 20/25 minuten.
Zodra ik in de PID controller de verwarming er bij aan zet gaat het geheel meer fluctueren (en dus de compressor meer schakelen) en wordt zelfs de temp. afwijking groter.

Ik vermoed dat ik dit op kan lossen door de verwarming in een separate PID controller te zetten.

Qua Rv moet ik nog aan het puzzelen. Deze verhogen gaat nog met te grove stappen en verlagen door de koelkast in te schakelen gooit de temperatuur regeling weer overhoop.

Tips zijn nog steeds welkom  W!nk