A bunch of years ago I designed and implemented my own floating regulation algorithm with excellent results, for me better than the PID instructions of the PLC that I used before and another algorithm with integer arithmetic that I implemented when the PLCs did not have PID instruction or floating point calculation.
My floating algorithm corrects the output proportional to the static error (I) and as a function of the square root of the variation of the error (D). There are 2 parameters to tune both effects
I did the square root thing to avoid the excessive correction that previous PIDs applied in case of strong variations in the error, for example with a step in the set point.
The algorithm worked well even in sharp variations, with minimal overshoot /undershoot.
I used it in a multitude of applications, temperature regulation in gas and electric kilns, conveyor speed regulation, pressure, flow, air/gas ratio, etc... with good results.
Acting on/off on electrical resistances and burners, on VFDs, motorized valves with floating control, without taking into account the position feedback.
If someone dares to implement something similar, you should be careful with the math operations, if it is integer arithmetic be careful to avoid overflow (remember the first launch of the Ariane V rocket), also that you lose precision by discarding the remainder in divisions .