I have auto tuners written for motion controllers, FOPDT and SOPDT. I would prefer to use SOPDT over FOPDT because there really are always at least two poles ( time constanst ).
A python program
https://deltamotion.com/peter/py/SysID SOPDT.zip
A pdf that shows how I derive formulas for controller gains that work better with dead time. The times are in minutes so the dead time is quite long compared to the plant time constant.
https://deltamotion.com/peter/Mathcad/FOPDT/Mathcad - FOPDT I-PD.pdf
A simpler approximation of the dead time.
https://deltamotion.com/peter/Mathcad/FOPDT/Mathcad - FOPDT PI.pdf
You can PM me if you want to go deeper.
A SOPDT example that started in 2005 using Ron Beaufort's "hot rod" data.
I have many examples of how to derive the controller parameters. The better the approximation for the dead time the better the controller will be able to handle long dead times. However, this is a limit. At this point one needs to use a Smith Predictor.
https://deltamotion.com/peter/Mathcad/SOPDT/Mathcad - SOPDT SP vs FC 9deg db.pdf
All the calculations are shown. You can see I can derive then using my Mathcad.
I have been writing auto tuners for 20 years now. I mostly work on motion control.
I have a YouTube channel "Peter Ponders PID"
https://www.youtube.com/results?search_query=peter+ponders+pid