Меж тем удалось существенно упростить алгоритм, исключив таки упрощения (тавтология, однако, но прямых Кларка-Парка удалось убить

).
Качественных изменений не заметил (если не считать несущественные моменты). Впрочем и количественных тоже.
То есть, сейчас у меня:
1. Подается с верхнего уровня некая величина-задание. Подается, ест-нно, с частотой интерфейса с этим самым верхним уровнем (если уж конкретно, то у меня сейчас кан- шина, но не суть - может быть что угодно - уарт, рс-, езернет да хоть и беспровод, вай фай, например, и т.д. и т.п. - главное, чтобы обеспечивал необходимую скорость обмена данными)
2. На каждом цикле ШИМ производится регулировка фазных напряжений (а за счет этого, в конечном итоге - фазных токов/момента) и сдвиг фаз в зависимости от текущего задания, расчитанного рассогласования и одномоментных состояний электрической машины. Делается это так:
- текущее задание - понятно (объяснено выше. Для примера, - может быть газ авто, либо тормоз, или, допустим, задание от системы стабилизации ЛА и проч.);
- с рассогласованием (ошибкой) чуть посложнее - в основном применяя старый проверенный метод подбора (не совсем "тупого"

) , находим какую-нибудь полуэмпирику для приведения задания в такие "попугаи", которые были бы сравнимы с некой измеренной величиной (чаще всего или скорость вращения и/или фазные токи, т.е., момент). В моем конкретном случае это чисто токи. И задание и токи приводятся к некой абстрактной величине s16int (не мудрствуя лукаво позаимствовал у STM), а вообще может быть всё что угодно, лишь бы в каком-то адекватном диапазоне это всё работало (на данном этапе "как-то" крутилось, тюнинговать надо попозже). У меня от измеренных токов используется только их амплитуда, но об этом ниже;
- итак, токи померяны, надо ещё узнать положение ротора (электрический угол). Так как в моем движке есть датчики Холла (причем цифровые), то используются именно они. На выходе, после измерений и расчетов имеем сектор (1 из 6-ти).
(Оффтоп)
Кстати, года два назад STM выкатили довольно интересную штуку - технологию ZeST (Ze - типа даже при нулевой скорости Zero Speed Full Torque) - без всяких датчиков они утверждают, что могут очень точно определить положение ротора - как такое вообще возможно?. Они даже отладочную платку выпустили на базе stm32g473. Там вроде и контроллер не совсем стандартный.. Ну и по традиции, все ключевые алгоритмы у них скрыты в библиотеках

Но да ладно, народ предполагает, что единственный возможный вариант - это при нулевой скорости подавать стимулирующие воздействия и оценивать реакцию (естественно, зная заранее все ключевые параметры ЭМ). Но как-то всё сомнительно, наверное, придется прикупить эту отладочную платку и поиграться с ней..
Но да ладно, вернемся к баранам:
- дальше я, предварительно выкинув из алгоритма преобразования Кларка-Парка, использую в расчетах ТОЛЬКО некую усредненную АМПЛИТУДУ ФАЗНЫХ ТОКОВ, справедливо (надеюсь) полагая, что чем она больше, тем больше крутящий момент. И именно по ней замыкаю контур управления;
- далее тут по желанию - некая последовательность из ПИД-регуляторов (у меня в начале заработало вполне сносно и без ПИД, но все же применил один для более тонкой настройки) - прорабатываю рассогласование (собсно, тупая разность между измеренной усредненной амплитудой и заданной);
- обратный Парк всё же пока остаётся (да-да, вот так вот - без прямого Парка задействуется обратный) - для преобразования в фазные напряжения;
- обратный Кларк - выкинут;
- далее - относительно простой алгоритм расчета фаз и дьюти- цикла для ШИМ на основе предыдущих расчетов фазных напряжений/токов и сиюминутного положения ротора.
И всё - работает хорошо. По-крайней мере, в переходных моментах (например, частых сменах направления вращения, да и вообще, значительных изменений скоростей вращения) гораздо лучше шестишагового (скалярного) алгоритма - потребление тока от ИП заметно ниже (не оценивал пока).