This is interesting. Can you define a time response equivalent instead (second order response) and tweak your controller to get the desired time response. Or compute the linmod with the plant and PID every time and tweak PID. Another approach is to input a sine sweep, do an fft and get the TF. Get the Gm and Pm and tweak. It is not an exact solution.