A controlled process might vary over time (due to e.g. slack, wear and tear ...), causing the need for refining the controller. If the aim is not to rely on heuristics (e.g. Zigler-Nichols) - and that is a good intention - then what one should do is first to come up with a model that is representative of the plant and second use such a model to tune the PID. The recipe is pretty much described here.
What makes the identification difficult in this context is the fact that we are dealing with a closed-loop system, meaning that the plant is under the control of our by now "weakly" tuned PID. In this scenario we have to be careful, since we cannot blindly adopt standard identification techniques as in the more usual open-loop framework.
In literature there exist direct, indirect and joint input-output methods for closed-loop identification. An enlightening reading is "Closed-loop Identication.
Methods, Theory, and Applications". To any rate, the Prediction Error Estimation (PEM) turns to be a viable and simple solution to this end: we have just to record the output of our PID as the process input so as the output of the plant as the process output and then use some sort of ARX, ARMAX, Output-Error black box identification approaches and we will end up with an unbiased estimation of the plant dynamics. It can be demonstrated indeed that the estimation is valid and informative as it would have been carried out in open-loop fashion.
Once we have a good estimate of the plant, we can design the PID controller relying on diverse techniques, such as dominant pole placement, loop shaping, in order to meet some given performance and robustness requirements.