+7(499)-938-42-58 Москва
+7(800)-333-37-98 Горячая линия

Что такое PID? Или на первый-второй рассчитайся!

Содержание

AVR221: Дискретный ПИД-регулятор

Что такое PID? Или на первый-второй рассчитайся!
   

• Простой дискретный алгоритм ПИД регулятора

• Поддерживается всеми микроконтроллерами AVR

• ПИД функция использует 534 байта flash памяти и 877 циклов процессора (IAR — low size оптимизация)

   Это руководство описывает простую реализацию дискретного пропорционально-интегрально-дифференциального (ПИД) контроллера.

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

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

   Для получения дополнительной информации о ПИД-регуляторах и их применении читатель должен обратиться к другим источникам, например, PID Controllers by K. J. Astrom & T. Hagglund (1995)

Рисунок 1-1. Типичные отклик ПИД-регулятора на ступенчатое изменение опорного сигнала

   На рисунке 2-1 показана схема системы с ПИД-регулятором. ПИД-регулятор сравнивает измеренное значение процесса Y с заданным опорным значением Y0. Затем разница, или ошибка, E, обрабатывается для расчета нового входного процесса U. Этот новый входной процесс будет пытаться приблизить значение измеряемого процесса к заданному значению.

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

Рисунок 2-1. Управляющая система с замкнутым контуром на основе ПИД-регулятора

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

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

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

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

Рисунок 2-2. Схема ПИД-регулятора

2.1 Пропорциональная составляющая

   Пропорциональная составляющая (П) дает управляющий сигнал пропорционально вычисленной ошибке.

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

2-3 стационарная ошибка в значении системного процесса появляется после изменения опорного сигнала (ref). Использование слишком большого П-члена даст неустойчивую систему.  

Рисунок 2-3. Отклик П контроллера на ступенчатое изменение опорного сигнала

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

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

Как видите отклик ПИ-регулятора не имеет стационарной ошибки, а отклик И-регулятора очень медленной.

Рисунок 2-4. Отклик И- и ПИ-контроллера на ступенчатое изменение контролируемой величины

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

Большая дифференциальная составляющая Д обычно дает неустойчивую систему. Рисунок 2-5 показывает отклики Д и ПД- контроллера. Отклик ПД-контроллера дает быстрый рост значения процесса, чем П контроллер.

Обратите внимание, что дифференциальная составляющая Д ведет себя по существу как фильтр верхних частот для сигнала ошибки и, таким образом легко делает систему нестабильной и более чувствительной к шуму.
Рисунок 2-5. Отклик Д- и ПД-контроллера на ступенчатое изменение опорного сигнала

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

Рисунок 2-6. Отклик П-, ПИ- и ПИД-регулятора на ступенчатое изменение опорного сигнала

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

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

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

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

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

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

Таблица 2-1. Расчет параметров по методу Циглера-Николса 

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

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

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

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

Передаточная функция системы, изображенной на рисунке 2-2 имеет вид:

Это дает U по отношению к e в интервале времени

Аппроксимируем интегральную и диффиренциальную составляющие, чтобы получить дискретный вид

Где n является дискретным шагом времени t.

Это дает контроллер:

Где 

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

  К этому документу прилагается рабочее приложение, реализованное на C. Полную описание исходного кода и информации о компиляции можно найти в файле “readme.html”.

Рисунок 3-1. Блок-схема демонстрационного приложения

  На рисунке 3-1 показана упрощенная схема демо приложения.

   ПИД-регулятор использует структуру для хранения своего статуса и параметров. Эта структура инициализируется функцией main, и только указатель на него передается функциям Init_PID() и PID(). 

   Функция PID () должна быть вызвана для каждого интервала времени T, это задается таймером, который устанавливает флаг PID_timer, когда время выборки прошло. Когда PID_timer флаг установлен, основная программа читает эталонное значение процесса и системное значение процесса, вызывается функция PID () и выводится результат на управляющий вход.

   Для повышения точности p_factor, i_factor и  d_factor увеличиваются в 128 раз. Результат ПИД алгоритма позже уменьшается путем деления на 128. Значение 128 используется для обеспечения оптимизации при компиляции.

Кроме того, влияние Ifactor и Dfactor будет зависеть от времени T.

3.1. Integral windup

   Когда входной процесс, U, достигает достаточно высокого значения, он становится ограниченным.

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

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

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

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

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

   В расчете Ifactor и Dfactor время выборки T это часть уравнения. Если время выборки Т использоваться намного меньше или больше чем на 1 секунду, точность либо Ifactor или Dfactor будет недостаточной. Можно переписать алгоритм ПИД и масштабирования, чтобы точность интегральной и диффиренциальной составляющих сохранилась.

K. J. Astrom & T. Hagglund, 1995: PID Controllers: Theory, Design, and Tuning.  
International Society for Measurement and Con.

AVR221.rar

Перевел Кирилл Владимиров по просьбе ChipEnable.Ru 

Источник: http://chipenable.ru/index.php/item/95

Регуляторы технологических процессов

Что такое PID? Или на первый-второй рассчитайся!



Регуляторы процесса (Process Controllers) – это параметрируемые цифровые контроллеры со встроенным набором стандартных функций для регулирования технологических переменных (температуры, давления и т.п.).

В качестве сигналов задания (Reference) могут использоваться как фиксированные уставки (Fixed Setpoints), так и внешние (External).

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

Дискретные входы используются для задания фиксированных уставок и переключения между режимами.

Дискретные выходы используются для сигнализации: готовности, аварий, состояния.

Релейные выходы используются для дискретного управления, а аналоговые выходы – для непрерывного управления.

Дискретное управление

  • 2-х позиционный регулятор использует только 2 состояния:
    • включено (открыто)
    • выключено (закрыто)
    • Пример: управление нагреванием или охлаждением.

  • 3-х позиционный регулятор использует 3 состояния:
    • выключено
    • вращение по часовой стрелке
    • вращение против часовой стрелки (реверс)
    • Пример: управление реверсивным электродвигателем.

  • 5-и позиционный регулятор использует 5 состояний:
    • выключено
    • вращение на первой скорости по часовой стрелке
    • вращение на второй скорости по часовой стрелке
    • вращение на первой скорости против часовой стрелки
    • вращение на второй скорости против часовой стрелки
    • Пример: управление 2-скоростным реверсивным двигателем.

Непрерывное управление

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

Переходный процесс

Переходный процесс – это реакция системы на внешнее воздействие (задание, возмущение).

Устойчивый (сходящийся) переходный процесс

КолебательныйАпериодическийМонотонный

ПИД-регулятор

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

Хзад – заданное (желаемое) значение выходной переменной
Xmax – верхний допустимый предел выходной переменной
Xmin – нижний допустимый предел выходной переменной Т – период колебаний

Тн – время нарастания

Тр – время переходного процесса (последняя точка пересечения кривой с Xmin или Xmax)
А1 – первое перерегулирование
А2 – второе перерегулирование
d=А1/A2 – степень (декремент) затухания переходного процесса (отношение первого перерегулирования ко второму)

Рассогласование, перерегулирование, время нарастания, время переходного процесса, степень затухания характеризуют качество регулирования.

Пример

ПИД-регулятор открывает и закрывает регулирующий вентиль на горячей трубе так, чтобы из крана текла вода с температурой +40°С с погрешностью плюс-минус 2 градуса.

Регулятор вычисляет рассогласование (ошибку) – отклонение реальной температуры (например, +20°С) от заданного значения (+40°С) и решает – когда и насколько необходимо приоткрыть горячий вентиль, чтобы температура повысилась на 20С.

Реальную (фактическую) температуру регулятор узнаёт с помощью датчика температуры (обратная связь), а заданную температуру (уставку) ему сообщает оператор, например, набирая число «40» на своём ПК.

Чтобы настроить ПИД-регулятор, необходимо подобрать правильную комбинацию трёх коэффициентов:

  • Пропорционального – Kp
  • Интегрального – Ki
  • Дифференциального – Kd

Могут использоваться и более простые – П и ПИ-регуляторы.

Формула ПИД-регулятора

где e(t) – ошибка (рассогласование), u(t) – выходной сигнал регулятора (управляющее воздействие).

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

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

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

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

Настройка ПИД-регулятора по методу Циглера-Николса

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

  • Обнуляем Ki и Kd
  • Постепенно увеличиваем Kp до критического значения Kc, при котором возникают автоколебания
  • Измеряем период автоколебаний Т
  • Вычисляем значения Kp, Ki и Kd по разным формулам для разных регуляторов:
    • для П-регулятора: Kp=0,50*Kc
    • для ПИ-регулятора: Kp=0,45*Kc, Ki=1,2*Kp/T
    • для ПИД-регулятора: Kp=0,60*Kc, Ki=2,0*Kp/T, Kd=Kp*T/8

Продолжение примера

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

Можно установить ещё один регулятор комфортной температуры, который по показаниям термометра узнаёт фактическую температура наружного воздуха и решает, что комфортная температура воды должна быть, например, +40°С, поэтому он выдаёт задание регулятору температуры воды – поддерживать температуру на уровне +40С (см. пример выше).

Здесь мы имеем каскадное регулирование: контур регулирования температуры воды подчинён контуру регулирования комфортной температуры воды.

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

Упреждающее регулирование (Feedforward Control)

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

Для улучшения характеристик регулирования применяют комбинированное управление – с обратной связью (closed-loop) и без обратной связи (open-loop).

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

Что такое ПИД-регулятор

Что такое PID? Или на первый-второй рассчитайся!

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

Он устанавливается в системы с автоматическим управлением и поддерживает на определенном уровне значение какого-либо параметра.

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

Общие сведения о ПИД-регуляторе

Аббревиатура ПИД происходит от английского понятия PID, и расшифровывается как Proportional, Integral, Derivative. На русском языке это сокращение включает в себя три компонента или составляющие: пропорциональную, интегрирующую, дифференцирующую.

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

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

  • Первый – с сигналом рассогласования.
  • Второй – с интегралом сигнала рассогласования.
  • Третий – с производной сигнала рассогласования.

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

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

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

Через измеритель на контроллер поступают данные об уровне температуры на данный момент. Мощность нагревателя отдельно контролируется специальным устройством.

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

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

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

Для ее решения будут задействованы все три компонента, рассмотренные выше.

Три составляющих рабочего процесса ПИД-регулятора

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

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

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

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

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

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

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

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

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

Теория и практика использования ПИД-устройств

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

1.

2.

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

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

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

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

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

Самым современным прибором считается цифровой ПИД-регулятор, воплотивший в своей конструкции все варианты практических регулировочных решений.

Источник: https://electric-220.ru/news/chto_takoe_pid_reguljator/2018-03-24-1477

Пропорционально-интегрально-дифференцирующий (ПИД) регулятор и выравнивание графика температуры

Что такое PID? Или на первый-второй рассчитайся!

Добавлено в закладки: 5

Пришло время калибровать HotEND и стол. Я пользуюсь EEPROM т.к. мне нравиться вносить настройки не прошивая лишний раз принтер и не отключаясь от Repetier.

Для понимания что такое PID или ПИД советую прочитать эту статью.

Почитали? Приступим!

Для запуска калибровки используется G-код, а именно команда М303 (Пример: M303 E-1 C8 S110), где

М303 – это одна из команд G-кода отвечающая за запуск процедуры PID tuning;

Е-1 – это то, что мы будем калибровать. Это значение может принимать вид: “Е-1” – это означает стол, “Е0” – это означает HotEND (E1 – видимо второй HotEND и т.д.);

С8 – это указывается количество циклов калибровки (обычно 8-ми циклов достаточно);

S110 – это температура нагрева в градусах. Как правило для стола достаточно указать 110 градусов, а для HotEND’а указать 260 градусов.

Далее ждем сообщения об окончании и результатом тестирования

из результатов нам нужны только 3 строчки (если, конечно, все прошло удачно)

#define DEFAULT_bedKp 174.71#define DEFAULT_bedKi 15.19

#define DEFAULT_bedKd 502.35

При тестировании HotEND’а нужны будут подобные строчки с параметрами PID только  для  HotEND’а

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

Далее записываем полученные результаты в EEPROM командой M301. (Пример: M301 H1 P1 I2 D3), где

М301 — КОМАНДА(G-код)

H0 — то, к чему относится команда (стол = H0, экструдер1 = H1, эктрудер2 = H2 и т.д.)

P174.71 — параметр Kp (значение в примере = 174.71)

I15.19 — Параметр Ki (значение в примере = 15.19)

D502.35 — параметр Kd (значение в примере = 502.35).

Для HotEND’а параметры Kp, Ki, и Kd заносятся также, как и для стола.

Эти параметры можно заносить сразу после калибровки чего то одного например откалибровали стол… убедились, что все нормально… сохранили… и потом за хотэнд взялись (я так и делал)

И не забывайте сохранить все это дело командой М500

Вот вроде все хорошо… и кажется что все откалибровали, но это только теория… на деле появляются камни и даже “булыжники”

Давайте разберемся с некоторыми из них…

Рассмотрим подключение стола через автомобильное реле

При нагретом столе во время удержания получаем график, который “плавает” по температуре +2,5 / -0,5 градуса, что считаю недопустимо… (Реле включается редко)

Изменить данную ситуацию (с плавающей температурой) можно изменяя параметр MAX_BED_POWER в меньшую сторону. Подбирается опытным путем. Но следует учитывать следующие моменты:

  1. Если параметр этой переменной равен 255, то реле включилось – стол нагрелся – реле выключилось
  2. Если этот параметр уменьшать, то реле будет часто включаться и щелкать
  3. Чем меньше этот параметр — тем быстрее щелкает реле для нагрева стола

Параметры следует подбирать постепенно… Снижать по 10 и проверять нагрев в деле… в определенный момент Вы :

а) Задолбаетесь и скажите, что так пойдет…

или

б) Увидите как график опять начинает плавать все больше и больше…

Если Вы получили вариант “Б”, то значит дальше снижать не нужно и надо искать “золотую середину”… чтобы и график как можно ровнее был, и реле как можно реже срабатывало.

Расмотрим подключение стола обычным способом через поменянный транзистор с улучшенными характеристиками

В этом случае Вам не нужны “танцы с бубном”. Просто вносите полученные параметры в EEPROM, сохраняете проверяете… радуетесь… (у меня именно так и было)

Заметки:

  • ПИД стола включать нельзя иначе реле будет щелкать не переставая, нагреется и очень…ОЧЕНЬ быстро выйдет из строя!
  • Если используете реле, то калибровать ПИД стола наверно и не обязательно… т.к. сам ПИД выключен
  • У меня параметр MAX_BED_POWER был равен 200 и при тестировании меньше 120 не спускался.
  • Если вы используете стандартное подключение, то для включения ПИД стола требуется раскомментировать параметр #define PIDTEMPBED.
  • Если Вы поменяли транзистор на нормальный и выкинули релюшку – подключив все как и должно быть, а еще решили включить ПИД стола, то после процедуры по подключению и замены требуется откалибровать PID стола… Разница в параметрах не значительная, но она есть. (у меня именно так и было)

Калибровка ПИД HotEND‘а

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

Еще одна проблема с которой я столкнулся после изменений ПИД ручками – это ошибка

Errorsillyrinter halted. kill() called! [ERROR] Errorsillyrinter halted. kill() called!

Я конечно понял, что где то стоит ограничение по времени нагрева, но долго не мог найти это ограничение… оказалось все просто… за это отвечают параметры

#define WATCH_TEMP_PERIOD 16 // Seconds

и

#define WATCH_TEMP_INCREASE 4 // Degrees Celsius

т.е. температура должна повышаться на 4 градуса каждые 16 секунд.

у меня после корректировки ПИД хотэнда за 10 градусов до достижения намеченной температуры – температура начинает медленно расти… по 1 градусу примерно в 20 секунд…

в итоге изменив параметры на

#define WATCH_TEMP_PERIOD 20

#define WATCH_TEMP_INCREASE 1

(Взял с запасом)

Я избавился от этой ошибки.

В итоге я получил нитевидный график температур…

Ниже скриншот результата во время печати…

Источник: https://3deshnik.ru/blogs/wolfs_sg/proporcionalno-integralno-differenciruyushhij-pid-regulyator-i-vyravnivanie-grafika-temperatury

Практические советы по настройке ПИД-регулятора

Что такое PID? Или на первый-второй рассчитайся!

В данной статье приведены основные принципы и правила настройки коэффициентов ПИД-регулятора сточки зрения практического применения. Теоретические основы можно прочитать вот в этой статье.

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

Задача настройки

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

Допустим текущая температура в помещении 10 °С, а мы хотим, чтобы было 25°С. Мы включаем регулятор и он начинает управлять мощностью обогревателя таким образом, чтобы температура достигла требуемого уровня. Посмотрим как это может выглядеть.

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

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

В теории это время можно рассчитать, но на практике чаще всего это определяется экспериментально.

Чёрным цветом показан график изменения температуры в том случае, если коэффициенты подобраны совсем плохо. Система теряет устойчивость. Регулятор при этом идёт «в разнос» и температура «уходит» от заданного значения.

Рассмотрим более благоприятные случаи.

На этом рисунке показаны графики, далёкие от идеального. В первом случае наблюдается сильное перерегулирование:  температура слишком долго «скачет» относительно уставки, прежде чем достичь её. Во втором случае регулирование происходит плавно, но слишком медленно.

А вот и приемлемые кривые:

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

В процессе настройки регулятора, пользователю необходимо стремиться получить кривую, близкую к идеальной. Однако, в реальных условиях сделать это не так-то просто — приходится долго и мучительно подбирать коэффициенты. Поэтому зачастую останавливаются на «приемлемой» кривой регулирования.

Например, в нашем примере нас могли бы устроить коэффициенты регулятора, при которых заданная температура достигалась бы за 15-20 минут с максимальным перерегулированием (максимальными «скачками» температуры) 2 °С.

А вот время достижение уставки более часа и максимальные «скачки» температуры 5 °С — нас бы не устроили.

Далее поговорим о том, как подобрать коэффициенты для достижения оптимального регулирования. Рекомендуется настраивать коэффициенты в том же порядке, в котором это описано.

Настраиваем пропорциональный коэффициент

Выставляем дифференциальный и интегральный коэффициенты в ноль, тем самым убирая соответствующие составляющие. Пропорциональный коэффициент выставляем в 1.

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

Характер изменения можно отследить «визуально», если у вас получится мысленно представить этот график. Либо можно регистрировать в таблицу измеренное значение температуры каждые 5-10 секунд и по полученным значением построить график.

Затем нужно проанализировать полученную зависимость в соответствии с рисунком:

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

Так убавляя-прибавляя коэффициент необходимо получить график регулирования как можно ближе к идеальному.

Поскольку достичь идеала удастся вряд ли, лучше оставить небольшое перерегулирование (его можно будет скорректировать другими коэффициентами), чем длительное нарастание графика.

Настраиваем дифференциальный коэффициент

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

При появлении таких скачков необходимо прекратить увеличение дифференциального коэффициента.

Настраиваем интегральный коэффициент

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

При этом в нашем примере температура стабилизируется не на заданном значении 25 °С, а на несколько меньшем значении. Дело в том, что если температура станет равной уставке (то есть разность текущей и заданной температур станет равна 0), то пропорциональная и дифференциальная составляющая будут равны нулю (см.

функцию преобразования ПИД-регулятора). При этом мощность регулятора тоже станет равна 0 и он начнёт остывать.

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

Заключение

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

by HyperComments

Источник: http://lazysmart.ru/osnovy-avtomatiki/nastrojka-pid-regulyatora/

Пид для квадрокоптеров (перевод)

Что такое PID? Или на первый-второй рассчитайся!

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

Про настройку ПИД простыми словами

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

ПИД регулятор вычисляет значение «ошибки» как разницу между измеренным значением переменной и ее желаемым значением. Он пытается минимизировать ошибку воздействуя на управляемые входы.

Серьезно, это определение полностью бесполезно для нас – не ученых :-p

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

Алгоритм вычислений в ПИД регуляторе включает в себя 3 постоянных параметра, пропорциональное, интегральное и дифференцирующее значения, обозначаемые P, I и D.

Эвристически эти значения могут быть интерпретированы как значения во времени: P зависит от текущей ошибки, I – от накопившихся прошлых ошибок, D – это предсказание будущих ошибок, на основании скорости изменения.

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

Пид еще более простыми словами

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

Что такое P?

P – это основное значение о котором нужно побеспокоиться, это число определяет стабильность. Почему я так говорю? Потому что Вы можете оставить I и D равными 0 и ваш самолет все еще будет удерживать горизонтальное положение. И вот поэтому вы всегда должны настраивать значение P до значений I и D.

Чем больше значение P, тем резче оно пытается стабилизировать коптер. Но если P слишком большое, то коптер становится слишком чувствительным и слишком резко пытается корректировать свое положение, проскакивая требуемое положение (чрезмерно резкая и быстрая реакция), в этом случае вы получите колебания с большой частотой.

Хотя и не все колебания вызываются слишком большим значением P. Вы должны снизить уровень вибраций по максимуму до того как начинать настройку ПИД; например от моторов, жесткости рамы, баланса винтов и т.д. Если коптер сам по себе не вибрирует, то вы можете установить бОльшее значение P и наслаждаться более стабильным и управляемым полетом.

Способ, при помощи которого я настраиваю P: увеличивать значение до тех порка не появятся вибрации (колебания), и затем немного уменьшить.

Что такое I?

Отлично, вы настроили P, оставив I и D значением по умолчанию (прим. переводчика, по идее они должны быть равными 0).

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

Эта резкость управления даже может вызвать несколько колебаний или раскачиваний если вы дерните стик быстро.

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

Посмотрите на значение I как на штуку которая следует позади, за стиком управления, увеличив значение I вы увидите, что полет становится более плавным.

Но побочный эффект этого – когда вы бросите стики – коптер продолжить двигаться в этом же направлении. Это эффект от I – удержание предыдущей (во времени) позиции стика.

Чтобы понять это подумайте о том, что коптер пытается уменьшить ошибку в положении, но ошибка не уменьшается, она будет только пытаться уменьшиться. Это эффект от параметра I.

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

Когда I не равно 0, очень маленькая ошибка присутствует постоянно (это не обязательно плохо в реальном полете!).

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

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

Что такое D?

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

D – это противоположность P. Если P это рука которая продолжает толкать машину в сторону стабильного положения, тогда D – это пружина между рукой и машиной, которая сглаживает резкие удары. Увеличивая D вы как бы смягчаете движения, как бы добавляете пружину в этот процесс управления. Однако слишком большое D – не очень хорошо, потому что может вызвать колебания. А еще коптер будет вялым.

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

Когда вы видите вибрации не спешите уменьшить P, попробуйте увеличить D и посмотрите, возможно вибрации исчезнут. Также если вы видите небольшую болтанку или небольшие вибрации на больших оборотах или при выполнении флипов и роллов, увеличение D должно помочь. Цена этому – более вялое управление.

ПИД для вертикальной оси (рысканье)

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

Заключение

Здесь статья как я настраиваю свой Naze32.

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

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

Оригинал: Understanding PID for Quadcopter RC – Flight behaviour

Источник: https://blog.rcdetails.info/pid-dlya-kvadrokopterov-perevod/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.