Перейти к содержимому
Betaflight | В чём разница между min_check, min_command, min_throttle и вводом стиков (stick inputs)?

Betaflight | В чём разница между min_check, min_command, min_throttle и вводом стиков (stick inputs)?

Технику БПЛА
Воскресенье, 10 августа 2025

От MasterZap

min_check не имеет никакого отношения к ESC (электронным регуляторам скорости)...

min_command — это значение, которое отправляется, когда квадрокоптер отключён (или когда включён и активирована остановка двигателей, то есть когда мы хотим, чтобы моторы не вращались). min_throttle — это значение, которое отправляется, когда квадрокоптер включён (и остановка двигателей отключена).

min_check относится к командам стиков и влияет только на положение стика газа. Он не оказывает никакого влияния на сигнал, отправляемый на ESC.

Недопонимание возникает из-за того, что стик газа «начинает работать» только при значениях выше min_check. Люди пытаются объяснить это фразами вроде: «Полётный контроллер переназначает min_check в min_throttle», что, хотя и верно, вводит в заблуждение, будто между этими параметрами существует прямая связь. Такой связи нет. Просто полётный контроллер учитывает только диапазон от min_check до максимального газа и переназначает этот диапазон в диапазон 0%-100% для внутренней обработки, после чего отправляет на двигатели то, что необходимо.

От waltr

В общем случае (для всех каналов) min_check и max_check используются только для команд со стиков. На канале газа min_check используется в исходном коде для процедуры включения (арминга) и в ПИД-регуляторе, и зависит от других настроек (pid_at_min_throttle, AirMode и т.д.).

mid_rc  указывает полётному контроллеру, какое значение соответствует центру стика — обычно это 1500, но может быть и 1520 на некоторых пультах. mid_rc на канале газа не используется .

Значение по умолчанию max_throttle 1850 пришло из прошивки MultiWii и является безопасным максимальным значением для всех ESC. (Отображено в исходном коде в файле config.h MW2.3)

/******************** Motor maxthrottle ***************/
/_ this is the maximum value for the ESCs at full power, this value can be increased up to 2000 _/
#define MAXTHROTTLE 1850

 

DEADBAND (мертвая зона) устраняет отклонения в центре стиков (на всех каналах, кроме канала газа), чтобы исключить дрожание стиков и неточность возврата к значению 1500. И только это. Не используйте этот термин в других контекстах.

Ознакомление с MultiWii WIKI и даже с исходным кодом MultiWii в файле config.h поможет лучше понять назначение этих параметров. Ссылка есть в FAQ «Начало работы / getting started» в Wiki Betaflight.

В Betaflight значения конечных точек стиков задаются с помощью команды rxrange (неизвестно, в каких версиях она появилась, но её не было в первоначальном портировании кода MultiWii в Betaflight):

rxrange
rxrange 0 1000 2000
rxrange 1 1000 2000
rxrange 2 1000 2000
rxrange 3 1000 2000
    

Эти значения можно подстраивать под конкретную радиоаппаратуру, а также их можно использовать для инвертирования направления стика, поменяв местами значения краев диапазона. Например:

rxrange 0 2000 1000 — инвертирует стик крена.

Прошивка полётного контроллера использует mid_rc и эти значения для вычисления сигнала стика, передаваемого в ПИД-регулятор. max_check при этом не используется.

Если канал не достигает этих крайних значений, полётный контроллер просто не будет видеть полный ход стика — либо с одной стороны, либо с обеих. Именно поэтому документации MultiWii и  Betaflight рекомендуют настраивать конечные точки стиков радио на стандартные значения. Вторая причина — обеспечение превышения порогов min_check и max_check, чтобы команды стиков корректно работали.

Ещё одно объяснение от Joshua Bardwell:

Максимальные и минимальные значения каналов определяются командой rxrange. По умолчанию они равны 1000 и 2000. Параметры max_check и min_check используются для определения того момента, когда вы перестаете управлять дроном и используете стики для ввода какой либо команды.

Вот ключевой момент:

Как вы выключите двигатели (disarm) квадрокоптера, если активен yaw (рыскание)?

Вам пришлось бы сделать полное отклонение стика, и коптер начал бы безумно вращаться вокруг своей оси yaw. Чтобы решить эту проблему, когда газ (throttle) ниже min_check, и когда используется арминг стиком (в отличие от арминга переключателем), ввод рыскания (yaw input) отключается. Если вы используете motor_stop, моторы также останавливаются, когда газ ниже min_check.

Иногда это поведение называют “мертвой зоной” в нижней части хода стика газа. Многие называют это “Deadband” (это вызывает путаницу с настройками DEADBAND стиков в CLI (интерфейсе командной строки), поэтому предпочтительнее использовать термин “DEADZONE”).

Можно заметить, что нет необходимости в подобном отключении входов (inputs) в верхней части диапазона газа, потому что при полете мы никогда не вводим стиками команды, требующие этой верхней части диапазона. Единственная команда стиком, которая вводится во время полета, - это выключение двигателей, и для этого нужны низкий газ (throttle) и низкий yaw. В нижней части диапазона газа есть мертвая зона (ниже min_check), которой нет ни в какой верхней части диапазона каналов.

Видео от Joshua Bardwell:

Betaflight | В чём разница между min_check, min_command, min_throttle и вводом стиков (stick inputs)? ID 57