In principle, the process characterisation method that I described for the heaters can be used to derive PID parameters for any control process, including fans:
Manual heater PID constant derivation by example - Configs - Klipper
The issue with using PID fan control is that the “process” must be deterministic and the fan must have the required authority to close loop on temperature. In other words, let’s say you are trying to cool a Raspberry PI and set your target temperature to 40 deg.C. When the Pi load increases, rising the CPU temperature rapidly above 40 deg.C, the fan must be able to bring the temperature down to below 40 deg.C once it’s commanded to run faster by the MCU. If the fan is unable to do so, it will simply go to max speed and sit there. Similarly, as the CPU load changes rapidly so will its temperature. This will cause the fan speed to fluctuate wildly.
In most use cases using a PID fan speed control is not the optimal solution. What specifically are you trying to cool?