blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi,
De Heer is mij vandaag niet goed gezind...
Ruim een uur zitten type aan de vorige versie van dit stukje, een verkeerde klik in de browser en weg is mijn tekst $%^##%#%Q$%@!#
Iets van eigenschuld dikke bult hoor ik Hem brommen. *grin*
Natuurlijk omdat ik weet hoe ik dit kan voorkomen, denk maar, dat ik ook een Mensch ben. 
Mooi tijd een te laten zien waar om ik dit topic start.
Voor het oventje in het kleine HF kastje wil ik een goed P.I.D. regelaar maken.
Het BreadBoard waarop ik werk met het LCD display, meerdere sensoren en ander spul is wat verbindingen betreft niet echt stabiel.
Nieuwe BreadBoard zijn onderweg en ook de kabeltje die ik er bij besteld heb, daar hoop ik van dat ze betrouwbaarder zijn dan wat ik nu heb.
Bij het testen/instellen van de P.I.D. software moet je voor iedere stap die je doet, weer minuten lang wachten om het effect goed te kunnen inschatten.
Dan is rammelende bedrading en dergelijke niet echt gewenst.
Dus ik heb een experimenteer print gemaakt met daarop een Teensy LC, Nokia-5110 display, latch drukknopje met een LED, een DS18B20 sensor en een bus aansluiting hiervoor,
een ADS1115 ADC van TI die gevoed wordt door ook van TI, een REF7033 3.3V spanning referentie IC en als voorlopig laatste twee hoge precisie en stabiele Vishay Pull Up weerstanden
De rode klem heb ik vastgezet op de Sense aansuiting van de REF7033 zodat de twee Pull Up weerstanden een zo mooi mogelijke spanning krijgen.
Dit plaatje is klikbaar voor een grotere versie.
.
Links dus beginnen we met de Teensy LC, bovenaan heb ik de 0 en de 3.3V lopen als bus.
De twee aansluitingen voor de bus aan de onderzijde zijn voor de i2c bus, de kleur geel hou ik als het enigszins kan aan voor SDA aansluiting.
In het midden boven de Teensy zijn twee Pull Up weerstanden te zien van de i2c bus, er komt daar nog een elco over de voeding bus.
De okergele condensatoren aan de bovenzijde zijn 0.33uF en staan over de analoge ingangen en er zijn nog net twee soldeer punten te zien, maar er zijn er daar nog meer aanwezig.
De wit gemerkte TO92 behuizing is een DS18B20 temperatuur sensor voor de omgeving temperatuur, dit voor als ik dit nodig mocht hebben.
Er is voor deze bus een rood, geel en zwart soldeer oogje aanwezig, voor als ik een oventje zou willen testen waar zo'n sensor in gebruikt wordt.
Dan komt naar rechts het Nokia display, er staat "nieuw" op, kwam ook zo uit mijn voorraadbakje, het display werk ook maar ziet er donker goor uit, verder geen probleem, ik heb er nog meer.
Direct rechts naast het display de rode LED en het drukknopje hieronder, dat togglend tussen twee temperaturen voor het testen van de loop.
Het kleine paarse printje is de TI ADS1115 ADC, hieronder zijn twee hele mooie Vishay precisie weerstanden te zien, ik had ook nog 0.1% Holcos van de goed waarde,
maar die waren duidelijk temperatuur gevoeliger dan de Vishay modellen die hier nu op de print gemonteerd zitten.
En als laatste op het verloop printje is de TI REF7033 die de ADC en de Pull Up weerstanden van 3.3V voorziet.
De rode en zwarte klem gaan naar een DMM, hier was dit de 34465A omdat ik daar het grafiekje instellen wat makkelijker vind gaan om te zien hoe de trend variatie is.
De print is nog niet helemaal compleet, dat gebeurd de komende dagen.
.
Hier is een stukje printmateriaal te zien waarop ik met de eerste REF7033 getest heb met mijn 7.5 Digit meter, ruim voldoende voor deze toepassing.
Je kan ook zien dat het Kerst is, en zijn voldoende (soldeer) ballen!!!
Vier aansluitingen van de REF7033 zijn massa, dat maakt de montage een stukje makkelijker.
De oriëntatie van de referentie op het koperprintje en op het DIP printje is gelijk.
Rechtsonder op het koperprintje zit een TO92 behuizing gemonteerd, dat is een low drop 3.3V regelaar.
Rechtsboven met de zwarte elco is de uitgang, deze mag je tot 100uF belasten om een lager ruisniveau te krijgen en meer dynamische stabiliteit.
De uitgang heeft ook een Sense aansluiting, die is op het koperprintje doorverbonden met de uitgang, dat is voor het testen OK.
Je kan bij de voeding aansluiting nog een extra aansluiting zien die hiermee verbonden is, dat is de enable van het IC, die is doorverbonden met de +voeding voor normale werking.
.
Hoe plak ik die LS8 behuizingen nu op een print, nou de eerste versie hebben jullie al kunnen zien op het koper printje.
Hieronder bespreek ik de manier hoe ik zo'n LS8 behuizing op een SO8 naar dip printje monteer.
Het gebruikte verloop printje heeft in het midden een kopervlak voor koeling van SO8 behuizingen, ik maak hier gebruik van om het IC hieraan vast te zetten.
.
Dit is een plaatje van een van de eerste stappen, jammer genoeg heb ik niet alle stappen vastgelegd.
Hier is als je goed kijkt, wel te zien dat ik wat printbaantjes het losgemaakt van de aansluitpennen.
Uiteindelijk zijn alle printbaantjes verwijderd aan beide zijde van het verloopprintje,
Met een heel scherp mesje het baantje los gesneden, daarna een klein beetje opgewipt en toen met een goede pincet vastgepakt en van het printje verwijderd.
Het kan ook met een soldeerbout op 400 °C, maar dat vind ik er wat minder netjes uit zien.
.
Hier zijn de eerste massa verbindingen aangebracht, let er ook op hoe het voetje in het BreadBoard is gestoken,
de IC pootjes zijn op deze manier doorverbinden, dit beschermd het IC een beetje.
.
Tja veel hars, dit gewoon wat uit het soldeer komt, ik heb niets extra toegevoegd.
.
Hier is IPA aan het werk geweest met een tandenborstel, watte tipje en perslucht.
Als je goed kijkt is er nog wat residu van de printspoortjes te zien, dit is verder niet van belang.
Dit is een meting van bijna 3-uur aan de REF7033, 3µV is hier 1PPM.
Je ziet hier onder meer de mix van de drift van de DMM, REF7033 en de aansluitklemmen.
.
Hier is de print te zien zonder de verschillende modules maar hier is de print nog niet voorzien van een aantal aansluitngen.
Er is gebuik gemaakt van goed spul betreffende de IC voejes en pennen, de Teensy en de REF7033 zitten echt strak in het voetje.
.
Dit is een nog eerdere versie van de print, maar daar gaat het hier niet op, kijk naar het display, daarvoor laat ik deze foto zien.
Bovenin met een hoge resolutie de oven temperatuur, die hoge resolutie is om de trent te kunnen zien en neit omdat ik het zo precies moet weten.
Of de oven nu procies op 48,0000 staat of op 48,13537, dat is verder niet van belang, dat oventje waar ik het mee ga testen meot ergens tussen de 45 en 50C zijn.
En dan het liefst niet meer dan ±0,01°C bij normale variaties van de omgevings temperatuur.
OK verder daarna de wwarden voor de P, I, en de D waarde, op de onderste regel staat de Window waarde, waar de P.I.D. regelaar mee werkt en als laatste de gewenste Set temperatuur.
Deze waarde kan dus gewisseld worden met de drukknop naar b.v. 48°C.
Alles op wat nu op het display zichtbaar is staat hard ingeklopt, dit is het plaatje toen ik vrijwel klaar was met het formatteren van de tekst en waarden op het display.
De P.I.D. waarden gaan ingesteld worden de drie voudige i2c rotary encoder print, ontworpen door deKees.
Dat ik een paar keer de code moet aanpassen voor de Window waarde, dat is niet zo'n probleem, bij de vorige oven was de waarde die goed werkte,
was dit rond de 1-Seconde en dat ga ik als start waarde aanhouden.
.
Deze foto laat zien de aansluit lusjes voor de twee NTC weerstanden zien die de ADS1115 kan uitlezen.
De 0.5% die op de Vishay weerstanden staat is een beetje onzin, vaak 50x beter, maar hier niet zo interessant, als ze maar stabiel zijn,
de opgemete waarde zet ik in de code van deze weerstanden.
.
De laatste foto, was weer een beetje lastig te fotograferen, vandaar het een beetje vreemde perspectief, dit dus om spiegelingen te voorkomen.
Weinig doorverbindingen aan de onderzijde, en wat er wel zichtbaar is, is met opset zo gedaan.
De rede is een zo laag mogelijke impedantie voor de spanning referentie, ADC en de Pull Up weerstanden te krijgen.
Daarom zijn de massa banen op een aantal punten dikker gemaakt.
.
Nu wel even leeg getyped, ondanks dat ik nog meer wou delen met jullie. 
SHOOT!
Groet,
Bram
Leuk project. Ik ben vooral benieuwd naar de PID code zelf.
Ben je ook nog van plan er een auto tune functie in de bakken?
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi GJ_ 
Even snel tussendoor.
Ben nu de Teensy LC aan het Hacken zodat deze ook optimaal kan werken, misschien overdaad, maar dan weet ik zeker dat het goed is als ik de ADC functies van deze Microcontroler gebruik.
Als het meezit laat ik het een en ander vandaag nog zien.
Het doel is voldoende P.I.D.-ervaring te krijgen zodat ik het makkelijk kan toepassen, net als dat ik doe met lineaire regelingen.
Dat houdt dus in kennis op doen met de variabelen en dit natuurlijk samen met de thermische massa van het project en het beschikbare vermogen van verwarming.
Voor nu even alleen verwarming bij mijn in verhouding kleine oventjes, maar wil ook testen met een 1KW kookplaatje.
De P.I.D. library die ik als eerste ga toepassen is die standaard in de Arduino IDE zit, dat is die van: Brett Beauregard
Ik ben nog steeds bezig diverse afwegingen te maken voor dit test printje en een "Auto Tune" toetsje is misschien ook wel makkelijk om te zien hoe goed deze functie is in die library.
Ik heb een Simulatie softwarepakketje aangeschaft waar ik ook mee speel/leer, dit is om ervaring op te doen met de P, I en de D waarde en het heet PID Simulator
De software is wat beperkt je kan b.v. geen gegevens invoeren van b.v. mijn oventje zoals 1.7-Watt vermogen on het oventje op 48C te houden bij 25C verhoging, en het max startvermogen van rond de 8-Watt.
Maar dat is niet erg, als ik weet hoe ik de P, I, en de D instellingen moet toepassen, dan kan ik met de uitkomst van mijn testomgeving het vrij goed instellen, dat denk ik voorlopig. 
Hier is zichtbaar dat de regeling vrijwel optimaal afgesteld is, dit is voor een toepassing waarbij er geen energie wordt toegevoegd of uit het systeem wordt getrokken.
Het enige wat er bij mijn oventjes gebeurd is, opstarten en daarna hele langzame variatie van de omgevingstemperatuur corrigeren.
Dat is dus geen warmhoud/koopplaatje van 1-KW waar je een koude ketel water op zet, of een pannetje waar je chocolade in wilt smelten.
Volgens de software als ik er mee speel als je een optimale instelling hebt, dan geld dat niet voor het hele temperatuurgebied waar je de regeling op wilt toepassen.
Als je het gedrag kent, dan kan je altijd aan de hand van de temperatuur, je P, I, D waarden een beetje aanpassen.
Voorbeeldje na tuning
.
Laters meer
Groet,
Bram
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi,
Deze keer de "Hack" van de Teensy-LC microcontroler.
Dat heb ik al eens meer gedaan, maar voor de gene die dat nog niet gezien hebben en wille nweten hoe ik het aanpak lees en kijk naar de foto's ter lering en vermaak. 
De Teensy-LC heeft een 16 Bit ADC maar geen 16-bit eigenschappen, meestal is rond de 13-Bit goed haalbaar.
Door flinke middeling is 16-Bit te doen, maar er is aardig wat drift, zowel van de interne referentie als ook de temperatuur gevoeligheid van de ADC in de Microcontroler.
Doordat ik vaak Referenties test, heb ik daar een redelijke hoeveelheid van.
Dus in mijn voorraad waren ook een aantal TI referenties beschikbaar en ik heb gekozen voor de REF54250 welke dus 2.5V is en redelijk goede specificaties heeft.
In ieder geval veel beter dan de interne referentie van de Teensy.
Dat is dus één deel van het probleem en dit is de simpele schakeling om de Teensy-LC van een beter referentie spanning te voorzien.
R1 die in dit schema nog als 100Ω staat vermeld is 200Ω geworden, dit dempt de bagger op de 5V USB voeding beter met de 10µF condensator.
Het Referentie IC heeft ook een Enable aansluiting en dezeis doorverbonden met de + aansluiting voor de altijd aan toestand.
De uitgang van het Referentie IC heeft een 10µF condensator, deze mag 100µF zijn, maar ik had dit niet in een klein model, en dit is voor deze toepassing voldoende.
De ruis is al erg laag van dit Referentie model en er wordt veel filtering toegepast, voor hier dus mooi zat.
.
Even een tussendoorje...
Ik doe bij dit project een aantal afwegingen die niet altijd logies zijn, dat wist ik eerder dan jullie. 
Er is een hele aardige ADC aanwezig dat is de ADS1115 en toch gebruik ik ook de ADC van de Teensy en steek daar ook aardig wat werk in om deze te optimaliseren.
Komt door vele afwegingen, onder meer de tijd van de metingen die de ADS1115 er over doet per ingang is er een van.
De andere is dat ik een aantal zaken goed in de vingers wil krijgen, zowel wat programmeren betreft als ook de electronica die dit project in zich heeft.
Bij projectjes dwing ik mijzelf altijd er steeds wat nieuwes in te duwen om het brein soepel te houden.
Dit word software matig voor mij een hele toer en ik zal jullie nog wel een keer nodig hebben om een deel van de software beter te laten draaien.
Terug "On Topic"
In de datasheet staat al vermeld dat de eerste 1000 uur de referentiespanning aardig omhoog drift,
dat is in onderstaande plaatje te zien, de DMM was hier allang opgewarmd en dit is echt de drift van de REF54250, de DMM7510 heeft een LTZ1000A als referentie en deze heeft ook een kachel.
In het orenje kader kunne jullie een spanning burst zien, dat kan popcorn noise zijn, maar kan ook het gevolg van mijn werkzaamheden aan de werkbank zijn, opstaan van mijn stoel enz.
Wil je zeker zijn dat een referentie geen of weinig popcorn noise heeft, meet dan met twee multimeters over een lange tijd in een EMC veilige meetomgeving.
Omdat dit een 2.vV referentie betreft is 1PPM gelijk aan 2.5µV.
.
Even een andere Referentie laten zien, deze heeft al vele "aan" uren en de ruisbalk vertoond geen drift, dit is de DMM6500 en deze heeft een LM399 als referentie.
Waarom gebruik ik geen LM399 als referentie voor de Teensy-LC? dit kost een extra opamp en twee zeer stabiele weerstanden, het kan, maar dat vind ik een stap te ver gaan.
.
Voor de liefhebbers, dit is het schema van de Teensy-LC, rechtsonder de 74LV1T125 die een 5V TTL uitgang verzorgd vanuit een 3.3V Microcontroler.
.
Hier is de 10µf elco die aan de Referentie aansluiting komt reeds gemonteerd, de draad hiervan steekt onder uit de print en gaat gebruit worden om het Referentie IC aan te sluiten.
Gaatjes 24 en 25 zijn nog twee extra naloge ingangen, helemaal links is zichtbaar dat de Teensy-LC ook een DAC uitgang heeft, deze is 12-Bit.
.
Hier is pin-6 van het Referentie IC gemonteerd aan de + van de Referentie elco, zie het blauwe kader, het rode kader een stukje draad dat ilegaal huurd op de onderzijde van dit printje,
de illegale huurder heb ik een "jettison" behandeling gegeven. 
De 125mW weerstand is hier 200Ω en zit vast aan de USB 5V aansluiting en de andere zijde aan her Referentie IC en wel pin-1 en pin-2, dit is bij het witte Tippex vlakje, door mij aangebracht als herkenpunt.
Het oranje kader geeft pi-4 aan wat het massa contact van het Referentie IC is.
Dit wordt aangesloten door middel van de aansluitdraad van de oker gele condensator, waarvan ik aleen een klein stukje draad gebruik. 
.
Hier is het geheel nu werkend, de maasa aansluitdraad heeft een stukje Teflonkous gekregen, dit omdat het over wat aansluitpunten loopt op de print en ik hier geen sluiting wil hebben.
Ook hier weer wat vreemd perspectief van de foto, dat doe ik allen om een redelijk goede belichting te krijgen zonder te veel reflecties.
.
En dit is de laatste foto voor vandaag endit betreft de bovenzijde van de Teensy-LC.
Links bovenaan in het blauwe kader gaat de + van de 10µF condensator door de print heen om aan aansluitng-6 te komen van de REF54250 Referentie.
De Microcontroler heeft een koelplaatje gekregen, dit is om zijn ADC temperatuur drift kleiner te maken en in het oranje kader het IC dat de digitale 5V uitgang maakt.
.
Dit is nu klaar en dan kan ik de komende dagen verder met wat ik nog op de testprint er bij wil hebben zoals een extra drukknopje en wat andere voorzieningen die ik later wel aangeef als ik ze eventueel toe ga passen.
SHOOT! 
Bram
goh, wel handig om de referentie gewoon onderaan de microcontroller te plakken...
zit er altijd plaats op de print voor te zoeken. wel iets minder handig om van µC te wisselen als er wat foutloopt maar kan zo wel een aantal versies voorzien met zijn eigen referentiespanning.
bij arduino's zijn de interne referenties ook altijd slecht. ze varieren ook sterk mee met de voeding en temperatuur. op 4.8V heb je andere interne referentie dan op 5.2V en als je zijn uitgangen meer belast, zakt de referentie ook in
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi fcapri,
De andere Teensy-LC die ik hier heb, zijn uitgerust met een LT1004 of een LT1009 TO92 referentie.
Eigenlijk zijn ze allemaal EOL oud spul dus, maar ik heb het nog liggen en dan pas ik het toe waar het zinnig is voor 1x projectjes.
Wat ik hier laat zien is niet zozeer als "bouwpakket" maar meer de techniek en de gedachten er achter hoe iets op te bouwen en het een en ander te optimaliseren.
Zou ik b.v. 25 stuks moeten maken, dat zal dit toch op een andere manier moeten worden uitgevoerd, dit omdat de Teensy-LC als een jaar niet meer te koop is.
En ook de LT1004 en LT1009 zijn van de markt verdwenen.
Maar er zijn zat goede en ook betaalbare spanning referenties van TI, AD en Maxim te koop, dat is dus geen probleem.
Mijn toepassing in dit project gaat de ADC niet over een groot bereik gebruikt worden, het zijn maar kleine gebieden zoals voor de temperaturu tussen 40C en 50C temepratuur,
15V voeding, Stroom tussen 100mA en 500mA enz.
De ADC in dit systeempje hoeft niet over zijn hele bereik een lage INL te hebben maar wel graag wat resolutie.
Zodat ik de trent kan zien die en die dan niet voor een groot deel door voedingspanning variaties en temperatuur variaties worden bepaald.
Dus de afwegingen die ik doe zijn specifiek voor deze projectjes, dat is de kleine spanning referentie oven en deze testomgeving voor P.I.D. testen.
Ik had nog nagedacht om een 18, 20 en 24Bit ADC die ik hier ook heb toe te passen, maar dat heb ik laten varen, dan moet ik mij daar eerst weer inleren hoe deze te gebruiken en
het zal weinig echt toevoegen aan de kwaliteit, het maakt het "Error Budget" er niet echt veel beter op.
En de hoofd NTC die in de dikke bodem van het oventje zit gemonteerd wordt uitgelezen door een ADS1115 van TI die gevoed wordt uit een mooi REF7033 van TI.
En ja, ik bedoel echt dat de voedingspanning vande ADS1115 uit de spaning referentie komt.
Het complete schema van de kleine oven en deze P.I.D. testprint komt er nog aan, moet eerst nog wat afwegingen doen.
Ik hoop nog steeds dat ik het oventje zo kan tunen dat hij geen overshoot zal hebben met een zo kort mogelijke opwarmtijd om binnen 0,01°C van de ingestelde 48°C te komen.
De experimenten zullen het laten zien of dit in mijn opstelling mogelijk is.
Groet,
Bram
Ik hoop nog steeds dat ik het oventje zo kan tunen dat hij geen overshoot zal hebben met een zo kort mogelijke opwarmtijd om binnen 0,01°C van de ingestelde 48°C te komen.
Die eisen spreken elkaar tegen. Snelheid en geen overshoot gaan slecht samen.
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi Sine,
Dat is nu het mooie van P.I.D. dan kan je een vrij grote snelheid krijgen en weinig overshoot.
Vooral bij mijn oventjes, die een goede koppeling hebben met de warmte bron en de sensor.
Als de P.I.D. controler het gedrag van het systeem kent, dan wordt daar op geanticipeerd, dat is ook mooi in de Simulatie software te zien als je het optimaal tuned.
Hou er rekening mee, wat ik al eerder heb aangegeven, dat het hier om in principe één temperatuur gaat, het uitgangspunt is hier 48°C.
En het is geen industriele oven tussen zeg 50 en 800°C die je binnen 0,1°C over het hele gebied zonder overshoot wilt hebben met b.v. dynamische belasting.
Mijn belasting is, de energie die weg lekt door bedrading en de isolatie, dat is een heel andere orde. 
En wat ik aangaf in een eerdere post, dat ik ook wil testen met een warmhoud/kookplaatje om het afstellen van de P.I.D. goed te leren.
Groet,
Bram
Ik ben heel erg benieuwd, als de boel eenmaal werkend is, of je nog een D-factor overhoudt. Mijn ervaring is dat temperatuurregelingen weinig baat hebben bij enige D-actie.
Op vrijdag 27 december 2024 10:49:34 schreef Zonnepaneeltje:
Tenzij je PID toepast
PID is geen "wonderregelaar" Als je SNEL wilt opwarmen zul je altijd iets van overshoot overhouden.
Dat is in de regel ook niet erg, stabieler je het spul in bedrijf wilt houden hoe groter het probleem van de eerste overshoot wordt.
Een trage regeling maken is makkelijk, dan 'kruip' je naar je setpoint toe.
@Leo,
Inderdaad, meestal kom je uit op een PI-regelaar, tussen honderden regelaars kan ik er maar enkele tellen die iets met een D-actie doen.
@BD,
Ik weet wat PID inhoudt. Zo af en toe "schroef" ik wel eens aan een digitale variant. Maar elk systeem heeft zijn limieten, en hoe sneller je je setpunt wilt bereiken hoe instabieler je regeling wordt. De grote truc is het "sweetspot" vinden.
En daar zijn verschillende methodes voor, denk aan Ziegler and Nichols
https://tlk-energy.de/blog-en/practical-pid-tuning-guide
Ik ben overigens geen "regelneef", maar af en toe doe ik alsof 
[Bericht gewijzigd door Sine op (16%)]
Hoeben
Golden Member
https://www.hoeben.com https://www.overstockdevices.com https://www.asensor.eu https://www.circuitsonline.net/forum/user/4355#aanbod Voor alle verkoop: een tegenbod is altijd welkom!
PID for dummies:
De P is de proportionele factor, de versterking. Draai alles op 0 en de P omhoog tot je flink overshoot hebt.
Daarna kun je met de D (differentieel, reageert op verandering) de regeling stabiliseren. Een beetje tweaken kan nodig zijn.
En dan met de I factor (integratie) kun je de eindpositie nauwkeuriger maken, die moet traag zijn en laat hem naar het eindpunt toe kruipen. Die I heb je niet altijd nodig, ligt eraan wat je bouwt.
Dus:
Het normale regelen is de P,
de overshoot en soms ook de zaak sneller maken de D,
en eindfout weg laten kruipen de I
Denk eraan dat teveel I hem ook weer instabiel kan maken. Ook kan I veel fout accumuleren waardoor je na een blokkade ineens hebt dat hij hard wegschiet. Rustig aan met je I en eventueel begrenzen.
>> jaren ervaring met pick & place machines en diverse servo regelingen hier
Op vrijdag 27 december 2024 11:42:36 schreef Hoeben:
En dan met de I factor (integratie) kun je de eindpositie nauwkeuriger maken, die moet traag zijn en laat hem naar het eindpunt toe kruipen. Die I heb je niet altijd nodig, ligt eraan wat je bouwt.
Dat ligt er inderdaad aan wat je bouwt, maar voor 90% van de regelingen kom je (in mijn ervaring) op een PI uit, zelden D.
>> jaren ervaring met pick & place machines en diverse servo regelingen hier
Dat zijn inderdaad een andere regelingen dan waar ik mee stunt. Denk meer aan druk, temperatuur en niveau.
En denk groter. Regelen van het niveau van een bassin van 150m3 met wisselende toevoer en afname bijvoorbeeld.
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi,
Leo, ik ben ook heel benieuwd naar het resultaat.
De D die ik 5 a 6 jaar geleden bij een test had was ook laag, dat was bij een dikke Alu buis oven voor referenties.
Sine
Volgens mij ben jij wel een goede regelneef. 
Hoeben
Jouw volgorde is weer wat anders dan ik regelmatig tegen kom, kan natuurlijk heel goed werken in jouw werkomgeving.
Als ik de handleiding volg die bij de simulatie software zit die ik heb aangeschaft dan gaat dit ongeveer zo.
Stel de P waarde in, steeds wat hoger tot je echt genereren krijgt.
Dan kies je ongeveer de heft van de gevonde waarde.
Nu haalt de ingestelde waarde van P niet de ingestelde temperatuur en begin je met de I waarde in te stellen.
Je kan dan daarmee ook weer zo ver gaan om te zien waar genereren begint en kies uiteindelijk een waarde die een stuk onder de genereer waarde zit.
Meestal krijg je dan een golfvorm die een redelijk gedempt systeem heeft, zeg maar één a anderhalve slinger.
Dan kan je de D waarde gaan instellen, om de overshoot die je door de I waarde hebt gekregen kleiner te maken
Ook hier weer kijken waar het genereer punt zich bevind voor de I waarde.
Dan de D verhogen tot de overshoot zo klein mogelijk is(vind ik in mijn project even belangrijk)
Daarna kleine aanpassing doen voor optimale gedrag, zoals de P weer wat groter maken voor een sneller eindresultaat.
Ik test het gedrag met software spongen van 50% dit omdat dan goed kan zien hoe stabiel de P.I.D. loop is.
Als dit allemaal naar tevredenheid verloopt, dan kies ik in de software voor een bepaalde hoeveelheid "Ruis" in de loop,
Zodat ik ook kan zien hoe de loop regelt bij kleinere variaties veroorzaakt door de omgeving.
De software laat ook zien, zoals jullie ook al aangeven dat onder stabiele omstandigheden de D waarde niet mee doet,
Alleen dus bij grote variaties, zoals bij mij, het inschakelen van het oventje, of in mijn testomgeving als ik de temperatuur omschakel om het loop gedrag te testen.
Een voorbeeldje van het tunen met een 1000 naar 1500 en terug is te zien in een plaatje van de Simulatie software van gisteren.
Ik ga kijken hoeveel tijd het uiteindelijk kost als ik het oventje tune op geen overshoot en zeg 0.1°C overshoot,
Wat de winst of verlies is in tijd als ik kies voor geen overshoot.
Voor de goede indruk, de temperatuur van de referentie IC's in het oventje, loopt natuurlijk nooit precies mee met het meetpunt van de NTC in de oven.
Er is altijd LAG aanwezig, hoeveel weet ik niet, dan zou ik nog een NTC tussen de 8 stuks LT1027 referenties moeten plakken.
Dat kan natuurlijk, maar dan is het meer een meetproject dan een hele mooi 10V LAB referentie *grin*
Dank weer voor alle input,
Bram
Op vrijdag 27 december 2024 11:42:36 schreef Hoeben:
>> jaren ervaring met pick & place machines en diverse servo regelingen hier
Die zijn vaak wat lastiger dan een temperatuurregeling, onder andere omdat er daar normaal meerdere PID regelingen actief zijn, bv op stroom en positie.
Ik stam nog uit de tijd dat ik het heb geleerd op "mechanische" PID regelaars , bv de vroeger tamelijk gangbare Foxboro recorders met pneumatische vaan tuit regeling, die toen ik er mee begon toch al redelijk richting EOL gingen.
Leuk project Bram. Ik ben ook wel eens met iets dergelijks bezig geweest. Thermisch model gemaakt, geverifieerd en aangepast. Tja, en dan testen. Dan blijkt dat de sensor tijd nodig heeft om het effect van stoken te zien, anders dan bijv. een snelheids regeling. Vindt de PID niet zo leuk. Met het begrenzen van de integrator som waarde ging het al beter. Ook kun je niet koelen, wat betekent dat een overshoot niet actief gecorrigeerd wordt en je dus afhankelijk bent van de natuurlijke afkoeling. En dat gaat met een andere snelheid dan actief verwarmen. Al met al een leuke uitdaging, maar uiteindelijk lukte het me toch aardig om binnen de meet-resolutie van de 18B20 sensor te blijven. Er kwam uiteindelijk wat meer bij kijken dan de simpele twee-regelige PID code. Beauregard heeft overigens een goede en heldere uiteenzetting op zijn site.
Succes met de verdere experimenten!
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi soldeersmurf, 
Voor alle temepratuur regelingen, daar gaat het mij om, heb je een zo goed mogelijke koppeling nodig met je te verwarmen object, hier een blokje aluminium.
Heb je b.v. een watervat dan heb je misschien wel meer sensoren nodig en actief roeren wil je het heel precies doen.
Daar heb ik trouwens nul ervaring mee, maar kan mij daar wel wat bij voorstellen.
Voor mijn kleine oventjes heb ik ook al zitten denken aan Peltier elementen, dan heb je de mogelijkheid zoals je al aangeeft ook actief energie te onttrekken.
Komt later wel als ik er dan nog zin in heb, nu eerst verder met het afmaken van het printje en dan de software verder schijven.
Dank en groet,
Bram
Hoi Bram,
Ik bedenk net dat ik als de temperatuur hoger is dan het setpoint, het handig kan zijn om de regelaar 'uit' te zetten. In ieder geval ervoor te zorgen dat je de integrator niet negatief laat worden, want dan zou je na afkoeling tot het setpoint geen warmte meer toevoeren. Immers de I zorgt voor het compenseren van het warmteverlies als het setpoint bereikt is.
Een huiskamer thermostaat (zie de bekende ronde Honeywell) warmt tijdens het stoken de thermostaat een instelbaar beetje op om overshoot te voorkomen. Hij probeert dus vooruit te kijken en dat is zeker nuttig bij verwarming waar je niet ontkomt aan een delay. Niet echt PID dus.
Veel industriële temperatuur regelaars hebben een auto-tune functie. Die meet o.a. de snelheid van opwarmen over een temperatuur gebied. Warmte verlies is groter bij een hoger setpoint zoals je ongetwijfeld weet. Kortom, een simpele PID functioneert niet over het gehele setpoint bereik optimaal. De bijdrage van de D-term is niet zo spannend, tenzij je oven sensor ineens in de kou zet. Thermische massa dempt snelle veranderingen sowieso.
Nog een tip, misschien dat Beauregard dat al noemde, is bij de I en de D parameter definities de tijd mee te nemen, zodat als je je sample tijd aanpast de effecten van I en D gelijk blijven. (2 keer zo vaak sampelen moet niet leiden tot een 2 maal grotere integratie...)
Al met al een leuke uitdaging. Gr. Michael
blackdog
Golden Member
Daar de mens het noodzakelijke niet kan volbrengen, streeft hij naar het overbodige (Goethe)
Hi soldeersmurf,
Ik moet je bekennen dat ik echt geen idee heb hoe Intelligent de P.I.D. software is.
Ik weet alleen dat dat 5 a 6 jaar geleden ik met die software een heel aardig resultaat haalde om een klein oventje op temperatuur te houden.
Autotuning zit ook in die software en ik wil graag beide typen uittesten, want ik wil er van leren en een oventje hebben dat redelijk snel goed op temperatuur komt.
Door de thermische massa hoeft de P.I.D. eigenlijk denk ik weinig te doen, er is alleen een opstart gedeelte en als de oven op temperatuur is,
is het alleen nog de weg gelekte energie compenseren, er zijn verder geen storende elementen aanwezig voor de regelloop.
De tweede stap is dus als ik ga testen met een kookplaatje of warmhoud plaatje, dat is wel iets heel anders wat de P.I.D. loop voor zijn kiezen krijgt. 
Maar eerst het referentie IC oventje aan het werk zetten.
Maar er zijn nog voldoende kleine zaken voor dit project die ik moet regelen en mijn afsluiten van het jaar voor de zakelijke administratie, zie ik echt naar uit...
Wat gedaan vandaag, niet te veel aan dit project, maar het volgende.
Het referentie IC voorzien van twee lagen conformal coating, dit beperkt de "ingress" van vocht uit de lucht en dit is beter voor de lange termijn stabiliteit.
Aansluitpennen gemaakt voor de voeding en de i2c bus op de testprint, zodat ik voor nu makkelijk de drievoudige encoder print kan aansluiten.
Een digitale uitgang voorzien van een BS170 om een object te kunnen aansturen, special een kleine MOSFet, dit omdat er dan geen stroom door de Microcontroler loopt,
dit i.v.m. dissipatie en dan weer de temperatuur verhoging die daar dan het gevolg van zou zijn.
Zo nog twee drukknopjes er op de print er bij zetten en dan is het wel voldoende voor vandaag.
Dank en groet,
Bram