Activity
- частота ШИМ. Одна частота ШИМ на все моторы это роскошь, которая впустую тратит энергию. Поэтому она должна выбираться под разные кВ.
На самом деле, достаточно иметь частоту ШИМ, обеспечивающую минимальные пульсации тока в обмотках. Зависит от индуктивности обмоток (“вольтовости” мотора) и напряжения питания, и начинается от сотен килогерц. Вполне достижимые значения для… Та даже для ATtiny13. Но есть интересный момент - глубина ШИМ. Народ поголовно не умеет в расширение разрядности всякими там сигма-дельта модуляторами и т.п. Поэтому всё работает грубо, с низким разрешением ШИМ, и часто в угоду разрядности приносят в жертву частоту, поскольку разрядности вечно не хватает. Мало кто знает, что одно другому совершенно не мешает, и можно выбирать любые удобные разрядности и частоты - независимо.
Или речь о том, что на ключах при переключении теряется энергия? Ею можно просто пренебречь, поскольку там разница в доли процентов для современных компонентов. Импульсная схемотехника рассчитывается так, чтоб динамические потери были соизмеримы со статическими. В регулях можно использовать ключи с сопротивлением канала порядка 1мОм. При этом они работают дай бог на треть от всего времени. На 40A такой ключик будет выделять около 1W тепла (0.5 на статику, и столько же на динамику). Весь регуль будет греться аж на 6 ватт, прокачивая при этом под киловатт (40A*30V=1200W). КПД порядка 99.5%. Что экономить то?..
- защиты.
Полностью согласен. ВМГ это такая штука, которая даже при пожаре должна работать до последнего. И в авиации так принято - горит индикатор пожара в моторном отсеке? Ну так что, глушить мотор и падать?.. Лучше делать правильный запас прочности и просто предупреждать, если вдруг что.
Ой, всё… Сорри за огроменное полотно, но думаю тут читатели тоже чего-нибудь интересного почерпнуть смогут.
Прокомментирую “сложность” требований:
- количество шагов газа. 2000 для цифровых стандартов и 4000 для аналоговых.
Прикинем: 48МГц/1мс=48000 тактов измеряющего таймера за 1мс. Ну, я сторонник 16-ти битных разрешений, так что не вижу смысла даже в самом дешевом МК, типа STM32F0 делать меньше 48000 шагов. Кроме того - ошибки измерений вносят шум, а шум - друг передискретизации. 48000 - это разрешение одного единственного измерения, а т.к. ВМГ усредняет целую пачку - разрешение без проблем повышается на порядки. Я считаю этот момент полностью закрытым ввиду неактуальности гоняться за сверхразрешениями - обычный МК может обеспечить разрешение, сопоставимое с аудио. Вопрос остаётся только в готовой реализации…
- Время реакции рега на изменение управляющего сигнала около 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 сек.
Ранее в этом дневнике было написано, что резкое торможение вызывает проблемы с откручиванием винтов… На практике активное торможение реализовать проще его отсутствия. Дело в том, что нормальный ШИМ всегда держит напряжение на фазах в тисках, и мотору проблематично ему сопротивляться. Если контроллер опустит заполнение до нуля - это равносильно короткому замыканию, при чём при торможении будет осуществляться рекуперация энергии обратно в батарею. Чтоб исключить это - необходимо нижние ключи использовать только как диоды (привет от асинхронных преобразователей) - такое часто встречается и технически - сложнее. Решение не самое эффективное (у диодов падение выше, чем у каналов полевиков), зато мотор ведёт себя подобно ДВСу - набирает обороты легко, а тормозит только за счёт собственного сопротивления.
При реализации обычного ШИМ - торможение можно настроить доп. фильтрацией входного сигнала управления (там же, где и прочие коррекции переходных процессов), что не очень сложно. А ещё лучше это делать на стороне мозга, т.к. там всё равно платформа полностью настраивается, а ещё и регуль шить под конкретнную ВМГ - нафиг надо.
- тайминг.
Вообще базовая вещь, которая должна автоматически измеряться регулятором ещё при калибровке мотора, а затем учитываться везде и всегда на все 100%. Суть у неё простая - индуктивность обмоток. А я блин думаю, что за перемагничивание железа такое загадочное? Учитываться должна так же как и сопротивление и противоЭДС для детектирования положения ротора. Без учёта её - нормально обработать сигнал и понять где сейчас ротор - не выйдет. Регулятор должен управлять ТОКОМ, и считывать положение ротора по противоЭДС, который ещё нужно откопать за этой индуктивностью и сопротивлением. Управление током подразумевает отсутствие каких-либо задержек при переключении магнитного поля - контроллер просто работает с опережением, которое задаёт спец. модель виртуального мотора, и добивает уже следящая система. Именно поэтому я не понимаю эти контроллеры без датчиков тока на фазах - как ими то считать и учесть базовые параметры для нормальной работы?
Короче, момент вообще не актуальный и просто само собою разумеющийся, если речь идёт о грамотном регуле. Регули, в которых это не зашито настолько глубоко, что пользователь об этом даже не догадывается - в мусорку… Хорошо хоть народ об этой проблеме знает.
- удержание оборотов. Признаком классности рега можно считать и этот параметр, т.е. способность удерживать обороты в очень узком диапазоне (почти постоянными). У современных регов скорее всего виновата обратная связь, вернее сам ее принцип. Все теории основываются на обратной ЭДС свободной фазы, хотя при этом никто не говорит, что в треугольнике нет свободной фазы в априори, все фазы постоянно под напряжением, что как бы не вяжется с теорией. Т.е. сигналы разные, а обратная связь работает одинаково. Это вызывает подозрение, а значит есть над чем работать. Возможно, стоит заменить на что-то новое.
Всё там нормально с теорией. Просто треугольник чуть иначе обсчитывается, и всё. Два встречно включенных источника одинакового ЭДС (две обмотки, сходящиеся на свободно болтающейся фазе, в ключевой момент времени) эквивалентны тем же двум обмоткам в звезде, через которые проходит ток и от соединения между которыми (нуля) отходит свободная болтающаяся обмотка, в которой в этот же ключевой момент времени ЭДС не наводится.
Удержание оборотов? Ну не знаю. Я думал, в ВМГ куда важнее удержание тяги. А если подует ветерок? Ну или ЛА скорость наберёт? Мне бы вот хотелось бы, чтоб тяга никак не зависела от скорости воздушного потока, а тут уместнее удержание не оборотов, а крутящего момента - т.е. тока…
- датчик оборотов.
Встроенный в регуль фазовый детектор просто обязан точно держать угол, т.е. ему прекрасно известна не только скорость, и не только даже мгновенная. Под него отводится львиная доля ресурсов как схемотехники, так и МК. Думаю, внешний датчик не даст и 10-й доли той информации, которую видит МК по своим каналам АЦП. Считать всю оперативную информацию (индуктивности, сопротивления и температуры обмоток, зависимость оборотов от напряжения, внутреннее сопротивление аккумулятора, максимально достижимые с этими параметрами характеристики и т.п.) слить с самого регуля уже через цифровую шину. По сути, регуль может работать как бортовая диагностическая система, ему очень много доступно данных (речь о контроллере с датчиками тока на фазах). Вопрос тут только в том, что никто этим не заморачивался…
- обратная связь рега с полетником. Для передачи оборотов, температуры, напряжения на ПК с последующей передачей по ОСД (при необходимости) и применением элементов диагностики.
Ага, поддерживаю. Выше об этом и написал. Технически не сложно, а программно - нужно повозиться…
На сегодня корпуса 3х3 мм
Я огорчу. На сегодня хороших ключей в 3х3мм нет. Хорошие все поголовно в 5х6мм. Искал уже. Поэтому лучше использовать ключики от TI серии CSD в SON5x6:

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