Как да настроим BetaFlight-a да лети по-добре от всеки друг фърмуер.

Дискусия в 'Мултикоптери' започната от Rust, 3 Април 2018.

От Rust на 3 Април 2018 в 20:42
  1. Rust

    Rust Редовен Потребител

    Публикации:
    277
    от:
    София
    Смело заглавие нали? Вярвам, че няма да останете разочаровани! Надолу ще споделя най-доброто, което съм събрал от последните години :)
    Откакто BorisB зачезна, default настройките на betaflight-а са далеч от адекватни (освен ако все още не бутате някой zmr с 2204 мотори). Надолу ще споделя няколко "трикчета", които поне за мен дават много прилична разлика.

    1) Transition setpoints. Тези 2 слайдера са един от най-мощните уреди, с които разполага BetaFlight.
    [​IMG]
    Default настройките вкарват безумно голямо закъснение в реакцията на стиковете. За да преодолеем това:
    Горният слайдер отива на 1.00
    Долният в крайно ляво.
    Voila!

    2) Vbat Compensation = ON. Точно под слайдерите е и е изключен по default. Просто го включете. Това е множител към pid кондролера, който работи според това дали батерията ви е пълна или празна. Така няма да усещате коптера мек към края на батерията и освен това ще лети по същия начин от пълна до празна.

    3) Anti Gravity Gain на 3 (намира се точно под Vbat Compensation и слайдерите).
    Това е множител, който незнайно защо по default e 1. А всичко умножено по 1 е равно на.... същото :). Тоест дори да сте включили anti gravity, няма да се случи нищо, докато не промените този множител.
    [​IMG]
    Слагам го на 3, но може да експериментирате и с по-високи стойности. Това, което прави е при рязко подаване на газ, временно да умножава "I" от PID с цел носът на дрона да остане където е.

    4) PID (и най-вече D) от 30/35 на 20/25.
    [​IMG]
    Ако разполагаме с мощни мотори (леките перки също действат в тази посока), спокойно може да свалим D-тата. 30 и 35, които са по подразбиране ще дадат супер мазни завършеци на флиповете, но на цената на занижена прецизност в центъра на стика. Ако пък успеете да пренесете D-то в пръстите си (да завършвате флиповете плавно), ще можете да изстискате още по-добър резултат. 20/25 обикновено дава достатъчна разлика, за да усетите подобрение и в същото време да нямате претрисане след флип или увеличени осцилации в propwash. Всеки коптер е различен, затова може да експериментирате с вашият :)

    5) Филтрите. Тук е доста интересно, а в betaflight 3.4 ще стане още по-интересно, защото идват иновации!
    При филтрите досега е важало едно и също правило (и винаги ще важи). По-малко филтри = по-бърза реакция на моторите = по-малко осцилации в propwash
    Правило 1: ако можете да ползвате хардуерни филтри (гумени тампони, софт маунт на моторите, добра рамка, добри мотори и перки) - започнете от там!
    Правило 2: От тук насетне, търсете работещата комбинация с най-малко delay, т.е. най-малко софтуерно филтриране (съвсем без хич няма как, но почти винаги има коренна разлика след настройка).
    [​IMG]
    На тази снимка е "рецептата", която работи най-добре за мен. Важна забележка е, че DYNAMIC FILTER е включен при тези настройки. Най-голям ефект се усеща от смяната на D-Term Lowpass Filter от BIQUAD към PT1 (разликата в delay-a е двойна). Ако сте смели, може да изключите и DYNAMIC-a, но на този етап не съм сигурен дали си струва. За относително малка цена, DYNAMIC FILTER е МНОГО ефективен предпазител от изгорели мотори след отчупване на витло или яко крива перка.
    Ако опитвате тези настройки, проверявайте температурата на моторите след 20-30 секунди летене. Ако са горещи, трябва да включвате още филтри в следната поредност:
    - Dterm Notch
    - Gyro Notch 2
    - Gyro Notch 1
    - D-Term Lowpass Filter от PT1 към BIQUAD
    - намалявате стойността на Gyro Soft Lowpass Frequency (макар че ако сте стигнали чак до тук, просто е по-добре механично да намерите как да намалите вибрациите достигащи жирото ви).

    Ако използвате ICM жироскоп и сте го пуснали на 32Khz, трябва да включите още един филтър с висок cutoff (на ~700hz) под формата на stage2 филтър. Това е необходимо, защото в 32Khz режим, не е активен вграденият в самия жироскоп филтър, който има тази задача при режими до 8khz. Tова за момента се прави само през CLI, но по default го има в ButterFlight под формата на Fast Kalman filter на 711hz.

    6) 'Stick Low' Threshold. От 1050 на 1010.
    [​IMG]
    Намалява мъртвата зона в долната част на стика на газта. Ползвате по-голяма резолюция

    7) Arming. От 25 на 180.
    [​IMG]
    Позволява да арм-нете под всякакъв ъгъл. Полезно за сваляне от дърво :)

    Засега това е :)
     
    Последна промяна: 3 Април 2018
    zoSo, JetMan, DiavoloXP and 9 others like this.

Коментари

Дискусия в 'Мултикоптери' започната от Rust, 3 Април 2018.

    1. west_ice
      west_ice
      Браво тоше за положения труд! Темата е супер. Благодаря, че споделяш опита и наученото до момента с нас :)
    2. Airman
      Airman
      Уникално полезна статия!
    3. Rust
      Rust
      Ще се радвам да споделите дали тези трикчета работят и при вас, както и нови които сте открили :)
      west_ice and gibined like this.
    4. Rust
      Rust
      След 3 поредни обратни връзки за странно държане след опит за слагане на слайдерите по гореописания метод се оказа, че във версия 3.3.1+ има глич при преминаване на стика през центъра. Това е ако стойността на setpoint transition-a (долния слайдер) е 0.01. В 3.3.0 това е минималната стойност и всичко работи нормално, но за да нямате странности в следващите версии, трябва стойността да е 0 (вместо 0.01).
      Ако конфигураторът продължава да показва 0.01, колкото и наляво да дърпате:
      а) влизате в CLI и пишете "set setpoint_relax_ratio = 0" и после "save'
      b) дърпате го по-надясно и карате с една идея закъснение
      Altair and DiavoloXP like this.
    5. zoSo
      zoSo
      Браво, Тоше! Страхотна статия!
      Anti Gravity Gain (AGG) при мен е 2. Първо си настройвам I-компонента на ръка без да се съобразявам с "дърпането" на носа при много газ. Гледам коптера да не прави "дрифт" и да е достатъчно "твърд" (според моите претенции). След това слагам един коефициент 2 на AGG. Чрез експерименти съм установил, че ако AGG е по-голям от 4, значи не сте си настроили I-то правилно.
      Rust харесва това.
    6. Rust
      Rust
      I компенсира (акумулира се на база на предишни данни) колко Р не е достигнало, за да се компенсира грешката с по-малко цикли. С други думи, ако трябва да вдигаш I, може просто да не достига Р от самото начало. Като цяло, предвид че I е коригиращ компонент, който обаче се мени доста бавно, по-добре множителят му да не е много висок. Но дефолтните P и I са добри по дефолт. Може да искат малко корекция при по-бавно реагиращи мотори, но и тогава основно е нужда от по-високо D (то също увеличава или намалява Р, но се опитва да предскаже бъдещето и е много по-динамично). Но и с D-то е по-добре да не се прекакява, тъй като и то е коригиращ компонент. Освен това води до омекване на усещането около центъра на стика (намалява прецизността).
      Като цяло PID-то работи стегнато в много широк диапазон и дали го пипаш или не, раликата е миниатюрна. Просто хардуерът вече е много по-добър и реагира бързо. Затова и не съм го засягал особено в първия пост.
      Последна промяна: 9 Април 2018

Сподели Тази Страница