About PID

good evening everyone,
I want to do a test of the PID on the left extruder (e1) I send the following command: M303 E1 S170 C5, in my initial configuration: p = 63.00 i = 2.25 d = 440. At the end of my order I get: p = 40.27 i = 2.98 d = 135.93. The difference between initial d and d after my order is quite large. Is this normal? Then I enter the new values without risk? Thank you for your answers. Jean Michel

Dear Jean Michel,

please don’t worry about the PID parameters. As long as you can get stable temperature conditions on the extruder there is no need to modify these parameters. However, these parameters are reflecting your thermal behaviour of the heater, mainly impacted by the thermal mass and the time constant on which the heater reacts on changes in the supplied power. . Since you have the nozzle and the heater block as separate parts, the thermal contact between these two parts is impacting the thermal behavior and thereby the PID parameters. The thermal contact/thermal resistance between heater cartridge and heater block is impacting the thermal behavior and therefore the PID parameters. An most important, the thermal connection of the temperature sensor to the heater block. With proper thermal grease on the thermal interfaces you can change the thermal behavior of the heater in such a way as you described. In principle you can state: the smaller the parameters, the more responsive is your heater on the provided power.

In case you have stablilty problems for the temperature and you need to run the autotune routine, you have to be quite careful. First of all the you have to realise that the PID controller in the original firmware is not able to work properly. The loop time of the implemented software PCM regulator for the heaters is larger than the control loop time of the internal PID controller. By this condition the PID controller provides some output to the software-PWM controller while the last control loop is not finished yet. The output is ignored and PID controller is distorted occasionally. This will lead to an instable condition of the PID control, which is visible as small variation of the temperature over time.

The next issue is the implemented PID routine itself. In the standard firmware I believe that the calculation of the derivative part is incorrect. Therefore I implemented an updated PID control algorithm in my firmware flavor.
Furthermore the auto-tune routine is based on the relay autotune approch, and for each of the relay steps (except the first two) a set of PID parameters is provided. If you have a look on the parameters itself, they are varying significantly from step to step. Which are the correct ones? To overcome this problem I implemented an averaging of the PID factors, based on seven relay steps as default value.

So please don`expect too much from the implemented PID tuning routine. It will give you some start values, which may work fairly good. To get an improved temperature control you may need to fine-tune these parameters manually.

As an alternative I invite you to check my latest version of my firmware flavour, where I did some work on the thermal behaviour ( but bot only on this). You can find it here: http://ddd.k8400.hoehnemann.net/Firmware/Firmware_MarlinHOH.html

Good luck

Hello hoh61, and thanks for your reply. I will start by looking at your link and then look for a reference for thermal grease. Have a good day and thanks again. Jean Michel

I come again, please, where did you buy your thermal grease for your heating element ? tks, jm

Dear Jean-Michel,

I use this one: http://www.thermalforce.de/de/product/waermeleitmittel_zubehoer/index.php?uid=9b253120233d14816ef9be90373adf88&ref=#wlp3900

Since you can use this paste extremely economically it will least a long time.

Kind regards

Holger Höhnemann