FPV миникоптеры на 250х рамах (ZMR, Blackout, QAV250 и т.п.)

Viktor_Kraikov
Maxim_Droy:

Это, по-моему, самая простая инструкция по настройке пид, которую я видел I потом тоже до осциляций и уменьшить?

D это дереватив или производная от P, без P не бывает D. Если P равно нулю, D тоже равна нулю, физически в прошивке Бориса если посмотреть код D считается как три разницы между первым и последующим замером и в коде это называется дельта, в мозг подается ( в коде прошивке) три дельты деленных на три, то есть если первый замер показал 2 второй 4 третий 6 то в мозг идет 2+4+6 деленная на три. Теперь смысл того что я написал выше, когда вы отрегулировали P и далее D, D вносит свой плюс в суммарный PID. Если вы посмотрите Блекбокс там выводится эта кривая, получается когда вы сначала выводите на предельные значения P потом добавляете D, суммарная составляющая может превысить предельно допустимое значение, поэтому вы повторно проверяете и подстраиваете P, задача I загнать затухающую ошибку в допустимые границы, за время Te, это одна из составляющих того что делает Борисю Так понятней ? И это чуть вбок, Борис применил в своем коде программную хитрость, он вернулся к старому контроллеру PI который работает быстро и надежно, параметр D в его прошивке вступает в работу только когда вы тронули стик.
Вот картинка которую одобрил автор прошивки это картинка суть его прошивки

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

Maxim_Droy
Viktor_Kraikov:

Так понятней ?

Ого. Спасибо за старания, но мой вопрос был скорее “остроумной шуткой”, чем серьезным, потому что изначальный вопрос про пиды спросил не я 😃
Хотя должен признать, что в большом количестве инструкций рекомендуют настраивать I после P, а D - в последнюю очередь. Так что полезной информацией вы точно поделились.

100xanoff
Viktor_Kraikov:

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

Что такой предельно допустимое значение, откуда оно взялось? До какого момента подстраивать P ?

Maxim_Droy
100xanoff:

Что такой предельно допустимое значение, откуда оно взялось?

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

Viktor_Kraikov
100xanoff:

Что такой предельно допустимое значение, откуда оно взялось? До какого момента подстраивать P ?

Поднимаете P до появления осциляций, это и есть предельное значение, далее как у русского богатыря у вас три дороги 😃
Первая, это уменьшить чуть чуть чтобы прекратились осцилляции, Вторая это умножить то что увидите у вас получилось в cleanflight на 0,7 и оставить ( это совет от IBCrazy для плавного пилотирования) или от Бориса устанавливаете значения 0,5 - 0,55, это для резких полетов и резких маневров.

100xanoff
Viktor_Kraikov:

Поднимаете P до появления осциляций, это и есть предельное значение, далее как у русского богатыря у вас три дороги 😃
Первая, это уменьшить чуть чуть чтобы прекратились осцилляции, Вторая это умножить то что увидите у вас получилось в cleanflight на 0,7 и оставить ( это совет от IBCrazy для плавного пилотирования) или от Бориса устанавливаете значения 0,5 - 0,55, это для резких полетов и резких маневров.

Как я понял про умножение речь только о P, I и D умножать не нужно.
Также остался мой вопрос что считать осциляциями? Несколько затухающих качков (которые можно только на слух определить) или продолжительные колебания?

Viktor_Kraikov

Давайте я еще проясню просто о D. Задача D одна, замерять крутизну P. Без P D не бывает. Представьте себе что вы поднимаетесь в гору, задача определить сколько высоты вы наберете за 1 минуту. Если это 2 метра склон пологий, если 20м крутой. Это работа D другой нет. При крутом подъеме P параметр D тоже задирается потому что дельта с положительным знаком и чем круче поднимается P, тем больше положительная дельта и она принимает участие в суммарном PID, она ( дельта) может быть с минусом и помогает суммарному PID резче падать ( что есть хорошо ), сам он ( D ) ничего не делает, он только стучить мозгу как себя ведет P чтобы контроллер принимал решение. Жизненный пример это как указка которую вы держите в руке и ее нужно опустить вниз на 60 градусов, тут все понятно и легко, а если это кувалда ? Вот D это параметр который сам ничего не делает, но дает мозгу понять что маневр очень быстрый и мозг понимает что остановить вращение нужно левые движки на стоп, а правые на максимал или ноге будет больно или маневр будет с ошибкой. Отсюда понятно почему так важно уменьшить loop, чем чаще замер, тем мозгу понятнее картина, иначе он увидит как вы начали подъем в гору и второе это вы уже внизу, он даже не узнает что вы поднимались, дошли до вершины , а потом опускались.

100xanoff:

Также остался мой вопрос что считать осциляциями? Несколько затухающих качков (которые можно только на слух определить) или продолжительные колебания?

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

И еще, я уже писал, цифры которые вы заносите в cleanflight это предельные значения выше которых мозг считает это ошибкой, поднимите высоко, позволите P изменятся в больших амплитудах - осциляции… Задача P тоже чтобы было понятно, это противодействовать возмущение, проще это как пнуть ошибку к осевой нулевой линии, если сильно, то перелетит и снова вернется ( вы же разрешили большие значения) идеально когда при подсказке D мяч возвращается ближе к осевой, далее работа I

Maxim_Droy
Viktor_Kraikov:

обнулите D и I

Кстати, а здесь вы что понимали под “обнулите”? Прям по нулям? Или к исходным значениям cleanflight?

100xanoff
Viktor_Kraikov:

Давайте я еще проясню просто о D. Задача D одна, замерять крутизну P. Без P D не бывает. Представьте себе что вы поднимаетесь в гору, задача определить сколько высоты вы наберете за 1 минуту. Если это 2 метра склон пологий, если 20м крутой. Это работа D другой нет. При крутом подъеме P параметр D тоже задирается потому что дельта с положительным знаком и чем круче поднимается P, тем больше положительная дельта и она принимает участие в суммарном PID, она ( дельта) может быть с минусом и помогает суммарному PID резче падать ( что есть хорошо ), сам он ( D ) ничего не делает, он только стучить мозгу как себя ведет P чтобы контроллер принимал решение. Жизненный пример это как указка которую вы держите в руке и ее нужно опустить вниз на 60 градусов, тут все понятно и легко, а если это кувалда ? Вот D это параметр который сам ничего не делает, но дает мозгу понять что маневр очень быстрый и мозг понимает что остановить вращение нужно левые движки на стоп, а правые на максимал или ноге будет больно или маневр будет с ошибкой. Отсюда понятно почему так важно уменьшить loop, чем чаще замер, тем мозгу понятнее картина, иначе он увидит как вы начали подъем в гору и второе это вы уже внизу, он даже не узнает что вы поднимались, дошли до вершины , а потом опускались.

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

И еще, я уже писал, цифры которые вы заносите в cleanflight это предельные значения выше которых мозг считает это ошибкой, поднимите высоко, позволите P изменятся в больших амплитудах - осциляции… Задача P тоже чтобы было понятно, это противодействовать возмущение, проще это как пнуть ошибку к осевой нулевой линии, если сильно, то перелетит и снова вернется ( вы же разрешили большие значения) идеально когда при подсказке D мяч возвращается ближе к осевой, далее работа I

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

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

Maxim_Droy:

Кстати, а здесь вы что понимали под “обнулите”? Прям по нулям? Или к исходным значениям cleanflight?

Я по нулям ставлю, вполне летабельно получается )

Maxim_Droy
100xanoff:

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

Я считаю вам и так много расписали с учетом того, что в интернете уже доступно большое количество статей на эту тему. Вряд ли они будут сильно отходить от правды, лишь с поправкой на PID Controller. На эту тему понравилась статья: blog.oscarliang.net/pid-controller-0-1-2-cleanflig… Ну, и тема с RCG: www.rcgroups.com/forums/showthread.php?t=2385407

100xanoff:

Я по нулям ставлю, вполне летабельно получается )

Не пробывал никогда. Надо попробовать 😃

Евжентий
Amatii:

Женя а мотор выжил после такого горения регулятора? И кобры не вы перематывали?

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

maloii
Amatii:

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

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

CrazyCoder
maloii:

У RG20 может что то новенькое

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

skydiver
maloii:

Вон кисы оказывается горели от резонанса на 200 с лишним герц карбоновой рамы.

Что то мне говорит что это лишь коммерческая отмазка…

Евжентий
CrazyCoder:

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

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

WhiteWind

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

Jade_Penetrate

Насчет поисковых пищалок - пришел к выводу что наиболее эффективным вариантом является отдельный громкий буззер, коммутируемый переключателем (ищется по запросу rc switch или ваяется на любом мелком микроконтроллере + транзистор). Главное, при покупке буззера смотреть на его габариты, вес у них небольшой, но дуру типа такой разместить в раме непросто.

Viktor_Kraikov
100xanoff:

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

Сейчас делают прошивки которые требуют наименьшего вмешательства в процесс настроек. Могу “народным языком” 😃 добавить что избыток P это крупные осцилляции, I мелкие, D видно как отскок, то есть крутите бочку ( ролл ) остановка и как будто о батут ударились, отскок в дугую сторону, это признак понизить D. Конечно упрощенно но я обещал понятно…

PS И в защиту Джоша который анализирует логи, мол плохо летает, он как услышал Тигромуха полностью перебирает свой коптер и пишет что да, летаю плохо. Но я в жизни не встречал Работников Объективного контроля ( это те кто анализирует тестерограмму черных ящиков настоящих самолетов ) которые умели бы летать, их основная задача не уметь летать, а находить ошибки и стучать командиру на летчика…

100xanoff

Вот сейчас настраиваю D и осциляции появляются только при значении 200, и это не отскок а мелкая дрож. При этом P вышла в значение 5