ПИД регулирование | Arduino | Теория (максимально просто) | Часть 1

  Рет қаралды 33,373

Мои полеты

Мои полеты

5 жыл бұрын

Просто про ПИД регулирование.
Библиотека ПИД регулятора:
github.com/br3ttb/Arduino-PID...
Исправленный мной вариант:
my-files.ru/tjdwhp
Качественное объяснение без привязки к Arduino
• О PID регуляторе прост...
Еще одна качественная иллюстрация настройки ПИД
ru.m.wikipedia.org/wiki/Файл:...
Правильная и простоая настройка ПИД регулятора
we.easyelectronics.ru/Theory/p...
Вторая часть
• ПИД регулирование | Ar...
Третья часть (сравнение нагревателей)
• ПИД регулирование | Са...
Четвертая часть (сравнение нагревателей - продолжение):
• ПИД регулирование | Са...
Пятая часть (про контроллер P410):
• ПИД регулирование | Са...

Пікірлер: 52
@Ivan14144
@Ivan14144 5 жыл бұрын
Спасибо! Первое полноценное видео, которое нашел на эту тему, все по полочкам.
@dmitrycheh8993
@dmitrycheh8993 5 жыл бұрын
Большое спасибо за вашу работу. Понимание работы PID для себя прокачал многократно после просмотра.
@user-hh7kw8ns1l
@user-hh7kw8ns1l 5 жыл бұрын
Как прекрасно что есть люди которые чему-то учатся и включают мозг)
@David-xl1rb
@David-xl1rb 5 жыл бұрын
Спасибо.Реально спасибо.8 лекций я не мог понять что к чему. У вас для объяснения понадобилось 25 +15(это видео профессора)= 40 минут.Это круто.
@user-hh7kw8ns1l
@user-hh7kw8ns1l 5 жыл бұрын
Очень доступно и без лишнего!!!
@user-li7jl4jj8d
@user-li7jl4jj8d 3 жыл бұрын
Миллион лайков автору ролика, все ясно! Спасибо за труд
@AlexeyRS
@AlexeyRS 3 жыл бұрын
Спасибо за видео, действительно всё просто и понятно разъяснили.
@user-ju5gw7sg1f
@user-ju5gw7sg1f 5 жыл бұрын
Наглядный пример настройки ПИД: ru.m.wikipedia.org/wiki/Файл:PID_Compensation_Animated.gif
@Freza095
@Freza095 2 жыл бұрын
Спасибо. Красавчег
@aidarjakan6668
@aidarjakan6668 5 жыл бұрын
👍красавчик вооще. Столько мутора в инете, а тут с одного материала понятно все. Только TP время оно в секундах делится на KP или милисекунды?
@user-ju5gw7sg1f
@user-ju5gw7sg1f 5 жыл бұрын
зависит от процесса, обычно в секундах
@avazart614
@avazart614 4 жыл бұрын
У Вас ошибка. Если учитываете время в дифференциальной составляющей, то почему игнорируете время в интегральной ? По всей логике должно быть iTerm += ki*error * timeChange Авторы библиотеки вероятно исходят из того что временные промежутки timeChange всегда одинаковые т.е. контроллер всегда делает замеры стабильно с одним и тем же интервалом.И тогда по идее можно "время" не учитывать(но это не точно). Естественно это зависит от случая, контроллер может быть занят другими вычислениями,вводом пользователя, опросом датчиков итп и тогда будет большая погрешность при расчетах PID. Возможно я ошибаюсь, но этот момент первое что бросается глаза при просмотре ролика.
@amfsv
@amfsv Жыл бұрын
Здравствуйте! Скажите пожалуйста, как с вам можно связаться? Хотелось бы обратится к вам за помощью/консультацией по пайке. BGA flash. Очень понравилась ваша технология! 👍
@kjlas8
@kjlas8 2 жыл бұрын
Странно как-то. Нас учили что дифференциальная составляющая нужна для уменьшения времени выхода на заданное значение. А устранение погрешности пропорционального регулятора осуществляется интегральной частью. Собственно дифференциальную часть часто не используют вовсе на вялых процессах или чтобы не вносить перерегулирование или нестабильность.
@user-ud3lh1bu6m
@user-ud3lh1bu6m 4 жыл бұрын
На ночь хорошо слушать - уснул на третьей минуте.
@user-hf6iv9rs6x
@user-hf6iv9rs6x 5 жыл бұрын
Автору ролика: Спасибо за знакомство с системой ПИД регуляторов. У меня вопрос по поводу автоматического контроля температуры в доме. С нагревом воды в какой-то автономной ёмкости, например в титане, процесс хоть и не так простой, но вполне понятный, а как быть с поддержанием температуры в доме, где подразумевается высокая инерционность системы отопления, а также и пагубное воздействие таких возмущающих факторов, как температура наружного воздуха, влажность и скорость ветра, которые существенно влияют на теплопотери дома. Далее: с электрическим котлом вроде понятно, что можно управлять его мощностью с высокой точностью и в широком диапазоне - от 0 до максимальной мощности. А как быть с газовым котлом, который не позволяет в широких пределах изменять мощность, когда возникают проблемы с воспламенением газа при малой подаче газа и самопроизвольных гашением пламени при возмущениях от сквозняка. Тут я предполагаю ступенчатое регулирование подачи газа: 50%, 75% и 100%. В режиме поддержания температуры - использование горелки фитиля и периодическое включение 50% подачи газа на основные горелки, что, наверное, можно рассматривать, как ШИМ-регулировние. В зависимости от ошибки будет меняться соотношение времени открытого и закрытого состояния клапана. Но вот как с ПИД регулятором победить воздействие от возмущений внешних климатических воздействий? Неужели надо будет делать какие-то таблицы для коэффициентов, зависящих от погоды? Не рассматривали ли подобную систему с самообучением, которая бы сама эти таблицы создавала и использовала бы их впоследствии?
@user-ju5gw7sg1f
@user-ju5gw7sg1f 5 жыл бұрын
---------------автоматического контроля температуры в доме это делают не на ПИД регуляторах, а на контроллерах (в состав которых, уже входят, в том числе и ПИД регуляторы). Писать тут лекцию, по данному поводу, я точно не буду, все написано до меня, например тут: termogorod.ru/stati/upravlenie-kotlom-otopleniya
@alexandrb.2737
@alexandrb.2737 4 жыл бұрын
Спасибо за видео . У меня есть один вопрос . Там где вы вычисляете дифференциальную составляющую строчка "double dinput =(error-lasterror )/timechange ;" нужно ли делить разность ошибок на прошедшее время если время между вычислениями всегда постоянно ?
@user-ju5gw7sg1f
@user-ju5gw7sg1f 4 жыл бұрын
можно не делить, но тогда придется пропорционально увеличивать коэффициент этой составляющей ))
@alexandrb.2737
@alexandrb.2737 4 жыл бұрын
@@user-ju5gw7sg1f , пропорционально чему? То есть по идее timechange величина постоянная и в коде ее можно представить как константу или вообще исключить и отрегулировать звено лишь коэффициентом . Или в вашем коде timechange всегда будет меняться ?
@user-ju5gw7sg1f
@user-ju5gw7sg1f 4 жыл бұрын
------пропорционально чему? величине этого коэффициента, то есть если мы делим на 500 то естественно можно домножить на 500 с обоих сторон равенства исключив делитель
@alexandrb.2737
@alexandrb.2737 4 жыл бұрын
@@user-ju5gw7sg1f , скажите timechange у вас меняется или все же она постоянна ? спасибо что уделяете время моим вопросам .
@user-ju5gw7sg1f
@user-ju5gw7sg1f 4 жыл бұрын
исходники библиотеки открыты-же timeChange = (now - lastTime); соответственно timeChange зависит от времени вызова, в скетче (моем) это 250 мс (если не считать скорости других операций, правда этим можно пренебречь) и да, 250 можно превратить в константу в библиотеке (PID_v1m), но при этом, если потребуются изменения скорости реакции (например, при смене MAX6675 на что-то еще или еще по каким причинам) придется опять править библиотеку, обычно так никто не делает ...
@user-lo6or9xq8q
@user-lo6or9xq8q 5 жыл бұрын
А как можно использовать эту библиотеку как бы дважды для регулирования отдельных 2-х двигателей с энкодерами.
@user-lo6or9xq8q
@user-lo6or9xq8q 5 жыл бұрын
Все , нашел ответ во второй части , 2 лайка за оба видео...
@varenik_varenik
@varenik_varenik 5 жыл бұрын
Неплохо! Почему не на STM32, к примеру?
@user-ju5gw7sg1f
@user-ju5gw7sg1f 5 жыл бұрын
а зачем мне его "мощь", да и ардуинок завалялось несколько, нужно из них хоть что-то полезное сделать...
@vovanikotin
@vovanikotin 4 жыл бұрын
@@user-ju5gw7sg1f а зачем в ардуино использовать double. 8битные атмелы не могут обрабатывать 8байтные double. Только 4 байтные float.
@khatuntsovmikhail6223
@khatuntsovmikhail6223 3 жыл бұрын
лучше объяснение которое я слышал. как вы будите бороться с помехами?
@user-ju5gw7sg1f
@user-ju5gw7sg1f 3 жыл бұрын
хороший вопрос, можно сразу начинать писать диссертацию ))) уменьшите предметную область плиз
@Divaniy_Pilot_EKB
@Divaniy_Pilot_EKB 5 жыл бұрын
Приветствую! Я собираю оверхед на базе игровых контроллеров (джойстиков) и столкнулся с рядом граблей. Может автор сможет ответить на эти вопросов. Я не знаю, но рискну.
@user-ju5gw7sg1f
@user-ju5gw7sg1f 5 жыл бұрын
привет, и в чем вопросы?
@Divaniy_Pilot_EKB
@Divaniy_Pilot_EKB 5 жыл бұрын
К примеру такой вопрос. Я делаю оверхед 748 SSG. Там всё классно в том плане что я захожу в настройки управления и по нему есть целый раздел по назначению кнопок, но. В том же флайт фактор или джар такого раздела нет. Вот как заставить появиться связь между контроллером и самой моделью самолёта. Это первый вопрос. Второй. Я как то смотрел ролик по Орто4ХР и в 10 ХР всё супер работало, всё получилось. Правда пришлось из папки бин не на прямую запускать экзешник, а из архива (вынь десятая), но после перехода на 11 плейн сама прога тупо встает на просчёте меша. В самом симе в Global Scenery две папки X-Plane 11 Demo Areas и X-Plane 11 Global Scenery. Каких я уже только танцев с бубном не исполнял, но к сожалению дальше меша у меня не сдвинулось ничего с мёртвой точки. Что делать и как быть? Заранее благодарен.
@user-ju5gw7sg1f
@user-ju5gw7sg1f 5 жыл бұрын
-----------------В том же флайт фактор или джар такого раздела нет. так это вопрос к разработчикам модели, если они не дали доступа к "чему-то", то до этого "чего-то" недостучаться никак... (например я -бы с удовольствием сделал заполнение автопилота Felis 154, но не смогу этого сделать, поскольку контент защищен...) ----------------Орто4ХР это смотрел? (там 2 части) kzbin.info/www/bejne/b17LYqh4rLqLipo
@Divaniy_Pilot_EKB
@Divaniy_Pilot_EKB 5 жыл бұрын
@@user-ju5gw7sg1f да, его и смотрел. Сделал все точно так же как и в ролике. В десятом все работало, в 11 тормозит процесс на просчете меша. До оверлея даже не доходит.
@user-ju5gw7sg1f
@user-ju5gw7sg1f 5 жыл бұрын
не, тогда не знаю, процесс там конечно не быстрый, но все, если мне память не изменяет, работало стабильно
@vasyapupkin911
@vasyapupkin911 5 жыл бұрын
Уважаемый помогите пожалуйста с одной проблемой, как изменять коэф пида в процессе выполнения кода.... Тобишь коэф ПИДа выставляется в скетче, а мне надо чтоб его можно было менять во время работы ардуинки??? *HELP PLEASE*
@user-ju5gw7sg1f
@user-ju5gw7sg1f 5 жыл бұрын
никогда не пробовал, попробуй тут спросить: forum.amperka.ru/threads/%D0%98%D0%9A-%D0%BF%D0%B0%D1%8F%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D1%8F-%D0%BD%D0%B0-arduino-mega-2560-%D0%94%D0%BE%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D1%81%D0%BA%D0%B5%D1%82%D1%87%D0%B0-ars_v2_lilium_jsn.10176/page-110
@vasyapupkin911
@vasyapupkin911 5 жыл бұрын
@@user-ju5gw7sg1fСпасибо большое, уже разобрался два дня не мог найти даже гугл не помог)) Оказалось всё просто, в исходниках в файле PID_v1.h есть строчка *SetTunings(double, double,double,);* писал её где только можно не получалось оказывается надо было myPID.SetTunings(double, double,double,) как то так))
@user-qy5mu3xi6t
@user-qy5mu3xi6t 5 жыл бұрын
Интегральная составляющая зависит от времени рассогласования, а здесь она ни чем не отличается от пропорциональной составляющей
@demyanrudenko
@demyanrudenko 3 жыл бұрын
8:11 так почему не пушнуть такой вариант в сам гитхаб ? Автор посмотрит, подумает, возможно вы обсудите, и кто бы ни оказался не прав, все вокруг будут в выигрыше.
@unrealivanov6468
@unrealivanov6468 3 жыл бұрын
8:39 мы с 30 выходим на 50 град. значит ошибка 20, это поняно 8:59 30? не понятно , откуда взялось 30? из целевой температуры вычли ошибку? 9:24 исходная температура уже 20 град.? 10:12 говорите про текущую температуру (наверно с датчика), а обводите ошибку
@user-ju5gw7sg1f
@user-ju5gw7sg1f 3 жыл бұрын
--------------30? не понятно , откуда взялось 30? в начальный момент времени lastError = 30 (т.к. 30 это стартовая величина от 0)
@unrealivanov6468
@unrealivanov6468 3 жыл бұрын
@@user-ju5gw7sg1f по моему, в начальный момент времени величина lastError должна быть равна 0, иначе получается из 20 надо 30 вычитать?
@user-tq6nf4ce8k
@user-tq6nf4ce8k Жыл бұрын
Про самолёт ни чего не понял
@serhioramires3166
@serhioramires3166 2 жыл бұрын
На коде зря объясняете это ясности не добавляет.
THEY WANTED TO TAKE ALL HIS GOODIES 🍫🥤🍟😂
00:17
OKUNJATA
Рет қаралды 3,1 МЛН
FOOTBALL WITH PLAY BUTTONS ▶️❤️ #roadto100million
00:20
Celine Dept
Рет қаралды 36 МЛН
Climbing to 18M Subscribers 🎉
00:32
Matt Larose
Рет қаралды 35 МЛН
Уроки Ардуино. ПИД регулятор
28:57
Заметки Ардуинщика
Рет қаралды 455 М.
ПИД регулятор
30:35
Andrey Frolov
Рет қаралды 6 М.
Произношение режет ухо: что выдает в вашем акценте русского | Нескучный английский
21:29
skibidi toilet multiverse Special Episode 03
4:03
DOM Studio
Рет қаралды 4,4 МЛН
FUN&SUN | Update 0.29.0 Trailer | Standoff 2
2:32
Standoff 2
Рет қаралды 1,5 МЛН