How to implement self-tuning PID controller. what tells the controller to adjust which parameter and by how much? how does the controller identify the process dynamics?
It is a rather complex subject. And it usually depends a lot on what you are controlling. You really need to do a lot of work before you can even understand some of the simplest concepts.