Od objawu do hipotezy#
Diagnostyka zaczyna się od dokładnego czasu, trybu, konfiguracji i warunków. „Dron zadrżał” trzeba zamienić na pytanie: czy setpoint zmienił się przed gyro, czy wyjście osiągnęło limit, czy napięcie spadło i czy estymator zgłosił błąd.
Minimalny zestaw sygnałów#
Loguj setpoint i pomiar każdej osi, składniki regulatora, wyjście przed i po mikserze, napięcie, prąd, RPM, stan estymatora, tryb i flagi failsafe. Wszystkie strumienie potrzebują wspólnej osi czasu.
Widmo drgań#
FFT pokazuje energię względem częstotliwości. Szczyt zmieniający się z throttle sugeruje napęd; stały może pochodzić od rezonansu ramy lub elektroniki. Aliasing może przenieść wysoką harmoniczną do niższego pasma. Przed filtrowaniem sprawdza się śmigło, łożysko, mocowanie i sztywność.
Setpoint kontra measurement#
Jeśli oscyluje setpoint, źródłem może być operator lub pętla zewnętrzna. Jeśli setpoint jest gładki, a gyro oscyluje, bada się pętlę rate i mechanikę. Jeśli PID żąda korekcji, lecz silnik osiągnął limit, problemem jest autorytet, nie samo strojenie.
Zasilanie#
Brownout rozpoznaje się przez reset reason, napięcie po przetwornicy i korelację z obciążeniem. Napięcie baterii logowane wolno może nie uchwycić mikrosekundowego zapadu FC. Potrzebny jest oscyloskop i punkt pomiarowy przy odbiorniku.
Crash analysis#
Nie zaczynaj od ostatniej próbki — może być już skutkiem uderzenia. Cofnij się do pierwszej trwałej niespójności. Zachowaj oryginalny log, firmware, parametry i zdjęcia. Rozdziel fakt („gyro X nasycił się o 12:14:03.220”) od interpretacji („prawdopodobne uderzenie śmigła”).
Procedura#
- Zabezpiecz dane bez konwersji.
- Zbuduj oś zdarzeń.
- Sprawdź zdrowie sensorów i zasilania.
- Porównaj żądanie, odpowiedź i ograniczenia.
- Utwórz konkurencyjne hipotezy.
- Zaprojektuj bezpieczny test rozróżniający.
Jedna zmiana na test jest wolniejsza operacyjnie, ale szybsza poznawczo.
Przypisy
- Sumit Sharma, „Drone Development from Concept to Flight” [książka]
- ArduPilot: Downloading and Analyzing Data Logs [dokumentacja]
- Betaflight: Blackbox logging internals [dokumentacja]