Как научиться ПИД-контролю?

26

Я хочу научиться ПИД-регулированию (Пропорционально-Интегрально-Производная) в основном для температуры.

Я хотел бы учиться предпочтительно через простой проект.

Не могли бы вы порекомендовать что-то, что займет несколько недель, чтобы изучить?

Изменить: я хочу контролировать температуру резервуара для воды. Нагрев осуществляется резистором.

Даниэль Грилло
источник
Я пытался найти базовый проект, из которого можно было бы поучиться, думаю, математика тоже интересна. Люди посвящают свою жизнь этому.
Кортук
Что вы хотите контролировать температуру?
Дж. Полфер
3
Поскольку вы не можете отводить тепло, вам необходимо убедиться, что ваша система будет охлаждаться даже при подаче небольшого тока, иначе у вашего пид могут быть проблемы с регулированием. Возможно, я бы добавил вентилятор или лед, когда вы сделаете свой эксперимент. Вы хотите, чтобы он повышался, когда вы на полную, и понижался, когда вы выходили. Если это так, обратная связь будет регулировать для вас.
Рекс Логан
1
Это определяется температурой бака для воды, который требуется. Если он хочет 80 ° С, то температуры окружающей среды будет достаточно, если он хочет 25 ° С, тогда у него будет проблема. При правильной настройке PID должен справляться с медленной потерей температуры.
Кортук

Ответы:

27

Контролировать температуру (это зависит от вашей среды) не очень сложно. Это был мой первый проект, когда я начал. Простите, если я повторю то, что вы уже знаете.

Я предполагаю, что у вас уже есть способ управления системой (т. Е. Нагревателем или холодильником) и способ получения обратной связи от системы (датчик температуры, такой как термистор или что-то в этом роде). Вам понадобится и то, и другое, чтобы реализовать цикл PID, который является типом управления с обратной связью. Все, что вам действительно нужно сделать после этого, это написать немного программного обеспечения для отправки команд управления, чтения отзывов и принятия решений на основе этих отзывов.

Я бы начал с чтения PID без докторской степени . Это статья, которую я использовал, когда мне впервые пришлось регулировать температуру в научном эксперименте. Он предоставляет несколько простых для понимания изображений и хороший пример кода (базовый цикл, который вы можете настроить, нужно всего 30 строк), который объясняет, как управлять вашим «растением» - в данном случае, то, что вы хотите контролировать температуру ,

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

Дж. Полфер
источник
не мог вспомнить, куда делась ссылка на PID без PhD. Я забыл о его названии и не мог вспомнить, что я читал так давно. +1 сэр.
Кортук
3
PID без докторской степени - отличная статья! Тем не менее, мой 8-битный микроконтроллер не любил эту арифметику с плавающей запятой ..
Абдулла Кахраман
Просто отлично! PID без PHD идеально подходит. У меня есть доктор философии, но я сделал все возможное, чтобы держаться подальше от теории управления :) Кроме того, мне нравится последователь мини-линии.
@Bistromath Пожалуйста, не добавляйте «спасибо» в качестве ответа. Как только вы наберете достаточную репутацию , вы сможете голосовать за вопросы и ответы , которые показались вам полезными.
м.Алин
10

Да. Получить термистор и резистор. Выберите сопротивление, которое может тянуть прилично большой ток (> 100 мА).

Используйте термопасту между ними и склейте их вместе с лентой. Подключите терморезистор к микроконтроллеру через АЦП. Используйте транзистор для управления резистором и управления им с помощью ШИМ.

Разработайте PID, который позволит вам контролировать температуру с помощью циферблата, и попрактикуйтесь в создании PID, который выходит за пределы температуры и звонит по ней. Сделайте его чрезмерно демпфированным и потратьте целую вечность, чтобы достичь температуры, и постарайтесь получить его критическое демпфирование и достичь максимальной температуры.

Дайте мне знать, если подробности помогут.

После того, как вы это сделаете, уменьшите их теплопроводность, попробуйте добавить ступень, которая задержит распространение температуры, и постарайтесь, чтобы она хорошо контролировалась.

Это также можно сделать с помощью светодиода и фототранзистора.

Kortuk
источник
Это хорошие предложения, чтобы попытаться понять, как ведут себя петли PID.
Дж. Полфер
2

Помимо очевидного приложения для контроля температуры, здесь есть прекрасный проект, который требует ПИД-регулирования. Создайте себе бота, следующего за строкой: http://elm-chan.org/works/ltc/report.html

Кристофер Биггс
источник
1

Просто добавляю свои 2 цента к хорошим ответам уже.

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

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

Если имелось внешнее возмущение, такое как лампа в баке, которое может привести к значительному нагреву, то регулятор нагревателя должен сработать, как только будет обнаружено повышение температуры из-за нагрева лампы. Если ваша лампа не является частью контура ПИД-регулятора, она не может «предвидеть» эффект (усиление обратной связи по производной). Очевидно, что если лампы генерируют слишком много тепла, то температура не может регулироваться и будет превышать заданное значение.

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

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

Помимо опыта.

Мой первый опыт использования водонагревателя был в эпоху водяного дна 70-х годов, когда я был студентом, я разработал свой собственный временный контроллер, используя термистор, схему управления и симисторный выключатель с переходом через ноль к нагревателю. Я начал с контроля компаратора и обнаружил необычный ответ от прыжка в постели. Поэтому я добавил пропорциональное управление, используя нефильтрованный шум на датчике, чтобы дать мне пропорциональные «пропущенные циклы», когда триак ZCS был включен вблизи порога. Я мог регулировать температуру в пределах 0,1 ° С. Реакция была более мягкой, но результат был таким же.

Я обнаружил, что самая большая ошибка была в местоположении и крошечных изменениях давления воды на датчике. (Тогда я был крошечным, всего 185 фунтов, но на водяной кровати весом 2000 фунтов <10% изменение давления воды было крошечным)

Тепловое сопротивление между датчиком и водяным постом создало небольшую погрешность смещения в зависимости от давления воды на датчик. В сценарии с резервуаром для воды ошибка датчика может быть вызвана размером резервуара и расстоянием между датчиком и нагревателем или датчиком и самой дальней поверхностью воды или расходом воды или пузырьками между датчиком и нагревателем.

В моем случае всякий раз, когда я прыгал в кровать, тепловое сопротивление слегка падало от добавленного давления, и индикатор питания светился диммером в течение одной или двух минут, пока температура не упала на одну десятую градуса или не соответствовала бы очевидному повышению температуры от дополнительного веса и давления водяное постель против термостата.

(Извлеченный урок. Не пренебрегайте источниками помех и их влиянием на ошибку системы управления)

Тони Стюарт Sunnyskyguy EE75
источник