Давно. Но вообще я физик, а вот с КИП/АСУ работаю не так давно.По сложности он такой-же как ПИД, но в нем другой алгоритм компенсации статической ошибки ПД-регулятора. Не интегральный.
Судя по описанию, сам ваш регулятор гораздо проще ПИД, но содержит дополнительные вычисления для частного использования.Обычно аналоговый выход с регуляторов подается на ШИМ, а он уже управляет нагревателем дискретно.Обычно, нагреватели управляются дискретно включен/выключен.Оператор называют линейным, если A(ax+by) = a*A(x) + b*A(y), где x,y - вектора, a,b - произвольные числа.Линейно работает П-регулятор.
Операторы интегрирования и дифференцирования линейны. (интересно, в технических вузах преподают всякие ФункАны и ЛинАлы? =) )Моя цель была сделать не регулятор какой либо одной реальной системы, а регулятор столь-же универсальный как ПИД, на основе модели, которая приближенно описывает большинство существующих реальных систем.Имеет, если вы:
1. в состоянии составить полную мат. модель реальной системы (что по моему мнению очень сложно на практике).
2. учесть в модели, что она на самом деле дискретна, а методики синтеза в основном для непрерывных систем (применить теорему Котельникова-Шеннона, если получается,... или опечалиться)
3. синтезировать оптимальный регулятор, используя полученные знания за 5-6 лет вуза (потратив мнооого времени)
4. объект управления - шаттл с посадкой на вертикальную платформу, а не обогрев курятника
Синтезированный регулятор будет естественно лучше ПИД, и настраивать его не придется методом научного тыка, но на практике это как правило не реально, трудозатратно, немозгохватаемо (это я про себя если что ), не поставить на поток, недостаточно времени, недостаточно сведений для составления мат. модели, т.к. используются датчики и исполнительные механизмы с начинкой "черный ящик".
Вообще изначально моей целью было на основе некой простой модели вывести, чему физически должны соответствовать коэффициенты ПИД. Но в итоге я пришел к выводу, что физическое соответствие есть только у дифференциального времени ПИД, наполовину у пропорционального коэффициента, а интегральная компенсация вообще не имеет смысла и её нужно заменить другим алгоритмом.
В итоге на настоящий момент я окончательно пришел к модели ПД+ регулятора, в котором вместо интегрирования отстройки мы в качестве добавки используем нечто что я называю "вычисленными потерями".
Всего у меня так-же как и в ПИД, 3 параметра:
Основной параметр D равный отношению мощности управления к скорости роста величины.
Время инерции системы tU определяется как время отклика системы на управление (строго - время, нужное для того, чтобы скорость роста величины достигла 63% установившегося значения)
Время крутизны регулирования tX.
Тогда пропорциональный коэфициент ПД-регулятора Xp = tX / D
дифференциальное время ПД регулятора tD = tU
добавка, компенсирующая статическую ошибку <PE>_tX (среднее значение потерь за время tX)
где PE = <P>_tU - D * (dX/dt) (среднее значение управления минус основной параметр на производную величины)
Понять смысл данной поправки очень легко. По определению параметра D, произведение D * (dX/dt) есть скорость изменения полной энергии системы. Тогда как <P>_tU есть ни что иное как поступление энергии в систему от исполнительного устройства. Вычитаем из поступлений изменения - получаем потери энергии. Усредняем их за некое время tX, которое обеспечивает достаточное сглаживание и получаем ту самую статическую поправку.
В итоге ПД-регулятор определяет нехватку энергии, которую нужно компенсировать, чтобы "догреть" изолированную систему до уставки за время tX. А добавка определяет потери, которые нужно компенсировать.