Усовершенствование прошивки ESC от SimonK.

Как-то давно, при постройке нового мультикоптера с более эффективной ВМГ и, на тот момент, новыми для меня регуляторами, столкнулся со странным его поведением в воздухе. На том же самом полетном контроллере никак не удавалось заставить аппарат летать стабильно, при любых более менее резких маневрах он весьма заметно раскачивался. Не сильно, но визуально очень неприятно, особенно после весьма стабильных предыдущих построек. Долго копал настройки полетника, перепробовал все возможные варианты - ничего не помогало. Вывод оставался один - искать проблему в том, что изменилось больше всего. Это были новые, ранее не применявшиеся, регуляторы с SimonK прошивкой, вроде Афро 20А и новая ВМГ. Теория была такая - если вмг не достаточно быстро реагирует на команды полетника, то в случаях резких изменений газа могут появляться осцилляции, что в общем соотвествовало имеющейся проблеме. Тут были возможны два варианта - не корректный выбор вмг либо чтото с регулятором. Поскольку менять моторы и пропеллеры было весьма затратно, решил покопаться в прошивке регуляторов, благо исходники были доступны. После некоторого ознакомления, был найден следующий участок в коде:

; Calculate a hopefully sane duty cycle limit from this timing,
; to prevent excessive current if high duty is requested when the
; current duty is low. This is the best we can do without a current
; sensor. The actual current will depend on motor KV and voltage,
; so this is just an approximation.

В переводе означает примерно следующее: “в этом участке кода рассчитывается предположительно разумная ширина выходного сигнала на моторы, чтобы избежать высоких переходных токов при резкой подаче газа на регуляторы. Это самое лучшее что мы можем сделать без датчика тока. Конкретный ток будет зависеть от КВ моторов и напряжения, тоесть это только некоторое приближенное вычисление”

Это навело меня на мысль, а не ограничивает ли регулятор газ на мотор по какой то собственной схеме, хоть и из добрых побуждений, но препятствуя быстрому отклику на подачу газа? После некоторых экспериментов с кодом и проверки в полете был просто поражен - раскачка коптера заметно уменьшилась. Стало ясно, куда копать, решил исключить эти манипуляции с газом вообще. Результат оказался просто отличным - колебания при резких маневрах ушли практически совсем. Этой модифицированой прошивкой успешно пользуюсь безо всяких нареканий уже в течение пары лет на разработанном в то же время собственном регуляторе:

Поэтому решил выложить в общий доступ, несмотря на повальное увлечение блхели, может кому и пригодится.
Модифицированый исходник SimonK лежит у меня на гите:
github.com/softsr/tgy

Там же, в папке Firmware лежат готовые прошивки для различных регуляторов. Если у кого есть желание или необходимость попробовать - всегда пожалуйста. Прошу только отписаться в комментах о результатах.

В завершение, хотел напомнить о необходимости внимательного обращения с регуляторми при прошивке и настройке, настоятельно рекомендую регулятор для этого подключать через предохранительную лампочку в цепи питания - если чтото пойдет не так при прошивке, по крайней мере электроника сможет выжить. Кроме того, внесенные мною изменения в прошивку делают реакцию на сигнал газа резче, что, при определенных условиях, например особенностях схемотехники регуляторов (очень рекомендую использовать регуляторы с полноценными драйверами ключей и большой емкостью на входе питания), конструкции моторов и размере пропеллеров, может привести к срывам вращения мотора. Тоесть прежде чем поднимать в воздух с новой прошивкой - хорошенько протестировать на земле, резко погазовав моторами с пропеллерами в ручном режиме.

Ну и на последок, естественно мои изменения сделаны с целью улучшить поведение ВМГ, но гарантировать, что станет лучше я не могу. Все изменения производятся на свой страх и риск.

  • 1798
Comments
kamisama

прошил регули (hk-ss20a) на трикоптере. без пропов включил, всё вертится, работает как надо. спасибо!

стал ставить винты на место и обнаружил небольшую погнутость вала хвостового мотора. похоже наследие одной из жестких посадок.так как запасных моторов нет, полноценные испытания отложил до ремонта двигателя.