Коефіцієнт контролера позиції нульовий або від'ємний
Що пише ArduPilot:
- …_POSZ_P must be > 0
- …_VELZ_P must be > 0
- …_ACCZ_I must be > 0
- …_POSXY_P must be > 0
- …_D_VEL_P must be > 0
- …_D_ACC_P must be > 0
Тут пояснено ще: 4
- …_ACCZ_P must be > 0
- …_NE_POS_P must be > 0
- …_D_POS_P must be > 0
- …_D_ACC_I must be > 0
Перед армуванням ArduPilot перевіряє п'ять коефіцієнтів контролера позиції: PSC_POSXY_P, PSC_POSZ_P, PSC_VELZ_P, PSC_ACCZ_P і PSC_ACCZ_I. Кожен має бути більшим за нуль; з нулем коптер не зможе тримати місце чи висоту в режимах, які роблять це за вас (AltHold, Loiter, Auto). Повідомлення називає перший, що не такий, — «PreArm: Bad parameter: …».
Що робити: найімовірніше спершу
Коефіцієнт задали 0 вручну або ручкою тюнінгу.
ПеревіртеПодивіться коефіцієнт, названий у повідомленні.
ВиправтеЗнову задайте додатне значення. Чистий Copter має
PSC_POSXY_P1.0,PSC_POSZ_P1.0,PSC_VELZ_P5.0,PSC_ACCZ_P0.5 іPSC_ACCZ_I1.0.Коефіцієнти прийшли з файлом параметрів іншого апарата або записалися лише частково.
Перевірте«Порівняння й міграція параметрів» покаже, що відрізняється від вашого попереднього файлу.
ВиправтеЗавантажте власну резервну копію або наведені вище значення й налаштовуйте вже від них.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
PSC_POSXY_P | Position (horizontal) controller P gain |
PSC_POSZ_P | Position (vertical) controller P gain |
PSC_VELZ_P | Velocity (vertical) controller P gain |
PSC_ACCZ_P | Acceleration (vertical) controller P gain |
PSC_ACCZ_I | Acceleration (vertical) controller I gain |
Де це зробити:Налаштування й тюнінгПорівняння й міграція параметрів
Код, який це надсилає
…_POSZ_P must be > 0
libraries/AC_AttitudeControl/AC_PosControl.cpp AC_PosControl::pre_arm_checks() · Відкрити в ArduPilot Copter-4.6.3
…_VELZ_P must be > 0
libraries/AC_AttitudeControl/AC_PosControl.cpp AC_PosControl::pre_arm_checks() · Відкрити в ArduPilot Copter-4.6.3
…_ACCZ_I must be > 0
libraries/AC_AttitudeControl/AC_PosControl.cpp AC_PosControl::pre_arm_checks() · Відкрити в ArduPilot Copter-4.6.3
…_POSXY_P must be > 0
libraries/AC_AttitudeControl/AC_PosControl.cpp AC_PosControl::pre_arm_checks() · Відкрити в ArduPilot Copter-4.6.3
І ще 6 повідомлень, що надсилаються з тих самих місць.