First of all, I'm not an expert, but I'll try to give you basic answers listing all that I know as state-of-art. Also, I'm going to update the data with the feedback that people can give or adding new technologies developed.
[2020-10-27]
Popular methods for tuning:
- Manual tuning: Stability
- Ziegler–Nichols
- Tyreus Luyben
- Automatic tuning: software tools
- Cohen–Coon
- Automatic tuning: Åström-Hägglund
- Harris Hawks Optimization Algorithm
Automatic tuning:
- (Newest) Neural networks: read-paper-1 read-paper-2
- Deterministic Q-SLP Algorithm: read paper
- Particle swarm optimization algorithm: read paper
- Genetic algorithm in C++: review library
- Bio-Inspired Multiojective Tuning: read paper
- Loop optimization software: open loop, closed loop control and references.
- Calculates initial values via the Ziegler–Nichols method automatically.
- Patented methods embedded on PID tuning softwares like Matlab. Check all until 2006
- Loop optimization software for Non-steady stable models.
Open-source softwares to autotune:
- Arduino library that you mentioned.
- Python: GEKKO view demostration
- Python: based on arduino-library view library
- Web based on arduino-library: open online tool
Other softwares:
So, You need to choose the simplest based on your requirements. You may try with Ziegler–Nichols
. Also you can check this paper: (2017)"Designing a neuro-fuzzy PID controller based on smith predictor for heating system".
References: (2006) Autotuning of PID Controllers: A Relay Feedback Approach.