Я создаю свою собственную печь для оплавления с микропроцессорным управлением. Я использую (механические) реле, чтобы включить или выключить нагреватели (например, кварцевые трубки). Я заметил, что нагрев отстает на пару секунд, прежде чем температура начнет расти.
На данный момент я управляю температурным профилем вручную с помощью Arduino, который просто выключает нагреватели, когда достигается заданная температура. Например, когда я устанавливаю температуру, скажем, 120 ° по Цельсию, и нагреватели останавливаются, температура все еще поднимается на 10-20 градусов, так что есть довольно небольшое превышение, а затем некоторое колебание, которое медленно уменьшается.
Я прочитал и посмотрел много примеров, которые используют PID для лучшего контроля температуры. Без этого я бы просто остановил нагреватели, например, на 10-20 градусов ниже установленного значения, и затем включал бы их в течение коротких периодов времени, пока температура не стабилизировалась около установленного значения. Я просто знаю, что дельта меняется в зависимости от температуры, поэтому она может быть не такой простой - я знаю об экспоненциальном характере повышения температуры с фиксированным заданным значением.
Таким образом, кто-нибудь может объяснить в терминах непрофессионала, как PID учитывает инерцию, например, какую роль интегральная часть и какую производную часть играют в простых терминах, а также как / если я могу довольно интуитивно вычислить оценку производной и интегральной количества, не прибегая к сложным расчетам.
Ответы:
Я должен был + комментарий Глена. У него постоянно мозг в нужном месте, ИМХО. Нет ничего сложнее в PID, чемΔt задержка. Я имел дело с терморегулятором с ламповым подогревом для FAB-микросхем, так или иначе, годами. Позвольте мне начать с обзора PID и немного поговорить о том, где он НЕ будет столь же полезным, как в других случаях. Я также предложу один из многих других методов контроля, которые вы также можете исследовать, но с приоритетом шагов, которые вы должны сначала предпринять, прежде чем идти в другое место.
Каноническое выражение для ПИД-управления:
С параметрами регулятора, являющимися пропорциональным усилениемK , интегральное время Ti и производное время Td ,
Приведенное выше описание, добавленное к вашему собственному описанию вашей проблемы задержки, предполагает, что вам поможет производный термин. Но, как обычно, ничто не обязательно так просто.
Пропорционально-интегральное управление достаточно, когда динамика процесса 1-го порядка. Это легко выяснить, измерив шаг-ответ. (Если кривая Найквиста лежит только в 1-м и 4-м квадрантах.) Она также может применяться в тех случаях, когда процесс не требует жесткого контроля, даже если он не 1-го порядка.
ПИД-регулирования достаточно для процессов, в которых доминирующая динамика имеет 2-й порядок. Контроль температуры часто имеет место здесь. Итак, еще раз, это, возможно, аргумент для добавления производного контроля в вашей ситуации.
Однако. Все вышеперечисленное следует учитывать только после того, как вы сделали все возможное, чтобы улучшить несколько вещей:
Я хочу немного остановиться на этом последнем пункте. Представьте себе, что управление процессом - это что-то вроде того, что вы стоите где-то, пытаясь протолкнуть тонкий, очень гибкий и шаткий бамбуковый шест в дальнюю дыру в птичьем доме, которая сидит на дереве над вами и вдали от вас. Если вы близки, а бамбуковый столб - короткий, это легко. Вы можете сделать это каждый раз быстро и легко. Но если бамбуковый столб длинный и птичий домик далеко от вас, это очень и очень трудно сделать. Полюс продолжает блуждать, и это делает ваше предсказание и контроль очень трудным.
(Если это еще не ясно, длина бамбукового полюса равна времени задержки цикла.)
Так что задержка, вероятно, САМАЯ ХОРОШАЯ НОЧЬ систем управления. Большая задержка очень плохо. Поэтому очень важно, чтобы вы делали все возможное, чтобы уменьшить эту задержку. Но есть еще один важный момент.
Теперь представьте ту же ситуацию. Но теперь длина бамбукового шеста тоже меняется. Иногда он короче, иногда длиннее, и он постоянно меняется без предсказания с вашей стороны. Теперь вы должны продолжать менять свою позицию, и вы никогда не знаете, когда изменится задержка. Это ситуация, которая возникает, если ваше ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ не контролирует очень тщательно и с железным кулаком задержку в обработке значения АЦП и генерации выходного сигнала управления ЦАП.
Итак, пока задержка достаточно плоха для системы ПИД-регулирования. Переменная задержка еще хуже. Поэтому вам необходимо уделять пристальное внимание дизайну вашего программного обеспечения - очень строгое внимание - чтобы у вас не было операторов IF и кода условного вычисления, или небрежного использования таймеров и т. Д., И все это может привести к значительным изменениям в задержка между сэмплом и контрольным выходом.
Прежде чем беспокоиться о том, нужен ли вам производный контроль, вам нужно передать вышесказанное в управление. Обо всем по порядку. Убери свой поступок. Затем проверьте систему, чтобы определить, что еще нужно сделать (например, используя PI vs PID.)
Я работал над системами ПИД-регулирования с использованием чрезвычайно точной системы пирометра (также очень дорогой для клиентов). Мне позвонил канадский исследователь, работающий с нашим пирометром, но использующий отдельный ПИД-регулятор от очень крупной коммерческой компании (крупнейшей в мир делает эти вещи.) Исследователь боролся с рябью вниз по були арсенида галлия, который он вытягивал из расплава. И мне нужна была помощь в определении правильных переменных ПИД-регулятора. (При буксировке вы хотите очень однородные диаметры.)
Контроллер, который он использовал, был довольно хорош по любым стандартным показателям. Но это добавило задержки - и эти задержки также варьировались, так как программное обеспечение внутри него не строго контролировало задержку, которую оно вводило в общий цикл управления.
Итак, первое, что я сказал ему, это то, что я добавлю ПИД-управление к программному обеспечению в нашем пирометре и что он должен просто вытащить внешний контроллер из системы, которую он использовал. Я добавил это программное обеспечение менее чем за неделю и отправил ему модифицированную систему пиро. Я не делал ничего особенного с программным обеспечением PID. Тем не менее, я сохранил свою изменчивость от АЦП до ЦАП менее чем на пару микросекунд, а также увеличил общую задержку примерно до 100 микросекунд. Я отправил это ему.
Мне позвонили в понедельник на следующей неделе. Були вытягивались почти идеально, без каких-либо пульсаций.
Это было так просто, как просто сократить задержки, а также сократить изменчивость этих задержек. Ничего особенного в ПИД-контроле вообще нет. Это была простая ванильная реализация, которую каждый мог бы впервые узнать об этом.
Это иллюстрирует важность сокращения задержки и изменчивости задержки. Несомненно, производный контроль может обеспечить некую «секущую / касательную» идею прогнозирования. Но ничто не заменит снижения задержек и поддержания абсолютного минимума изменчивости.
Просто продолжайте думать о бамбуковом шесте и проблеме с птичьим домиком.
Вывод?
Управление системами с доминирующей задержкой общеизвестно сложно. Я предложил несколько причин, по которым вы могли быПолагаю, что производный термин поможет с задержками. Но есть общее согласие, что производные действия не очень помогают для процессов, которые имеют доминирующие задержки. Вот почему я сразу же предложил помочь этому исследователю, исключив все задержки, которые я мог легко устранить (например, внешний блок PID). Я не думал, что моя реализация будет лучше, чем коммерческий продукт. Я знал, что моя реализация не будет так хорошо проверена, на самом деле. Черт побери, я должен был написать это с нуля, протестировать и установить его, а также отправить модуль с новым программным обеспечением, которого у него никогда не было, и делать все это в течение недели. Но я также знал, что задержка убивала все шансы этого исследователя получить желаемые результаты. Так что я сразу понял, что лучший подход - это выжать задержки, а не изобретать какой-то «блестяще» реализованный магический PID-код, которому мог бы следовать только гений. Это все о задержках и о том, как эти задержки меняются, в первую очередь. Все остальное имеет гораздо более низкий приоритет.
Есть некоторые вещи, называемые «компенсаторами мертвого времени». Но в конечном итоге вам нужно сделать все возможное, чтобы устранить задержки и устранить изменчивость этих задержек. И затем, после того, как вы сделали все возможное, если проблема все еще существует, скорее всего, вам нужны более сложные элементы управления, чем позволяет PID. Здесь, я бы достиг преобразований Фурье (и используя обратное преобразование для анализа пошаговых ответов и разработки описания системных ответов), возможно. С этим можно многое сделать, чего нельзя коснуться с помощью PID. Фактически, почти чудесные результаты, если вы можете достаточно хорошо смоделировать функцию ответа.
Но в вашем случае я бы сосредоточился на том, чтобы выжать задержки и их изменчивость. Я думаю, что вам следует, если это возможно, рассмотреть возможность избегать использования упрощенного управления лампами включения / выключения. Было бы хорошо, если бы вы могли контролировать интенсивность лампы. Но я не знаю, можете ли вы рассмотреть это.
источник
Это не дает прямого ответа на ваш вопрос, но дает вам некоторые инструменты для улучшения понимания.
В Engineers-Excel есть простой симулятор Excel, который вам может пригодиться.
Рисунок 1. Модель имитатора ПИД.
Самое сложное - это моделирование вашего процесса - печи - для определения коэффициента усиления K - процесса, Ts - постоянной времени отклика и Ls - задержки отклика. Я предлагаю:
После этого вы можете поиграть с параметрами PID, чтобы увидеть, сможете ли вы получить желаемый ответ.
Принимая некоторые дикие догадки:
Рисунок 2. Выходной сигнал Excel PID симулятора.
Как правило, вам не нужен термин D, если в вашем процессе вряд ли возникнут такие помехи, как внезапное изменение уставки или внезапное изменение тепловой нагрузки. Это упрощает настройку управления PI.
Для обогрева вы можете получить пропорциональную мощность, включив и выключив питание достаточно быстро относительно времени теплового отклика.
Рисунок 3. Переменный рабочий цикл для управления переменным током нагревателя.
источник
В PID есть 3 части: Пропорциональная, Интегральная и Производная.
Пропорциональный самый простой контроллер. Усиливает ошибку между желаемым и фактическим сигналом. Например, если желаемая температура равна 100 ° C, фактическая температура составляет 80 ° C, тогда выход = 20 * Kp. Сколько выводится, настраивается Kp.
Если вы настроите слишком низкое значение Kp, нагрев будет недостаточным, и он может никогда не достичь желаемой температуры.
Если вы настроите Kp слишком высоко, он может нарастить слишком быстро. Инерция может привести к перерегулированию и звону. Это потому, что существует задержка между подачей определенной выходной мощности и измерением ее эффекта.
Неотъемлемая часть необходима, если вы хотите низкие статические смещения. Обратите внимание, что для того, чтобы P-контроллер выдавал выходные данные, он должен иметь ошибку, чтобы генерировать любое выходное значение. Если вы хотите, чтобы ошибка была очень близка к нулю, вам нужно, чтобы I-часть пришла на смену P. Однако это может занять некоторое время.
Производная часть, вероятно, наиболее интересна для вашей проблемы инерции. Производная смотрит на скорость изменения ошибки. Если в ошибке наблюдается большая степень изменения, это означает высокую инерцию. Используя настроенный коэффициент Kd, вы можете быть уверены, что выходной сигнал будет уменьшен во времени. Это так, что инерция замедляется, прежде чем она достигнет конечного выходного значения.
Это позволяет вам использовать высокий (er) P-фактор для адекватно агрессивного отклика, а D - для предотвращения перерегулирования. Часть I, используемая для создания статической ошибки, в конечном итоге установится на 0.
источник