Temperatuurregeling voor 3d Printer met 4 heated beds

Hoi Allemaal,

ik ben bezig met de bouw van een 3d printer met heated bed.

het probleem in deze is dat het standaard heatbed 21 x 21 cm is en ik graag groter wil printen. de printer heb ik verschaald en ben deze nu aan het bouwen.

het heatbed is daardoor 4x groter geworden ( als het ware 4 keer een standaard heatbed van 21 x 21cm) dus totaal is het heatbed oppervlak nu 42 x 42 cm.

nu is de 3d printer elektronica niet geschikt voor gebruik met 4 heatbeds, daar moet dus iets voor bedacht worden.

heeft iemand een idee hoe ik de temperatuur op de 4 heatbeds gelijk krijg.

ik zat zelf te denken dat de 3d elektronica het ene heatbed aanstuurd en dan ik met een arduino de temp opneem van heatbed en en deze dan vergelijk met de temp van de andere 3 heatbeds en deze dan op de een of andere manier met PID moet sturen.

heeft iemand hier een voorbeeldje van hoe ik dit kan oplossen.

mvg Adriaan

Het idee is niet eens zo gek..... Alhoewel ik nog wel eens mijn twijfels heb over de verdeling van temperatuur op het gehele oppervlak. Wat je ook nog zou kunnen doen is een warmte geleidend plaatje in het midden nemen die je onder de 4 platen verdeeld om zodoende een wat gelijkmatig gemiddeld te krijgen en die aan je elektronica geven. Als de Mosfet (of relais) aangaat kun je overwegen om 4 andere mosfets aan te sturen die dan uiteindelijk de 4 heatbeds aanstuurt.

Alternatief (wel wat ingewikkelder) is bijvoorbeeld de 4 temp sensors te lezen en die om te zetten in de spanningen behorend bij de huidige temperatuursensor. Nu is het niet meer dan een weerstandsdeler waardoor er een spanning wordt gegeven tussen de 0 en 5V (dacht ik). De spanning moet je mogelijk met een DAC genereren om voldoende precisie te krijgen.

carfreak: heeft iemand een idee hoe ik de temperatuur op de 4 heatbeds gelijk krijg.

ik zat zelf te denken dat de 3d elektronica het ene heatbed aanstuurd en dan ik met een arduino de temp opneem van heatbed en en deze dan vergelijk met de temp van de andere 3 heatbeds en deze dan op de een of andere manier met PID moet sturen.

heeft iemand hier een voorbeeldje van hoe ik dit kan oplossen.

Ik zit te denken aan 4 3 power mosfets die je elk met een PWM uitgang van Arduino aanstuurt. Ik veronderstel dat de heatbed's op 12V werken en ongeveer 6 ampere nodig hebben. Kan goed met een stevige PC voeding. Schakelfets voor zulke stromen zijn makkelijk verkrijgbaar.

Dan heb je nog een paar nauwkeurige temperatuursensors nodig. http://nl.wikipedia.org/wiki/Pt100 Platinum temperatuur sensors (type PT100 of PT1000)zijn (meestal) nauwkeurig en niet zo erg duur en goed verkrijgbaar op Ebay. Door een sensor in je reeds bestaande heatbed te monteren en daarvan de weerstand te meten, op een analoge input, gebruik je die als referentiewaarde. De andere drie heatbed-sensors monteer je zoveel mogelijk identiek en deze waarde's meet je op 3 andere analoge ingangen. De software stuurt de PWM uitgang van elk van de drie kanalen zodanig dat de weerstand van de drie sensors gelijk wordt en blijft aan de weerstand van je referentie sensor. Dit is het principe van PID

De PWM uitgang (gate v/d mosfet) stuur je aan d.m.v. het commando AnalogWrite(Pin,Waarde) , waarde tussen 0 en 255. De PT sensors hebben een bijzonder goed linear verloop en de spanning die je meet is direct evenredig met de temperatuur. Je schrijft de software zo dat als het verschil tussen referentiewaarde en de 3 meetwaarde's groot is dat de analogWrite waarde ook groot is. En als het verschil klein is dat je dan een kleinere waarde analogWrite schrijft. De constante(n) in de vergelijking(en) die de PWM uitgang aanstuurt kan het beste experimenteel bepaald worden. AnalogWrite is (heel) klein of 0 als de temperatuur in (een van) de drie door arduino gestuurde heatbeds groter is dan die van het referentie heatbed.

Als controle kun je met een contactloze temperatuurmeter de 4 heatbeds op temperatuurgelijkheis controleren en mogelijk moet je toch een kleine correctiewaarde in de software opnemen omdat de 4 heatbeds+sensors niet volkomen identiek zijn. Het systeem is nog te verfijnen door bv 2 systemen per heatbed te maken, 2 mosfets, verwarmingsspiralen en 2 sensors, en ook 2 referentie sensors te gebruiken. Een Mega2560 heeft 15 PWM uitgangen en 16 analoge inputs om te meten. Dus dan zou je op 4 punten per heatbed kunnen verwarmen en meten.

edit: 4 veranderd in 3.

Als je de software als PID regelaar wil laten werken:

P = het proportionele deel: Wordt bepaald door het verschil tussen referentiewaarde en meetwaarde. I = het integrale deel : Wordt bepaald door de som van verschillen van vorige meetwaarden. D = het derivative(afgeleide) deel: Wordt bepaald door het te verwachten gedrag als gevolg van huidige stuursignalen.

Deze waarden van het I(ntegrale) en het D(erivative) deel moeten met experimenteel bepaalde correctiefaktoren worden opgeteld bij je P(roportionele) deel. En dan kan daar bovenop nog een correctiefaktor nodig zijn omdat de sensors niet gelijk zijn of niet gelijk gemonteerd.

De software kun je eigenlijk pas maken als je de 4 heatbeds gereed hebt. Er zijn volop onbekende variabelen .

Jij hebt zeker nooit de software van die 3D printers gezien :grin: Veel simpeler...... meet de spanning... pas een benadering toe adhv een tabel en bereken de temperatuur. Als in de code staat 70graden met een marge van +/- paar graden (in het configuratie bestand) dan gebeurt er het volgende: a) temperatuur boven top marge... heatbed off (relais of dikke mosfet) b) temperatuur onder gewenste temperatuur.... heatbed on

tutti. Idem voor de hot-end.

Ik was een verhaal aan het typen over de voorgestelde master en slave hotbeds (en dat je dan altijd achter de feiten aanloopt) totdat ik ff iets anders moest doen.
Daarna zag ik dat Nico inmiddels alweer had gereageerd dat het allemaal zo’n vaart niet loopt.
Dan heeft het niet zo heel veel zin om die hotbeds allemaal aan dezelfde temperatuur te houden.

Ik ben wel benieuwd hoe mooi egaal zo’n hotbed zijn temperatuur over het gehele oppervlak verdeelt.
Ik zou haast verwachten dat je bij de voorgestelde combinatie een koelere zone krijgt, precies in een kruis in het midden van je werk oppervlak.
Dan kun je overwegen een aluminium of koper plaat te gebruiken als heat-diffuser.
Eventueel nog voorzien van een coating die voorkomt dat het materiaal dat je kiest een verkeerde invloed uitoefent op het werkstuk.

Ik zag ergens een ontzettend simplistisch voorbeeld voor een PID regeling.

Ik copieer hier het stukje primitieve nog niet complete code

PID = GainP * actual error + GainI * SUM(previous errors) + GainD * (actual error - last error)

error = sp(set point) - pv(process value)


float pid (float sp, float pv)
{

err_old = err;
err = sp - pv;

// note
P_err = err;
I_err += err_old;
D_err = err - err_old;

return 0.1*P_err + 0.3*I_err + 0.02*D_err;

}


//note. Dead zone example: if (err<2 && err>-2){err=0;}

Dit moet natuurlijk wel nog in een werkend programma omgezet worden.

nicoverduin: Jij hebt zeker nooit de software van die 3D printers gezien :grin: Veel simpeler...... meet de spanning... pas een benadering toe adhv een tabel en bereken de temperatuur. Als in de code staat 70graden met een marge van +/- paar graden (in het configuratie bestand) dan gebeurt er het volgende: a) temperatuur boven top marge... heatbed off (relais of dikke mosfet) b) temperatuur onder gewenste temperatuur.... heatbed on

tutti. Idem voor de hot-end.

Je hebt natuurlijk al zo'n goedkoop chinees 3D-printertje voor een paar honderd euro. 8)

cartoonist: Je hebt natuurlijk al zo'n goedkoop chinees 3D-printertje voor een paar honderd euro. 8)

Ik ben ff kwijt wat dit er mee te maken heeft......

nicoverduin: Ik ben ff kwijt wat dit er mee te maken heeft......

Stromen van 6 of meer ampere schakelen met een relais, lekker goedkoop. Zoiets als het warmhoudplaatje voor de lauwe hap. http://collectie.museumrotterdam.nl/beeld/87138_1.jpg

Volgens mij ging dit gewoon om een eenvoudige temperatuurregeling voor 4 heatbeds ipv 1? Waar dit naartoe gaat weet ik niet, maar ik betwijfel of de TS

MAS3:
Ik was een verhaal aan het typen over de voorgestelde master en slave hotbeds (en dat je dan altijd achter de feiten aanloopt) totdat ik ff iets anders moest doen.
Daarna zag ik dat Nico inmiddels alweer had gereageerd dat het allemaal zo’n vaart niet loopt.
Dan heeft het niet zo heel veel zin om die hotbeds allemaal aan dezelfde temperatuur te houden.

Ik ben wel benieuwd hoe mooi egaal zo’n hotbed zijn temperatuur over het gehele oppervlak verdeelt.
Ik zou haast verwachten dat je bij de voorgestelde combinatie een koelere zone krijgt, precies in een kruis in het midden van je werk oppervlak.
Dan kun je overwegen een aluminium of koper plaat te gebruiken als heat-diffuser.
Eventueel nog voorzien van een coating die voorkomt dat het materiaal dat je kiest een verkeerde invloed uitoefent op het werkstuk.

Er zijn inderdaad mensen die wel eens een 5-6 mm aluminium plaat nemen en daar een zooi dikke 25 of 50W weerstanden aan de onderkant schroeven om zodoende een betere temperatuur verdeling te krijgen. In de praktijk luistert het uiteindelijk niet zo nauw. Het blijft toch zoeken naar de beste temperatuur voor het gebruikte filament. Uiteindelijk is het om het kromtrekken tegen te gaan. Vaak sluiten ze de printer ook grotendeels af om er nog minder last van te hebben.
Zelf zet ik bij mij thuis bij grote onderdelen de temperatuur op max. en als de printer klaar is gewoon laten afkoelen… Dat geeft bij mij het beste resultaat… En dat met mijn oude McGyver Rep Rappie :grin:

T.S. vroeg erom, een PID regeling.

Ik vermoed dat hij er iets moois van wil maken en dattie wil uitsluiten dat het aan de heatbeds ligt als er iets niet helemaal gelukt met printen. En als je iets voor jezelf ontwikkelt dan kun je het beter overdimensioneren kwa specificaties zolang het binnen je budget blijft.

Bovendien kost software niets dus waarom zou je iets simpel doen als het ook elegant kan ?

cartoonist:
Bovendien kost software niets…

Owww, daar gaat het hek van de dam.
Weet wat je zegt.
Ik ga nu slapen (met een dikke smile op mn kop)