PID control

Robin2:
I have come to the conclusion that it is better to have some separate (non-PID) code to get the temperature (or motor speed) into the range where PID control works.

That's one way to do it. Or have a system that checks on external ambient temperature....and current temperature etc..... so that the system can automatically choose a suitable set of coefficients ..... like different sets of pid coefficients to cover various operating ranges or conditions. This of course would involving putting in some work to find out suitable sets of pid. On the other hand... if one set happens to do the job.... then that's great.