В общем, суть дополнительного коэффициента, по моему мнению, должна заключаться в анализировании инерционности и мгновенной подстройке обычного ПИД-регулирования. Я вижу это так: контроллер начинает (согласно заданным ПИД-коэффициентам) выдавать сигнал на нагрев, и с датчика температуры анализирует разбег запаздывания. Проще говоря, дали максимальный сигнал, и как только температура начала возрастать, сразу же отключить сигнал, и проанализировать, через какое время температура перестанет возрастать, а потом уже учитывая эту задержку заблаговременно отключать/ включать ПИД-контроль.
А то получается, что задаю температуру, например 40 градусов и сигнал на нагреватель шпарит безостановочно ровно до достижения 40 градусов, потом отключает сигнал, а нагреватель постепенно раскаляется аж до 100 градусов. Мне то понятно, что надо было заранее отключать сигнал нагрева, а вот ПИД-у почему то это неведомо.
Кто что думает на счет этого? Может в коде или в бибилиотеке подправить какую-то временную составляющую (dt какую-нибудь)? Или реально нужен для этого еще один коэффициент?
PS: Не очень силен в программировании, только начинаю знакомиться с СИ++. Если нужно, могу скинуть код, с которым я работаю.


