Q'bert,
It sounds like the auto-tune function is tuning for quarter-amplitude damping (QAD). This gets the temperature to setpoint faster, but results in the overshoot. There are cases in industry where QAD is a good thing, because it minimizes the integral of the error over time. (The overshoot error "makes up for" the undertemperature error, mathematically.) But in most cases, lambda tuning is preferred. Lambda tuning's goal is to provide decent temperature control (enough integral gain to drive to setpoint and hold there, mopping up disturbances "enough") but guaranteeing no overshoot. (As you can probably guess, overshoot can be a VERY bad thing, like in damaging the PEEK component of the MG hot end, or, on chemical reactions that are exothermic, generating a runaway condition. Proper lambda tuning prevents things like damage to property, people, cities, etc.... You might also guess that I'm a control systems engineer by profession.... if the engineer-speak above doesn't make sense, I apologize.)
Unfortunately, I'm not as familiar with the M301 / M303 and the other G-code elements as I would like to be, having just started out in 3D printing.
Is there an M code that lets you read back the P, I and D gain values generated by the auto-tune function? (Maybe they are in the response to the M303?) And is there documentation of the UNITS of these gain / time values and how the algorithm uses them? Some algorithms use "dependent" gains, where a change to the P gain also propogates to the I and D gains --- Kp * ( e + (integral of error)/Ti + Td * de/dt ) --- note the parentheses --- and some algorithms use "independent" gains, where Kp only multiplies the error --- a change in parentheses ---- Kp*e + (integral of error)/Ti + Td * de/dt. Also some algorithms use "integral time" --- minutes per repeat --- and some algorithms use "integral gain" --- repeats per minute. I would need to know these details in order to advise how to modify the values. The most likely is the "dependent" gains algorithm. In this case, dividing the proportional gain Kp by 2.0 should provide something closer to critical damping and minimize or eliminate overshoot --- without going through all the effort of doing lambda tuning. If there's still some overshoot, your can safely divide Kp by 2 again, but response to disturbances will not be as good.
So, if I totally confused you, sorry. Just try this:
Use the M303 to run the auto-tune.
Use whatever M code (or, with verbose mode, read the response to the M303?) to find out what the calculated P, I and D gains are.
Divide the P gain by 2.
Apply those gains (M301 with new parameters?) and test. Let us know how it works.
I've noticed the overshoot on the extruder. The bed is less prone to it just because of the higher thermal mass compared to the available heating. The heater for the extruder can heat up that little brass nozzle PDQ.
There are some excellent non-linear (fuzzy logic) algorithms for temperature control, especially for heat-only applications, which basically modify the tuning on the fly and recognize the "uncontrolled" ramp-up at full heat vs. the "controlled" area close to setpoint.
Good luck. If you are successful, please post back here with the M-codes you used and the responses from the printer (and a screen-grab of the temperature trend chart, if your software has one).
THANKS!
Dale