|
Синхронный двигатель, точное позиционирование |
|
|
|
Aug 29 2013, 17:26
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Добрый день. Есть синхронный трехфазный двигатель (3 фазы, 4 обмотки на каждой фазе расположенные по кругу ABC-ABC-ABC-ABC). На роторе - магниты. Магнитов больше чем обмоток, расположены строго над обмотками. Нужно точное позиционирование ротора, есть энкодер. Изложу свои домыслы, поправьте пожалуйста где ошибаюсь:
1. Управление трехфазным синусом, сделанным через ШИМ - чередованием выбираем направление. 2. Ток обмоток (амплитуда шима) выбираем исходя из необходимой скорости разгона (на роторе инертная масса) 3. Частоту синуса - опять же исходя из требуемой скорости разгона.
Вопрос нарисовался сам собой: каким образом связать переменную процесса (положение ротора) с ДВУМЯ управляемыми величинами - частотой синуса и амплитудой? Если была бы одна управляемая величина - через ПИД регулятор. Да и в этом случае тоже через ПИД - регулятор наверняка, вычислить динамические параметры системы и выставить коэффициенты под оптимальное регулирование - это не проблема. Но вот по какому закону связать частоту и амплитуду - затык. У асинхронников частота с амплитудой связывается через закон V/F. Но там другая ситуация. А тут на момент двигателя получается влияет амплитуда синуса, а частоту (или точнее скорость изменения фазы) надо выбирать следя за энкодером исходя из того, чтобы ротор не "опрокинулся", т.е. не проскользнул. Быстро крутанем - даже при максимальном токе из-за инертности массы проскользнет, а значит дернется в другую сторону. Может смотреть за энкодером и держать опережение угла синуса относительно ротора? Ну то есть чтоб синус статора от ротора далеко не убегал. Подозреваю, что тоже есть какой-то закон типа V/F, как для асинхронников, но до сих пор с синхронниками не сталкивался, поэтому прошу подсказки специалистов - ссылки, литература, советы - все что не лень выложить.
|
|
|
|
|
Aug 29 2013, 19:27
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(alexPec @ Aug 29 2013, 20:26)  ссылки, литература, советы - все что не лень выложить. Не всегда в таких двигателях применяется синусоида. Нужно убедиться что там не трапеция. А синусоида да, формируется ШИМ-ом. А ШИМ формируется цифровой схемой на микроконтроллере. Не знаю насколько вы близки к микроконтроллерам, но именно там и ищут алгоритмы управления движками. Все серьезные производители микроконтроллеров ST, TI, Atmel, Microchip, NXP, Freescale, Infineon... имеют неплохую документацию и примеры реализации цифрового управления двигателями типа вашего. Наиболее четкая документация у Microchip-а, а вот микроконтроллеры лучше всего получились у Freescale. Особенно серия Kinetis MK60. Для вашего движка также как и для асинхронников применяют векторное управление с двухконтурным регулированием. Тема слишком сложная чтобы ее тут объяснять на пальцах. Советую только не отрывать теорию от реализации на микроконтроллерах, а то потеряете время.
|
|
|
|
|
Aug 29 2013, 19:44
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(AlexandrY @ Aug 29 2013, 23:27)  Не всегда в таких двигателях применяется синусоида. Нужно убедиться что там не трапеция. Спасибо за ответ, посмотрю на микрочипе примеры. Реализация планируется на ПЛИС, там и шимы будут аппаратные, и модуль энкодера и все это для 4 движков в одном флаконе и управлять всем этим будет софт-процессор. Цитата Советую только не отрывать теорию от реализации на микроконтроллерах, а то потеряете время Конечно нет, поэтому и спросил тут у умных людей где поискать, что почитать. Давненько делал свой частотник для асинхронников, поэтому чуть-чуть в теме. С реализацией - что аппаратной, что программной - проблем нет, важна именно теория. С этим в области синхронных движков пробел.
|
|
|
|
|
Aug 30 2013, 05:41
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(alexPec @ Aug 30 2013, 07:08)  Посмотрел на сайт микрочипа и понял, что не понял чем отличаются BLDC (brushless DC) и Permanent Magnet Synchronous Motor (PMSM). Объясните пожалуйста! Нашел вот это: http://electronix.ru/forum/index.php?showtopic=106390но непонятно тогда, почему шаговые выделяют отдельно от BLDC... У шаговых и BLDC как минимум разные схемы драйверов. Шаговые не чувствительны к направлению тока в обмотке. PMSM называют движки с синусоидальной ЭДС. И BLDC могут развить большую скорость чем PMSM поскольку генерить синусоиду на высоких скоростях, а тем более делать векторное управление из-за фазовых сдвигов становиться невозможно. С этой точки зрения пытаться реализовать векторное управление сразу 4-я движками на маломощном софт процессоре эт смелое решение.  Скажем по векторному алгоритму MK60 на 120 МГц с минимальным запасом по ресурсам времени может управлять только 2-мя движками с ШИМ-ом на 16 КГц.
|
|
|
|
|
Aug 30 2013, 06:11
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата У шаговых и BLDC как минимум разные схемы драйверов. Шаговые не чувствительны к направлению тока в обмотке. Да это то понятно. Цитата а тем более делать векторное управление из-за фазовых сдвигов становиться невозможно. Фазовых сдвигов чего? ни ток, ни напряжение не меряю, у меня колесико с рисками и энкодер для контроля положения. Цитата С этой точки зрения пытаться реализовать векторное управление сразу 4-я движками на маломощном софт процессоре эт смелое решение.  С энкодерами то че бы и нет, тем более много можно перевести в аппаратную плоскость.
|
|
|
|
|
Aug 31 2013, 17:32
|

Местный
  
Группа: Участник
Сообщений: 265
Регистрация: 19-01-12
Пользователь №: 69 736

|
Цитата каким образом связать переменную процесса (положение ротора) с ДВУМЯ управляемыми величинами - частотой синуса и амплитудой? Делайте так: Никаких ШИМов тут не надо. Два токовых релейных контура по дву фазам, с частотами коммутации несколько килогерц, теперь вы сможете задать вектор тока в системе координат 120 градусов. Далее с помощью сигнала с датчика положения и функции sin ориентируете вектор тока относительно ротора так, чтобы был максимальный момент (фазу вектора нужно будет настроить). Теперь вы сможете задавать амплитуду вектора тока, и она будет пропорциональна моменту на роторе. С теорией регулирования вы знакомы, тогда дальше просто - поверх делаем скоростной контур, а поверх него - позиционный. Конечно это в двух словах - на практике очень много подводных камней.
|
|
|
|
|
Aug 31 2013, 18:46
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата(Elsystems @ Aug 31 2013, 21:32)  Делайте так: Никаких ШИМов тут не надо. Два токовых релейных контура по дву фазам, с частотами коммутации несколько килогерц, теперь вы сможете задать вектор тока в системе координат 120 градусов. Далее с помощью сигнала с датчика положения и функции sin ориентируете вектор тока относительно ротора так, чтобы был максимальный момент (фазу вектора нужно будет настроить). Теперь вы сможете задавать амплитуду вектора тока, и она будет пропорциональна моменту на роторе. С теорией регулирования вы знакомы, тогда дальше просто - поверх делаем скоростной контур, а поверх него - позиционный. Конечно это в двух словах - на практике очень много подводных камней. Согласен, прочитал статейку микрочипа - там так же советуют - делаем фиксированное опережение угла для достижения максимального момента, угол опережения двигаем синхронно с ротором (следя за его положением по энкодеру), а управляем только посредством амплитуды синуса. Теперь возник еще вопрос. Посмотрел как слеплены драйверы (рисунок, упрощенный естественно) и задумался как таким управлять? Все нижние ключи управляются одной линией, верхние - раздельными. Получается в рабочем режиме нижние драйверы все должны быть включены, а верхние шимятся на положительной полуволне синуса, а на отрицательной что - отключаются и все? Так что ли? Стоп! Включив нижний драйвер, нам верхний то вообще нельзя включать - сквознячок будет...Как такое вообще работало тогда? Цитата alexPec то, что применяете ПЛИС это правильно, но зачем для управления МК, на ПЛИСе все функции можно сделать и лучше. Только я бы делал на CPLD и по отдельности каждый драйвер. Так МК то в той же ПЛИС и реализован, NIOS, для гибкости внешнего интерфейса и т.д.
Эскизы прикрепленных изображений
|
|
|
|
|
Sep 1 2013, 04:15
|

Местный
  
Группа: Участник
Сообщений: 265
Регистрация: 19-01-12
Пользователь №: 69 736

|
Цитата Все нижние ключи управляются одной линией, верхние - раздельными. Разделяйте все затворы. На вашем рисунке глупость какая то. Да, и когда вектор тока будете выставлять по ротору, тут есть одна хитрость - нужно учесть количество пар полюсов двигателя!
|
|
|
|
|
Sep 1 2013, 11:32
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(alexPec @ Aug 31 2013, 21:46)  Так МК то в той же ПЛИС и реализован, NIOS, для гибкости внешнего интерфейса и т.д. Посмотрел я что предлагает Altera в своем "Drive-On-Chip Reference Design" Да, поначалу смотрится впечатляюще, векторное управление 4-я сервоприводами одновременно! Но копнув глубже и разобравшись что у них сделано в железе, а что софтварно, возникает непреодолимое чувство, что это просто очередной маркетинговый развод. В железе сделаны только примитивный парк и кларк. Так их и Cortex щелкает своим float-point ускорителем за микросекунды. Как большое достижение Altera представляет ШИМ модуляторы. Так их 4-е штуки есть и в гораздо более дешевом MK60. Далее как достижение представлена синхронизация АЦП с ШИМ. Но вот у MK60 есть не только эта синхронизация и 16-и битный АЦП с аппаратной фильтрацией но и еще и PGA. Потом пространственно-векторная модуляция в альтере сделана программно! Все каналы PI тоже программные и на ARM9 или NIOS, которые заведомо тормознее Cortex-M4. Не удивительно, что у них частота модуляции выбрана 16 КГц. И как последний гвоздь, связывающий софт базируется на RTOS uCOS-II, которая в принципе устарела, бесплатная только в демках, и для коммерческого проекта неоправданно дорогая. Это при том, что для MK60 библиотеки управления движком идут с совершенно бесплатной и более мощной RTOS MQX.
|
|
|
|
|
Sep 1 2013, 16:39
|
Профессионал
    
Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968

|
Цитата Посмотрел я что предлагает Altera в своем "Drive-On-Chip Reference Design"
Да, поначалу смотрится впечатляюще, векторное управление 4-я сервоприводами одновременно! Честно говоря, даже не знал что оно такое есть. Спасибо за информацию! Я как-то не люблю использовать библиотеки, операционки, и стараюсь заимствовать по минимуму. В плис у меня будет СВОЙ ШИМ, аппаратный формирователь синуса, аппаратное слежение за энкодерами и аппаратное опережение угла. Т.е. векторное (так как я это понимаю) управление мне не нужно - я не оцифровываю токи, напряжения, не сравниваю фазы и т.д. На программу ляжет нагрузка только реализовать 4 PID-регулятора, причем с железа я буду считывать рассогласование, а управлять буду только амплитудой синусов. Как мне кажется, для такой задачи кортексы уж очень избыточно. Цитата Но вот у MK60 есть не только эта синхронизация и 16-и битный АЦП с аппаратной фильтрацией но и еще и PGA. Мне бы такие МК лет 5-6 назад, когда частотник лепил. Для асинхронных частотников конечно самое то.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|