PID variable

BrewControl er et gratis stykke software, der kombineret med nogle simple komponenter kan bruges til at automatisere mæskeprocessen.
Besvar
Truntebryg
Indlæg: 5319
Tilmeldt: 15. nov 2008, 09:30

PID variable

Indlæg af Truntebryg »

PID variable

Ja, jeg ved ikke rigtig om jeg forstår nok omkring disse PID værdier. Men vi kommer jo nok til at fifle noget med dem:

Forklaring til nye læsere ;-)

PID kontrollere findes alle vejne i industrien og de kontrollerer alle mulige ting:

temperatur, niveau, flow, lysmængde, strålingsmængde, lydtryk osv.
Årsagen til , at de anvendes så meget er fordi de er simple og effektive.

PID navnet kommer fra 3 termer i ligningen der bruges for at beregne udgangssignalet:
  • P - Proportionel delen kigger på den nuværende tilstand i processen. Værdien er proportionel til den nuværende fejl.
    I - Integrations delen kigger på historikken i processen. Dens værdi er integralet af foregående fejl.
    D - Differential delen forsøger at forudse fremtiden i processen. Dens værdi er differentialet af ændringshastigheden i fejlen.
    Disse 3 termer tildeles hver deres vægt i tunings parametrene: Kp, Ki og Kd. Disse 3 summeres for at producere kontrol udgangssignalet.
Billede

Den første runde blå cirkel er i vores tilfælde temperaturmåleren.

De 3 store kasser + næste blå cirkel er Kaspers program

Proces boksen er vores varmelegeme i gryden.

Jeg ville jo gerne have noget der så sådan ud:

Billede

men jeg får typisk et sådan billede:

Billede

altså alt for meget ”over shoot” og der sker ingen opvarmning selv når temperaturen begynder at falde igen. Det skal den jo så heller ikke når vi ikke er under target temp...

Jeg har så prøvet at gøre P variablen meget lille, men så begynder programmet at skrue ned for varmen allerede 15 – 20 °C før temperatur målet – hvilket resultere i en meget langsom opvarmning.

Jeg har en grum mistanke om at det hænger sammen med mit ”gain” under opvarmningen er 15 gange større end når gryden afkøles.

Så mit spørgsmål er, tager programmet højde for dette ?

Hvad er forskellen på ”Simpel” og ”Avanceret” regulering ?

Mit setup er:

EL gryde 1800 W
10 L vand
Ingen omrøring. (tror det bliver et must)
PID regulering = Simpel

En løsning kunne være at, programmet undlod at bruge PID routinen før den var ca. 4-5 °C fra målet. (helst justerbart) og så knalde en ordentlig værdi på I konstanten !!!

10 Januar:

Så har jeg fået en omrører på gryden, og det hjælper en del på tids konstanterne. Se lige her:

Billede
PID = 70 - 10 - 0

Jeg er dog stadig lidt frustreret over at programmet (PID variablene) stadig har varme på når jeg kan se at temperaturen ER overskredet med ½ C. Så hjææælp ....



MVH Søren Larsen
Senest rettet af Truntebryg 2. nov 2016, 11:20, rettet i alt 1 gang.
Listende-elg
Indlæg: 170
Tilmeldt: 10. jun 2008, 20:10
Geografisk sted: Bruxelles
Kontakt:

Re: PID variable

Indlæg af Listende-elg »

Hej Søren

Tak for de fine grafer - de er meget illustrative ift. din problemstilling.
Jeg vil lige prøve at besvare dine spørgsmål et ad gangen (men i anden rækkefølge)...
Hvad er forskellen på ”Simpel” og ”Avanceret” regulering ?
Simple var den første PID rutine jeg indbyggede. Jeg synes at den drillede en lille smule og derfor gik jeg på udkig efter en ny. Jeg fandt så en anden rutine hvor bagmanden kommenterede på den første og fortalte at han havde skrevet en ny der var langt mere ala en industriel PID rutine (han arbejder med sådanne til daglig). Derfor gik jeg i gang med at indbygge hans rutine, og det blev så til 'Advanced'.
Efterfølgende har jeg så fundet nogle fejl i min implementering af den simple rutine, som jeg selvfølgelig har rettet - hvilket har resulteret i at den nu (ifølge mine forsøg) fungerer langt bedre end den avancerede. Det kan der være to årsager til: 1) at jeg har lavet en fejl i den avancerede og 2) at PID variablerne skal tunes helt anderledes.

Indtil videre vil jeg foreslå at I benytter den 'simple' rutine - den lader simpelthen til at fungere bedre.
altså alt for meget ”over shoot” og der sker ingen opvarmning selv når temperaturen begynder at falde igen. Det skal den jo så heller ikke når vi ikke er under target temp...
Jeg har så prøvet at gøre P variablen meget lille, men så begynder programmet at skrue ned for varmen allerede 15 – 20 °C før temperatur målet – hvilket resultere i en meget langsom opvarmning.
Jeg har selv prøvet i dag med en 2KW elgryde og ca. 10 l vand med recirkulation - og umiddelbart synes jeg at den simple ser ud til at fungere fint med en P variabel imellem 30 og 150. Har man overshoot bør den justeres ned. Jeg vil foreslå at man fordobler eller halverer P hver gang man har en over- eller undershoot. Hvis den nye indstilling så giver det modsatte resultat, prøver man værdien midt imellem - og gentager proceduren.
Det er dog vigtigt at understrege at variablerne formentligt skal indstilles helt anderledes når man varmer på malt i stedet for ren vand.
Jeg har en grum mistanke om at det hænger sammen med mit ”gain” under opvarmningen er 15 gange større end når gryden afkøles.
Så mit spørgsmål er, tager programmet højde for dette ?
Jeg er ikke helt sikker på at jeg forstår spørgsmålet... PID rutinen burde selv udregne den bedste måde at varme på selvom der er forskel på hvor lang tid det tager at opvarme kontra at afkøle. Udover PID rutinen lægger jeg ikke noget logik på lige nu.
PID = 70 - 10 - 0
Jeg er dog stadig lidt frustreret over at programmet (PID variablene) stadig har varme på når jeg kan se at temperaturen ER overskredet med ½ C. Så hjææælp ....
Rigtig fin graf - jeg synes det ser lovende ud. Hvilken PID rutine har du brugt her? Jeg synes ikke at den simple har tendens til at varme efter SV er nået - men hvis det er den avancerede har du formået at indstille den godt :)
Må jeg foreslå at du prøver at sætte D til 1, nu hvor du har opnået en kurve der ser ud til at være kontinuær?

Jeg er desværre ingen PID ekspert, så jeg håber at alle kan hjælpe alle med deres erfaringer :)

Mvh. Kasper
Foreningen til Fremmelse af Stegt Flæsk Med Persillesovs
Truntebryg
Indlæg: 5319
Tilmeldt: 15. nov 2008, 09:30

Re: PID variable

Indlæg af Truntebryg »

JA – efter mindst 20 opvarmnings forsøg så har jeg ramt denne kurve. Target - temperatur er:

15 min ved 30 C
20 min ved 50 C
30 min ved 60 C

og det se ganske vist pænt ud:

Billede

Opsætning – Simpel PID 325-1-0

meeen den er også lavet meget bevist for at snyde PID reguleringen….. vel egentlig ikke meningen.

I starten fægtede jeg lidt i blinde, men så fandt jeg en PID simulator på nettet, og med denne kunne jeg sagtens får kurver uden oversving – DESVÆRRE blev varme tilføjelsen så svag, at det ikke kan bruges i praksis.

Jeg håber Kasper får tid til at prøve en anden reglering, på et eller andet tidspunkt – for jeg tror ikke på PID længere ….

PID reguleringen ser ud til at virke som den skal, da jeg har kunnet simulere de samme oversving og små ripler som jeg måler i praksis.

Det som gør opgaven stortset umulig er den extrem lange tid, fra varmelegeme til varmt vand. I mit tilfælde omkring 2 min. Ved helt kold gryde er det nærmere 3-4 minutter. Denne ultra lange tidskonstant gør at programmet vil regulere varmen ned alt alt alt for tidligt….

Det jeg gør for at snyde PID regulatoren, er at jeg udregner opvarmningstiden i et lille regneark mellem de egentlige mæsketider.

Billede

Jeg har kaldt dem Pre Heat og det vigtige er at gryden kommer op over denne temperatur inden for den afsatte tid !!!

Da Pre Heat temperaturen bevist er valgt til 2-3 graden under den ønskede mæsketemperatur, så bliver oversvinget sådan nogenlunde skudt ind på den rigtige temperatur... og herfra går det jo så nogenlunde --- ah det passer ikke, det går jo faktisk rigtig fint, måske endda helt perfekt. (specielt hvis mit regneark regner de rigtige tider ud - hver gang....) I weekenden bliver det med malt !!!!

Nogen der har nogle gode PID kurver ?

MVH SL
Listende-elg
Indlæg: 170
Tilmeldt: 10. jun 2008, 20:10
Geografisk sted: Bruxelles
Kontakt:

Re: PID variable

Indlæg af Listende-elg »

Hej Søren

Jeg synes stadig at det ser rigtigt fornuftigt ud det du laver :) Glimrende tænkt med pre-heat og spændende med regnearket. Særligt forløbet omkring de 60°C viser at den tydeligvis formår at holde varmen meget konstant på den ønskede temperatur.

Vil du ikke uploade dit regneark - eller fortælle hvordan du har regnet opvarmningstiden ud? Du må også gerne poste et link til den PID simulator.

Jeg regner også med at brygge i weekenden - det bliver samtidig første forsøg med recirkulation mellem køletaske og elgryde (gryden varmer urten som pumpes oveni mæsken og derfra løber tilbage i gryden). Selvfølgelig styret af BrewControl.
Mangler blot at beslutte mig for om det er smartest at regulere efter elgryden eller mæskespanden. Jeg kunne forestille mig at det vil gå uendeligt langsomt at opvarme mæsken fra 58°C til 60°C, hvis det vand jeg cirkulerer er 60°C -forskellen er simpelthen så lille. Hvis jeg derimod bruger temperaturen i mæsken som styrepunkt, vil det nok gå hurtigere - men spørgsmålet er om det er et problem at den væske jeg cirkulerer bliver ca. 80°C. Varmere må den ikke blive, da pumpen så ikke kan tåle det.

Måske man i virkeligheden skulle have to reguleringer på... En PID regulering der holdte en konstant temperatur på 78°C i gryden og så bare en tænd/sluk regulering der åbnede og lukkede for pumpen når temperaturen i mæsken skulle hæves?
Mit nye setup er kraftigt inspireret af dette: http://www.homebrewtalk.com/f51/counter ... -a-131411/

Jeg har ikke noget problem med at indbygge en simpel on-off regulering også, hvis der er interesse for det. Jeg tror dog stadig at PID'en kan være løsningen til nogle setups, men kan godt følge dig i at det ikke nødvendigvis virker til alle.

Mvh. Kasper
Foreningen til Fremmelse af Stegt Flæsk Med Persillesovs
MEOLSEN
Indlæg: 146
Tilmeldt: 30. dec 2006, 21:10
Geografisk sted: Silkeborg

Re: PID variable

Indlæg af MEOLSEN »

Hej!

Jeg tror desværre at justeringen af disse PID-Variable bliver en process - Og ikke et projekt. Forskellen er at et projekt har en slutdato - Det har en process ikke. Jeg tror simpelthen der er for mange variable i div. setup der gør at man kan finde nogle "standard" justeringer. Som jeg læser disse forsøg er de lavet med "kun" 10 liter vand. Response for systemet ser helt anderledes ud når man pludselig har 16-18 liter vand og 6-7 kg malt. Så hver gang man ændre på sit "system" bliver responsen en anden. Hvor stor betydning det så får i praksis er så en anden snak. Tvivler på om der er nogen der kan smage forskel på om der er mæsket ved eks. 67 C+/- 0.3 C eller 67 C +/- 1C. For i praksis er det måske det der vil være den reelle temp.forskel hvis ikke PID-variable er "helt hen i hegnet". Alternativ kan man jo gøre sig nogle erfaringer og så måskehave 2,3 eller flere parameter man kører med afhængig af hvad/Hvordan man brygger.

Jeg har selv brugt en Omron industriel PID-regulator til mit setup. Den måtte jeg opgive at trimme på plads. Jeg brygger i en 50 liter gryde. Min opvarmning består af 3*1500 W Ø15cm kogeplader sat tæt sammen i en "pyramide" så de lige kan være under gryden. Hver kogeplade består af 2*750W. Så nu er min regulator koblet til On/Off styring. Det er lavet således at jeg kører 3*1500W indtil 3 grader fra setpunktet. Fra 3 grader og indtil setpunkt nåes kører jeg med 3*750W. Det virker faktisk rigtig godt. Eneste ulempe er at mit setup konsekvent rammer 2.5 grader over setpunktet. Så jeg skal lige sætte setpunktet lidt lavere end det reelle. Når først temperaturen er på plads regulere det indenfor +/- 0.3 C. Mit problem er også at de første ca. 2 min ved opvarmning der sker der intet på temperaturen.

Jeg er dog blevet kraftigt inspireret af dette program til at prøve at lave mit eget PC-Program. Både for at få noget læring indenfor mit fag(elektronik tenikker), og samtidig for at lave præcis det jeg vil have. Jeg havde forestillet mig at "min" regulering skulle være noget PWM lignende. Altså man kører 100% effekt indtil eks. 6 grader(justérbart) fra setpunkt. Derefter skruer man gradvist ned for effekten jo tættere man kommer på sit setpunkt. Jeg ved godt at det grundlæggende er det en PID-regulering gør, men det er bare svært for "lægmand" at gennemskue hvad de forskellige parametre gør, og hvordan de skal/kan trimmes.

Jeg vil have følgende 3 variable i mit program: minimum effekt, maximum effekt, samt ved hvilken tempereturforskel reguleringen skal sætte ind. Det tror jeg personligt vil være nemmere, både at implementere i programmet, men samtidig at trimme på plads. Man/jeg nemmere kan gennemskue hvad hvilke parameter gør ved reguleringen.
mvh
MEOLSEN
Truntebryg
Indlæg: 5319
Tilmeldt: 15. nov 2008, 09:30

Re: PID variable

Indlæg af Truntebryg »

Hej Olsen

Skønt at høre lidt omkring dine opvarmnings erfaringer, det overshoot vi få er helt sikkert varmen der er ”gemt” eller ophobet i kogeplader / varmeelement / grydebunde osv. Der er ganske sikker mega varmt inde i varmelegemerne – måske 5-600 C – så denne varme ophobning kan varme vandet op selvom der ikke længere er strøm på.

Hvis man studere min 30-50-60 C kurve så ses det også tydeligt at ved 50 C så er overshootet mindre, for helt at forsvinde ved 60 C. Dette skyldes den højere tabsvarme fra hele gryden som opvejer den akkumulerede varme. (gryden står ved 5 C pt)
Altså man kører 100% effekt indtil eks. 6 grader(justérbart) fra setpunkt. Derefter skruer man gradvist ned for effekten jo tættere man kommer på sit setpunkt. Jeg ved godt at det grundlæggende er det en PID-regulering gør, men det er bare svært for "lægmand" at gennemskue hvad de forskellige parametre gør, og hvordan de skal/kan trimmes.
YES ! lige mine tanker, jeg tror faktisk i mit test tilfælde at jeg kan gå endnu tættere på. 3-4 C ved lave temperature, og 2-3 C ved høje. (man kunne vel rimelig nemt disable PID reguleringen indtil Target – 3 men den tager vi senere.)

Til Kasper:

PID simulatoren er denne: http://sourceforge.net/projects/pid-simulator/files/ jeg valgte 0.0.6 versionen.

Det som beroligede mig mest, var at mine små ”bløp” på kurven kunne simuleres, og havde den korrekte relative afstand. (jeg har ikke rodet med afladningens størrelse !!)

Ang. regnearket, så er det meget simpelt, ved at måle på en konstant opvarmning så kan man se hvor meget 10 L vand opvarmes på en given tid. Dette omregnes nu blot til grader per minut per Liter.

Min opvarmning fra 5 til 30 C, er ca. 0,04 min/C per Liter.

10 L x 25 C x 0,04 = 8,8 minuter da der startes med kold gryde lægger jeg 4 min på for at være sikker. Altså ca 13 min. (de 4 min. tillægges kun i starten)

Fra 30 C til 50 C er konstanten ca. 0,05
Fra 50 C til 60 C er konstanten ca. 0,063
Fra 60 C til 70 C er konstanten ca. 0,072

Alt sammen er i regnearket, som jeg gerne lægger frem. Skal lige køre en test mere i aften.

Til den nystartede, ingen grund til panik – når først man får lagt sit setup ind på en fornuftig kurve, så er det jo samme tal man bruger fra gang til gang. Evt. +/- et par liter, som man så hurtigt får lavet kurver til. Disse gemmes så blot under nogle sigende navne.

I øvrigt håber jeg at de fleste vil kunne ”stjæle” de fleste tal, da der jo nok ikke er den store variation fra EL gryde til EL gryde. (eneste kendte forskel er 1800W og 2000W samt evt. isolering.)

Regneark beregneren blev egentlig lavet, for at jeg kunne lægge nogle rimelig fornuftige tider på mæskepauserne. Selvfølgelig kan man ikke se bort fra opvarmningsperioden, men netop styrken i dette program er at man visuelt kan se hvor varmen egentlig ligger, og deraf kan man vurdere hvor enzymerne begynder at arbejde – og hvor længe.

Super lækkert !!!

MVH Søren Larsen – stadig ivrig tester …


°
BjarkeScheller
Indlæg: 5
Tilmeldt: 21. aug 2007, 09:08
Geografisk sted: Silkeborg
Kontakt:

Re: PID variable

Indlæg af BjarkeScheller »

Hej,

har med spænding gennemlæst jeres besvarelser.
Har I stiftet bekendskab med følgende litteratur:

Praktisk regulering og instrumentering, 5. udgave 2005, af Thomas Heilmann

Heri forefindes et kapitel specielt tilegnet praktisk regulerings teknik, inklusive
metoder til PID-parameter definering udfra jeres fine kurver.
Emenr som open-loop / closed-loop, dødtid, springrespons osv inkl.

Hører gerne om jeres erfaringer

;-)
Bjarke
Mikrobrygger Scheller
Brugeravatar
BalstedBryg
Indlæg: 350
Tilmeldt: 15. apr 2009, 11:56
Geografisk sted: 6100 Haderslev

Re: PID variable

Indlæg af BalstedBryg »

Jeg har skrevet lidt med en fyr der ved noget om PID regulering, mail korrespondance er herunder.
Brian,

The tuning .xls sheets I gave you are useless.
You have an integrating process, and different tuning
is required. Integrating just means it ramps up,
like the level in a container.

Attached a .xls with the proper tuning, and the analysis.

A key thing for the controller is the DeltaT. You must find this out, and use it for DeltaT in the spreadsheet. It might be 1 sec, or 0.1 sec, for example.

This type of controller uses Kc, the controller gain only.
The integral and derivative terms are not used.

And, you can select the speed of the response of the controlled process, in the "Chosen Speed" cell. Note that while you can change this a lot, it does not change the answer much.

Let me know your progress with the controller. I will be glad to help with this to a satisfactory conclusion.

From the color of your beer, it should be interesting. Looks like a lager.

I appreciate the photos, and wish I was there in the winter photo for about 20 minutes. In Texas we don't have weather like that. (Jeg sendte ham et billede af snevejret i DK)

Keep in touch,
Greg

-----Original Message-----
From: Brian A. Sørensen [mailto:bas@74545420.dk]
Sent: Sunday, January 17, 2010 12:37 PM
To: 'Greg Martin Consulting'
Subject: SV: Spreadsheet for PID tuning

Thank you very much Greg. That was very kind of you.

I'll keep in mind that owe you a bottle of my brew. There is nothing in stock right now, but i will not forget you.

I am looking for a way to convert a temperature log file into PID parameters. I was hoping that your sheets maybe could tell me Kp, tau and taud from a logfile, but i was not that lucky.

I attach 2 files; my logfile, the logfile showing a bargraph.

If you have a quite evening, maybe you will take a look at my sheets and tell me if you have any ideas. For that I will be thankfull.

Regards, Brian

-----Oprindelig meddelelse-----
Fra: Greg Martin Consulting [mailto:greg@gregmartinconsulting.com]
Sendt: 16. januar 2010 23:12
Til: Brian A. Sørensen
Emne: RE: Spreadsheet for PID tuning

Hello Brian,

I am an automation consultant, and will help anyone who is brewing beer. I like beer myself, especially Danish beer. 2000W sounds like you will have a good facility for your personal brewing. Congradulations on that.

Good luck with your tuning, and great control of the kettle.

All I ask is that you send me one bottle of what you think is good...

Best Regards,
Greg Martin

29022 Meadow Greens
Georgetown, Texas
USA 78628

-----Original Message-----
From: Brian A. Sørensen [mailto:bas@74545420.dk]
Sent: Saturday, January 16, 2010 8:45 AM
To: greg@gregmartinconsulting.com
Subject: Spreadsheet for PID tuning

Dear Sir.

I am a Danish guy who is interested in brewing beer. For that I have software which can control a 2000W kettle, but the software needs information about P,I & D parameters. I made a temperature log which shows my process value with timestamp, and your spreadsheet could really be helpful for me.

Best regards
Brian A. Sorensen
Haderslev/Denmark
Jeg vedhæfter regnearket han sendte til mig. Jeg har desværre ikke tid mere før weekenden til at kigge på det, men hvis andre har lyst til at dykke ned i regnearkets funktioner i løbet af ugen er I velkommen. Ved ikke om regnearket kan hjælpe til nærmere bestemmelse af P,I og D.
http://www.74545420.dk/HaandbrygForum/I ... Tuning.xls
Regnearket spørger om at opdatere kæder fra andre datakilder, bare annullér.

Er spændt på om det kan bruges til noget.
Truntebryg
Indlæg: 5319
Tilmeldt: 15. nov 2008, 09:30

Re: PID variable

Indlæg af Truntebryg »

Ja så fik jeg jo mæsket i min EL gryde med BrewControl.

Billede

Der er par gevaldig hak på kurven, og dette skyldes en for dårlig omrøring. Men efterhånden som temperaturen kom over 45 °C så gik det nogenlunde. (der skal en større omrører på, næste gang)

PID er 325-1-0 (kurven er kraftigt midlet, over +/- 6 målinger)

Egentlig et ganske fornuftigt forløb, indtil jeg tabte Temper termometeret ned i urten ….. men det er jo ikke Setup’et skyld.

Jeg var lidt overrasket over at de 4,5 kg malt, ikke gav nogen speciel varmefylde – så mine preheat tider blev altså alt for lange.

Jeg vil jo meget gerne have at forløbet passer sig selv, så jeg kan lave noget andet imens.

MVH SL
Truntebryg
Indlæg: 5319
Tilmeldt: 15. nov 2008, 09:30

Re: PID variable

Indlæg af Truntebryg »

Nå ja – regnearket til preheat tiderne:

Billede

Dette er bestemt ikke eksakt videnskab, blot nogle tal som passer til min gryde …

Kan downloades her:

http://www.winemanager.com/slarsen//Bee ... gner-4.xls

Så kan du selv trille lidt på parametrene – Rum temperatur boksen bruges ikke til noget (endnu) De blå tal skal indtastes ved udregning af kurver, de grå tal skal blot ind en gang.

Jeg kan faktisk ikke rigtig huske hvordan jeg er kommet frem til ”Target temp” … men det er noget med større oversving ved lavere temperaturer.

MVH SL
Besvar

Tilbage til "BrewControl"