математика примерно такая...
для начала немного о логике процесса, практически все регуляторы, используемые сейчас, цифровые. что это означает наверно распространятся не надо...
дале, пусть есть нагреватель, есть датчик температуры за ним, воздух дует через нагреватель на датчик, мощность нагревателя может меняться, т.е. имеется управляющий вход.
с датчика температуры каким-то образом снимается сигнал и преобразуется в цифрУ, это входной сигнал для регулятора. это делается Периодически, период м/б от долей, до десятков секунд. Пройдя некие преобразования в регуляторе, входной сигнал, каким-то образом превращается в выходной, тот поступает на ИО (исполнительной орган, типа привод, реле, рег.нагреватель и т.п.)
Обозначения.
Th - текущая температура, *С.
Th.set - уставка температуры, *С.
Uxxx - выходной сигнал, не имеет размерности, как правило, изменяется от 0 до 1 т.е. от минимума до максимума, xxx - закон регулирования.
error = Th.set - Th, - сигнал ошибки, читай, входной сигнал, *С.
в чистом виде П-закон регулирования записывается так:
Up = error * Ky,
здесь Ky - коэффициент усиления, вместо него чаще применяется величина ему обратная, т.е. Ky = 1 / Zp, Zp - называют зоной или полосой пропорциональности. поскольку error имеет размерность *С (гр.цельсия), то и Zp также имеет размерность Цельсий.
ПИ-закон записывается так:
Upi = error * Ky + 1/T.i * ("Сумма всех значений error"),
здесь T.i - относительная интегральная постоянная времени, имеет размерность *С. Если внимательно присмотреться к последнему слагаемому, то можно заметить, что оно очень похоже на формулу "среднее арифметическое", на сам деле оно им и является, одно маленькое "но" - для или по величине T.i
Вот, как записаны выражения для Up и Upi, так они и используются для управления приводом с пропорциональным, 0...10В, входом.
теперь про трехпозиционный привод.
здесь потребуется пара новых обозначений:
deltaUххх - приращение выходного сигнала, *С, ххх - метод
errorOld - предыдущее значение error, *С.
без выкладок, они очень просты, записываю выражение для П-закона в несколько другом виде.
Up = Up.Odl + delta.Up,
здесь Up.Old - предыдущее значение Up.
delta.Up - приращение Up на текущем отсчете.
delta.Up = (error - error.Old) * Ky, меняется также от 0 да 1, но в отличии от Up в первой записи превращается не в вольты, а в отношение времени "включено" к "выключено", как и для чего - ниже.
дале поступают так,
если delta.Up > 0 - включают и выключают выход "увеличить", на время пропорциональное модулю значения delta.Up, другими словами меняют скважность включения/выключения этого выхода в зависимости от величины delta.Up
если delta.Up < 0 - тоже самое для выхода "уменьшить".
если delta.Up = 0 - оба выхода выключены.
что теперь со всем этим делать, чтоб разобраться что к чему

...
надо взять карандашик, листочек и разрисовать абстрактные графики со всеми этими переменными и законами, учитывая, что в самый первый период времени Uxxx = 0, а error < 0. Это очень важно!