правильные ESC

seaowl

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

Lastro
seaowl:

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

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

seaowl
Lastro:

Это называется из пушки по воробьям. Контроллеры легко справляются с данной задачей - там скорости не такие большие у этих регулей. К тому же FPGAшки шибко дорогие…

Это ещё как посмотреть, что дороже. Четыре регулятора с четырьмя процессорами STM32 и обвязкой, либо четыре регулятора на одной ПЛИС (в которой к тому же система стабилизации может жить).

Исторически сложилось что сначала придумали регулятор, потом придумали протокол управления к нему, потом всё это прикрутили к полётному контроллеру, потом начали бороться с задержками команд управления регулятору (и придумали протоколы OneShot). Не проще ли - избавиться от всего лишнего? Если управление моторами и система стабилизации реализованы в ПЛИС - то понятие “регулятор” вообще теряет смысл. Зачем он нужен, регулятор с 1024 (или даже 4096) дискретами скорости, когда можно пропеллеры крутить как хочешь прямо из алгоритма стабилизации?

Andrey_Ch
seaowl:

Зачем он нужен, регулятор с 1024 (или даже 4096) дискретами скорости, когда можно пропеллеры крутить как хочешь прямо из алгоритма стабилизации?

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

ssilk
seaowl:

Зачем он нужен, регулятор с 1024 (или даже 4096) дискретами скорости, когда можно пропеллеры крутить как хочешь прямо из алгоритма стабилизации?

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

Andrey_Ch:

что бы не грелось, как утюг

а еще, чтобы не было помех по питанию и все такое…

seaowl

А должны быть какие то особенные помехи по питанию, и греться как утюг? Действительно неочевидные предположения, с чего бы? Без традиционных регуляторов (когда у каждого регуля свой проц), не означает ведь что силовых элементов в схеме не будет. Будут. По числу фаз, и по току, причем те же самые что в традиционных ESC. Не будет лишь атмеги (и стм32)

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

Andrey_Ch
seaowl:

Но также, многие думаю не отказались бы от регулятора, умеющего останавливать пропеллер в плоскости крыла,

Это уже перебор.
Лучше полетник , без регуляторов. И не надо ничего останавливать в полете. Упадет.

gosha57

Позвольте нубский вопрос :
самая “медленная часть” в этой системе (датчик - мозг - алгоритм реакции - регуль - двигОпроп) это двигатель с пропеллером. Даже если регулятор (под управлением мозга) будет пытаться изменять скорость вращения двигателя с частотой 500 раз в секунду и на одну/тысяча ноль двадцать четвёртую скорости … успеет ли любой движок-пропеллер “среагировать” на эти высокочастотные “конвульсии” ?

ssilk
seaowl:

какие то особенные помехи по питанию

Почитайте тему по АРМ…)

seaowl:

греться как утюг?

А для чего, по Вашему, на регулях радиаторы ставят?

seaowl:

не означает ведь что силовых элементов в схеме не будет

Так они у Вас все будут на одной плате… Если же Вы имеете ввиду только перенос логики с регулей в контроллер, а остальное будет как есть, то бульон из этих яиц не стоит свеч…)

seaowl:

странно что до сих пор не реализовано такое

Вы серьезно думаете, что за пару десятков лет до такого никто не додумался? Вероятно, Вы имеете дело только с китайскими регулями, а в приличных сенсорных регулях, думаю, такая фича уже есть… А если и нету, значит не нужна, потому что пропеллеры есть специально для этого…

Andrey_Ch:

не надо ничего останавливать в полете. Упадет.

Евгений имеет в виду самолеты…)

gosha57:

самая “медленная часть” в этой системе

Пилот…)

gosha57:

будет пытаться изменять скорость вращения двигателя с частотой 500 раз в секунду и на одну/тысяча ноль двадцать четвёртую скорости

Где Вы нахватались такой ерунды?))) 500 раз в секунду мега обновляет состояние RC IN, а не регулятор тыркает, а 1024 это диапазон возможных значений между 1й и 2мя миллисекундами… То есть, в любой момент времени контроллер выдает на драйверы одно из 1024 значений, а вовсе не 1/1024… ) Да и частота ШИМ не 500 герц, а 8-12-16 или больше килогерц

gosha57
ssilk:

в любой момент времени контроллер выдает на драйверы одно из 1024 значений, а вовсе не 1/1024… )

Это и имелось в виду - значение № 834 на соседнее - 835, например. И … столько раз в секунду на подобные изменения “успеет среагировать” двигателе-проп, сопротивляясь воздуху и инерции ?

ssilk
gosha57:

значение № 834 на соседнее - 835, например

Да так не бывает…) Там сразу на десятки значений счет идет при изменениях, попробуйте посчитать в % газа, кроме того, длительность этих изменений совсем не маленькая, десятые доли секунды при стабилизации и целые секунды при ручном рулении…
Вы же тру-АРМщик…) Посмотрите в МР максимальную угловую скорость и поделите одно на другое с учетом потерь, фонда мастера, национального благосостояния и Роснано…) В лучшем случае получите 0.1 секунды… Перекомпенсацию видели при слишком большом Р?

seaowl
gosha57:

самая “медленная часть” в этой системе (датчик - мозг - алгоритм реакции - регуль - двигОпроп) это двигатель с пропеллером. Даже если регулятор (под управлением мозга) будет пытаться изменять скорость вращения двигателя с частотой 500 раз в секунду и на одну/тысяча ноль двадцать четвёртую скорости … успеет ли любой движок-пропеллер “среагировать” на эти высокочастотные “конвульсии” ?

Вопрос абсолютно в тему. Чем в более точные моменты времени ESC переключает ток в обмотках мотора, тем более “качественно” он работает.

Да, мотор обладает большой инерцией, и “схавает” всё, и сгладит за счёт своей инерции неточность работы регуля. Но даже очень небольшая неточность моментов переключения тока - приводит к: -неэффективному расходу энергии, -нагреву регулятора и мотора, -двигатель “звенит” и “скрежещет” и не из-за подшипников. Есть интересные регуляторы, KISS ESC 24A сделаны они на проце STM32. Ресурсы проца позволяют намного более точное управление моментами переключения тока в обмотках мотора (чем в случае регуля на ардуине). И вот что интересно - часто о них пишут что мотор работает вообще тихо почти бесшумно с ними. И что якобы “вибрации” мотора которые слышались до этого - оказывались на самом деле звуком мотора из-за регулятора. Обратите внимание на проц, и на то что рядом с процом стоит кварц, для повышения точности отсчётов времени.

ssilk:

А для чего, по Вашему, на регулях радиаторы ставят?

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

gosha57
ssilk:

В лучшем случае получите 0.1 секунды…

seaowl:

Чем в более точные моменты времени ESC переключает ток в обмотках мотора, тем более “качественно” он работает.

Получается, что двигатели (нагрузка регулей) не просто разные, а “бесконечно” разные (геометрия, вес, моменты инерции) а регули … все одинаковые - просто “до 40 Ампер.”. До 20А… И когда мы настраиваем PIDы мы, “на самом деле”, пытаемся победить сначала инерцию двигЛо-пропов, а “в качестве бонуса” и получаем победу над инерцией ВМГ в целом. Если повезёт - коп будет “стабильным”. УжОс.
Снимаю шляпку - и это правда работает ?!
Как можно сделать “универсальный” (до 30А , например) регуль, который “подходит” для ВСЕХ (потребляющих около 20А) движков ? Тогда каждый “универсальный” регуль должен уметь настраиваться на любой движок, а не просто “кали-бровка диапазона газа”. Картами программирования (для таких продвинутых кака я ))) хотя бы - со строчками вес “колольчика”, диаметр, кол-во магнитов, … Что - то, что учитывает “индивидуальные особенности” конкретного движка. Может карта должна уметь делать тест, разгоняя - тормозя движок и внося в регуль “поправки” …
Иначе КПД “этой пары” вообще непредсказуемо : на уровне “по току подходит” или “бери с запасом” или “сюда лучше Симонки лепить”… Попадались движки сразу со встроенными регулями - вот у них , хочется верить, производитель учёл поправку на инерциальность хотя бы самого движка , если уж не движка с пропом. (А если помечтать, то “идеальный регуль” должен сам мониторить и погоду, высоту полёта с поправкой на отдачу и разряженность батареи …😒)

Gapey
gosha57:

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

есть и такие


стоят правда уже не 5 копеек …

gosha57

А… если и рыбку съесть и использовать этот волшебный регуль как готовый “испытательный стенд”, который снимет “АЧХ” движка-пропа во всём диапазоне управляющих частот и останется только “подкорректировать и привести к линейному виду” отдачу любого стороннего, уже недорогого регуля ? Возможно ли такое и насколько это “поможет делу” ? Ведь можно выстроить комплект практически одинаковых “троек” - регуль-двигатель-пропеллер, что немаловажно для хорошей ВМГ. Только сделать всё это строго последовательно…

Gapey

дешевый регуль никогда не будет работать также как хороший дорогой …
просто в понятие хорошего регуля входит как минимум нормальные комплектующие
качественные N-Ch транзисторы , драйвер для управления ими , качественные конденсаторы по питанию … и это все стоит денег …
если вы считаете что убирание из прошивки куска кода , отвечающего за калибровку сильно удешевит конечный продукт ,то глубоко ошибаетесЪ …

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

seaowl

Просмотрел фотки плат, документацию, и настройки в GUI - нескольких современных “правильных” регуляторов на STM32, ценой 25-50$/шт. Есть предположение (требующее дальнейших исследований) что все эти регуляторы сделаны на основе пары интересных opensource проектов в области электропривода. Не хочу пока никого обидеть, но возможно производители (повторюсь! это требует исследования) ничего особо не разрабатывали, а взяли код из двух открытых проектов, упростили принципиальную схему и печатную плату чтоб дешевле было производить, закрыли код и схему (не предоставляют), и навариваются на продаже. Посмотрим ещё.

gosha57

Надо подумать . Спасибо !

Gapey:

убирание из прошивки куска кода , отвечающего за калибровку сильно удешевит конечный продукт

Нет, просто определить таким “измерителем” оптимальные настройки для конкретной пары и “прописать их” в настройки обычного регуля. Например “добавить мощи” одному на низких оборотах, убрать на этих же оборотах у другого… Получается мозг даёт ВСЕМ : (для коптера) лететь вверх ! А один отстаёт и тутже мозг начинает выравнивать, за счёт “притормаживания” других. Тут мысль подобрать одинаковые комплекты (для квадра - четыре, для …). А то в стандарте мы газ (диапазон) им даём (калибруем), а на тяге … кто в лес, кто по дрова…
Вот интересно при калибровке регулей в визарде СС3Д сделано - там надо “визуально запустить” каждый движок ползунком на экране. Таким образом мы действительно задаём нижний уровень старта двигателя. А если бы таких ползунков было несколько (во всём диапазоне каждого двигателя) и мы контролировали процесс с тахометром, то “простым способом” хотя бы вращение-скорость движков у всех двигателе была бы одинакова.
Если б умел программировать - то использовал вебку - на колокольчике риску фломастером … 😒

seaowl
gosha57:

Вот интересно при калибровке регулей в визарде СС3Д сделано - там надо “визуально запустить” каждый движок ползунком на экране. Таким образом мы действительно задаём нижний уровень старта двигателя.

Сделано удобно, но помогает ненадолго, обясню почему. Большинство ESC управляются сигналом ШИМ (англ. PWM). От полётника в регулятор 490 раз в секунду (бывает и больше) приходят управляющие импульсы. Процессор ESC измеряет длительность каждого такого импульса и в зависимости от того что он намерил - задаёт частоту вращения мотора. Процессор измеряет длительность с помощью встроенных в него таймеров. Если таймеры работают неточно - то измерение длительности управляющего сигнала тоже будет неточно. Соответственно процессору ESC будет иногда казаться что надо чуть быстрее крутить движок, а иногда - что чуть медленнее. Почему таймеры могут работать неточно? В большинстве ESC они синхронизируются от встроенного генератора тактовой частоты который “плавает” в зависимости от температуры, при этом ни процессор, ни программист - не позаботились об этом моменте. Поэтому например зимой и летом, или холодном регуляторе или на горячем (в полёте) - моменты старта движков и вобще в целом реакция на управляющие сигналы от полётного контроллера - будут разными. Но об этом мало кто заботится, т.к. полётник должен всё это как-то компенсировать (“ой что-то квадрик повело вправо, давайте ка налево полетим”)

Gapey

линеаризация зависимосит скорости от входного сигнала далеко не самая основная задача … а тяга всеравно будет колебаться от экземпляра к экземпляру … притом полетный контроллер вполне это скомпенсирует …
а вот эффективность системы мотор/проп/регуль будет сильно зависеть от настроек

под конкретный тип мтора нужно подбирать оптималую частоту ШИМ ,
под пару мотор проп оптимальные моменты переключения фаз (притом не только в зависимости от скорости , но и от ускорения мотора, напряжениия питания )

кстати пришла в голову мысль - а что если сделать спаренный контроллер для соосной схемы ??? один процессор получает 2 управляющих сигнала и контролирует два мотора на одном луче … интересно насколько удастся скомпенсировать изменение нагрузки на мотор при изменении тяги второго мотора …

seaowl
Gapey:

под конкретный тип мтора нужно подбирать оптималую частоту ШИМ, под пару мотор проп оптимальные моменты переключения фаз (притом не только в зависимости от скорости , но и от ускорения мотора, напряжениия питания )

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