Просто добавляю свои 2 цента к хорошим ответам уже.
Практическое использование ПИД-регулятора для регулирования температуры часто имеет нелинейный характер, если обнаружение ошибки температуры ограничено (усиление операционного усилителя насыщает выходной сигнал), а мощность, доступная для управления температурой, является фиксированной.
Рассмотрим двухпозиционный контроллер. Система будет иметь задержку с момента подачи тепла и обнаружения изменения температуры. В отсутствие петли ПИД, эта задержка создает колебание неустойчивой петли, и если есть какой-либо гистерезис, циклы мощности с шумом (вкл-выкл-вкл) Однако очень высокий коэффициент усиления (например, компаратор) приводит к небольшой остаточной ошибке температуры. Задержка влияет на время цикла и превышение.
Если имелось внешнее возмущение, такое как лампа в баке, которое может привести к значительному нагреву, то регулятор нагревателя должен сработать, как только будет обнаружено повышение температуры из-за нагрева лампы. Если ваша лампа не является частью контура ПИД-регулятора, она не может «предвидеть» эффект (усиление обратной связи по производной). Очевидно, что если лампы генерируют слишком много тепла, то температура не может регулироваться и будет превышать заданное значение.
Возможно, ваш регулятор нагрева с ПИД-регулятором должен иметь вход для состояния переключателя лампы и управления выходом, чтобы регулировать мощность света в качестве вторичного источника тепла, опять же, если он слишком велик.
Определение требований к абсолютной погрешности управления,% перерегулирования и времени отклика - вот некоторые входные данные, необходимые для оптимизации цикла ПИД. Не менее важно определить системные помехи и включить их в свою систему управления для ввода и вывода. например. Тепловая мощность лампы и выбор датчика (ов) и местоположения.
Помимо опыта.
Мой первый опыт использования водонагревателя был в эпоху водяного дна 70-х годов, когда я был студентом, я разработал свой собственный временный контроллер, используя термистор, схему управления и симисторный выключатель с переходом через ноль к нагревателю. Я начал с контроля компаратора и обнаружил необычный ответ от прыжка в постели. Поэтому я добавил пропорциональное управление, используя нефильтрованный шум на датчике, чтобы дать мне пропорциональные «пропущенные циклы», когда триак ZCS был включен вблизи порога. Я мог регулировать температуру в пределах 0,1 ° С. Реакция была более мягкой, но результат был таким же.
Я обнаружил, что самая большая ошибка была в местоположении и крошечных изменениях давления воды на датчике. (Тогда я был крошечным, всего 185 фунтов, но на водяной кровати весом 2000 фунтов <10% изменение давления воды было крошечным)
Тепловое сопротивление между датчиком и водяным постом создало небольшую погрешность смещения в зависимости от давления воды на датчик. В сценарии с резервуаром для воды ошибка датчика может быть вызвана размером резервуара и расстоянием между датчиком и нагревателем или датчиком и самой дальней поверхностью воды или расходом воды или пузырьками между датчиком и нагревателем.
В моем случае всякий раз, когда я прыгал в кровать, тепловое сопротивление слегка падало от добавленного давления, и индикатор питания светился диммером в течение одной или двух минут, пока температура не упала на одну десятую градуса или не соответствовала бы очевидному повышению температуры от дополнительного веса и давления водяное постель против термостата.
(Извлеченный урок. Не пренебрегайте источниками помех и их влиянием на ошибку системы управления)