Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Auto PID tuning and temperature overshoot

    Scheduled Pinned Locked Moved
    Firmware wishlist
    7
    10
    4.0k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • dc42undefined
      dc42 administrators
      last edited by

      I am working on the improved temperature protection and auto PID tuning in the firmware. I would like some user opinions:

      1. How much temperature overshoot do you consider acceptable when heating up the extruder or the bed?

      2. If you have used other firmware that supports auto tuning, how good have you found the auto tuning, and how much temperature overshoot did it give you?

      Duet WiFi hardware designer and firmware engineer
      Please do not ask me for Duet support via PM or email, use the forum
      http://www.escher3d.com, https://miscsolutions.wordpress.com

      1 Reply Last reply Reply Quote 0
      • W3DRKundefined
        W3DRK
        last edited by

        I've used PID auto-tune in Marlin, Repetier-Firmware, Smoothieware. In my experience Marlin's auto-tune did the best job at getting the PIDs pretty close.

        Personally, keeping the overshoot to 1 degree C or less would be ideal for me.

        1 Reply Last reply Reply Quote 0
        • StephenRCundefined
          StephenRC
          last edited by

          One C for the hotend, and the bed can go over 5C.
          I've only used PID auto tune in Marlin and it's always worked fine for me.

          1 Reply Last reply Reply Quote 0
          • botundefined
            bot
            last edited by

            Are we talking about the initial overshoot, or the recurring overshoot of each cycle?

            *not actually a robot

            1 Reply Last reply Reply Quote 0
            • dc42undefined
              dc42 administrators
              last edited by

              @bot:

              Are we talking about the initial overshoot, or the recurring overshoot of each cycle?

              The initial overshoot is what I am asking about.

              Duet WiFi hardware designer and firmware engineer
              Please do not ask me for Duet support via PM or email, use the forum
              http://www.escher3d.com, https://miscsolutions.wordpress.com

              1 Reply Last reply Reply Quote 0
              • T3P3Tonyundefined
                T3P3Tony administrators
                last edited by

                I don't really mind how much the bed overshoots as long as the time to stabilise is matched to how long a M190 command waits for once the temperature is achieved.

                www.duet3d.com

                1 Reply Last reply Reply Quote 0
                • dc42undefined
                  dc42 administrators
                  last edited by

                  The M190 and M116 commands currently only wait until the temperature is within 2.5C of the target. So the print might start when a temperature is 2.5C under target, regardless of how much overshoot there is.

                  I am aiming for overshoot of no more than 1C in all situations. The problem is, classic PID can only be tuned to avoid overshoot at one particular temperature. I am getting good results on my Kossel with 30W E3Dv6 hot end. However, my Ormerod has a much more powerful heater, and it's hard to avoid a lot of overshoot unless I reduce the maximum PWM.

                  Duet WiFi hardware designer and firmware engineer
                  Please do not ask me for Duet support via PM or email, use the forum
                  http://www.escher3d.com, https://miscsolutions.wordpress.com

                  1 Reply Last reply Reply Quote 0
                  • botundefined
                    bot
                    last edited by

                    FWIW, I reduce the max PWM on all my hotends, even 25W heater cartridges from e3d. No shame in doing so. 🙂

                    *not actually a robot

                    1 Reply Last reply Reply Quote 0
                    • RCarlyleundefined
                      RCarlyle
                      last edited by

                      Bypassing PID and using bang-bang when more than X degrees from the setpoint is a pretty reasonable way to reduce overshoot. Keeps the integral from winding up. Sailfish uses a +/-10C band for PID and will usually hit zero overshoot in my experience. That's a good value for "normal" hot end sizes/powers. Or for a possibly more flexible approach, turn off error accumulation for the integral term when the P term is saturated and you're below the control band. (Not over the control band though, that would be dangerous.)

                      1 Reply Last reply Reply Quote 0
                      • peridotundefined
                        peridot
                        last edited by

                        We're in 32-bit land, though, does it make sense to allow multiple sets of PID parameters for multiple target temperatures? One per ten Celsius degrees, perhaps, or a maximum of five and it picks the closest? I don't know how short of EEPROM and code space the Duet is.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post
                        Unless otherwise noted, all forum content is licensed under CC-BY-SA