Решил разработать регулятор, работающий на основе физической модели с привлечением элементов предуправления.
Для затравки взял простейшую модель помещения с нагревателем.
Модель заключается в следующем:
1) Постулируются следующие величины.
Теплоемкость отапливаемого помещения C и нагревателя C_h, теплопроводность нагреватель-помещение Q,
уставка T_0.
2) на их основе вычисляются следующие величины:
Тепловая энергия нагревателя W_h = ( T_h - T0 ) C_h
Тепловая энергия помещения W = ( T - T0 ) C
Полная тепловая энергия системы WS = W_h+W
3) Изменение тепловой энергии нагревателя моделируется по закону dW_h/dt = Q ( T - T_h ) + P
, где P - подводимая в нагреватель мощность (величина управления)
4) Изменение тепловой энергии помещения постулируется следующим: dW/dt = Q ( T_h - T ) - P_e
, где P_e - тепловые потери.
5) подставив выражение для тепловой энергии помещения, вычисляем значение тепловых потерь.
Pe = Q ( T_h - T ) - C dT/dt.
6) Из соображений наибыстрейшего достижения уставки постулируем следующий целевой уровень полной тепловой энергии
WS = C_h P_e / Q
Наконец, выбираем следующую стратегию регулирования:
Если полная тепловая энергия ниже целевой, нагреватель включен на полную.
Если полная тепловая энергия выше целевой, нагреватель выключен.
В случае равенства мощность нагревателя выбирается равной вычисленным тепловым потерям.

Так как точного равенства конечно-же не бывает, уровень мощности регулятора на практике берем как тепловые потери плюс разница целевого и текущего уровня полной тепловой энергии деленое на некое время крутизны регулирования.
Сейчас я обкатываю такой регулятор и результаты по крайней мере удовлетворительные.
В принципе он при работе чем-то напоминает ПИД. Но есть и отличия. Например при постоянной отстройке управление растет не линейно, а ускоренно. При достижении целевого уровня энергии управление меняется скачкообразно, при правильно заданных параметрах меньше склонность к перерегулированию и автогенерации при лучшей быстроте реакции. Кроме того, в отличии от абстрактных коэффициентов ПИД, здесь мы задаем реальные физические величины, которые можно с хорошей точностью прикинуть и с еще большей - измерить.

Очевидные проблемы: Предполагается, что температура измеряемая датчиком есть температура во всем помещении. По факту это всегда далеко от истины. Приходится фильтровать данные по некоему времени, чтобы через датчик прошли куски воздуха с разными температурами и усреднить их. Отсюда вторая проблема: алгоритм считает измеренную температуру текущей, а на деле - это температура в неком прошлом - соответственно автогенерация может начаться даже при верно введенных параметрах. Но конечно всё это решается теми-же способами, что и аналогичные проблемы ПИДа.

Собственно интересует:
1) я первый подобное придумал, или уже давно было и обкатано и описано? Тогда где и кем?
2) имеет смысл описанное вообще или ерунда всё это?=)

PS: предуправление (англ. feed forward) - система регулирования, которая вводит коррекцию на основе прямых измерений величины внешнего воздействия, в отличии от обратной связи (feedback), которая вводит коррекцию по факту изменения регулируемой величины. Здесь по сути предпринята попытка некого косвенного измерения внешнего воздействия - тепловых потерь, хотя строго это все равно всё та-же обратная связь.