Положение ротора можно определять разными методами. Например, в дешёвых BLDC без встроенных датчиков используется метод "обратной ЭДС", когда контроллер смотрит на напряжение на "свободном" полюсе обмотки и ждёт, когда оно пересечёт нуль - форма кривой этого напряжения однозначно зависит от положения ротора, но есть два серьёзных "но":
1) на малых скоростях этот метод очень сильно теряет в точности, и это принципиально нельзя исправить
2) ежели хотим обезопасить схему и используем гальваническую изоляцию силовой части от логики, то в схеме возникает недешёвая развязка трёх аналоговых сигналов.
Гораздо удобнее, когда мотор заранее оснащён правильными датчиками. Например, если это датчики Холла (или что-то подобное). Обычно такие датчики выдают трёхбитный сигнал в коде Грэя, "однозначно" указывающий на то, что ротор находится в одном из шести возможных секторов (в "электрическом смысле", механически секторов может быть намного больше). Кавычки вокруг однозначности неспроста - остаётся довольно большая неопределённость положения, не позволяющая точно сказать, на какой именно угол повёрнут ротор. В принципе, это можно обойти, если контроллер реализует нечто вроде ФАПЧ, синхронизируемой по событиям от датчиков (примерно так сделано "синусоидальное управление" в недорогих моторчиках). Но ежели что-то с ротором случилось, то в промежутках между синхроимпульсами ФАПЧ будет непредсказуемо врать.
Самое клёвое - поставить энкодер, показывающий положение ротора в долях градусов. Чем больше долей, тем всё становится точнее, тем выше можно поднять КПД машины, доводя его до максимально достижимого.
И вот мы тут ща собираем новый прототип, с энкодерными датчиками, сделанными ... в Словении (заодно решил углублённо изучить ПЛИС - контроллер будет на ней).
Сырьевая супердержава не может породить энкодеры, а маленькая Словения (я её на глобусе-то не сразу найду) - может! причём не абы какие, а вполне точные, быстрые, с кучей опций, очень аккуратные такие энкодерчики. С добротной документацией. Интересно, в Словении есть ли Сколково?..