8-900-374-94-44
[email protected]
Slide Image
Меню

Пид регулятор схема – ПИД-регуляторы – для чайников-практиков / Теория, измерения и расчеты / Сообщество EasyElectronics.ru

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

   

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

• Поддерживается всеми микроконтроллерами 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-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.

   Когда входной процесс, 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 

chipenable.ru

Как работает пид регулятор температуры. AVR221: Дискретный ПИД-регулятор

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

Поддерживается всеми микроконтроллерами 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-3 стационарная ошибка в значении системного процесса появляется после изменения опорного сигнала (ref). Использование слишком большого П-члена даст неустойчивую систему.

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


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

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


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

sibay-rb.ru

Корректная реализация разностной схемы ПИД регулятора / Habr

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

Несмотря на свою простоту как физического смысла, так и математической записи:

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

Причем проверить качество реализации ПИД регулятора крайне легко.

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

Включаем регулятор, проверяем: текущая температура 22 градуса, уставка 16 градусов. Лампочка не горит. Начинаем начинаем увеличивать уставку: 16.1, 16.3, 16.7, 18… 19… лампочка загорелась. Как?! Откуда?! Останавливаемся — выключилась. Итак, мы встретились с первой классической ошибкой реализации ПИД регулятора.

Небольшое математическое отступление: вспомним еще раз интегральную запись указанную выше. Мы реализуем её програмно, а значит — дискретно. То есть с завидной регулярностью производим измерение входной величины, сравниваем её с уставкой, вычисляем воздействие, выдаём, повторить. А значит, надо из интегральной формы перейти в конечно-разностную схему. При переходе обычно используется переход «в лоб»:

где E(n) = X(n) - X0(n) — то есть величина рассогласования между текущим и заданным значением регулируемого параметра.

Использование прямой формулы потребует во-1х считать и хранить интеграл рассогласований за большой период, во-2х требует работы с плавающей точкой высокой точности (так как интегральный коэффициент Ki всегда < 1), либо операции деления (представляя коэффициент в форме 1/Ki) большой разрядности. Всё это требует вычислительных ресурсов, коих в embedded как правило сильно ограничено… Поэтому, вместо реализации прямой схемы, реализуют рекуррентную формулу:

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

Итак, вернёмся к нашему регулятору. Итак, есть регулируемый объект: лампочка. Для управления подаваемой на неё мощностью, используют простой подход: сеть питания (220В 50Гц) подаётся через симистор на нагрузку. Симистор в момент перехода полуволны через ноль выключается, и остаётся выключен до тех пор, пока не будет подан сигнал на управляющий электрод. Таким образом, чем раньше после начала полуволны мы подадим управляющий сигнал, тем больше энергии от этой полуволны достигнет управляемого объекта. Правильно расчитав время для линейности площади части полуволны с момента времени X до конца полуволны, мы получаем возможность выдавать мощность от 0 до 100% с точностью, с которой расчитали таблицу линеаризации.

Итак, мы можем выдавать мощность от 0 до 100%. В реальных объектах, часто нельзя выдавать 100% мощности — например, это черевато перегоранием нагревательного элемента. Поэтому, все приборы имеют настройку минимальной и максимальной выдаваемой мощности на объект.

Итак, после вычисления U(n) по вышестоящей формуле, добавляется еще ограничение результата:
if Un < Umin then Un := Umin; if Un>Umax then Un := Umax;
После чего, вычисленное Un и есть требуемая выходная мощность на текущий момент. Та-дам! Именно вот эта реализация и создаёт ошибку, о которой написано выше.

Причина банальна: в момент перехода от дикретной к конечно-разностной схеме, мы «выносим за скобки» операцию вычисления интеграла, и на каждом шаге мы прибавляем производную к накопленной сумме U(n-1). Наложив же на неё ограничение, мы весь вычисленный интеграл фактически обнуляем. (Ну не сколько обнуляем, сколько приводим к диапазону 0-100, что в данном случае несущественно). Таким образом, мы дифференциурем ПИД регулятор, и остаётся дифференциально-ускорительный. Что в реальности выглядит как просто дифференциальный регулятор — мощность при этом подаётся пропорционально изменению уставки или регулируемой величины, а не пропорционально разности между уставкой и регулируемой величиной.

Вывод №1: вычисление U(n) нельзя ограничивать. Для ограничения мощности подаваемой на выходное устройство следует заводить отдельную переменную.

Теперь, когда мы завели Urn, для ограниченной мощности, перезаливаем, продолжаем тестировать.
Включаем регулятор, проверяем: текущая температура 22 градуса, уставка 16 градусов. Лампочка не горит.
Начинаем прибавлять уставку: 16.1, 16.4, 17, 18, 20, 22, 24 (опа! засветилось! ура!), 28, 30, 40, 60… Красота! Работает!
Наблюдаем за процессом — вышло примерно на 60, болтается чуток туда-сюда, но держит. Вроде, всё красиво. Выдыхаем, проверяем управление с ПК: задаём 600 градусов. И… Лампочка выключается. Как так? Уставка 600, текущая 60, а лампочка не горит?

Пока ждём и медленно осознаём, что мы явно напоролись на какой-то «Классический Косяк №2» ™ лампочка медленно разгорается, выходит на 100% мощности, и так и остаётся — 600-то градусов она выдать ну никак не может.

Возвращаемся снова к нашей разностной схеме. U(n) = U(n-1) + Kp*(dE + ...). К текущему расчетному значению воздействия прибавляется разность невязки помноженная на коэффициент пропорциональности. У нас была уставка 60, температура 60, то есть невязка нулевая. Выходная мощность так же была нулевая. И тут разом, скачком, уставку увеличили до 600 градусов. невязка резко стала 540 градусов, помножили еще и на коэффициент пропорциональности… и вылетели за разрядность хранения U(n). Не смейтесь, использование математики с фиксированной точки, вместо плавающей точки. При разнице в 540 градусов и работе через 1/16, при коэффициенте пропорциональности 20, получаем… 540*20*16=172800, а если у нас 16тиразрядный U(n), да еще и знаковый, то фактически, в результате вычисления мы получили A300h = −8960. Опачки. Вместо большого плюса — ощутимый такой минус.

Вывод №2: вычисления должны проводиться с корректной поддержкой переполнения. Переполнилось? Ограничь предельным числом, уж никак не заворачивать.

Итак, нарастили разрядность U(n), перетранслировали, зашили, запускаем. Лампочка еще не совсем остыла, там 80 градусов, уставка всё те же 600. Лампочка зажигается… и тухнет. Зажигается и тухнет. Как так? Уставка 600, лампочка 80 — и поддерживает вполне себе свои 80! Как так-то?! Явно у нас вылез Жучок №3.

И снова лирически-математическое отступление. Итак, есть наша разностная схема: U(n) = G(U(n-1), dE(n)). Еще раз: новое значение воздействия есть сумма прошлого воздействия и некого воздействия, зависящего от разности невязки в текущий момент и предыдущий. А что такое предыдущий момент? А какой момент предыдущий у предыдущего? Ну-ка, вспомнили школу. Доказательство по индукции. Если можно построить доказательство для K+1, считая что доказательство для K верно, И доказать отдельно что верно для K=0, тогда доказательство истинно. Итак, а как мы считаем U(0)?

Часто встречающееся решение: всё обнуляем, уставку считываем из флешпамяи уставки, ждём 1 цикл опроса, и считываем X(0). Вот, ноль готов, теперь работаем. И… И не правильно. Почему? Потому что рекурентная формула отталкивается от изменений в невязке. А проинициализировав нулём и загрузив текущие значения мы потеряли стартовые условия. Всё — вместо поддержания абсолютного значения температуры на уровне равном абсолютной уставке регулятор начинает держать температуру равную стартовой плюс разнице уставки. То есть было 80 градусов и уставка 200, включили прибор — он держет 80. Сменили уставку на 240 — он начал держать 120.

Правильная инициализация разностной схемы: обнулить _вообще всё_. То есть
X(0) = 0, X0(0) = 0. U(0) = 0. E(0)=X(0)-X0(0)=0.
И на первом же цикле вычислений у нас как бы скачком появляются уставке и текущее значение:
X(1) = 80. X0(1)=200. U(1) = U(0)+Kp*(E(1)-E(0)) = U(0)+Kp*(X(1)-X0(1)-E(0)) = 0 + 20*(200 - 80 - 0) = 2400
Вот теперь схема работает правильно.

Вывод №3: корректно инициализируй стартовые условия.

Правильно ли? Hу-ка, ну-ка… Еще раз… Ставим уставку 20. Ждём охлаждения… Выключаем. Включаем. Итак, красота: текущая 20, уставка 20. Ставим скачком 600. Поехало греться. 100, 120… ставим уставку 20. Отключилось, пошло охлаждаться. Ждём чуток (120… 110… 100… 90… 80...) и ставим уставку 100. Поехало греться… 105 градусов, отключилось. Стоп. А почему оно держит 105? У нас же сейчас работает только пропорциональная составляющая. При правильной реализации из физического смысла процесса колебательный процесс не может держать уставку выше чем задано. Строго ниже. А держит на 5 градусов больше чем попросили. Это наблюдается Прикол №4.

Итак, вспоминаем что у нас было выше: Вывод№2: U(n) нельзя ограничивать. И Вывод№3: при переполнении ограничить всё-таки придётся. Да-да. Иначе «рабочая точка» смещается на ограниченный момент. Что же делать? Увеличить разрядость? Хорошо, если хватает вычислительной мощности. А надо ли? Собственно, что плохого, что у нас U(n) = 9999.99, а не 29999.99? В общем-то только то, что мы потеряли 20000. Но сейчас-то для работы нам так и так надо вваливать просто 100% мощности, правильно? Правильно. Значит, проблемы с ограничением в полку нет, до тех пор, пока мы не отходим от предела. Таким образом, в случае переполнения надо ставить флаг, и по достижении, например, половины диапазона (то есть как U(n) после 9999.9 опустилось ниже 5000.00), заново реинициализировать схему. То есть отбрасывать историю, сказать что n=0 и см. выше Вывод №3. Пытливый ум уже сообразил, что в случае полной схемы, когда все три компоненты не равны нулю, обнуляя в процессе итеративный процесс, мы в том числе обнуляем накопленный интеграл интегральной составляющей. Однако, в связи с тем, что обнуляем мы значительно заранее, он успеет подкопиться за время довырабатывания остатка. Да и не совсем корректно копить интеграл на «больших» перегонах, так как цель интегральной составляющей — «выбрать» невязку, которую не может отработать пропорциональная составляющая отдельно.

Вывод №4: если по какой-то причине U(n) было ограничено, схему следует переинициализировать как только создалось впечатление, что схема вернулась в нормальное состояние.

В следующем выпуске: а так ли надо реализовывать разностную схему? Подробная реализация прямой дискретной схемы, обладающей простыми и понятными настраиваемыми коэффициентами, с прямым физическим смыслом, которая без проблем вычисляет управляющее воздействие с частотой 25Гц на процессоре ADuC847 (быстрый 8-битный контроллер, с ядром 8051), оставляя еще море процессорного времени для других процессов.

(Картинки с изображением формул взяты из статьи ПИД-Регулятор в Wikipedia)

habr.com

ПИД-регулятор для автоматизации процессов | LAZY SMART

Что же такое ПИД-регулятор? Прежде всего это алгоритм, который может быть реализован как программно, так и аппаратно. Сегодня мы рассмотрим ПИД-регулятор как законченное устройство, которое может быть использовано для построения систем управления и автоматики. В качестве примера возьмём устройство компании «ОВЕН»  ТРМ210. Но для начала немного теории…

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

ПИД-регулятор относится к регуляторам непрерывного типа. Аббревиатура «ПИД» расшифровывается как «пропорционально-интегрально-дифференциальный» (регулятор) — эти три слова полностью описывают принцип его действия. Общая структурная схема управления выглядит так:

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

Функция преобразования ПИД-регулятора выглядит следующим образом:

,где E — ошибка регулирования (разница между заданным значением регулируемой величины и фактическим)

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

Пропорциональная:  «Чем больше — тем больше, чем меньше  — тем меньше»

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

Интегральная:  «Учтём предыдущий опыт»

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

Дифферинциальная:  «Учтём скорость изменения»

Эта составляющая берёт производную от измеряемой величины. Физический смысл производной- это скорость изменения физической величины. Например, чем быстрее растёт (или падает) температура в системе, тем больше будет соответствующая производная. Дифферинциальная составляющая позволяет регулятору по-разному реагировать на резкие и плавные изменения регулируемой величины в системе, тем самым избегая «раскачивания» этой величины.

ТРМ210: Функциональная схема прибора

Краткий экскурс в теорию закончен, вернёмся к практике и рассмотрим прибор ТРМ210, реализующий данный алгоритм.

Вот его функциональная схема:

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

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

Управляющее воздействие регулятора может быть импульсным или аналоговым. В первом случае управляющее воздействие регулятора заключается в изменении ширины генерируемых на выходе импульсов. Во втором случае регулятор выдаёт сигнал унифицированного напряжения в диапазоне 0…10 В или тока в диапазоне 4…20 мА. С помощью этих сигналов можно управлять практически любым устройством.

В ТРМ210 предусмотрен блок сигнализации, который сообщает о выходе физической величины за заданные пределы, замыкая дискретный выход, который, например, может «зажигать» лампу «Авария».

Также в приборе имеется блок регистратора, который может передавать измеренное значение физической величины любому другому прибору или устройству с помощью токового сигнала 4…20 мА.

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

Пример использования

Допустим, необходимо реализовать проветривание помещения следующим образом: чем больше температура внутри, тем больше нужно открыть окно. Для этого установим на окно привод, который будет плавно поворачиваться на заданный угол, а управляться будет сигналом тока 4…20 мА (такой управляющий сигнал поддерживают практически все подобные приводы). То есть, если подать на привод сигнал 4 мА — он полностью закроет окно, а 20 мА — полностью его откроет.

Для измерения температуры можно взять любой из поддерживаемых ТРМ210 — это практически любые термопары и любые датчики имеющие унифицированные выходы 0…10 В и 4…20 мА.

Настройка ПИД-регулятора

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

До свидания! Читайте LAZY SMART.


lazysmart.ru

ПИД регулятор для печи отопительной Бренеран, необязательно для нее и необязательно для отопления.

РадиоКот >Схемы >Цифровые устройства >Автоматика >

ПИД регулятор для печи отопительной Бренеран, необязательно для нее и необязательно для отопления.

Небольшое предисловие.

Часть первая. Описание устройства.  

Техзадание.

  1. Устройство должно быть максимально не дорогим.
  2. Исходя из п.1 пришло в голову вращать диск поддувала обыкновенной сервомашинкой.
  3. Управлять сервомашинкой (заслонкой) будет ПИД регулятор (пропорциональный – интегральный - дифференциальный).
  4. Чтобы устройство было более универсальным, добавим еще выход ШИМ с малой частой, вдруг каким электротэном захочется поуправлять или еще чем.
  5. Сделаем индикацию текущей температуры на светодиодный дисплей.
  6. Обойдемся без клавиатуры, будем настраивать коэффициенты при помощи компьютера.
  7. Благодаря п.6, нужна программа-конфигуратор. Нужна, так нужна. Напишем.
  8. Раз нет клавиатуры, добавим переключатели, чтобы можно было оперативно менять задачу (температуру), на одну из трех, заранее установленных . 

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

Диапазон измерения температуры: -55…125 гр.С.

Два выхода ШИМ. Первый для управления сервоприводом. Частота 50Гц, ширина импульса от 1 до 2 мс. Второй выход ШИМ для непосредственного подключения нагревателей (охладителей) или других устройств. Частота ≈0,15 Гц, ширина импульса от 0 до ≈6,5 сек.

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

Измерение и индикация текущей температуры на светодиодный семисегментный дисплей.

 

Схема электрическая принципиальная.

Так как схема проста, начну сразу с нее.

 

 

Мозгом устройства является популярный микроконтроллер AtMega8.

Датчик температуры – DS18B20, подключенный по схеме с паразитным питанием, т.е. по двум проводам.

Сервомашинка – сервопривод с ШИМ управлением, я использую MG995. Ширина импульса 1мс соответствует положению 100% и 2 мс это 0%. Частота 50 Гц.

Так же есть, так называемый «медленный ШИМ». Это выход с открытым стоком полупроводникового ключа. 0% - закрыт, 50% открыт полпериода, 100% открыт весь период, а период около 6,5 сек. К нему, например, можно подключить электротэн, с учетом мощности конечно. Вместо МОП транзистора можно поставить оптопару, а к нему подключить мощный семистор.

Светодиодный индикатор работает в режим динамической индикации.

В схеме есть четыре «кнопочки».

Кнопка «RESET» - нажатие ее перезапустит контроллер.

Кнопка «PD6» - если удерживать ее во время перезапуска контроллера, все коэффициенты сбросятся на значения по умолчанию.

Переключатели «PD3:PD2» выбор уставки (температуры). Одной из трех или перевод в режим «максимум».

PD3

PD2

№ уставки

0

0

0

0

1

1

1

0

2

1

1

«максимум»

 

Для конфигурирования с помощью приложения Windows устройство подключается к компьютеру через последовательный интерфейс. Для того чтобы подключить к компьютеру я использую преобразователь USB-RS232_TTL. Но можно в схему встроить чип max232 и подключить к COM порту. Можно использовать микросхему CP2102 и впаять разъем microUSB, благо она дешевая. Можно организовать RS485  или радиоинтерфейс. Кому как нравится. Даже можно поставить модуль bluetooth типа HC-05, компьютер его увидит как удаленный COM-порт.

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

Ну и разъем для внутрисхемного программирования.

Хочу обратить внимание, что такие элементы как DS18B20, сервопривод, Com-порт и переключатели подключенные к PD3 и PD2 являются внешними устройствами и были включены в схему для более понятной работы устройства и его отладки в симуляции.

 

Алгоритм работы ПО микроконтроллера.

При включении питания, контроллер «вспоминает» из EEPROM коэффициенты и уставки ранее сконфигурированные.

Измеряет температуру один раз в секунду.

Через равные промежутки времени (частота дискретизации и это настраиваемый параметр) вычисляется управляющее воздействие по нижеследующей формуле.

 U=KpE+Ki∑E+KdΔE; %

где

         Kp, Ki, Kd – коэффициенты пропорциональной, интегральной и дифференциальной составляющих соответственно, дробные со знаком;

E – ошибка, разница между уставкой и текущей температурой.

ΔE – разница между текущей и предыдущей ошибкой.

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

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

"Частоту дискретизации" не стоит делать меньше 2 секунд, т.к. опрос температуного датчика происходит с частотой 1 секунда.

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

 

Фьюзы – внутренний RC генератор 8МГц, остальное по умолчанию.

 

Программа PID_Configurator.

 

Как я уже говорил, все настройки осуществляются приложением Windows «PID_Configurator».

Особо о нем рассказывать нечего, так как там все интуитивно понятно.

Опишу элементы управления.

  • «Считать» - считывает данные с устройства и заполняются поля с данными.
  • «Записать» - отправка коэффициентов в устройство. Все числа (кроме ограничений по минимуму и максимуму) имеют дробный формат и могут быть не только положительными, но и отрицательными. Если в этот момент будет включена галочка «reset», расположенная напротив поля Ki, сумма «ошибок» накопленная микроконтроллером будет сброшена.
  • «Открыть» - открывает файл с ранее сохраненной конфигурацией.
  • «Сохранить» - сохранить конфигурацию в файл.

 

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

 

Параметры UART.

Если будет нужно использовать радиоудлинитель, преобразователь интерфейса (например в RS-485), модуль Bluethooth и прочее, то нужно будет установить следующие параметры передачи данных:

  • 9600 бод;
  • 1-стоп бит;
  • Нет контроля четности.
  • 8 бит данных.

Плата печатная.

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

Индикатор – два спаренных FYD-5622. Кнопки типа SWT для перезапуска контроллера и сброса на значения по умолчанию. Переключатели внешние.

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

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

А можно и использовать мой опытный вариант разводки дорожек платы.

 

Часть вторая. Боевое применение. Или как я настраивал и наслаждался результатом.

Начну с того, что я начал испытание с элементом Пельтье, используемый мной вместо электронагревателя, подключенный к «медленному ШИМ».

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

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

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

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

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

_____________________________________________________________________________________________________________________

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

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

Поддувало печи Бренеран (или как его гордо называет производитель печи «регулятор мощности») выполнено из трубы диаметром 89мм со встроенным дисковым поворотным затвором.  Это поворотный затвор я решил не трогать, а сделать еще один регулятор.

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

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

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

Отверстие, закрываемое поворотным диском, впоследствии было увеличено в более чем два раза. Плату контроллера была помещена в капроновый контейнер. Сервопривод с платой был соединен пяти метровым неэкранированным проводом, но не смотря на это сервопривод позиционируется точно. Т.е. сигнал ШИМ не искажается.

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

 

А вот мое рабочее место определения коэффициентов.

 

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

Плюсы и минусы данной печи описывать я тут не буду, не о том статья. Укажу ее марку - АОТ-8 тип 005.  Объем помещения 60м3.

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

Но все же я добился необходимого результата, не смотря позднее время. Кстати Ki убавил где-то на тот же порядок что и с элементом Пельтье от расчетного.  

Ниже Вы может увидеть тренд выхода на уставку 24 градуса. 

А вот продолжение тренда.

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

 

Вывод:

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

         Типов ТТ котлов сейчас огромное количество, заводских и самодельных, горизонтальных и вертикальных. И почти все с ручным управлением, почему бы не попробовать? Можно и на самодельных, например на печке-бочке «Бубофоня», использующий принцип  котла-свечки Stropuva. Да и регулировать можно не температуру воздуха, а теплоносителя.

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

         У Вас свой дом подключенный к центральному отоплению? Поставьте сервопривод помощнее на запорную арматуру и регулируете температуру дома. Днем дома никого нет? Можно перейти на температурную уставку с температурой пониже, а управлять уставками можно программируемыми таймерами вместо переключателей или написать свое приложение под Windows или Android.

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

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

       

     ------------------------------------------------------------------------------------------------------------------------------------------------

 

Файлы:
Конфигуратор (Windows)
HEX с сохранением данных в EEPROM
Схема (Proteus)
Плата (layout 6)

Все вопросы в Форум.


Как вам эта статья?

Заработало ли это устройство у вас?

www.radiokot.ru

принцип работы, схемы, примеры и т.д.

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

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

Принцип действия ПИД-регулятора

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

Если выход увеличивается, то входной сильфон и нижний дифференциальный сильфон расширяются. Верхний дифференциальный сильфон расширяется позднее из-за переменного ограничения. Балансир поворачивается, и выход немедленно повышается.

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

Где применяется ПИД-регулятор

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

Газовая печь для подогрева нефти

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

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

kipiavp.ru

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

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

 Но для начала «пробежимся» по основным понятиям, что б понимать о чем мы с Вами будем далее говорить. В проекте предполагается управлять двигателем, т.е. объектом. Что в свою очередь автоматика так и называет объект управления (ОУ). У него имеется три параметра:
1. Выходная величина y.
2. Входной задающий параметр u.
3. Входное возмущающее воздействие f.
На рисунке слева представлен общий вид ОУ с его параметрами. Справа наш пример представленный в протеусе в виде двигателя с энкодером, где входным задающим параметром является постоянное напряжение и в зависимости от его величины изменяется частота вращения двигателя. Выходным параметром является показания энкодера, а именно угол поворота (число импульсов за один оборот). Третий параметр — возмущающее воздействие — это воздействие со стороны внешней среды, которое нарушает правильное функционирование объекта, т.е. трение, нагрузка и т.д.

 

 

 

Для исключения последнего используется второй параметр, т.е. задающий. Техническое устройство, осуществляющее автоматическое управление называется управляющим устройством (УУ). А ОУ совместно с управляющим и задающим устройствами называют систему автоматического управления (САУ). Ниже структурная схема системы.

Здесь хочется сразу добавить, что ОУ может управляться по трем основным принципам:
1. Принцип разомкнутого управления – вырабатывается на основе заданного алгоритма и не контролируется другими факторами.
2. Принцип компенсации возмущений, где результат возмущения в виде корректива вносится в алгоритм управления.
3. Принцип управления по ошибке. Здесь коррективы вносятся в алгоритм управления по фактическому значению выходной величины.

Наш проект будет строится по последнему принципу управления – по ошибке. Ниже, слева структурная схема, а справа проект, где осуществляется управление по ошибке.

 

 

 

 

ЗУ — это у нас двигатель с энкодером (с левой стороны), с которого импульсы поступают в микроконтроллер. Где в свою очередь прописана матмодель ПИД-регулятора. Контроллер выступает в роли УУ. Далее ШИМ генерирует необходимый импульс и посылает его на вход второго двигателя с энкодером, который правее. (Мы с Вами уже рассматривали ШИМ-управление на AVR). Выход импульсов с которого, является выходной величиной и ошибкой в обратной связи y ос. Кнопки — это возмущающее воздействие, которыми мы произвольно добавляем импульсы ОУ. Где в свою очередь УУ должно быстро и плавно подрегулировать под угол поворота задающего устройства.

Далее САУ классифицируются по:
1. Алгоритму функционирования:
— системы стабилизации — поддержание регулируемого параметра на заданном уровне;
— программное управление – алгоритм задан в функции времени, где выходная величина изменяется во    времени по заданному закону;
— следящие системы  — алгоритм функционирования заранее не известен, где регулируемая величина должна воспроизводить изменение некоторой внешней величины;
— экстремальные системы — показатель качества или эффективности процесса может быть выражен в виде функции параметров системы, а сама функция имеет экстремум (максимум или минимум).
— системы оптимального управления — процесс управления ведется таким образом, что некоторая характеристика процесса была бы оптимальной;
— адаптивные системы – некоторые параметры ОУ и др. элементов системы могут изменяться.
Наш алгоритм это программное управление, где выходная величина будет результатом ПИД управления.
2. По виду дифференциальных уравнений, описываемых систему – линейные (статические характеристики всех элементов являются прямолинейными) и нелинейные (статическая характеристика является нелинейной).
3. По характеру сигналов в основных элементах -  непрерывные и дискретные(в последних непрерывный входной сигнал преобразуется на выходе в последовательность импульсов).

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

Рассмотрим каждый закон в отдельности на примере устройства синхронизации. Итак, исходные данные:

Соберем пример в Proteus. Возьмем два движка с инкрементальными энкодерами, микроконтроллер, два счетчика импульсов, а также подключим осциллограф и ЖК индикатор для отображения рассогласования (ошибки). Рассмотрение датчиков угла поворота (энкодера) выходит за пределы статьи, единственное, что нам надо знать, они предназначены для преобразования угла поворота вращающегося объекта (вала) в электрические сигналы, позволяющие определить угол его поворота. Выше был представлен рисунок нашего проекта в Proteus. Ниже на рисунке пример настройки мотора с энкодером:

Где в свойствах мотора выставим:
— минимальную массу ротора EffectiveMass= 0,01;
— нагрузка ротора Load/MaxTorque % = 1, чтобы он по инерции не крутился;
— обороты ZeroLoad RPM=20;
— количество импульсов на оборот PulsesperRevolution=24.
Как видите в протеусе отдельного энкодера нет, только с двигателем. Кратко о его подключении. Один конец двигателя на землю, на второй напряжение от -12 или +12 В. И три вывода энкодера. Мы используем один как на рисунке выше. Приведенные параметры являются настроечными параметрами от которых будет зависеть динамика привода, т.е. его поведение.

П — регулятор. Одно из простых устройств и алгоритмов управления, в обратной связи, которое формирует управляющий сигнал. Выдает выходной сигнал u (t), пропорциональный входному (ошибке регулирования) e (t), с коэффициентом пропорциональности К, который вырабатывается пропорциональной частью П-регулятора в противодейтвие отклонению реглируемой величины от данного значения, в данный момент времени.

u (t)=Kр*e (t), где Kр - коэффициент усиления регулятора.

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

Обычно на практике усилительные свойства П-регулятора характеризуют следующими величинами:
— предел пропорциональности d=1/Kр - величина, обратная Kр
— предел пропорциональности, выраженный в процентах D=d*100%=100%/Kр. Показывает, на сколько процентов от своего максимального значения должен изменится входной сигнал, чтобы выходной изменился на 100%.

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

 

 

 

 

 

 

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

И-регулятор. Что значит интегральное управление? А то, что устройство вырабатывает сигнал (u (t)), пропорциональный интегралу от ошибки регулирования (e (t)). Система при таком законе астатическая, т.е.возмущение происходит на том участке системы, который находится за интегрирующим звеном. Но при этом динамические свойства системы с И-законом обычно хуже чем у системы П-управления. Ниже представлен закон И-регулятора.

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

Время изодрома Ти=1/K0 - величина, обратная K0. Также показывает за какое время выход регулятора изменится на 100% (регулирующий орган переместится из одного крайнего положения в другое) при скачкообразном изменении входного сигнала на 100%. Таким образом Ти характеризует быстродействие регулятора. С уменьшением T растет колебательность переходного процесса. При слишком малых значениях T система регулирования может перейти в неустойчивое состояние. Ниже на рисунке слева устойчивое состояние, справа — неустойчивое состояние.

 

 

 

 

 

 

 

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

ПИ-регулятор. Изодромное управление. Управляющее устройство вырабатывает суму двух сигналов — пропорционального ошибке и пропорционального интегралу от ошибки. Выходной сигнал ПИ-регулятора ( u (t) ) зависит и от ошибки регулирования ( e (t) ), и от интеграла от этой ошибки.
 
K1 - коэффициент усиления пропорциональной части,
K0 - коэффициент усиления интегральной части

Так как  ПИ-регулятор можно рассматривать как два регулятора, соединенные параллельно, то усилительные свойства ПИ-регулятора характеризуют два параметра:
1) предел пропорциональности d=1/K1 - величина, обратная K1
2) время изодрома Ти=1/K0 — величина, обратная K0 .

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

Недостатком ПИ регулирования является медленная реакция на возмущающие воздействия. Для настройки ПИ регулятора следует сначала установить постоянную времени интегрирования равный нулю, а коэффициент пропорциональности — максимальным. Затем как при настройке пропорционального регулятора, уменьшением коэффициента пропорциональности нужно добиться появления в системе незатухающих колебаний. Близкое к оптимальному значение коэффициента пропорциональности будет в два раза больше того, при котором возникли колебания, а близкое к оптимальному значение постоянной времени интегрирования — на 20% меньше периода колебаний. Оптимальным является переходной процесс с 20% перерегулированием.

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

ПД-регулятор характеризуют два параметра:

1. Предел пропорциональности d=1/K1 — величина обратная К1.
2. Постоянная времени дифференцирования (время предварения) Тд=K2. Это интервал времени между моментами достижения регулирующим органом одинакового положения при наличии дифференциальной составляющей и без нее. Параметр настройки дифференциальной составляющей. За счет дифференциальной составляющей упреждается перемещение регулирующего органа. 

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

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

 Усилительные свойства характеризуют три параметра:

1. Предел пропорциональности d=1/K1.
2. Время изодрома Ти=1/K0.
3. Время предварения  Тд=K2.

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

Ниже выложен проект в Proteus на ATmega8. Где представлена выше описанная модель ПИД — регулятора.

Синхронизация двигателей станка( Скачали: 400 чел. ) 

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

Просмотрено 13078 раз.

www.ap-impulse.ru

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *