Tính năng mới của Betaflight 3.5 - trunglp/PA-Readme GitHub Wiki

Giới thiệu Betaflight 3.5 :

  • Bổ sung mới “Feed Forward” của PID => ký hiệu là F
  • Cải tiến “Anti Gravity”
  • Thêm tùy chọn để tối ưu “Dynamic Notch filter”
  • Fix lỗi và tối ưu

Trong bài viết này sẽ đề cập đến những thay đổi sau:

  • Cải thiện về hiệu suất yaw
  • Cải thiện các mũi (nose up/down wobble) lắc lư khi thay đổi ga nhanh.
  • Cho phép tập trung chỉnh sửa tiếng ồn (noise)

Phiên bản betaflight thích hợp với ”Configurator 10.4” và ”Log Viewer 3.2 or higher

  • Nếu ở các version trước bạn muốn tùy chỉnh “D weight and transition” để cải tiến độ nhạy trên stick inputs. Trong version này bạn cần phải thay đổi giá trị “Feed Forward” và “Feed Forward Transition”
  • Giá trị mặc định của “Anti Gravity” là SMOOTH, và tham số này sẽ tốt hơn các phiên bản trước đó, nhưng nếu bạn không thích nó, bạn có thể quay trở lại với cách thức cũ
  • Bạn sẽ nhận được chức năng “dynamic notch” tốt hơn trước đây, Nhưng thực tế những cải thiện này đều cho một quad sạch, Các thiết lập thường được sửa đổi từ defaults.
  • cài đặt trọng số “D weight” , bao gồm các thay đổi thông qua OSD or Lua, sẽ bị bỏ qua.

Chào tạm biệt “D Setpoint Weight”

Xin chào tính năng mới “Feed Forward!”

Đây có lẽ là sự thay đổi lớn nhất trong những năm gần đây: Không có D Setpoint Weight.

Feed Forward bây giờ chiếm vai trò của trọng số điểm đặt D, và có thể được cấu hình độc lập cho mỗi trục (pitch, roll and yaw).

set f_pitch = 60  
set f_roll = 60
set f_yaw = 60
Allowed range: 0 - 2000

Giá trị mặc định là 60 cho FF có thể so sánh với giá trị mặc định trước đó là 3.4. **LƯU Ý: Cấu hình cài đặt D weight cũ của bạn sẽ bị mất, trong mỗi profile PID, khi updating từ các phiên bản trước.**

Cách tính Feed Forward giống như phương pháp D cũ,

FF = (D / 26) * D_Weight

trong đó D là giá trị PID ‘D’ , và D_Weight là giá trị thanh trượt => đơn vị (100 lần) hoặc gán chính xác giá trị dterm_setpoint_weight từ CLI.

Ví dụ, nếu D của bạn là 26, và trọng lượng D của bạn trượt là 1.0, => FF tương đương sẽ là 100.

Nếu D của bạn là 52, và “D weight” là 100 > FF là 200 trên mỗi trục. Yaw FF được bao phủ trên trục xuống. FF (52/26) * 100 = 200

Các hành vi của Feed Forward

Feed Forward cung cấp ‘dynamic stick boost’ or ‘dynamic stick responsiveness’. Nó đẩy quad nhanh hơn khi gậy được di chuyển một cách nhanh chóng. Với Feed Forward, các thanh càng được di chuyển càng nhanh thì lực đẩy càng lớn. Và nó không chờ đợi sẽ phản ứng nhanh tức thời.

Hiệu ứng Feed Forward bị suy yếu xung quanh centre sticks bởi thông số transition, vì vậy quad có thể giảm co giật xung quanh centre sticks bằng cách thiết lập transition thành 0.5 hoặc 0.1, nhưng để đua muốn phản ứng tức thời thì nên set transition ở mức 0.

Nếu set Feed Forward quá ít hoặc bằng 0 => sẽ làm quad không thể di chuyển ngay cả khi bạn ra lệnh nó bay nhanh chóng. Nhưng nếu set quá nhiều “Feed Forward” có thể làm cho quad bị co giật (twitchy), và có thể gây ra overshoot.

Mặc định giá trị FF = 60 => giá trị ‘mid-range’ .

Thông thường giá trị FF khoảng 100 là một một giá trị hợp lý cho một quad racing

Phản hồi của quad phụ thuộc vào “stick input” trên cả 2 giá trị P ​​và FF. nếu bạn muốn “stick input” phản ứng nhanh bằng việc = > tăng P hoặc FF. Nhưng việc tăng FF sẽ là một cách thay đổi tốt hơn tăng P => để đạt được sự phản ứng stick input

Feed Forward on Yaw

Phiên bản 3,5 yaw phản hồi và đáp ứng chính xác trên pitch and roll. Giá trị mặc định FF là 60 trên Yaw => Y/c FF phải trên 50 trên các quad

P không cần thiết phải lớn hơn 40-60 để đáp ứng tuyệt vời, trong thực tế nếu set giá trị P thấp sẽ làm giảm tiếng ồn, và nẩy lên trở lại (noise and bounce back) => trên trục yaw

Thực sự khi set yaw cao và nó hoạt động tốt trên hầu hết các quad, và kỳ lạ là nó làm giảm nẩy lên “bounce back”, khi kết hợp với yaw feed forward

Với những thay đổi đó, sự phản hồi của yaw là tốt, hoặc tốt hơn, so với pitch and roll,

Với Feed Forward và high I của yaw, “bounce back” giảm đáng kể , và không cần phải set iTerm_Relax trên các thiết lập này.

Kinh nghiệm set Yaw D. => mặc định không cần thiết set yaw D, có thể sử dụng trên tricopters.

Một quad điển hình:

set iterm_relax = RP
set p_yaw = 40
set i_yaw = 120
set d_yaw = 0
set f_yaw = 100

Smoother Anti_Gravity (chống trọng lực)

Quadcopters, đặc biệt là pin trên các thiết kế ở dưới đây, có xu hướng pitch mũi lên và xuống (nose up and down ) trong chuyến bay về phía trước khi ga được di chuyển lên và xuống một cách nhanh chóng.

Trước phiên bản 3.5, Anti_Gravity sử dụng phương pháp ‘tất cả hoặc không’. Mỗi lần có một giá trị ga mới đến, nếu bước thay đổi ga vượt quá giá trị ngưỡng(threshold), tôi đã nhân nó với lượng Anti_Gravity_Gain. Nhưng nếu bước tiếp theo chỉ nhỏ hơn ngưỡng (threshold), => không có gì xảy ra cả.

Bởi vì khoảng thời gian giữa các bước => RC thay đổi đáng kể từ radio đến radio, số lượng thay đổi ga mỗi bước có thể thay đổi rất nhiều. Do đó nó là một chút ngẩu nhiên cho hiệu ứng anti-gravity để làm việc hiệu quả or không.

Giá trị mặc định set anti_gravity_mode = SMOOTH mode => Nó sẽ tăng I theo tỷ lệ thuận với tỷ lệ thay đổi của ga. Không có các bước đột ngột và không có giá trị threshold phải lo lắng - threshold cũ bị bỏ qua.

Sức mạnh tổng thể được tính bằng cách thay đổi tăng hoặc giảm tham số anti_gravity_gain. Trước đó giá trị cũ được tính là điểm bắt đầu tốt (starting point), Khuyến khích mặc định là 5000.

Bạn cũng có thể sử dụng phương pháp cũ bằng cách set anti_gravity_mode = STEP.

Dynamic Notch Filter tuning

Dynamic Notch là một yếu tố quan trọng trong quản lý tiếng ồn (noise ) hiệu quả.

Phiên bản 3.5 cải thiện các thuật toán và cho phép điều chỉnh thông qua CLI., nhằm ít trì hoãn và kiểm soát tiếng ồn tốt hơn

Sử dụng các giá trị mặc định vẫn giữ nguyên hành vi cũ.

Tham số: dyn_notch_quality trong CLI là đặt “độ rộng” của bộ lọc notch => được phép di chuyển.

Giá trị cũ của dynamic notch Q và giá trị default hiện tại là 70

Điều này nhằm giúp hạn chế phạm vi chuyển động của dải băng thông, thường là từ 240 đến 300 Hz.

nếu set dyn_notch_quality = 5 nó sẽ mở băng thông lên đến khoảng từ 150 đến 600Hz. Điều này hoạt động thực sự tốt trên quads sạch với một đỉnh cao liên quan đến tốc độ động cơ được xác định chi phối mà chạy lên đến 600Hz.

dyn_notch_width_percent => đặt độ rộng của dynamic notch. Nếu được đặt thành 20, có nghĩa là điểm nhấn sẽ là +/- 20% ở tần số trung tâm. Nếu ta set tần số trung tâm = 300, thì một một góc rộng 20% sẽ bao phủ phạm vi từ 240 đến 360. (300 x 0.2 = 60)

Giá trị mặc định hiện tại là 50%, đó là khoảng độ rộng của bộ lọc động cũ. Giá trị này càng cao sẽ gây ra một notch rộng, dẫn đến việc gây ra nhiều chậm trễ

Trên một quad sạch ít noise => bạn có thể set giá trị này khoảng 20%

For medium clean quads, try:

set dyn_notch_quality = 15
set dyn_notch_width_percent = 30

For really clean quads, try:

set dyn_notch_quality = 5
set dyn_notch_width_percent = 20

To see what the centre frequency of the notch is doing on each axis in blackbox, and log raw gyro: Để biết được tần số trung tâm (centre frequenc) của notch đang hoạt động trên mỗi trục trong blackbox và log raw gyro:

set debug_mode = FFT_FREQ

Giới thiệu thêm về Feed Forward trong phiên bản 3.5

Phiên bản trước 3.5, giá trị Feed Forward được đưa vào cùng với D => và nó sẽ tăng lên bất cứ khi nào bạn thêm D.

Cách tiếp cận trọng lượng D cũ là không mong muốn vì những lý do sau:

Về mặt khái niệm, nó rất khó hiểu. Chúng tôi đã liên kết một yếu tố cải thiện khả năng phản ứng của thanh với một yếu tố được cho là làm giảm phản ứng. Có lý do chính đáng cho việc này, nhưng nó chắc chắn những điều phức tạp.

Trước đây, khi thêm D để điều chỉnh lắc lư sau khi đầu vào nhanh chóng dính, có một sự gia tăng đồng thời trong tỷ lệ lần lượt, vì vậy nó không thể ‘thêm nhiều D’. Bây giờ, khi thêm D nhiều hơn, tất cả những gì bạn nhận được là … nhiều D. Vì vậy, D có thể được điều chỉnh theo phương pháp cổ điển => thêm D để có thể điều khiển P (lắc lư) dễ dàng hơn nhiều.

Trước đây, bất kỳ thay đổi nào trong D sẽ thay đổi Feed Forward hoặc thanh phản ứng bạn nhận được. Bây giờ họ hoàn toàn độc lập.

Bây giờ chúng ta có thể vẽ các phần tử Feed Forward và D một cách độc lập trong nhật ký Blackbox, hiển thị chính xác những gì D làm, và bao nhiêu D và FF đóng góp, độc lập với pidSum. Điều này đơn giản hóa việc tuning.

Feed Forward yêu cầu bật chế độ làm mượt RC (RC smoothing to be enabled). Nếu không có làm mịn RC, Feed Forward sẽ tạo ra gai trong các dấu vết động cơ và để ngăn chặn điều này firmware sẽ vô hiệu hóa Feed Forward trên bất kỳ kênh nào không bị nhòe.

Vì vậy, mặc định đã được thay đổi để cho phép làm mịn trên tất cả các kênh (rc_interp_ch = RPYT).

⚠️ **GitHub.com Fallback** ⚠️