Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ПИД управление
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Alexander2013
Доброе время суток. Не знаю, в ту ветку пишу, или не в ту...
Не мог бы кто-нибудь поделиться алгоритмом ПИД-регулятора, объяснить "на пальцах" так сказать sm.gif
Задача - позиционирование.
Заранее спасибо.
Methane
Цитата(Alexander2013 @ Aug 1 2013, 13:56) *
Доброе время суток. Не знаю, в ту ветку пишу, или не в ту...
Не мог бы кто-нибудь поделиться алгоритмом ПИД-регулятора, объяснить "на пальцах" так сказать sm.gif
Задача - позиционирование.
Заранее спасибо.

http://en.wikipedia.org/wiki/PID_controller
Alexander2013
И в гугле был, и википедии тоже, если это обсуждалось на форуме неоднократно, то покажите, если несложно, где
Tanya
Цитата(Alexander2013 @ Aug 1 2013, 15:08) *
И в гугле был, и википедии тоже, если это обсуждалось на форуме неоднократно, то покажите, если несложно, где

Совсем непонятно, о чем же Вы спрашиваете?
На форуме работает поиск...
Alexander2013
Дело в том что с регуляторами не работал. Вообще.
Я конечно уловил суть что:

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

Если с пропорциональным звеном "размерность" понятна: заданию 100% будет соответствовать раность между максимальным желаемым и "0" к примеру, то с интегратором с "размерностью" у меня полная неясность.
Tanya
Цитата(Alexander2013 @ Aug 1 2013, 18:29) *
, то с интегратором с "размерностью" у меня полная неясность.

Размерность будет соответствовать... В этом случае - рассогласование, умноженное на время, для дифференциального звена - деленное.
Но две константы с размерностью "время" выправляют недоумение.
Alexander2013
Простите, не понял...
Палыч
Цитата(Alexander2013 @ Aug 1 2013, 18:52) *
Простите, не понял...

Речь идет о том, что коэффициенты, стоящие перед соответствующими слагаемыми имеют "размерность", приводящую каждое из слагаемых к требуемой "размерности".
Alexander2013
Спасибо за ответы, если не сложно, не могли бы пояснить на примере этого рисунка? (набросал в силу своего понимания)
Если Р в данной точке составляет 25%, то сколько % составляет I?
TSerg
Если Вам здесь все непонятно, то помочь пока нечем:

http://ru.wikipedia.org/wiki/%D0%9F%D0%98%...%82%D0%BE%D1%80

P.S.
Для систем позиционирования ПИД далеко не панацея, там полезнее многоконтурные САР.
Alexander2013
Я правильно понял что для интегратора в момент времени Т, к примеру, (рисунок) нужно умножать площадь S1 на 1/Т?
XVR
Цитата(Alexander2013 @ Aug 7 2013, 08:52) *
Я правильно понял что для интегратора в момент времени Т, к примеру, (рисунок) нужно умножать площадь S1 на 1/Т?
Нет, на 1/T ничего умножать не нужно. А вот про знак интеграла забывать не нужно - у вас S1-S3,S5 должны быть отрицательные, а S4 и S6 - положительные. Кроме того, нужно не забыть, что интегральная составляющая считается непрерывно, а не за отдельные интервалы времени. Например, в момент времени 100 ваша интегральная составляющая будет S1+S2+S3

Tanya
Цитата(XVR @ Aug 7 2013, 13:07) *
Нет, на 1/T ничего умножать не нужно.

А если график перерисовать - изменить по оси ординат минуты на секунды, дни... столетия?
Alexander2013
Да, да, конечно, про положительные и отрицательные площади понятно. Поясните пожалуйста здесь следующее, если не трудно:
1. В момент времени Т пропорциональная часть равна 70-50=20 (пусть это будут проценты %) S1 в размерности графика будет 3500 (у.е.). Понять не могу пока, как данные у.е. привести к процентам.


XVR: "у вас S1-S3,S5 должны быть отрицательные, а S4 и S6"
И да: почему не наооборот? S1-S3,S5+, S4 и S6"-?
XVR
Цитата(Tanya @ Aug 7 2013, 13:22) *
А если график перерисовать - изменить по оси ординат минуты на секунды, дни... столетия?
Изменится коэффициент перед И(интегральной) частью в ПИД формуле, но деление на текущее значение времени все равно не появится



Цитата(Alexander2013 @ Aug 7 2013, 13:42) *
Да, да, конечно, про положительные и отрицательные площади понятно. Поясните пожалуйста здесь следующее, если не трудно:
1. В момент времени Т пропорциональная часть равна 70-50=20 (пусть это будут проценты %) S1 в размерности графика будет 3500 (у.е.). Понять не могу пока, как данные у.е. привести к процентам.

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

- Kp, Ki, Kd. Подбирайте их так, что бы соответствующие части (П/И/Д) брались прямо в том виде, как они у вас вычисляются (в ваших уе).

Т.е. берете И часть в виде 3500 (из вашего примера). Если у вас изменятся масштабы времени (или единиц отсчета), и ваши 3500 уе превратятся в 350 уе (к примеру) - увеличите Ki в 10 раз


Цитата(Alexander2013 @ Aug 7 2013, 13:42) *
XVR: "у вас S1-S3,S5 должны быть отрицательные, а S4 и S6"
И да: почему не наооборот? S1-S3,S5+, S4 и S6"-?
Это зависит от того, что у вас на графике. Вы должны интегрировать разницу между требуемым значением на выходе и измеренным. В диапазоне S1 (и пр) у вас измеренное значение меньше требуемого, так что разница положительна, и ее интеграл тоже положителен. Так что вы правы - должно быть наоборот - S1-S3,S5+, S4 и S6-

Alexander2013
То есть получается что к моим 20% на проп. звене, интегральная часть будет подгоняться коэффициентом? То есть эта величина по сути безразмерная?
Слесарь
может стоит попробовать решить задачу без ПИД ?
Я недавно завершил отладку алгоритма управления мощностью коллекторного электродвигателя СМА, так там есть только пропорциональный метод, и то, только в качестве вспомогательного метода, не основного.
Для желающих высказаться - крутить мотор СМА - как раз плюнуть, аргументы не принимаются, скорее всего вы просто не пробовали.
Считаю что ПИД не всегда единственно правильное решение. Например в случае эл. двигателя СМА, по моему ПИД регулятор вообще не применим.
Alexander2013
Запросто, и я думаю вероятность этого у меня будет существенной. Если не трудно, поделитесь алгоритмом.

Но в данный момент меня очень сильно занимает вопрос: как провести инт. часть (3500) к размерности "проценты задания", аналогично как в проп. части: 20% в момент времени Т.

Заранее благодарен.
Слесарь
Цитата(Alexander2013 @ Aug 7 2013, 13:07) *
Запросто, и я думаю вероятность этого у меня будет существенной. Если не трудно, поделитесь алгоритмом.

Там белье хаотичным образом может не только тормозит барабан, но и подгонять, в зависимости от нижнего или верхнего положения. Нагрузка может изменяться в зависимости от погруженности барабана в воду. Плюс, большая инертность системы. Еще необходимо поддерживать частоту вращения на уровне 1/60 (20 об/мин) от максимальной (1200 об/мин) частоты вращения, практически на грани остановок электромотора. Причем регулятор должен обеспечивать весь диапазон регулирования.

Там у меня три метода: Расчет средней мощности за один...два оборота барабана. Пропорциональная коррекция мощности относительно средней мощности каждые 1/13 части от одного оборота барабана. При достижении 100 об/мин, когда инертность системы сводит на нет необходимость первых методов, регулирование производится методом подбора уровня мощности в зависимости от заданной частоты вращения простым инкрементом/декрементом значения PWM раз в секунду в зависимости от недостатка или превышения реальной частоты вращения от установленной.
Alexander2013
Спасибо, буду раздумывать над разными методами.


И все-таки повторю вопрос по интегратору.
Как привести инт. часть (3500) к размерности "проценты задания", аналогично как в проп. части: 20% в момент времени Т?
Tanya
Цитата(Alexander2013 @ Aug 7 2013, 15:40) *
Как привести инт. часть (3500) к размерности "проценты задания", аналогично как в проп. части: 20% в момент времени Т?

Поделить на постоянную времени интегрирования.
XVR
Цитата(Alexander2013 @ Aug 7 2013, 15:40) *
И все-таки повторю вопрос по интегратору.
Как привести инт. часть (3500) к размерности "проценты задания", аналогично как в проп. части: 20% в момент времени Т?
В ПИД регуляторе надо настраивать все 3 коэффициента. И их значения зависят от регулируемой системы. Посмотрите тут например

Alexander2013
Спасибо всем Вам.

Я сейчас задам вопрос, от которого вам наверное будет очень смешно, только прошу, не надо отправлять в гугл и википедию ph34r.gif , прошу, не надо sm.gif

Вопрос: что такое постоянная времени интегрирования, и как ее рассчитать?
Tanya
Цитата(Alexander2013 @ Aug 9 2013, 19:37) *
, не надо отправлять в гугл и википедию ph34r.gif , прошу, не надо sm.gif

Отчего же не послать, если надо?
Ведь иначе последует вопрос о постоянной времени дифференцирования и о коэффициенте пропорциональности.
Их иногда определяют экспериментально. И это даже кое-где уже написано.
Alexander2013
Да, последует.
Про эксперементальное определение я наслышан, ФИЗИЧЕСКИЙ смысл постоянных времени интегрирования и дифференцирования бы увидеть. На примере моего корявого графика в идеале.
Мартин
Им разве еще пользуются?
Alexander2013
Можете предложить что-то более эффективное?

На самом деле, почитал, побегал по темам, в целом с чего начинать уяснил. Сейчас просто сижу, жду железо для экспериментов. Поэтому вопросов пока не задаю sm.gif
kan35
Постоянная времени интегрирования это время между отсчетами. То время, так которое сигнал меняется не значительно. Как то так...
Вообще говоря столкнулся с ПИД этим летом и понял, что не для всех процессов он годен.
ПИД работает там, где природа объекта всегда одинакова. Если природа меняется, то все идет к черту. У меня был пресс, который сжимал различные поглатители. На один настроил, с другим перестал работать и наоборот. В итоге решили проблему совсем с другой стороны.
Скажите с чем вы боретесь.
Tarbal
Своими словами:

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

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


Интегральная часть. Вот наша система подошла к идеальной позиции близко, но не совсем точно. Например ошибка ниже разрешения нашего измерителя. Значит надо накопить ошибку за много измерений и подправить в момент, когда сумма станет заметна нашей системе.
Alexander2013
Цитата(kan35 @ Sep 22 2013, 23:36) *
На один настроил, с другим перестал работать и наоборот. В итоге решили проблему совсем с другой стороны.
Скажите с чем вы боретесь.


Борюсь со следующим: есть исполнительное устройство (гидроцилиндр), это исполнительное устройство (шток г/ц разумеется) необходимо подвести к объекту, который постоянно "ускользает", управление г/ц - пропорциональное. Повторяемости, сразу скажу, нет. Объект может "ускользать" медленно, быстро, на миллиметр, на сантиметр, совершенно хаотично.
Многие советуют вообще решать вопрос при помощи позиционного управления, с разбивкой по зонам с разными скоростями.
Не могу пока ничего сказать, железа нету, пробовать пока не на чем sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.