Меню

Дискретная реализация пид регулятора

ПИД регулятор, простым языком о сложном.

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

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

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

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

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

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

Поверхностное описание принципа работы ПИД-регулирования

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

  • сложение — просто складываем два сигнала (например 5 В и 3 В), или
  • вычитание — аналогично первому, только со знаком минус
  • умножение — умножение одного числа на коэффициент (пропорциональное регулирование)
  • интегрирование у меня есть целая статья об этом (накопление статистики и расчет того, насколько недостаточно, или, наоборот, избыточно воздействие)
  • дифференцирование (это показатель динамики системы — ускоряемся мы или тормозим).

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

1. У нас нет регулирования.

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

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

3. Пропор2. Система простого регулирования (двухпозиционное регулирование).

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

  • теплогенератор — он же газовый котел
  • датчик температуры, лучше сказать чувствительный элемент — биметаллическая пластина, которая даёт команду котлу греть или не греть
  • система радиаторов, через которые идет воздействие на температуру в доме.

В данном случае котел будет подобран таким образом, чтобы в пике нагрузки работать на 80% мощности. То есть если требуется 20 кВт, то его максимальная мощность будет 24 кВт.

Нам для теоретических предположений можно сделать несколько поправок. Всё тепло, выданное котлом в систему, в итоге останется в доме (с учётом КПД самого котла).

Идея достаточно проста. Мы можем выдавать управляющее воздействие на объект с мощностью от 0 до 100%. Если объект мы также можем и охлаждать, то можно сделать от -50 до +50%. Самое главное — выбрать вспомогательный коэффициент. Но лучше по порядку.

Пропорциональное регулирование хорошо можно понять по картинке:

ПИД регулятор, простым языком о сложном.

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

ПИД регулятор, простым языком о сложном.

Итак, схема у нас есть и на рисунке всё подписано, теперь перейдем к формулам. U(t) — это воздействие на объект (на схеме тоже есть), оно получается из умножения ошибки е(t) (на схеме еще как дельта Х) на коэффициент пропорциональности.

ПИД регулятор, простым языком о сложном.

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

Подробнее, а заодно и другие виды регулирования, можете посмотреть на видео:

4. Интегральное регулирование.

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

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

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

ПИД регулятор, простым языком о сложном.

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

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

5. Дифференциальное регулирование.

В данном регуляторе, если вы посмотрели видеоролик, вся идея дифференцирования — это прогнозирование, предвидение ситуации. Заключается она в том, что мы ловим динамику.

Читайте также:  Установка регулятор давления топлива с манометром для

Суть производной — это угол наклона характеристики.

ПИД регулятор, простым языком о сложном.

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

Как итог, хочу продемонстрировать интересную гифку из википедии. Её разбор есть в видеоролике.

ПИД регулятор, простым языком о сложном.

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

А правильнее сказать — для вялотекущих процессов.

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

Если всё было бы так просто, то чему так долго учиться в ВУЗе? Если предыдущие 5 пунктов вам понятны, или вообще показались легкотней, то добро пожаловать в пункт 6, где тезисно знакомимся с ключевыми моментами настоящей ТАУ.

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

6. ТЕОРИЯ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ — знакомство.

Итак, есть такая замечательная книга

её объем чуть более 700 страниц, чтобы её просто начать читать, я не говорю про понять, необходимо обладать следующими знаниями:

1.Пределы, производные и интегралы.

2. Линейные уравнения и матрицы.

3. Комплексные числа и работа с ними.

4. Различные частотные характеристики и передаточная функция.

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

Вот пример из книги разбора интегрального звена(да да, там уже идут звенья)

ПИД регулятор, простым языком о сложном.

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

А такие формулы и преобразования:

ПИД регулятор, простым языком о сложном.

для вас должны быть обыденными и типовыми.

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

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

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

Источник

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

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

Выходной сигнал регулятора u(t) определяется по следующей формуле:

  • P — пропорциональная составляющая;
  • I — интегрирующая составляющая;
  • D — дифференцирующая составляющая;
  • Kp — пропорциональный коэффициент;
  • Ki — интегральный коэффициент;
  • Kd — дифференциальный коэффициент;
  • e(t) — ошибка рассогласования.

Задачи ПИД-регулятора в системах АСУ ТП

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

Сравнение ПИД —регулятора с позиционным регулированием

В системах АСУ ТП наибольшее распространение получили два типа регуляторов — двухпозиционный и ПИД.

Двухпозиционный регулятор наиболее простой в использовании и широко распространенный. Он сравнивает значение входной величины с заданным параметром уставки. Если значение измеренной величины ниже заданного значения уставки, регулятор включает исполнительное устройство; при превышении заданного значения, исполнительное устройство выключается. Для предотвращения слишком частого срабатывания устройства вследствие колебаний системы и, следовательно, изменении значений, задается минимальный и максимальный порог срабатывания — гистерезис, или по-другому — зона нечувствительности, мертвая зона, дифференциал. Например, нам необходимо поддерживать температуру в 15 °С. Если гистерезис задан 2°, то регулятор будет включать нагрев при 14 и отключать соответственно при 16.

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

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

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

  • фактическая величина,
  • заданное значение,
  • разность,
  • скорость.

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

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

Составляющие ПИД-регулятора

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

Пропорциональная P(t)=Kp*e(t)

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

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

Интегральная I(t)=Ki ∫e(t)dt

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

Читайте также:  Чем настроить центробежный регулятор

Дифференциальная D(t)=Kd de(t)/dt

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

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

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

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

Объект регулирования — камерная электрическая печь. Число зон регулирования от 24 до 40. Каждая зона есть набор электронагревателей. Материал нагревателей нихром. Тип — проволочные, навитые на керамические трубки. Требование: поддержание температуры по зонам печи ±5 °C.

Настройка пропорциональной компоненты (X p)

Перед настройкой зоны пропорциональности интегральная и дифференциальная компоненты отключаются:

  • Постоянная интегрирования устанавливается минимально возможной (Т и=0).
  • Постоянная дифференцирования минимально возможной (Т д=0).
  • Т ο — начальная температура в системе;
  • Т sp — заданная температура (уставка);
  • ∆T — размах колебаний температуры;
  • ∆t — период колебаний температуры.

Меняем значение пропорциональной составляющей X p от минимума (0) до момента, пока не появятся устойчивые колебания системы с периодом ∆t. Система должна находится в постоянном колебательном процессе, притом колебательный процесс незатухающий, где ∆T — характеристика колебания, равная значению величины рассогласования (±10 °C, или как по заданию). Колебания должны быть одинаковы от Т sp.

После получения данной кривой на нашем объекте, засекаем время периода колебаний ∆t — полный период. Данное время — характеристика системы, оборудования.

Используя полученные параметры, рассчитываем Т и и Т д.

Зона пропорциональности Коэффициент передачи Постоянная времени интегрирования Постоянная времени дифференцирования
П-регулятор 2⋅PBs 0.5⋅X p
ПИ-регулятор 2.2⋅PBs 0.45⋅X p 0.83⋅ ∆T
ПИД-регулятор 1.67⋅PBs 0.6⋅X p 0.5⋅ ∆T 0.125⋅ ∆T

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

Вывод

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

Источник



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

ПИД регулятор – один из самых распространенных автоматических регуляторов. Он настолько универсален, что применяется практически везде, где нужно автоматическое управление. Например температурой: специальные печи, холодильники, инкубаторы, паяльники, сопло и стол 3D принтера, ИК паяльные станции и прочее. Поддержание частоты оборотов мотора, например для станков. Всевозможные балансирующие штуки, гироскутеры, сигвеи, левитирующие магнитные платформы, и конечно же квадрокоптеры и самолёты с автопилотом. Это всё ПИД регулятор. Почему именно ПИД? Существуют и другие регуляторы, превосходящие ПИД по адаптивности к управляемой системе и стабильности, например линейно квадратичный. Но, чтобы грамотно синтезировать такой регулятор, нужно быть гораздо больше чем “семи пядей” во лбу, а настройка ПИД регулятора дело хоть и неприятное, но фактически очень простое и под силу любому, а сам ПИД регулятор универсален для почти любого процесса.

Система управления

Прежде чем переходить непосредственно к пиду, очень важно понять и запомнить несколько базовых понятий, из которых состоит автоматическая система. В первую очередь это регулятор, который всем заправляет и находится в центре системы. Регулятор в данном понимании – математический алгоритм или часть программы, которая крутится на микроконтроллере. Регулятор, как алгоритм, работает с обычными числами. Объект управления – это девайс, которым мы управляем, например печка или мотор. Для этого у нас есть управляющее устройство, например диммируемый тен или драйвер мотора. Управляющее устройство получает от регулятора управляющий сигнал, то есть конкретное число. Это может быть заполнение шим сигнала, от 0 до 255, а может быть угол поворота сервомашинки от 0 до 180, потому что регулятору без разницы чем управлять. В объекте управления у нас стоит датчик, с которого регулятор получает управляемую величину, то есть текущий сигнал с датчика. Это – обратная связь, которая и даёт возможность системе ирчно поддержать заданное значение. В случае с печкой это температура, а с мотором – частота оборотов. Ну и наконец регулятор получает установку (уставку), то есть число, к которому он должен привести текущее значение с датчика. Установка может задаваться каким угодно образом: крутилкой, ползунком, энкодером, кнопками, да хоть смской или голосовым вводом. Регулятору это неважно, для него это просто цифра. Задача регулятора состоит в том, чтобы сравнивать текущее значение с установкой и выдавать управляющий сигнал на управляющее устройство. То есть в программе это будет выглядеть условно так: регулятор получил установку, регулятор получил значение с датчика, регулятор выполнил вычисления и выдал нам управляющий сигнал, опять же число. Если это шим – мы его подаём через функцию генерации шим. Есть ещё один момент – регулятор должен делать расчёты и применять управляющий сигнал через равные промежутки времени, то есть с равным периодом или частотой. Эта частота называется частотой дискретизации системы, а период обозначается как dt, прямо как период интегрирования.

Под капотом у ПИД регулятора

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

Читайте также:  Частотные регуляторы работы насосов

kP, kI и kD это и есть те самые коэффициенты, которые нужно настроить для работы ПИДа. Значения тут могут быть самые разные, от 0.001 то десятков и тысяч, это зависит от конкретной системы. Тут есть ещё один момент: любой коэффициент может быть равен нулю, и в таком случае обнуляется вся его компонента. То есть регулятор можно превратить в П, ПИ, ПД, и прочие сочетания. Разные системы требуют разного подхода, именно поэтому ПИД регулятор такой универсальный.

В дальнейшем будем пользоваться следующими названиями переменных:

  • out – выход с регулятора (управляющий сигнал)
  • setpoint – установка (заданное значение)
  • input – вход (значение с датчика)
  • err – ошибка регулирования
  • dt – период вычисления и регулирования

P составляющая

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

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

P составляющая исправляет ошибку в текущий момент времени.

I составляющая

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

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

I составляющая исправляет прошлые, накопившиеся ошибки.

D составляющая

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

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

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

Настройка регулятора

Для настройки регулятора нужно варьировать коэффициенты:

  • При увеличении kP увеличивается скорость выхода на установленное значение, увеличивается управляющий сигнал. Чисто математически система не может прийти ровно к заданному значению, так как при приближении к установке П составляющая пропорционально уменьшается. При дальнейшем увеличении kP реальная система теряет устойчивость и начинаются колебания.
  • При увеличении kI растёт скорость компенсации накопившейся ошибки, что позволяет вывести систему точно к заданному значению с течением времени. Если система медленная, а kI слишком большой – интегральная сумма сильно вырастет и произойдёт перерегулирование, которое может иметь характер незатухающих колебаний с большим периодом. Поэтому интегральную сумму в алгоритме регулятора часто ограничивают, чтобы она не могла увеличиваться и уменьшаться до бесконечности.
  • При увеличении kD растёт стабильность системы, она не даёт системе меняться слишком быстро. В то же время kD может стать причиной неадекватного поведения системы и постоянных скачков управляющего сигнала, если значение с датчика шумит. На каждое резкое изменение сигнала с датчика Д составляющая будет реагировать изменением управляющего сигнала, поэтому сигнал с датчика нужно фильтровать (читай урок по фильтрам).

Вот так выглядит процесс стабилизации при изменении коэффициентов:

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

  • kP = 0.6 * kP1
  • kI = kP / T * 2 * dt
  • kD = kP * T / 8 / dt

Например, незатухающие колебания появились при kP 20, период колебаний составил 3 секунды. Период dt в системе будет 50 мс (0.05 с). Считаем:

  • kP: 0.6*20=12
  • kI: 12/3*2*0.05=0.4
  • kD: 12*2/8/0.05=60

На полученных коэффициентах должны более-менее работать большинство систем, но не все.

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

Реализация на C++

Соединяя все рассмотренные выше уравнения, получим:

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

Видео

Источник

Adblock
detector