1

Topic: Huge swings in extruder temperature

I just finished installing a 40W heater cartridge as a replacement for my burned-out resistor, but the temperature curve is showing huge swings.   I'm seeing 20°C swings (10° below and 10° over) the mean temperature I set.

http://www.soliforum.com/misc.php?action=pun_attachment&item=4142

What can I do flatten this curve?  Is there an option that can be changed in firmware?

Post's attachments

Extruder temps 4.jpg
Extruder temps 4.jpg 129.71 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.
To print or, 3D print, that is the question...
SD3 printer w/too many mods,  Printrbot Simple Maker Ed.,  FormLabs Form 1+
AnyCubic Photon, Shining 3D EinScan-S & Atlas 3D scanners...
...and too much time on my hands.

2

Re: Huge swings in extruder temperature

have you auto PID tuned again for the new cartridge?

3

Re: Huge swings in extruder temperature

I'd also do the bedpid tuning as documented in configuration.h - that will cure your sawtoothed bed heat...

4 (edited by pirvan 2013-12-13 07:22:12)

Re: Huge swings in extruder temperature

I have no idea how to do that.  How do I go about doing that?

Nevermind, I search and found the Wiki on PID tuning.

To print or, 3D print, that is the question...
SD3 printer w/too many mods,  Printrbot Simple Maker Ed.,  FormLabs Form 1+
AnyCubic Photon, Shining 3D EinScan-S & Atlas 3D scanners...
...and too much time on my hands.

5 (edited by pirvan 2013-12-13 07:51:41)

Re: Huge swings in extruder temperature

Looks like I need help after all.  When I run the PID autotune, it fails with thi:

23:36:53.509 : PID Autotune start
23:38:54.527 : PID Autotune failed! Temperature too high
23:38:54.751 : Error:checksum mismatch, Last Line: 177
23:38:54.767 : Resend: 178
23:38:57.822 : Error:Line Number is not Last Line Number+1, Last Line: 177
23:38:57.822 : Resend: 178


Any ideas?

The above was an attempt to autotune @ 195°C.  I also tried autotuning at a lower temperature 180°C, but  I get the same error.  The line number is different (Line 99).

To print or, 3D print, that is the question...
SD3 printer w/too many mods,  Printrbot Simple Maker Ed.,  FormLabs Form 1+
AnyCubic Photon, Shining 3D EinScan-S & Atlas 3D scanners...
...and too much time on my hands.

6

Re: Huge swings in extruder temperature

Ok, so it seems that no matter what I do, I can't run the Autotune command without getting the "Temperature too high" error. 

It doesn't matter if I try to autotune it to 200°, or 100°.  I also tried a variety of solutions offered elsewhere like adding the E-0 to the command line to specify the extruder instead of the bed, whether I had the extruder heater off or on when I started the Autotune. 

End result:  "PID Autotune failed! Temperature too high"

So I decided to do some trial and error settings, and this is what I came up with this far:

http://www.soliforum.com/misc.php?action=pun_attachment&item=4153

I started with some arbitrary numbers in the neighborhood of the original PID settings. This shows a swing of about 10°C, 5° above and 5° below the primary target.  P is set to 20, I is zeroed out and D is set to 120

Then I decreased P to half, and got a much flatter response (in fact it's less than 1° after about 10 minutes).  But you'll notice that the average temperature is now 5° below the target, at 185°C.

http://www.soliforum.com/misc.php?action=pun_attachment&item=4154

Increasing the I to 1.00 brought the average temperature up to 195°,and also introduced a wild swing of almost 15°C, so I backed the number down incrementally, until I got to 0.1.  The average temperature is now 190° (target), and the oscillations are about 1°

http://www.soliforum.com/misc.php?action=pun_attachment&item=4155

But no matter what I do, I can't seem to get rid of the huge overshoot on the first cycle, when I turn on the heater.  Even if the heater was turned off for only a minute, on the initial heatup, it overshoots the target by at least 10°.  According to some of the documents I read, increasing the value of P, should reduce the overshoot, but for me, it has the opposite effect, and it introduces the wild oscillations.

For now, I can live with the current settings, but any insights on how to reduce the overshoot, or anything else for that matter, would be appreciated.

Post's attachments

PID Tuning 1.jpg
PID Tuning 1.jpg 102.12 kb, file has never been downloaded. 

PID Tuning 2.jpg 112 kb, file has never been downloaded. 

PID Tuning 3.jpg
PID Tuning 3.jpg 113.16 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.
To print or, 3D print, that is the question...
SD3 printer w/too many mods,  Printrbot Simple Maker Ed.,  FormLabs Form 1+
AnyCubic Photon, Shining 3D EinScan-S & Atlas 3D scanners...
...and too much time on my hands.

7

Re: Huge swings in extruder temperature

D (derivative) reduces overshoot.

I recommend you read up on PID control.

8

Re: Huge swings in extruder temperature

Hi all.

I found that the PID tuning works great to keep the temperature stabilized. What temp do you guys run at for ABS? I find that 205c I get the best layer adhesion (If I go much lower the layers don't stick together as good) but when printing tall but narrow parts, the heat it gives off seem to burn the layers and darken the color or my orange ABS.

My SD3:  Clear plexiglass case, case heater, X axis stabilizer, Z axis stabilizer, thumb screws, filament guide, heatsinks on all motors, extruder fan, controller fan, heatsinks on motherboard, Y rod pillow block, USB and Power on/off switch, fully calibrated including trimpot tuning. Am I missing anything?

9

Re: Huge swings in extruder temperature

elmoret wrote:

D (derivative) reduces overshoot.

I recommend you read up on PID control.

Yeah, well, I downloaded a few PDFs on the subject and tried to read and understand it, and maybe some of you understand all this, but to me, 90% of it greek. All the examples and equations and such are beyond my paygrade.

But here is how I think it works, and if I'm wrong, please enlighten me:

"P" is the bandwidth or zone in which the proportioning action takes place.  So the larger the number the wider the zone around the target and vice-versa.  (I can see the effects of "P" in my tests, images #1 and #2)

"I" adjusts the proportional bandwidth with respect to the target to prevent an offset from the target. (I could see it's effects on my tests too, see image #3).

"D" is supposed to monitor the temperature's rise and fall rate, and is supposed to adjust the bandwidth to minimize over or undershoots.  It doesn't narrow or affect the "P" zone, but it tries to prevent the temperature from going above or below it.

The problem is that, in my tests,  I can't find any value of "D" that will flatten out that inital overshoot.  A very low value (<50) seems to let the temperature overshoot the target to the point of triggering MAXTEMP and the extruder turning off. (and requiring an reset).  A value of 120 (which is what I was testing with) reduces the overshoot enough to not trigger MAXTEMP, but it's still there.  Larger values (as large as 500) do not seem to have any further effect.

So, any other ideas?

I wish I could get the autotune to do this for me, but I can't.  Any solutions to this problem?

To print or, 3D print, that is the question...
SD3 printer w/too many mods,  Printrbot Simple Maker Ed.,  FormLabs Form 1+
AnyCubic Photon, Shining 3D EinScan-S & Atlas 3D scanners...
...and too much time on my hands.

10

Re: Huge swings in extruder temperature

I finally had a chance to get back to this, and found the solution.  The problem I had with autotune triggering MAXTEMP was solved by reducing PID_MAX from 255 to 190.  This reduces the maximum current sent to the heater during PID.

Now I was able to run the PID autotune command and get some numbers.  The autotune values were very close to the numbers I had stumbled on manually.  But what made a difference was the current reduction using the PID_MAX. 

While I was at it, I also enabled and ran a PID on the bed, and saved the values.

While the bed is functioning flawlessly, the extruder heater still has the overshoot, but it no longer goes near the 220° mark.  I will try to reduce the PID_MAX value further and see if that reduces the overshoot.

To print or, 3D print, that is the question...
SD3 printer w/too many mods,  Printrbot Simple Maker Ed.,  FormLabs Form 1+
AnyCubic Photon, Shining 3D EinScan-S & Atlas 3D scanners...
...and too much time on my hands.

11

Re: Huge swings in extruder temperature

pirvan, where did you find this?

I finally had a chance to get back to this, and found the solution.  The problem I had with autotune triggering MAXTEMP was solved by reducing PID_MAX from 255 to 190.  This reduces the maximum current sent to the heater during PID.

SD3, E3D hotend,linear bearing on x/y axis',pillow block bearing on y conneting rod, ball bearngs on front y axis, fan on y stepper motor.

12

Re: Huge swings in extruder temperature

satman49 wrote:

pirvan, where did you find this?

It's in the configuration.h file. 

I downloaded this Solidoodle/Arduino file, and modified it's configuration.h file to reflect the changes I needed.  Then built and uploaded the new firmware.

http://download1897.mediafire.com/4fasn … indows.zip

Download the file, extracted to a working directory (needs about 260MB), then run the Arduino executable.    Load the Solidoodle sketch ("File/Example/SolidoodleMarlin"), then on the configuration.h tab make the necessary changes.  Then either build the new hex file or upload it to the printer directly.  make sure you select the correct board and COM port.

Hope this helps.

To print or, 3D print, that is the question...
SD3 printer w/too many mods,  Printrbot Simple Maker Ed.,  FormLabs Form 1+
AnyCubic Photon, Shining 3D EinScan-S & Atlas 3D scanners...
...and too much time on my hands.

13

Re: Huge swings in extruder temperature

thanks

SD3, E3D hotend,linear bearing on x/y axis',pillow block bearing on y conneting rod, ball bearngs on front y axis, fan on y stepper motor.