mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-03 13:48:54 +08:00
78 lines
6.7 KiB
Markdown
78 lines
6.7 KiB
Markdown
# Compass Power Compensation
|
|
|
|
Компаси (магнітометри) повинні бути встановлені якнайдалі від кабелів, які переносять великі струми, оскільки вони створюють магнітні поля, які можуть вплинути на показання компасу.
|
|
|
|
Ця тема пояснює, як компенсувати виниклі магнітні поля у випадках, коли переміщення компасу нереалістичне.
|
|
|
|
:::tip
|
|
Переміщення компасу подалі від кабелів, що переносять потужність, є найпростішим і найефективнішим способом вирішення цієї проблеми, оскільки сила магнітних полів зменшується квадратично з відстані від кабелю.
|
|
:::
|
|
|
|
:::info
|
|
Процес продемонстрований для багатороторного вертольота, але є так само ефективним для інших типів транспортних засобів.
|
|
:::
|
|
|
|
## Коли застосовна компенсація потужності?
|
|
|
|
Виконання компенсації потужності рекомендується лише у випадку, якщо виконуються всі наступні умови:
|
|
|
|
1. Компас не може бути віддалений від кабелів, які переносять потужність.
|
|
|
|
2. Існує сильна кореляція між показаннями компасу та встановленим значенням тяги та/або поточним зарядом батареї.
|
|
|
|

|
|
|
|
3. Кабелі дрона всі закріплені на місці / не рухаються (розраховані параметри компенсації будуть недійсними, якщо кабелі, які переносять струм, можуть рухатися).
|
|
|
|
## Як компенсувати компас
|
|
|
|
1. Переконайтеся, що ваш дрон працює на версії прошивки, що підтримує компенсацію потужності (поточний майстер або версії від v.1.11.0).
|
|
|
|
2. Виконайте [стандартну калібрування компасу](../config/compass.md#compass-calibration).
|
|
|
|
3. Встановіть параметр [SDLOG_MODE](../advanced_config/parameter_reference.md#SDLOG_MODE) на 2, щоб увімкнути журналювання даних після завантаження.
|
|
|
|
4. Встановіть прапорець параметра [SDLOG_PROFILE](../advanced_config/parameter_reference.md#SDLOG_PROFILE) для _Порівняння датчиків_ (біт 6), щоб отримати більше точок даних.
|
|
|
|
5. Закріпіть дрон таким чином, щоб він не міг рухатися, та прикріпіть пропелери (щоб двигуни могли витягувати такий самий струм, як у повітрі).
|
|
У цьому прикладі транспортний засіб закріплюється за допомогою ременів.
|
|
|
|

|
|
|
|
6. Увімкніть живлення транспортного засобу та переключіться у режим польоту [ACRO](../flight_modes_mc/acro.md) (використання цього режиму забезпечує, що транспортний засіб не намагатиметься компенсувати рух, що виникає від ременів).
|
|
|
|
- Збройте транспортний засіб і повільно підніміть оберти двигунів до максимуму.
|
|
- Повільно знизьте швидкість обертання двигунів до нуля.
|
|
- Звільнити автомобіль
|
|
|
|
Проведіть тест обережно і уважно моніторте вібрації.
|
|
|
|
:::
|
|
|
|
7. Отримайте ulog та скористайтеся Python-скриптом [mag_compensation.py](https://github.com/PX4/PX4-Autopilot/blob/main/src/modules/sensors/vehicle_magnetometer/mag_compensation/python/mag_compensation.py), щоб ідентифікувати параметри компенсації.
|
|
|
|
```sh
|
|
python mag_compensation.py ~/path/to/log/logfile.ulg <type> [--instance <number>]
|
|
```
|
|
|
|
де:
|
|
|
|
- `<type>`: `current` or `thrust` (power signal used for compensation)
|
|
- `--instance <number>` (optional): The number is `0` (default) or `1`, the instance of the current or thrust signal to use.
|
|
|
|
Якщо ваш журнал не містить вимірювань поточного заряду батареї, вам потрібно закоментувати відповідні рядки у Python-скрипті, щоб він робив розрахунок тільки для тяги.
|
|
|
|
:::
|
|
|
|
8. Скрипт поверне ідентифікацію параметрів для тяги, а також для поточного і виведе їх у консоль.
|
|
Цифри, які з'являються зі скрипту, показують "якість підгонки" для кожного екземпляру компасу, а також те, як виглядатиме дані після компенсації за запропонованими значеннями.
|
|
Якщо є вимірювання струму, використання компенсації поточного звичайно дає кращі результати.
|
|
Ось приклад журналу, де відповідність струму добра, але параметри тяги непридатні, оскільки відношення не є лінійним.
|
|
|
|

|
|
|
|
9. Після ідентифікації параметрів, компенсацію потужності потрібно ввімкнути, встановивши [CAL_MAG_COMP_TYP](../advanced_config/parameter_reference.md#CAL_MAG_COMP_TYP) на значення 1 (при використанні параметрів тяги) або 2 (при використанні параметрів струму).
|
|
Додатково, параметри компенсації для кожної вісі кожного компасу повинні бути встановлені.
|
|
|
|

|