Я должен был + комментарий Глена. У него постоянно мозг в нужном месте, ИМХО. Нет ничего сложнее в PID, чемΔtзадержка. Я имел дело с терморегулятором с ламповым подогревом для FAB-микросхем, так или иначе, годами. Позвольте мне начать с обзора PID и немного поговорить о том, где он НЕ будет столь же полезным, как в других случаях. Я также предложу один из многих других методов контроля, которые вы также можете исследовать, но с приоритетом шагов, которые вы должны сначала предпринять, прежде чем идти в другое место.
Каноническое выражение для ПИД-управления:
ut=K⋅[et+1Ti∫t0eτdτ+Tddetdt]
С параметрами регулятора, являющимися пропорциональным усилением K, интегральное время Tiи производное время Td,
- Пропорциональный контроль : управляющее действие здесь просто пропорционально ошибке контроля. (Приведенное выше уравнение сводится кut=K⋅et+ub, где Uб является смещением или сбросом контроллера.) Анализ статической модели процесса показывает, что результирующий процесс имеет остаточное смещение или смещение контроллера в установившемся режиме (хотя система может быть настроена вручную так, что может быть ошибка управления, равная нулю). при одном и только одном заданном значении путем правильного выбора смещения контроллера.) Увеличение усиления также обеспечивает усиление шума измерения (плохого), поэтому усиление контура не должно быть слишком высоким, и нет «лучшего» усиления контура, как это зависит от целей.
- Пропорциональное + Интегральное управление : Основная функция интегрального действия состоит в том, чтобы убедиться, что выход процесса соответствует заданному значению в установившемся режиме. При интегральном действии небольшая положительная ошибка всегда приводит к увеличению управляющего сигнала, а небольшая отрицательная ошибка всегда приводит к уменьшению управляющего сигнала. Это верно независимо от того, насколько мала ошибка.
- ПИД-управление : добавление производного управления улучшает стабильность замкнутого контура. (Потребуется некоторое время, прежде чем изменение в контроле будет замечено в выходных данных процесса. Таким образом, система управления опоздает с исправлением этой ошибки. В результате производного термина это своего рода прогноз, сделанный путем экстраполяции ошибка с использованием касательной к кривой ошибки, используемая для прогнозирования задержанных результатов.
Приведенное выше описание, добавленное к вашему собственному описанию вашей проблемы задержки, предполагает, что вам поможет производный термин. Но, как обычно, ничто не обязательно так просто.
Пропорционально-интегральное управление достаточно, когда динамика процесса 1-го порядка. Это легко выяснить, измерив шаг-ответ. (Если кривая Найквиста лежит только в 1-м и 4-м квадрантах.) Она также может применяться в тех случаях, когда процесс не требует жесткого контроля, даже если он не 1-го порядка.
ПИД-регулирования достаточно для процессов, в которых доминирующая динамика имеет 2-й порядок. Контроль температуры часто имеет место здесь. Итак, еще раз, это, возможно, аргумент для добавления производного контроля в вашей ситуации.
Однако. Все вышеперечисленное следует учитывать только после того, как вы сделали все возможное, чтобы улучшить несколько вещей:
- Используйте самый быстрый реагирующий температурный датчик, который вы можете разумно применить (небольшая масса, пирометрия и т. Д.), И применяйте его в ситуации с наименьшей возможной задержкой реакции на процесс, которым вы хотите управлять (близко, недалеко).
- Уменьшите изменение задержки при проведении измерений и управлении процессом.
Я хочу немного остановиться на этом последнем пункте. Представьте себе, что управление процессом - это что-то вроде того, что вы стоите где-то, пытаясь протолкнуть тонкий, очень гибкий и шаткий бамбуковый шест в дальнюю дыру в птичьем доме, которая сидит на дереве над вами и вдали от вас. Если вы близки, а бамбуковый столб - короткий, это легко. Вы можете сделать это каждый раз быстро и легко. Но если бамбуковый столб длинный и птичий домик далеко от вас, это очень и очень трудно сделать. Полюс продолжает блуждать, и это делает ваше предсказание и контроль очень трудным.
(Если это еще не ясно, длина бамбукового полюса равна времени задержки цикла.)
Так что задержка, вероятно, САМАЯ ХОРОШАЯ НОЧЬ систем управления. Большая задержка очень плохо. Поэтому очень важно, чтобы вы делали все возможное, чтобы уменьшить эту задержку. Но есть еще один важный момент.
Теперь представьте ту же ситуацию. Но теперь длина бамбукового шеста тоже меняется. Иногда он короче, иногда длиннее, и он постоянно меняется без предсказания с вашей стороны. Теперь вы должны продолжать менять свою позицию, и вы никогда не знаете, когда изменится задержка. Это ситуация, которая возникает, если ваше ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ не контролирует очень тщательно и с железным кулаком задержку в обработке значения АЦП и генерации выходного сигнала управления ЦАП.
Итак, пока задержка достаточно плоха для системы ПИД-регулирования. Переменная задержка еще хуже. Поэтому вам необходимо уделять пристальное внимание дизайну вашего программного обеспечения - очень строгое внимание - чтобы у вас не было операторов IF и кода условного вычисления, или небрежного использования таймеров и т. Д., И все это может привести к значительным изменениям в задержка между сэмплом и контрольным выходом.
Прежде чем беспокоиться о том, нужен ли вам производный контроль, вам нужно передать вышесказанное в управление. Обо всем по порядку. Убери свой поступок. Затем проверьте систему, чтобы определить, что еще нужно сделать (например, используя PI vs PID.)
Я работал над системами ПИД-регулирования с использованием чрезвычайно точной системы пирометра (также очень дорогой для клиентов). Мне позвонил канадский исследователь, работающий с нашим пирометром, но использующий отдельный ПИД-регулятор от очень крупной коммерческой компании (крупнейшей в мир делает эти вещи.) Исследователь боролся с рябью вниз по були арсенида галлия, который он вытягивал из расплава. И мне нужна была помощь в определении правильных переменных ПИД-регулятора. (При буксировке вы хотите очень однородные диаметры.)
Контроллер, который он использовал, был довольно хорош по любым стандартным показателям. Но это добавило задержки - и эти задержки также варьировались, так как программное обеспечение внутри него не строго контролировало задержку, которую оно вводило в общий цикл управления.
Итак, первое, что я сказал ему, это то, что я добавлю ПИД-управление к программному обеспечению в нашем пирометре и что он должен просто вытащить внешний контроллер из системы, которую он использовал. Я добавил это программное обеспечение менее чем за неделю и отправил ему модифицированную систему пиро. Я не делал ничего особенного с программным обеспечением PID. Тем не менее, я сохранил свою изменчивость от АЦП до ЦАП менее чем на пару микросекунд, а также увеличил общую задержку примерно до 100 микросекунд. Я отправил это ему.
Мне позвонили в понедельник на следующей неделе. Були вытягивались почти идеально, без каких-либо пульсаций.
Это было так просто, как просто сократить задержки, а также сократить изменчивость этих задержек. Ничего особенного в ПИД-контроле вообще нет. Это была простая ванильная реализация, которую каждый мог бы впервые узнать об этом.
Это иллюстрирует важность сокращения задержки и изменчивости задержки. Несомненно, производный контроль может обеспечить некую «секущую / касательную» идею прогнозирования. Но ничто не заменит снижения задержек и поддержания абсолютного минимума изменчивости.
Просто продолжайте думать о бамбуковом шесте и проблеме с птичьим домиком.
Вывод?
Управление системами с доминирующей задержкой общеизвестно сложно. Я предложил несколько причин, по которым вы могли быПолагаю, что производный термин поможет с задержками. Но есть общее согласие, что производные действия не очень помогают для процессов, которые имеют доминирующие задержки. Вот почему я сразу же предложил помочь этому исследователю, исключив все задержки, которые я мог легко устранить (например, внешний блок PID). Я не думал, что моя реализация будет лучше, чем коммерческий продукт. Я знал, что моя реализация не будет так хорошо проверена, на самом деле. Черт побери, я должен был написать это с нуля, протестировать и установить его, а также отправить модуль с новым программным обеспечением, которого у него никогда не было, и делать все это в течение недели. Но я также знал, что задержка убивала все шансы этого исследователя получить желаемые результаты. Так что я сразу понял, что лучший подход - это выжать задержки, а не изобретать какой-то «блестяще» реализованный магический PID-код, которому мог бы следовать только гений. Это все о задержках и о том, как эти задержки меняются, в первую очередь. Все остальное имеет гораздо более низкий приоритет.
Есть некоторые вещи, называемые «компенсаторами мертвого времени». Но в конечном итоге вам нужно сделать все возможное, чтобы устранить задержки и устранить изменчивость этих задержек. И затем, после того, как вы сделали все возможное, если проблема все еще существует, скорее всего, вам нужны более сложные элементы управления, чем позволяет PID. Здесь, я бы достиг преобразований Фурье (и используя обратное преобразование для анализа пошаговых ответов и разработки описания системных ответов), возможно. С этим можно многое сделать, чего нельзя коснуться с помощью PID. Фактически, почти чудесные результаты, если вы можете достаточно хорошо смоделировать функцию ответа.
Но в вашем случае я бы сосредоточился на том, чтобы выжать задержки и их изменчивость. Я думаю, что вам следует, если это возможно, рассмотреть возможность избегать использования упрощенного управления лампами включения / выключения. Было бы хорошо, если бы вы могли контролировать интенсивность лампы. Но я не знаю, можете ли вы рассмотреть это.