Приветствую. Хотелось бы понять, а тестировался ли код по управлению BLDC моторами Motor Control Demo (MCD) для МК ВК035 на реальном железе?
А то мы не можем победить измерение токов, у нас К1946ВК035 в связке с TI DRV8305, уже просто лампочки подключили вместо мотора - все фазы адекватно выдаются, а вот измерения токов какая-то шляпа: вместо красивых картинок по мануалу, шумные и кривые картинки. Вот в режиме U/f (все три фазы измеряемые в отличие от оригинального кода):
Вместо красивой картинки как в мануале:
Ну и при настройке регуляторов тока в режиме удержания аналогично, при этом на некоторых углах (theta_elec) вообще случается какой-то разнос измерений. И дело именно в показаниях, на выдаче всё нормально. На 10КГц ШИМ чуть лучше, чем 20КГц.
Может у кого-нибудь есть опыт успешного измерения токов и запуска векторного управления на МК ВК035?
Проблемы измерения токов в Motor Control Demo на К1946ВК035
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
Re: Проблемы измерения токов в Motor Control Demo на К1946ВК035
Разобрались в итоге! Как обычно произошла череда наложившихся друг на друга обстоятельств.
Изначально пробовали с двигателем на своей, собранной на коленке, плате-драйвере (измерения токов шунтовое, шунты в нижних ключах). Картинка токов при простом вращении U/f была сколько-то адекватная, но кривоватая: При переходе к настройке регуляторов в режиме удержания тока как-то уже совсем плохо: Т.к. из-за недостатка опыта подозревали в первую очередь свою криворукость, заказали DRV8305EVM и для наглядности фаз подключили лампочки вместо мотора. Последнее было роковой ошибкой). Как нам правильно указали:
Заметили странность в коде: показания АЦП усредняются по 4 точкам равномерно на всём периоде ШИМ. Т.е. 3 дополнительных измерения проводятся уже после момента включения нижнего ключа, при чём это не опечатка в одном месте, упоминается несколько раз. Собственно прямое противоречие тому, что указано в документации на MCD:
.
p.s. На заметку, ещё одна ошибка-расхождение кода с документацией, это применение смещения АЦП. Согласно документации:
Нужно исправить так, чтобы применялось до сдвига:
Это всё касается V_adc.c v 2.0 25/03/2016, что идёт с VectorIDEv1.3.3. Если что, ошибки также актуальны, как минимум и для K1921VK028.
Изначально пробовали с двигателем на своей, собранной на коленке, плате-драйвере (измерения токов шунтовое, шунты в нижних ключах). Картинка токов при простом вращении U/f была сколько-то адекватная, но кривоватая: При переходе к настройке регуляторов в режиме удержания тока как-то уже совсем плохо: Т.к. из-за недостатка опыта подозревали в первую очередь свою криворукость, заказали DRV8305EVM и для наглядности фаз подключили лампочки вместо мотора. Последнее было роковой ошибкой). Как нам правильно указали:
Так что вернулись к работе с двигателем уже с DRV8305EVM с теми же картинкам 1,2.лампочки - это активная нагрузка, чистый R. Ток там будет меняться на периоде ШИМ, и не просто меняться, а протекать максимальным при открытых ключах на периоде ШИМ и становиться нулевым когда внутри периода ШИМ ключи не прикладывают напряжение (нулевой вектор напряжения). Схема измерения токов для электродвигателя ожидает то, что будет индуктивная нагрузка - электродвигатель. А именно будет обеспечиваться тот факт, что на периоде ШИМ ток изменяется слабо - индуктивность, как накопитель энергии, стабилизирует ток.
Заметили странность в коде: показания АЦП усредняются по 4 точкам равномерно на всём периоде ШИМ. Т.е. 3 дополнительных измерения проводятся уже после момента включения нижнего ключа, при чём это не опечатка в одном месте, упоминается несколько раз. Собственно прямое противоречие тому, что указано в документации на MCD:
Исправили, убрали вообще настройки перезапусков и стало всё хорошо (ещё сделали PWM0->ETPS_bit.SOCAPRD = 1, т.к. непонятно зачем там 2 в оригинале). Всё чётко, картинки чистые, всё как по мануалу. Продвинулись дальше, векторное управление работаетДля совместимости программного кода с разными типами инверторов применяется лишь одно измерение тока на одном периоде ШИМ.
p.s. На заметку, ещё одна ошибка-расхождение кода с документацией, это применение смещения АЦП. Согласно документации:
А в оригинальном коде применяется смещение к уже сдвинутым на 16бит измерениям из-за этого значения ноля как раз на грани int16 и автоматическое смещение творит дичь перескакивая через overflow.Это смещение задается в тех единицах измерения, в которых возвращает значение сам модуль АЦП, т.е. смещение может быть в диапазоне -4095…+4095.
Нужно исправить так, чтобы применялось до сдвига:
Код: Выделить всё
p->Imeas_a = p->IaGainNom * ((p->IA_temp + p->Imeas_a_offset) << 4);
p->Imeas_b = p->IbGainNom * ((p->IB_temp + p->Imeas_b_offset) << 4);Re: Проблемы измерения токов в Motor Control Demo на К1946ВК035
Добрый день.
Проект Motor Control Demo (MCD) для МК ВК035 на реальном железе тестировался при управлении асинхронными двигателями (не BLDC). Сам проект Motor Control Demo (MCD) - разработка НПФ "Вектор" (https://motorcontrol.ru/)
Проект Motor Control Demo (MCD) для МК ВК035 на реальном железе тестировался при управлении асинхронными двигателями (не BLDC). Сам проект Motor Control Demo (MCD) - разработка НПФ "Вектор" (https://motorcontrol.ru/)
