В ВУЗе нам головы иссверлили этим ПИД в разных ипостасях. Уже настолько пропитался им, что даже объяснить формулы не могу.
Как понимаю, все формулы сведутся к вычислению в конечных разностях и тогда придётся учитывать время между пересчётами, т.е. довольно точно отмерять время. В ПЛК это просто, а на C# - затрудняюсь сказать, т.к. Windows не является ОСРВ (операционной системой реального времени). Но, в принципе, должно получиться удовлетворительно.

Аналоговый ПИД - это обычное вычисление по формуле с ограничениями выхода диапазоном от 0 до 1 (или от 0% до 100%).
Особенностью только является использование D - нужно сильно сглаживать или весь входной сигнал переменной процесса (PV) или только ту его часть, что поступает на вычисление этой D составляющей.

Формулу предлагаю взять с зависимыми коэффициентами, т.е. с вынесенным за скобки Kp. Это приведёт к тому, что параметр Ti станет измеряться только в единицах времени и будет осознаваем.

Содержимое сообщения с алгоритмом ПИД для КЗР чуть более развёрнуто приводил в своём блоге - его движок позволяет записывать формулы в LaTeX и лучше показывать, чем скрины.
https://www.cyberforum.ru/blogs/534277/8438.html

Повторюсь, будут вопросы - задавайте. По вечерам я дома и могу ответить. Через неделю начнётся ПНР - тогда длительно буду доступен по субботам.