Я пытаюсь управлять BLDC с помощью микроконтроллера, дискретного инвертора и сети без датчиков для обратной связи. Вот модель, которую я использую, и что в конечном итоге представляет собой моя печатная плата:
Я сейчас управляю этой штукой без обратной связи, просто чтобы проверить формы сигналов и т. Д. Вот что я получаю, когда управляю двигателем с рабочим циклом 18 кГц, 30%:
Поскольку я ожидаю, что последовательность коммутации будет выглядеть так: , это выглядит правильно... Так что я думаю, что у меня все работает правильно.
Мой вопрос: почему плавающая фаза выглядит так, будто несет с собой много лишнего багажа? И если так и должно быть, то в какой момент, по вашему мнению, происходит пересечение нуля? Я надеялся, что это будет выглядеть немного чище, как в этом примечании к применению от Microchip http://ww1.microchip.com/downloads/en/AppNotes/01160b.pdf . Видите, четкая линейная рампа? на своем такого не вижу..
Кроме того, я должен отметить, что я использую ШИМ только для одной ноги, в то время как другая привязана к напряжению постоянного тока (GND на этих рисунках, хотя я играл с оставлением VDC подключенным и PWMing ногой GND, но это не сделало что-нибудь в хороший наклон. Это просто изменило полярность того, что я показал на своих первых фотографиях).
Кроме того, просто для полноты картины я добавил более близкие виды осциллограмм... Опять же, помните, что они работают в разомкнутом цикле, поэтому обратной связи нет... Я просто переключаю состояние коммутации при прокрутке таймера, что меня очень порадовало. с для отладки.
Вот более пристальный взгляд на последовательность коммутации:
А вот восходящая плавающая фаза:
А вот и падающая плавающая фаза... кажется, падает... хотя дно поднимается, так что, возможно, я ошибаюсь...:
Это правильно, или я что-то не так делаю?
Редактировать
Благодаря приведенному ниже ответу, теперь я разгоняю двигатель на 100 мс, чтобы приготовить BEMF, а затем я слежу за моментом, когда моя нижняя сторона ШИМ становится выше нуля. Затем я выжидаю определенное время простоя, а затем нажимаю на курок при коммутации. Это намного лучше... Раньше двигатель работал медленно при токе около 112 мА при 12 В, но теперь он может легко разогнаться до 7200 об/мин при 40 мА при 12 В. Загрузка двигателя (путем зажимания вала ротора пальцами) совсем не замедляет его, а просто увеличивает потребляемый ток, как и ожидалось.
Фото или этого не было:
Да, графики имеют смысл, но наложенный вами ШИМ не находится «в фазе» с напряжением BEMF.
Как вы заявили, вы управляете этим разомкнутым контуром, который больше похож на шаговый двигатель, поэтому ваш «положительный результат» не будет совпадать с положительным результатом BEMF. Когда вы начнете использовать обратную связь с датчиком, ваш BEMF будет больше похож на пример.
Имейте в виду, что линейность BEMF сильно зависит от двигателя. Не пугайтесь, если увидите некоторую кривизну:
Обратите внимание, что этот сигнал находится «в фазе», что означает, что привод применяет высокий уровень к этой фазе, когда фаза достигает пика. Это то, что вы хотите. Прямо сейчас вы применяете его в другое время, поэтому вы не в фазе.
Тревор_G