Betaflight 4.2

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

Для начала по руководству от Оскара я перепрошил свои ESC на версии с поддержкой RPM фильтрации. Прошивка для Blheli_S — https://github.com/JazzMaverick/BLHeli/tree/JazzMaverick-patch-1/BLHeli_S%20SiLabs

Настроил по его же методике.

Under Dynamic Notch Filter:

Leave Filter Range at Medium, but if motors are cool you can try changing it to LOW
Change Width Percent to 0 (setting this to zero will remove one of the two dynamic filters and decrease latency)
Q factor to 200 or even 250 – for a narrower filter
Set Min frequency to 90 as there is less high frequency noise now thanks to RPM filter, and we want to focus on lower frequency

Для полноты картины ниже  даны рекомендации с сайта разработки.

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

Filter settings picture

описание  параметры в CLI

стартовые значения

 delays of about 3.5ms at idle and 1.1ms on full throttle:

set gyro_lowpass_type = PT1
set gyro_lowpass_hz = 200
set dyn_lpf_gyro_min_hz = 200
set dyn_lpf_gyro_max_hz = 500
set gyro_lowpass2_type = PT1
set gyro_lowpass2_hz = 250

set dterm_lowpass_type = PT1
set dterm_lowpass_hz = 100
set dyn_lpf_dterm_min_hz = 70
set dyn_lpf_dterm_max_hz = 170
set dterm_lowpass2_type = PT1
set dterm_lowpass2_hz = 150

delays to 2.3ms at idle and 0.9ms on full throttle:

set gyro_lowpass_type = PT1
set gyro_lowpass_hz = 300
set dyn_lpf_gyro_min_hz = 300
set dyn_lpf_gyro_max_hz = 900
set gyro_lowpass2_type = PT1
set gyro_lowpass2_hz = 350

set dterm_lowpass_type = PT1
set dterm_lowpass_hz = 150
set dyn_lpf_dterm_min_hz = 100
set dyn_lpf_dterm_max_hz = 250
set dterm_lowpass2_type = PT1
set dterm_lowpass2_hz = 200

только для чистых рам.

total latency is 1.7ms at idle and 0.65ms on full throttle:

set gyro_lowpass_hz = 400
set dyn_lpf_gyro_max_hz = 1000
set dyn_lpf_gyro_min_hz = 400
set gyro_lowpass2_type = PT1
set gyro_lowpass2_hz = 500

set dterm_lowpass_type = PT1
set dterm_lowpass_hz = 200
set dyn_lpf_dterm_max_hz = 340
set dyn_lpf_dterm_min_hz = 140
set dterm_lowpass2_type = PT1
set dterm_lowpass2_hz = 300

dynamic notch run between 90 to about 330hz with a narrow single notch: dynamic notch range from 180 to about 550hz with a narrow single notch
set dyn_notch_range = LOW
set dyn_notch_width_percent = 0
set dyn_notch_q = 200
set dyn_notch_min_hz = 90
set dyn_notch_range = MEDIUM
set dyn_notch_width_percent = 0
set dyn_notch_q = 200
set dyn_notch_min_hz = 180

После настройки о облета, моторы остаются  в норме, можно приступать к настройке  PID. Можно действовать по старинке-   по каждой оси смотреть поведение,  и по одному параметру менять через OSD или LUA или же  на компьютере. Или же можно использовать систему слайдеров. В целом подход похожий- поменял- полетал.  Рекомендации по настройке 4.2 версии на сайте

ProRace (aggressive feed forward, requires a really clean RC signal or might jitter from RC steps and get hot motors) set iterm_relax_cutoff = 35
set rc_smoothing_auto_smoothness = 5
set ff_interpolate_sp = ON
set ff_smooth_factor = 20
set ff_spike_limit = 70
set feedforward_transition = 0
set yaw_lowpass_hz = 100
set throttle_boost = 7
set throttle_boost_cutoff = 25
set dyn_lpf_dterm_curve_expo = 7
set gyro_rpm_notch_q = 600
Race/Fast Freestyle (strong feed forward, tolerates a typical RC signal, very responsive) set iterm_relax_cutoff = 30
set rc_smoothing_auto_smoothness = 7
set ff_interpolate_sp = AVERAGED_2
set ff_smooth_factor = 0
set ff_spike_limit = 60
set feedforward_transition = 0
set yaw_lowpass_hz = 100
set throttle_boost = 7
set throttle_boost_cutoff = 25
set dyn_lpf_dterm_curve_expo = 7
set gyro_rpm_notch_q = 700
HD (smoothed FF for HD cameras, strong low turn rate smoothness, low iterm relax to minimise bounce back) set iterm_relax_cutoff = 10
set rc_smoothing_auto_smoothness = 20
set ff_interpolate_sp = AVERAGED_3
set ff_smooth_factor = 40
set ff_spike_limit = 55
set feedforward_transition = 40
set yaw_lowpass_hz = 60
set throttle_boost = 5
set throttle_boost_cutoff = 10
set dyn_lpf_dterm_curve_expo = 7
set gyro_rpm_notch_q = 800
Cinematic (For slow rate turns only, may feel a bit ‘dull’ otherwise) set iterm_relax_cutoff = 5
set rc_smoothing_auto_smoothness = 40
set ff_interpolate_sp = AVERAGED_4
set ff_smooth_factor = 50
set ff_spike_limit = 50
set feedforward_transition = 50
set yaw_lowpass_hz = 30
set throttle_boost = 2
set throttle_boost_cutoff = 10
set dyn_lpf_dterm_curve_expo = 8
set gyro_rpm_notch_q = 900
set iterm_windup = 75
Return to defaults (zero values mean ‘off’) set iterm_relax_cutoff_hz = 15
set rc_smoothing_auto_smoothness = 10
set ff_interpolate_sp = AVERAGED_2
set ff_smooth_factor = 37
set ff_spike_limit = 60
set feedforward_transition = 0
set yaw_lowpass_hz = 0
set throttle_boost = 0
set throttle_boost_cutoff = 15
set dyn_lpf_dterm_curve_expo = 0
set gyro_rpm_notch_q = 500

Дополнительные параметры:

set dyn_lpf_dterm_curve_expo = 6
set vbat_sag_compensation = 100
set vbat_pid_gain = OFF
set rc_smoothing_type = FILTER
set rc_smoothing_input_hz = 0
set rc_smoothing_derivative_hz = 0
set rc_smoothing_input_type = BIQUAD
set rc_smoothing_derivative_type = PT1
set rc_smoothing_auto_smoothness = 10

Дополнительно ознакомился с параметром Dynamic Idle. Решил попробовать

The ideal setting for idle_min_rpm is a bit less less than the RPM as shown in the motors tab at idle. If your idle was 5%, you’d set the motor to 1050 in motors tab, and check the RPM there. If it was, say 2,200 rpm, then you might use 20 as your idle_min_rpm.

A value of 20 corresponds to 2,000 RPM and is a reasonable starting value for most quads.

Smaller quads rev faster, and a higher idle_min_rpm value, eg 25, may be more appropriate for a 2.5″. Similarly, larger quads can operate with lower idle_min_rpm values, e.g. 14 may be more appropriate for 7″ quads with larger motors.

set dshot_idle_value = 800
set idle_min_rpm = 22

Rooster 6 Puda 240 Thor
     
set dshot_idle_value = 
set idle_min_rpm = 
set dshot_idle_value = 
set idle_min_rpm = 
set dshot_idle_value = 
set idle_min_rpm = 
Разместить:
  • Facebook
  • Twitter
  • LiveJournal
  • Одноклассники
  • RSS
  • Добавить ВКонтакте заметку об этой странице
  • В закладки Google