The best method depend on the desired performance for your application, if reference tracking or disturbace rejection. There are a lot of tuning mehods for PID control, the main classic methods being Zigler-Nichols, Cohen-Coon and Chien-Hrones-Reswick. This methods are based on first-order-plus-dead-time models, but have unaltered formulae and don't work for some systems with a small relation (dead-time)/(time constant). Particularly, I like more the IMC method, where we have a parameter (TauC: closed-loop speed of response) that we can ajust the controller for a faster (aggressive) or slower (robust) response. I use more the Skogestad's IMC, that you can find here:
If you already have the optimization software, it is also a good choice. But you have to specify your response performance and evaluate the control signal, to see if it is between the physical limits of the actuator. If not, you must re-tune the controller. But if the control signal surpass just a little, you can implement a anti-wind-up strategy.
a good comparison detail regarding PID tuning can be found in "Comparison of PID Controller Tuning Methods" by Mohammad Shahrokhi and Alireza Zomorrodi
so if a system can be fairly approximated as linear, then you have a zoo of linear possibilities, if it is nonlinear, then you have nonlinear methods. I think it best to try out some two or three methods and see which one suits best your plant...the rest comes with needs..
In my case, I used to built a PID controller in Simulink/MATLAB to adjust the values of P, I, D parameters and to check the performance of controller, and generally, P and D parameters affect a lot to the system. So, if you can establish the equations of the system, it could be a useful way to obtain the optimal parameters of PID controller.
In my opinion, the classical method for tuning PID parameters is based on practical experiences, specifically, as I mentioned above, firstly tune the P until the system starts vibration, then calculate the corresponding sampling time and other parameters.
What do you mean by "best"? If you have a criterion, you tune the parameters in order to optimize it.
Notice that you can design a PID controller that minimizes the H-infinity norm of some performance channel using the function hinfstruct of the Robust Control Toolbox (commercial) of Matlab or using the HIFOO package (freeware).
Depending on the system you have to control, and on the objectives you have for your closed-loop, there are several rules to tune PID (like any other controller). Do you have to track a time-varying reference? Do you have to reject disturbances? And what kind of disturbances? Do you have to improve the closed-loop bandwidth? Do you have to improve the system robustness? Is your system a damped one or an oscillating one? If it is a damped system, has it several time constants which are very different? Is there an integrator in your system?
There was a book by Karl Astrom in years 1990 and 2000 treating several cases and showing commercial PID, but also papers in good journals, like Automatica.
as said previously by colleagues, it's depend on your system. In addition, the important thing is how you define the objective function to atteign the needed performances regardless the algotihm used.
Manual PID tuning is done by setting the reset time to its maximum value and the rate to zero and increasing the gain until the loop oscillates at a constant amplitude. (When the response to an error correction occurs quickly a larger gain can be used.
The best method for tuning PID controller parameters is depend of your system
However, a lot of method can be used to have the gain value of your corrector such as optimisation algorithm to minimise the cost function between the desired response and the actual one.