Требование к ESC коптеров

Решил сделать запись, чтобы самому не забыть. Может понадобится кому в будущем при разработке рега для коптеров и прошивки к нему, раз вопрос поднимался.

  1. протокол связи с полетником – PWM или что-то типа Dshot150. Требование – точность передачи данных и помехозащищенность. Обоснование: основным потребителем работы рега-полетника является ВМГ, а для этой «черепашки» все, что быстрее PWM490 уже становится без разницы (см. п.3). С бесполезным увеличением скорости передачи данных падает помехозащищенность из-за увеличения частоты передачи данных, а также возникают лишние проблемы с программированием, с затратой времени на решение задач, которое можно пустить на другое что-то полезное. Также уход от PWM сужает рынок использования.
  2. количество шагов газа. 2000 для цифровых стандартов и 4000 для аналоговых. Мощные полетные контроллеры в будущем будут иметь более совершенные прошивки с большими возможностями. Им потребуется плавность и точность управления ВМГ. 2000 шагов позволит закрыть такие потребности в управлении. Т.к. аналоговый протокол обладает погрешностью измерения сигнала со стороны рега, то 4000 в ПВМ позволит закрыть вопрос по погрешности.
  3. скорость работы рега для ВМГ. Набор оборотов. Время реакции рега на изменение управляющего сигнала около 10 мс. Можно 1-4 мс, но ни один рег на сегодня не достигает этого значения и пока не понятно надо ли, хотя по идее как раз это время должно стремиться к 1 мкс для быстрых регов. Время набора 90% оборотов 80 мс (0,08 сек), 95% - 0,1 сек, 100% - 0,15 (0,2) сек. Сброс оборотов. Время реакции рега на изменение управляющего сигнала около 2-3 мс. Время сброса 90% оборотов 100-140 мс (0,1-0,14 сек), 100% - 0,15-0,25 сек. Надо учитывать, что не все ВМГ сумеют выдержать или поддержать такие требования. Чтобы соблюсти такое время придется подбирать винт под мотор (или наоборот). Сокращать еще время набора/сброса скорее всего нецелесообразно, т.к. начнутся злые шутки момента инерции винта.
  4. тайминг. Этот параметр должен быть автоматический для обеспечения оптимального режима работы мотора во всем диапазоне оборотов. Для реализации требуются критерии оценки оптимальности.
    На минимальных оборотах тайминг должен быть около 0, на максимальных - соответствующим. Связано это с перемагничиванием статорного железа. На перемагничивание и связанного с этим повышением тока (моментально ток в катушке подняться не может) требуется время. На минимальных оборотах это время незаметно при переключении фазы, поэтому тайминг не требуется. А на максимальных оборотах это уже становится ощутимая потеря мощности, поэтому перемагничивать требуется заранее.
  5. удержание оборотов. Признаком классности рега можно считать и этот параметр, т.е. способность удерживать обороты в очень узком диапазоне (почти постоянными). У современных регов скорее всего виновата обратная связь, вернее сам ее принцип. Все теории основываются на обратной ЭДС свободной фазы, хотя при этом никто не говорит, что в треугольнике нет свободной фазы в априори, все фазы постоянно под напряжением, что как бы не вяжется с теорией. Т.е. сигналы разные, а обратная связь работает одинаково. Это вызывает подозрение, а значит есть над чем работать. Возможно, стоит заменить на что-то новое.
  6. датчик оборотов. Хоть двигатели на данном этапе и ушли от датчиков положения ротора, но применение датчика оборотов позволит получить доп информацию о работе мотора. Причем достаточно 1 датчика, а не 3. Можно использовать как ту же обратную связь для удержания оборотов. Очень хорошо его использовать как средство оперативной диагностики рега и мотора, как перед полетом, так и во время полетов. К примеру, можно делать проверочный тест перед полетом. Для этого в полетнике должен быть тест моторов всех сразу с измерением оборотов. Достаточно дать примерно 50% газа и если при этом кто-то из моторов завалился, значит начала выходить из строя пара рег-мотор. Причем сразу будет понятно, кто и не потребуется переставлять, чтоб выявить виновника.
  7. обратная связь рега с полетником. Для передачи оборотов, температуры, напряжения на ПК с последующей передачей по ОСД (при необходимости) и применением элементов диагностики.
  8. настройка тормоза (к сбросу оборотов отношения не имеет). Должен быть выбираемый параметр. 0 – без тормоза, 1 – торможение только при остановке, 2 – торможение при остановке и стоянке. Т.е. чтобы каждый пользователь мог выбирать сам, что ему надо. Регулировка силы торможения, типа закорачивания 3-х или 2-х фаз большого смысла не имеет.
  9. вес и размер. Снижение веса и размера как тенденция общего снижения веса коптера. Достигается за счет применения современных компонентов малых размеров без дублирования ключей (хотя бы для токов до 100А). На сегодня корпуса 3х3 мм, в будущем возможно однокорпусные чипы силовых ключей сразу на 3 фазы. Ну, или другие варианты совмещения.
  10. тепловыделение. Низкое тепловыделение, как силовых ключей, так и остальных компонентов повышает надежность регов, а также позволит их использовать в закрытом объеме. Решается схемотехникой, подбором компонентов ну и самой прошивкой. Возможно потребуется введение доп настроек.
  11. экономичность. Как и на тепловыделение сказываются компоненты и прошивка. Возможно стоит перейти от ШИМ на имитацию синусоиды или чего-то подобного.
  12. частота ШИМ. Одна частота ШИМ на все моторы это роскошь, которая впустую тратит энергию. Поэтому она должна выбираться под разные кВ.
  13. защиты. Электронные защиты для коптерных регов скорее приносят больше вреда и представляют больше угрозу безопасности, т.к. душат рег по своим критериям, в то время как рег должен работать. Куда полезнее защита на уровне схемотехники, применяемых компонентов и предупреждений. Допустима единственная защита по температуре, но прежде должно быть предупреждение в полетнике. Возможно применение элементов диагностики по напряжению, но не тока. В токе большого смысла нет, а затраты большие. Мерить ток на резисторе затратно по энергии, а с помощью ОУ место, вес, деньги.
  14. звук. Длинная мелодия при калибровке это больше для меломанов. Тут больше уместен вопрос – нам летать или слушать музыку. По первости может и приятно, а когда надо быстро уже раздражает. Регулировка громкости калибровки/включения. Звук по времени после отключения мотора нужен для поиска пропавшего коптера. Регулировка громкости и времени простоя.

По возможности минимальное количество настроек.

  • 1669
Comments
alexeykozin

приветствую, логично сразу записать еще и условия тестов. моторы, пропы, напруга, типы регулей время идет и все меняется

arb

Спасибо за мысли, но пока наверное подумаю, что еще дописать.
В принципе условия тестов описаны в других дневниках, а здесь как-бы памятка о том, что не вошло в остальные.

arb
alexeykozin;bt154883

приветствую, логично сразу записать еще и условия тестов. моторы, пропы, напруга, типы регулей время идет и все меняется

Малость подумал. Описаны предельные условия для рега переходить которые технически неоправдано. При этом если ВМГ не догоняет, то ничего страшного, отработает как может. А вот если рег не может выполнить такие условия, то мотор будет работать только на условиях рега.

INFERION

Прокомментирую “сложность” требований:

  1. количество шагов газа. 2000 для цифровых стандартов и 4000 для аналоговых.

Прикинем: 48МГц/1мс=48000 тактов измеряющего таймера за 1мс. Ну, я сторонник 16-ти битных разрешений, так что не вижу смысла даже в самом дешевом МК, типа STM32F0 делать меньше 48000 шагов. Кроме того - ошибки измерений вносят шум, а шум - друг передискретизации. 48000 - это разрешение одного единственного измерения, а т.к. ВМГ усредняет целую пачку - разрешение без проблем повышается на порядки. Я считаю этот момент полностью закрытым ввиду неактуальности гоняться за сверхразрешениями - обычный МК может обеспечить разрешение, сопоставимое с аудио. Вопрос остаётся только в готовой реализации…

  1. Время реакции рега на изменение управляющего сигнала около 10 мс.

Сигнал без особых жертв можно обрабатывать и на частоте где-то порядка 10кГц, что равно 0…100мкс после приёма заднего фронта импульса. Как бы на 2 нолика быстрее (при желании и на все 3), к чему и рекомендую стремиться (не забывая о помехозащищённости)… Другое дело, что сигнал управления весьма эстонский, и длится аж 2мс, плюс минимально необходимая пауза. Это частота дискретизации никак не выше 500Гц. На практике, на мой взгляд, это просто в притык для нормальной работы следящих систем.

Время набора 90% оборотов 80 мс (0,08 сек), 95% - 0,1 сек, 100% - 0,15 (0,2) сек.

Есть такая штука, как постоянная времени [сюда подсовываем название параметра]. От рега тут мало что зависит - есть сила, с которой мотор раскручивает статор с винтом, и есть инерция, которая этому сопротивляется. Регулятор может:
1. Ничего не предпринимать и просто выдать заказанное значение, подождав пока именно мотор раскрутит именно свою массу с винтом. И у параметра этого имеется только одна характерная циферка, описывающая всю кривую - постоянная времени. Время, за которое он изменит своё состояние на 63.2% от конечного установившегося результата. На 95% он выйдет за 3 таких интервала. Поэтому все эти кривульки можно численно описать этим параметром, что очень удобно. Мотор тем быстрее раскрутится, чем легче его винт со статором, и чем мощнее привод. Регулятор тут вообще никаким местом, если только он искусственно не занижает этот процесс.
2. Вариант куда интереснее - активная компенсация этой постоянной времени. В регуляторе сигнал управления можно пропустить через программный “RC-фильтр”, построенный таким образом, чтоб давать зеркальную передаточную характеристику. У RC-фильтра точно такая же переходная характеристика, а его постоянную времени регуль может вычислить по разгонной характеристике мотора. В результате, пока хватает мощности батареи - любые задержки ВМГ полностью исключаются. Микродинамика будет безупречной, но при сильных сигналах результат фильтра будет упираться в потолок по питанию и мотор дальше уже только своими силами… Кроме того - такое управление будет передавать сильную реактивную нагрузку на ЛА, и может снизить экономичность из-за постоянных “подгазовываний” и “подтормаживаний” от мелких изменений в управляющем сигнале. Думаю, тут можно поиграться промежуточными компромиссными решениями, благо крутить только одну циферку нужно. И да, такая компенсация следящим системам (по-вашему - ПИД’ам) - как глоток свежего воздуха.
И да, я это всё пишу не как диванный эксперт, подобные вещи не раз уже реализовывал.

Время сброса 90% оборотов 100-140 мс (0,1-0,14 сек), 100% - 0,15-0,25 сек.

Ранее в этом дневнике было написано, что резкое торможение вызывает проблемы с откручиванием винтов… На практике активное торможение реализовать проще его отсутствия. Дело в том, что нормальный ШИМ всегда держит напряжение на фазах в тисках, и мотору проблематично ему сопротивляться. Если контроллер опустит заполнение до нуля - это равносильно короткому замыканию, при чём при торможении будет осуществляться рекуперация энергии обратно в батарею. Чтоб исключить это - необходимо нижние ключи использовать только как диоды (привет от асинхронных преобразователей) - такое часто встречается и технически - сложнее. Решение не самое эффективное (у диодов падение выше, чем у каналов полевиков), зато мотор ведёт себя подобно ДВСу - набирает обороты легко, а тормозит только за счёт собственного сопротивления.
При реализации обычного ШИМ - торможение можно настроить доп. фильтрацией входного сигнала управления (там же, где и прочие коррекции переходных процессов), что не очень сложно. А ещё лучше это делать на стороне мозга, т.к. там всё равно платформа полностью настраивается, а ещё и регуль шить под конкретнную ВМГ - нафиг надо.

  1. тайминг.

Вообще базовая вещь, которая должна автоматически измеряться регулятором ещё при калибровке мотора, а затем учитываться везде и всегда на все 100%. Суть у неё простая - индуктивность обмоток. А я блин думаю, что за перемагничивание железа такое загадочное? Учитываться должна так же как и сопротивление и противоЭДС для детектирования положения ротора. Без учёта её - нормально обработать сигнал и понять где сейчас ротор - не выйдет. Регулятор должен управлять ТОКОМ, и считывать положение ротора по противоЭДС, который ещё нужно откопать за этой индуктивностью и сопротивлением. Управление током подразумевает отсутствие каких-либо задержек при переключении магнитного поля - контроллер просто работает с опережением, которое задаёт спец. модель виртуального мотора, и добивает уже следящая система. Именно поэтому я не понимаю эти контроллеры без датчиков тока на фазах - как ими то считать и учесть базовые параметры для нормальной работы?
Короче, момент вообще не актуальный и просто само собою разумеющийся, если речь идёт о грамотном регуле. Регули, в которых это не зашито настолько глубоко, что пользователь об этом даже не догадывается - в мусорку… Хорошо хоть народ об этой проблеме знает.

  1. удержание оборотов. Признаком классности рега можно считать и этот параметр, т.е. способность удерживать обороты в очень узком диапазоне (почти постоянными). У современных регов скорее всего виновата обратная связь, вернее сам ее принцип. Все теории основываются на обратной ЭДС свободной фазы, хотя при этом никто не говорит, что в треугольнике нет свободной фазы в априори, все фазы постоянно под напряжением, что как бы не вяжется с теорией. Т.е. сигналы разные, а обратная связь работает одинаково. Это вызывает подозрение, а значит есть над чем работать. Возможно, стоит заменить на что-то новое.

Всё там нормально с теорией. Просто треугольник чуть иначе обсчитывается, и всё. Два встречно включенных источника одинакового ЭДС (две обмотки, сходящиеся на свободно болтающейся фазе, в ключевой момент времени) эквивалентны тем же двум обмоткам в звезде, через которые проходит ток и от соединения между которыми (нуля) отходит свободная болтающаяся обмотка, в которой в этот же ключевой момент времени ЭДС не наводится.
Удержание оборотов? Ну не знаю. Я думал, в ВМГ куда важнее удержание тяги. А если подует ветерок? Ну или ЛА скорость наберёт? Мне бы вот хотелось бы, чтоб тяга никак не зависела от скорости воздушного потока, а тут уместнее удержание не оборотов, а крутящего момента - т.е. тока…

  1. датчик оборотов.

Встроенный в регуль фазовый детектор просто обязан точно держать угол, т.е. ему прекрасно известна не только скорость, и не только даже мгновенная. Под него отводится львиная доля ресурсов как схемотехники, так и МК. Думаю, внешний датчик не даст и 10-й доли той информации, которую видит МК по своим каналам АЦП. Считать всю оперативную информацию (индуктивности, сопротивления и температуры обмоток, зависимость оборотов от напряжения, внутреннее сопротивление аккумулятора, максимально достижимые с этими параметрами характеристики и т.п.) слить с самого регуля уже через цифровую шину. По сути, регуль может работать как бортовая диагностическая система, ему очень много доступно данных (речь о контроллере с датчиками тока на фазах). Вопрос тут только в том, что никто этим не заморачивался…

  1. обратная связь рега с полетником. Для передачи оборотов, температуры, напряжения на ПК с последующей передачей по ОСД (при необходимости) и применением элементов диагностики.

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

На сегодня корпуса 3х3 мм

Я огорчу. На сегодня хороших ключей в 3х3мм нет. Хорошие все поголовно в 5х6мм. Искал уже. Поэтому лучше использовать ключики от TI серии CSD в SON5x6:

Если требуются невысокие напряжения (до 19V) - удобны DrMOS. Их много всяких. В корпусе 6x6мм два ключа с готовым драйвером, токи до 60…80A. Используются как раз в многофазных импульсных преобразователях для питания процессоров на материнках.

  1. экономичность. Как и на тепловыделение сказываются компоненты и прошивка. Возможно стоит перейти от ШИМ на имитацию синусоиды или чего-то подобного.

В идеале, форма тока должна повторять противоЭДС самого мотора. Можно считывать мотор при вращении по инерции, и забивать в базу его кривульки. Дальше с ними работать каким-нибудь стандартным алгоритмом, позволяющим переварить что угодно. По-моему, сложно. Пока стоит остановиться хотя бы на трапеции. Да и сам ШИМ тут - некорректно приплетать. ШИМ в импульсном преобразователе (состоящем из часто переключающихся ключей и индуктивности обмоток, сглаживающих эти импульсы до среднего значения) никуда не денется, и это очень эффективный метод получения любого необходимого напряжения. Эффективнее синхронного импульсного преобразователя, да ещё и использующего встроенную в двигатель индуктивность - человечество ещё ничего не придумало. Вопрос только в “качестве” его реализации (в основном, на программном уровне) в типичных регулях…

INFERION
  1. частота ШИМ. Одна частота ШИМ на все моторы это роскошь, которая впустую тратит энергию. Поэтому она должна выбираться под разные кВ.

На самом деле, достаточно иметь частоту ШИМ, обеспечивающую минимальные пульсации тока в обмотках. Зависит от индуктивности обмоток (“вольтовости” мотора) и напряжения питания, и начинается от сотен килогерц. Вполне достижимые значения для… Та даже для ATtiny13. Но есть интересный момент - глубина ШИМ. Народ поголовно не умеет в расширение разрядности всякими там сигма-дельта модуляторами и т.п. Поэтому всё работает грубо, с низким разрешением ШИМ, и часто в угоду разрядности приносят в жертву частоту, поскольку разрядности вечно не хватает. Мало кто знает, что одно другому совершенно не мешает, и можно выбирать любые удобные разрядности и частоты - независимо.

Или речь о том, что на ключах при переключении теряется энергия? Ею можно просто пренебречь, поскольку там разница в доли процентов для современных компонентов. Импульсная схемотехника рассчитывается так, чтоб динамические потери были соизмеримы со статическими. В регулях можно использовать ключи с сопротивлением канала порядка 1мОм. При этом они работают дай бог на треть от всего времени. На 40A такой ключик будет выделять около 1W тепла (0.5 на статику, и столько же на динамику). Весь регуль будет греться аж на 6 ватт, прокачивая при этом под киловатт (40A*30V=1200W). КПД порядка 99.5%. Что экономить то?..

  1. защиты.

Полностью согласен. ВМГ это такая штука, которая даже при пожаре должна работать до последнего. И в авиации так принято - горит индикатор пожара в моторном отсеке? Ну так что, глушить мотор и падать?.. Лучше делать правильный запас прочности и просто предупреждать, если вдруг что.

Ой, всё… Сорри за огроменное полотно, но думаю тут читатели тоже чего-нибудь интересного почерпнуть смогут.

arb

Да, текста много. Пока полезного мало , но оставил, может в будущем как-то поможет.