Страница 1 из 7

MotorControlDemo

Добавлено: 21 сен 2017, 11:22
igbo
Прошу пояснить в части предложенного алгоритма векторной ШИМ
графики.jpg
графики.jpg (248.4 КБ) 22323 просмотра
Формируемое модулем ШИМ напряжение имеет ограничение (как я понял связанное с периодическим присвоением периода k_pwm). В рекомендуемой для изучения диссертации это алгоритм "Векторная ШИМ на базе синусоидальной центрированной ШИМ"?
В чем смысл такого искажения? Или что то неправильно настроено?

Re: MotorControlDemo

Добавлено: 21 сен 2017, 12:34
Лашкевич Максим
Добрый день. Там реализован обычный векторный ШИМ, который в диссертации "Разработка систем векторного управления асинхронными приводами на базе специализированных сигнальных микроконтроллеров" описывается начиная со страницы 109 и далее.
Никаких ограничений напряжения у метода нет. Скважности присваиваются периоду чтобы исключить коммутацию одной из стоек инвертора для снижений потерь. Реализуемое напряжение при этом синусоидальное (за исключением искажений мертвого времени). Скважности в этом методе и должны быть такой формы, как у Вас на рисунке.

Re: MotorControlDemo

Добавлено: 22 сен 2017, 16:03
igbo
Суть проблемы была в настройках модуля ШИМ, т.к. попробовал перенести код с 1921 на 1986ВЕ91.
Был выбран режим переключение REF, если CNT =CCR;,
и вывод ШИМ через RC фильтр выглядел так:
TEK0020.JPG
TEK0020.JPG (90.66 КБ) 22295 просмотров

а надо было 1, если DIR= 0 (счет вверх), CNT<CCR, иначе 0;
0, если DIR= 1 (счет вниз), CNT<CCR, иначе 1;
TEK0019.JPG
TEK0019.JPG (87.19 КБ) 22295 просмотров
Что интересно с первой настройкой у нас нормально работают привода, но там алгоритм реализации ШИМ от Texas Instruments, где 3 уровня сравнения

Re: MotorControlDemo

Добавлено: 29 сен 2017, 17:43
rasulikv
Добрый день! Вопрос по проекту motorcontroldemo. Я находил информацию (вроде на сайте и в видео на ютубе), что исходные коды некоторых модулей в нем, в частности CANOpen драйвера и бутлоадера, закрыты. Но в проекте есть и этот драйвер, и нечто похожее на бутлодер. Изменилось ли что нибудь? Полные ли это версии модулей лежат на битбакете в текущей версии? Если нет, то чего из софта не хватает и возможно нужно докупить (у меня есть ваша плата без двигателя и инвертора), чтобы прошивать контроллер удаленно по CAN шине?
С уважением, К. Расули

Re: MotorControlDemo

Добавлено: 02 окт 2017, 12:56
Лашкевич Максим
Добрый день. И драйвер CANOpen, и прошивальщик в проекте присутствуют без исходных кодов (в виде библиотек), но они полнофункциональные и пользоваться ими можно и нужно для всех желаемых задач.

Re: MotorControlDemo

Добавлено: 09 авг 2018, 09:49
sdv_cyborg!
Здравствуйте.
Разбирая модуль АЦП проекта MotorControlDemo, наткнулся на некоторое недопонимание в пересчете коэффициентов для перевода измеренных значений АЦП в относительные единицы.
В описании в комментариях указано, что АЦП измеряет в диапазоне от 0 до 65535, т.е. как будто бы АЦП 16-битный, после чего необходимо произвести сдвиг измеренного числа на 8 бит влево (для примера с процентами). Однако для К1921ВК01Т это неверно, т.к. максимальное разрешение его АЦП - 12 бит. Далее, в коде функции AdcDrv_slow_calc производятся описанные манипуляции с перемножением, но в конце каждой операции еще производится дополнительный сдвиг влево: для токов на один бит и для напряжения ЗПТ - на 4 бита. Правильно я понимаю, что в описании была допущена ошибка на счет диапазона от 0 до 65535 и эти дополнительные сдвиги предназначены для ее устранения? Или я что-то упустил?

Re: MotorControlDemo

Добавлено: 09 авг 2018, 19:53
Лашкевич Максим
Да, видимо, так и есть, комментарии перекочевали от процессоров тексаса.

Re: MotorControlDemo

Добавлено: 15 авг 2018, 09:51
sdv_cyborg!
Здравствуйте.
Возник еще один вопрос. Для отладки проекта мы планируем использовать поставляемую библиотеку CANOpen вместе с проектом. Судя по исходникам, там задействован отсчет времени с помощью RTC, однако в нашем проекте мы его не используем, и выводы под него вообще не разведены. Можно просто-напросто исключить модуль RTC и его упоминания из логгера событий без ущерба для связи с Unicon? Так-то мы планируем все-равно свой модуль связи писать с контроллером верхнего уровня (исторически сложилось), а Unicon пригодится для отладки.

Re: MotorControlDemo

Добавлено: 15 авг 2018, 14:47
Лашкевич Максим
Добрый день. Там часы только для банка аварий используются... Конечно отключайте.

Re: MotorControlDemo

Добавлено: 23 апр 2019, 16:00
Константин!
Добрый день!

В проекте MotorControlDemo в модуле АЦП считывание данных осуществляется следующим образом:

Код: Выделить всё

while (NT_ADC->SEQ[3].FSTAT_bit.FLOAD > 0)	//пока фифо не опустеет
{
	p->IBBuf[p->IBPointer] = (int16) ((NT_ADC->SEQ[3].FIFO_bit.DATA) << 4) ^ 0x8000;
	p->IBPointer = (++p->IBPointer) & 3;
}
Для чего данные сдвигаются на 4 разряда влево для чего нужен "^0x8000"?