Navigation

    Duet3D Logo

    Duet3D

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Documentation
    • Order

    Auto PID tuning and temperature overshoot

    Firmware wishlist
    7
    10
    2874
    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.
    • dc42
      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?

      1 Reply Last reply Reply Quote 0
      • W3DRK
        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
        • StephenRC
          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
          • bot
            bot last edited by

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

            1 Reply Last reply Reply Quote 0
            • dc42
              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.

              1 Reply Last reply Reply Quote 0
              • T3P3Tony
                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.

                1 Reply Last reply Reply Quote 0
                • dc42
                  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.

                  1 Reply Last reply Reply Quote 0
                  • bot
                    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. 🙂

                    1 Reply Last reply Reply Quote 0
                    • RCarlyle
                      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
                      • peridot
                        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