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


26

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

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

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

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


Я пытался найти базовый проект, из которого можно было бы поучиться, думаю, математика тоже интересна. Люди посвящают свою жизнь этому.
Кортук

Что вы хотите контролировать температуру?
Дж. Полфер

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

1
Это определяется температурой бака для воды, который требуется. Если он хочет 80 ° С, то температуры окружающей среды будет достаточно, если он хочет 25 ° С, тогда у него будет проблема. При правильной настройке PID должен справляться с медленной потерей температуры.
Кортук

Ответы:


27

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

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

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

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


не мог вспомнить, куда делась ссылка на PID без PhD. Я забыл о его названии и не мог вспомнить, что я читал так давно. +1 сэр.
Кортук

3
PID без докторской степени - отличная статья! Тем не менее, мой 8-битный микроконтроллер не любил эту арифметику с плавающей запятой ..
Абдулла Кахраман

Просто отлично! PID без PHD идеально подходит. У меня есть доктор философии, но я сделал все возможное, чтобы держаться подальше от теории управления :) Кроме того, мне нравится последователь мини-линии.

@Bistromath Пожалуйста, не добавляйте «спасибо» в качестве ответа. Как только вы наберете достаточную репутацию , вы сможете голосовать за вопросы и ответы , которые показались вам полезными.
м.Алин

10

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

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

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

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

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

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


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



1

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

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

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

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

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

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

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

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.