Пожалуйста, объясните с точки зрения непрофессионала, как PID учитывает инерцию в контроле температуры


9

Я создаю свою собственную печь для оплавления с микропроцессорным управлением. Я использую (механические) реле, чтобы включить или выключить нагреватели (например, кварцевые трубки). Я заметил, что нагрев отстает на пару секунд, прежде чем температура начнет расти.

На данный момент я управляю температурным профилем вручную с помощью Arduino, который просто выключает нагреватели, когда достигается заданная температура. Например, когда я устанавливаю температуру, скажем, 120 ° по Цельсию, и нагреватели останавливаются, температура все еще поднимается на 10-20 градусов, так что есть довольно небольшое превышение, а затем некоторое колебание, которое медленно уменьшается.

Я прочитал и посмотрел много примеров, которые используют PID для лучшего контроля температуры. Без этого я бы просто остановил нагреватели, например, на 10-20 градусов ниже установленного значения, и затем включал бы их в течение коротких периодов времени, пока температура не стабилизировалась около установленного значения. Я просто знаю, что дельта меняется в зависимости от температуры, поэтому она может быть не такой простой - я знаю об экспоненциальном характере повышения температуры с фиксированным заданным значением.

Таким образом, кто-нибудь может объяснить в терминах непрофессионала, как PID учитывает инерцию, например, какую роль интегральная часть и какую производную часть играют в простых терминах, а также как / если я могу довольно интуитивно вычислить оценку производной и интегральной количества, не прибегая к сложным расчетам.


Сложность заключается в задержках, как вы уже видели. Таким образом, ключом к контролю является изучение намоток и производных намоток
аналогsystemsrf

@analogsystemsrf Я думаю, что у меня есть это на самом деле. Как вы можете прочитать, у меня просто есть некоторые трудности, пытаясь установить связь между этим (теория) и тем (практика). Вкратце: какая часть компенсирует задержку и как ?

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

Вы не можете реально реализовать PID, если единственный элемент управления - это включение и выключение нагревателя с помощью реле.
mkeith

2
Я использую промышленные регуляторы температуры для работы. Те, которые имеют релейный выход, обычно ограничивают время цикла минимум 5 с. Те, которые имеют твердотельный выход постоянного тока для управления SSR, не имеют этого ограничения. Если вы думаете о применении с большой постоянной времени - например, о стекловаренной печи или одной тонне шоколада - вы можете представить себе, что 30-секундный рабочий цикл может быть достаточным для его хорошего контроля.
Транзистор

Ответы:


12

Я должен был + комментарий Глена. У него постоянно мозг в нужном месте, ИМХО. Нет ничего сложнее в PID, чемΔtзадержка. Я имел дело с терморегулятором с ламповым подогревом для FAB-микросхем, так или иначе, годами. Позвольте мне начать с обзора PID и немного поговорить о том, где он НЕ будет столь же полезным, как в других случаях. Я также предложу один из многих других методов контроля, которые вы также можете исследовать, но с приоритетом шагов, которые вы должны сначала предпринять, прежде чем идти в другое место.

Каноническое выражение для ПИД-управления:

ut=K[et+1Ti0teτdτ+Tddetdt]

С параметрами регулятора, являющимися пропорциональным усилением K, интегральное время Tiи производное время Td,

  1. Пропорциональный контроль : управляющее действие здесь просто пропорционально ошибке контроля. (Приведенное выше уравнение сводится кut=Ket+Uб, где Uб является смещением или сбросом контроллера.) Анализ статической модели процесса показывает, что результирующий процесс имеет остаточное смещение или смещение контроллера в установившемся режиме (хотя система может быть настроена вручную так, что может быть ошибка управления, равная нулю). при одном и только одном заданном значении путем правильного выбора смещения контроллера.) Увеличение усиления также обеспечивает усиление шума измерения (плохого), поэтому усиление контура не должно быть слишком высоким, и нет «лучшего» усиления контура, как это зависит от целей.
  2. Пропорциональное + Интегральное управление : Основная функция интегрального действия состоит в том, чтобы убедиться, что выход процесса соответствует заданному значению в установившемся режиме. При интегральном действии небольшая положительная ошибка всегда приводит к увеличению управляющего сигнала, а небольшая отрицательная ошибка всегда приводит к уменьшению управляющего сигнала. Это верно независимо от того, насколько мала ошибка.
  3. ПИД-управление : добавление производного управления улучшает стабильность замкнутого контура. (Потребуется некоторое время, прежде чем изменение в контроле будет замечено в выходных данных процесса. Таким образом, система управления опоздает с исправлением этой ошибки. В результате производного термина это своего рода прогноз, сделанный путем экстраполяции ошибка с использованием касательной к кривой ошибки, используемая для прогнозирования задержанных результатов.

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

Пропорционально-интегральное управление достаточно, когда динамика процесса 1-го порядка. Это легко выяснить, измерив шаг-ответ. (Если кривая Найквиста лежит только в 1-м и 4-м квадрантах.) Она также может применяться в тех случаях, когда процесс не требует жесткого контроля, даже если он не 1-го порядка.

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

Однако. Все вышеперечисленное следует учитывать только после того, как вы сделали все возможное, чтобы улучшить несколько вещей:

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

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

(Если это еще не ясно, длина бамбукового полюса равна времени задержки цикла.)

Так что задержка, вероятно, САМАЯ ХОРОШАЯ НОЧЬ систем управления. Большая задержка очень плохо. Поэтому очень важно, чтобы вы делали все возможное, чтобы уменьшить эту задержку. Но есть еще один важный момент.

Теперь представьте ту же ситуацию. Но теперь длина бамбукового шеста тоже меняется. Иногда он короче, иногда длиннее, и он постоянно меняется без предсказания с вашей стороны. Теперь вы должны продолжать менять свою позицию, и вы никогда не знаете, когда изменится задержка. Это ситуация, которая возникает, если ваше ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ не контролирует очень тщательно и с железным кулаком задержку в обработке значения АЦП и генерации выходного сигнала управления ЦАП.

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

Прежде чем беспокоиться о том, нужен ли вам производный контроль, вам нужно передать вышесказанное в управление. Обо всем по порядку. Убери свой поступок. Затем проверьте систему, чтобы определить, что еще нужно сделать (например, используя PI vs PID.)


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

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

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

Мне позвонили в понедельник на следующей неделе. Були вытягивались почти идеально, без каких-либо пульсаций.

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

Это иллюстрирует важность сокращения задержки и изменчивости задержки. Несомненно, производный контроль может обеспечить некую «секущую / касательную» идею прогнозирования. Но ничто не заменит снижения задержек и поддержания абсолютного минимума изменчивости.

Просто продолжайте думать о бамбуковом шесте и проблеме с птичьим домиком.


Вывод?

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

Есть некоторые вещи, называемые «компенсаторами мертвого времени». Но в конечном итоге вам нужно сделать все возможное, чтобы устранить задержки и устранить изменчивость этих задержек. И затем, после того, как вы сделали все возможное, если проблема все еще существует, скорее всего, вам нужны более сложные элементы управления, чем позволяет PID. Здесь, я бы достиг преобразований Фурье (и используя обратное преобразование для анализа пошаговых ответов и разработки описания системных ответов), возможно. С этим можно многое сделать, чего нельзя коснуться с помощью PID. Фактически, почти чудесные результаты, если вы можете достаточно хорошо смоделировать функцию ответа.

Но в вашем случае я бы сосредоточился на том, чтобы выжать задержки и их изменчивость. Я думаю, что вам следует, если это возможно, рассмотреть возможность избегать использования упрощенного управления лампами включения / выключения. Было бы хорошо, если бы вы могли контролировать интенсивность лампы. Но я не знаю, можете ли вы рассмотреть это.


1
Большое спасибо, Джонк, это было довольно глубокое (для меня) объяснение. Задержка, о которой я говорил хорошо, боюсь, я не могу ее уменьшить, так как считаю, что это по сути своей способ изготовления печи - я превратил печь общего назначения в печь для оплавления, как это обычно можно найти в Интернете. Однако, несмотря на использование кварцевых трубок, повышение температуры составляет половину необходимой скорости (не более 1 ° C в секунду вместо 2-3). Что касается датчика, я использую пару термопар К, и я проверил, что у него практически нет инерции. Однако я заметил одну вещь: задержка температуры уменьшается, если я предварительно разогреваю духовку, то есть около 50 ° C.

Вы пытались использовать контроллер Predictor Smith для уменьшения задержки?
Чу

@ Чу Пока нет, я только узнал об этом здесь :-D. Кроме того, моя духовка в настоящее время частично разобрана, и у меня нет на ней рук.

Сначала я принял ваш ответ, насколько он сложен и подробен. Кроме того, потому что я был открыт для использования того, что подходит, даже если это подразумевало не PID. Ваш ответ и транзистор дали мне достаточно намеков на то, что делать дальше. Там может быть только один [принятый ответ], хотя. В любом случае, большое спасибо всем .

4

Это не дает прямого ответа на ваш вопрос, но дает вам некоторые инструменты для улучшения понимания.

В Engineers-Excel есть простой симулятор Excel, который вам может пригодиться.

введите описание изображения здесь

Рисунок 1. Модель имитатора ПИД.

Самое сложное - это моделирование вашего процесса - печи - для определения коэффициента усиления K - процесса, Ts - постоянной времени отклика и Ls - задержки отклика. Я предлагаю:

  • Включите духовку, скажем, на 40% мощности (п1) и посмотреть, при какой температуре он стабилизируется. Повторите, скажем, на 70% мощности (п2) и запишите температуру. Усиление процесса дается (для этого диапазона настроек) как
    Кзнак равноT2-T1п2-п1
    и ответ будет иметь довольно странные единицы градусов /%.
  • График зависимости температуры от времени при переключении между п1 а также п2, LSвремя задержки - это время между переключением и началом повышения температуры.
  • TS время (от начала реакции) до достижения 63% (одна постоянная времени) пути от T1 в T2,

После этого вы можете поиграть с параметрами PID, чтобы увидеть, сможете ли вы получить желаемый ответ.

Принимая некоторые дикие догадки:

  • п1знак равно40% а также T1знак равно92°С,
  • п1знак равно70% а также T2знак равно176°С,
  • Кзнак равно176-9270-40знак равно2,8°С/%,
  • Lsзнак равно3s,
  • Требуется 50 секунд, чтобы пройти 63% пути от 92 ° C до 176 ° C, поэтому TSзнак равно50s,

введите описание изображения здесь

Рисунок 2. Выходной сигнал Excel PID симулятора.

Как правило, вам не нужен термин D, если в вашем процессе вряд ли возникнут такие помехи, как внезапное изменение уставки или внезапное изменение тепловой нагрузки. Это упрощает настройку управления PI.

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

Рисунок 3. Переменный рабочий цикл для управления переменным током нагревателя.


Спасибо за понятную техническую информацию. Еще одно замечание: поскольку я использую реле, которые, как я выяснил, дешевле, чем SSR (источник: Digi-Key), я могу только включить или выключить нагреватели, нет никакой возможности отрегулировать между 0% и 100%. Также я не могу использовать переход через ноль, чтобы выключить нагреватели, но я думаю, что это имеет наименьшее значение. В любом случае, большое спасибо за ваши идеи.

2
Мой рисунок 3 показывает контроль включения и выключения, и это то, что вы будете делать, и это нормально. Вы будете усреднять в любом месте от 0 до 100%. По сути это медленная широтно-импульсная модуляция (ШИМ) с переменным током. Вы будете идти на компромисс, сохраняя время цикла достаточно коротким с ресурсом реле. Пересечение нуля приятно тем, что снижает электрический шум. Если это не проблема, то это не проблема!
Транзистор

2

В PID есть 3 части: Пропорциональная, Интегральная и Производная.

Пропорциональный самый простой контроллер. Усиливает ошибку между желаемым и фактическим сигналом. Например, если желаемая температура равна 100 ° C, фактическая температура составляет 80 ° C, тогда выход = 20 * Kp. Сколько выводится, настраивается Kp.

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

Если вы настроите Kp слишком высоко, он может нарастить слишком быстро. Инерция может привести к перерегулированию и звону. Это потому, что существует задержка между подачей определенной выходной мощности и измерением ее эффекта.

Неотъемлемая часть необходима, если вы хотите низкие статические смещения. Обратите внимание, что для того, чтобы P-контроллер выдавал выходные данные, он должен иметь ошибку, чтобы генерировать любое выходное значение. Если вы хотите, чтобы ошибка была очень близка к нулю, вам нужно, чтобы I-часть пришла на смену P. Однако это может занять некоторое время.

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

Это позволяет вам использовать высокий (er) P-фактор для адекватно агрессивного отклика, а D - для предотвращения перерегулирования. Часть I, используемая для создания статической ошибки, в конечном итоге установится на 0.


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