Easyelectronics.ru

Электроника для всех
Текущее время: 21 окт 2018, 13:20

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 87 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Управление BLDC
СообщениеДобавлено: 16 фев 2016, 21:05 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
На этом форуме почему-то еще нет долгоиграющей темы про BLDC. Начну со своего контроллера, если у кого-то что есть, можете постить сюда, буду рад увидеть.

Копаю тему уже наверно года 4. Начинал с работы по переходу ЭДС через ноль на отключенной обмотке как это сделано в модельных ESC. Сделал несколько платок, ни одна нормально не работала, некоторые не успел проверить даже. В итоге отказался от использования 6-шагового переключения когда один терминал отключен и на нем измеряется ЭДС. Начал разборы с векторным управлением или FOC.

Не меньше года занимался только численным моделированием. Теперь только векторное управление, все три ноги моста всегда в работе, измеряются токи в двух фазах. Пробовал разные модификации фильтра Калмана, некоторые простые методы для определения положения ротора. Сделал силовую плату-прототип который цепляется к stm32f4discovery. На нем все заработало почти как на численной модели.

Дальше дело идет медленно, много других дел, и всякие задержки. Начал формировать итоговую схему и платы, то есть комплект из двух плат. Первая ревизия пошла в производство, а я тем временем уже нашел и исправил много недоработок. И еще много исправлю. Сейчас планируется следующее:

Напряжение питания: 5-48в
Ток фазный максимальный: 40А
Датчик тока: эффект Холла (ACSxxx)
Контроллер: stm32f405rg
Интерфейсы: USART, CAN, энкодер, выводы ADC/DAC, SWD, цветные LED
Схема искрогашения: не будет
Защита от неверной полярности: не будет
Защита от превышения тока: только софтверная, отклик от 10 мкс
Размеры: 75x40x20 мм

Больше всего вопросов с интерфейсами, добавляю все для чего найду место, но основные лишь два первых. Теперь список по софтверной части, это уже отработано на прототипе.

* Векторное управление, field weakening, регенеративное торможением получаются сами собой.
* Схема ШИМ с уменьшенным (на треть) количеством переключений.
* Неплохой как мне кажется наблюдатель, устойчивый к неопределенности в параметрах двигателя и внешним возмущениям.
* Метод инжекции высокой частоты, для определения положения ротора когда он неподвижен.
* Контуры управления скоростью и положением.
* Интерфейс командной строки доступен через USART.
* Полуавтоматическая идентификация параметров двигателя.
* На частоте 60 кГц загрузка проца ~50%

Многое еще планируется сделать, но пока отложено до готовности платы.

* Компенсация несинусоидальной формы ЭДС (для высоких скоростей)
* Компенсация связанная с HFI (для низкой скорости)
* Компенсация cogging torque (для низкой скорости)
* Компенсация dead time
* Протокол для CAN
* Использование не по назначению, как Buck/Boost преобразователь например

Свежайшие схемы на сегодня прикрепляю в pdf. Исходники софта и проекты плат в KiCad в репозиториях, ссылки ниже. Там же по ссылке есть немного видео как оно работает.

https://bitbucket.org/amaora/phobia
https://bitbucket.org/amaora/phobia-pcb

Вложение:
Комментарий к файлу: Силовая плата
power.pdf [48.75 Кб]
Скачиваний: 463

Вложение:
Комментарий к файлу: Управляющая плата
control.pdf [98.46 Кб]
Скачиваний: 390


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 17 фев 2016, 00:20 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 5007
Вообще говоря, тема интересная. Задам очевидный вопрос - портирование на F1 (103) возможно? С учетом снижения частоты обсчета.

Что-бы поддержать разговор ...
Что до меня, то я делал (или делаю? )) моторчик по технологии 6-step. Моделирование и практическое измерение КПД показало, что синус для высоких скоростей вращения не нужен, а точнее - вреден. Я работаю на высоких оборотах, из низких меня интересует лишь устойчивый старт, причем без нагрузки. Грубо говоря, мне нужен "вентилятор". Я ни коем образом не ставлю под сомнение нужность векторного управления, но в тех приложениях, где оно надо - низкоскоростной привод, старт-стопный режим, мотор под внешним усилием, опять же, с низкой скоростью. Синусо-фобом я не являюсь )), просто для моего приложения синус вреден. Причины две - прямоугольная характеристика магнитного поля и форма тока обмотки при высокой частоте (высоких оборотах).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 17 фев 2016, 13:38 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
На F1 портировать возможно но очень непросто, надо переходить к целым числам. Есть функции с перемножением переменных между собой, есть деления и корни в некоторых местах. Снижение частоты обсчета ограничит максимальную скорость двигателя и минимальную индуктивность обмоток. Такого в планах у меня нет.

Интересно как оценивали/измеряли КПД на разных схемах управления. Да и надо сказать, что векторное управление не обязательно синус, можно подмешать все, что угодно. Именно это я имел ввиду в пункте списка "Компенсация несинусоидальной формы ЭДС". На высокой скорости (>40 т.об./мин.) сейчас ток теряет свою синусоидальность из-за неидеальности формы ЭДС. Я думаю, что можно оценить эту неидеальность и скомпенсировать. А если будет нужно и задать оптимальную форму тока а не синус. Но мне кажется выигрыш будет небольшим.

На векторное управления перешел из-за того, что мне проще сделать наблюдатель по току, чем ловить переходы через ноль. И возможностей это дает больше. В некоторых случаях даже температуру двигателя получается оценивать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 17 фев 2016, 14:59 
Старожил

Зарегистрирован: 11 фев 2013, 01:54
Сообщения: 344
У ST есть готовые решения - не катит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 17 фев 2016, 22:21 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
Цитата:
У ST есть готовые решения - не катит?


У них многое не по моему сделано, как и у всех остальных кто дает готовые библиотеки для управления моторами. Еще и код закрытый, ни посмотреть ни исправить, мне привязка к ST не нужна, будет другой контроллер лучше подходить перейду на другой.

Пришли платы, а деталек пока нет.

Вложение:
s6.jpg
s6.jpg [ 128.64 Кб | Просмотров: 10442 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 04 мар 2016, 20:52 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
Тяжело паяется многослойная плата, приходится греть феном. Не знаю даст ли заметный эффект замена инструмента, или лучше добавить нижний подогрев. Пока фольга всего лишь 35 мкм, четыре слоя.

Вложение:
c2.jpg
c2.jpg [ 158.56 Кб | Просмотров: 10319 ]

Вложение:
c1.jpg
c1.jpg [ 153.57 Кб | Просмотров: 10319 ]


Проверил только функционирование преобразователей, 5в, 3.3в, 12в.

На фотография удивительно хорошо видно, то чего не замечаю живьем. Вот пока эту фотку не сделал я даже не видел границ маски, насколько она смещена.

Вложение:
reit.jpg
reit.jpg [ 162.52 Кб | Просмотров: 10319 ]


И получается все же просторно, надо будет ужиматься сильнее. А здесь есть вопросы, например про переходные отверстия в площадках, как их надо делать, чтобы при пайке элементы не "вставали вертикально" и т.п.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 30 мар 2016, 22:35 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
Проверил (уже давно) первую ревизию которая была на фото. При питании 12в и токах до 10А претензий к формам напряжения в силовой части у меня нет. Есть небольшой нагрев драйверов при частоте 60кГц, независимо от тока. Надо делать более жесткие тесты.

Во второй ревизии все таки решил избавиться от стоящих вертикально электролитов, оставил три и положил как в ESC, чтобы уменьшить высоту. Иначе как-то плохо будет в коптерном применении.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 01 апр 2016, 16:23 
Старожил

Зарегистрирован: 24 июн 2011, 14:05
Сообщения: 287
Откуда: Новочеркасск
Посмотрите у TI ихнее instraSpin, помоему много решений готовых и код открыт, ну там не только BLDC.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 01 апр 2016, 17:42 
Старожил
Аватара пользователя

Зарегистрирован: 28 мар 2012, 10:33
Сообщения: 1147
Откуда: Сочи
amaora писал(а):
Тяжело паяется многослойная плата, приходится греть феном. Не знаю даст ли заметный эффект замена инструмента, или лучше добавить нижний подогрев. Пока фольга всего лишь 35 мкм, четыре слоя.


Нижний подогрев помогает хорошо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 01 апр 2016, 19:14 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
ELEKTROS писал(а):
Посмотрите у TI ихнее instraSpin, помоему много решений готовых и код открыт, ну там не только BLDC.

Код у них не открытый, даже бинаря нет, вшито в ROM. Зачем оно мне сейчас, когда уже почти все работает?

Сделал сегодня тесты на эффективность, мотор с винтом на весах, направление такое, чтобы поток воздуха был направлен вверх. Намерил ~10 г/Ватт при тяге 430 г, проп 1245, потребление 42 Ватт, близко к тому, что у всех получается. То есть можно использовать контроллер для привода винта уже сейчас. Но в алгоритмах управления есть еще много мест для улучшений.

Большее, что мне сейчас не нравится, это трассировка плат. Хочется уменьшить размер, или хотя бы высоту и вывести провода на мотор в одном направлении с проводами питания, чтобы можно было обтягивать плату в термоусадку. Но не получается. Будет интересно, могу сделать картинки плат, если в KiCad смотреть не хочется.

Вложение:
pmcr1.jpg
pmcr1.jpg [ 75.59 Кб | Просмотров: 10002 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 01 апр 2016, 19:24 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 5007
Если "дотащите" схему до OrCAD, я могу посмотреть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 01 апр 2016, 21:24 
Старожил
Аватара пользователя

Зарегистрирован: 30 мар 2015, 23:56
Сообщения: 524
amaora писал(а):
На этом форуме почему-то еще нет долгоиграющей темы про BLDC. Начну со своего контроллера, если у кого-то что есть, можете постить сюда, буду рад увидеть.


Доброе время суток.
По исходникам трудно наскоком понять структуру контуров управления движком. Слишком много перекрёстных вызовов подпрограмм.
Если вас не затруднит - нарисуйте плиз блочную схему контуров управления, можно даже с названиями подпрограмм или отвечающих за это дело структур.

_________________
Потоковая OS


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 01 апр 2016, 21:31 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
Нет, с другими CAD не имею возможности/желания работать. Сделал PNG картинки слоев силовой платы, то что сейчас является второй ревизией, в архиве.

Вложение:
rev2c.tgz [235.55 Кб]
Скачиваний: 148


И фото первой ревизии, чтобы было понятнее как выглядит.

Вложение:
s1rev1.jpg
s1rev1.jpg [ 68.33 Кб | Просмотров: 9969 ]

Вложение:
s2rev1.jpg
s2rev1.jpg [ 63.46 Кб | Просмотров: 9969 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 01 апр 2016, 22:26 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
AVI-crak писал(а):
Доброе время суток.
По исходникам трудно наскоком понять структуру контуров управления движком. Слишком много перекрёстных вызовов подпрограмм.
Если вас не затруднит - нарисуйте плиз блочную схему контуров управления, можно даже с названиями подпрограмм или отвечающих за это дело структур.


Упрощенно, вот так, здесь только базовый наблюдатель и контур тока без деталей. Преобразования систем координат (dq/xy и т.п.) в коде не выделяются.

Вложение:
b1.jpg
b1.jpg [ 74.42 Кб | Просмотров: 9957 ]


Серво-контур строится поверх этого, на вход разность скорости/положения из вектора состояния X и заданной уставки, выход на вход контура тока. Есть еще автомат состояний, но его функция вспомогательна, во время работы он находится в состоянии IDLE. Схема обычная, ничего существенного нового я не сделал, это же можно найти в статьях/книгах, не всегда понятно только.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 01 апр 2016, 22:56 
Старожил
Аватара пользователя

Зарегистрирован: 30 мар 2015, 23:56
Сообщения: 524
В серии роликов есть момент когда намеренно сбивается стартовое значение фазы движка, сразу на несколько оборотов якоря - и последующий возврат. Теперь понятны акустические звуки от движка на средних оборотах - циклическое переполнение числового значения положения ротора.

Кстати, на целочисленной математике ещё проще получается, но жирно - таблицы большие.

_________________
Потоковая OS


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 01 апр 2016, 23:17 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
AVI-crak писал(а):
В серии роликов есть момент когда намеренно сбивается стартовое значение фазы движка, сразу на несколько оборотов якоря - и последующий возврат. Теперь понятны акустические звуки от движка на средних оборотах - циклическое переполнение числового значения положения ротора.

Кстати, на целочисленной математике ещё проще получается, но жирно - таблицы большие.


Не так, значение положения ротора не переполняется, хранятся только cos/sin угла во flaot, переполнятся нечему. Звуки от метода HFI, а громкость пульсирует синхронно вращению ротора из-за особенностей магнитной системы статора. Витки обмоток звенят с разной громкостью в зависимости от направления вектора тока.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 02 апр 2016, 17:46 
Старожил

Зарегистрирован: 16 авг 2012, 23:27
Сообщения: 1731
Откуда: Москва
А STM32F3 для этого регулятора будет достаточно? По железу кажется никаких специфических вещей не используется, всё довольно стандартно, а по вычислительным ресурсам сходу оценить не могу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 02 апр 2016, 20:13 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
Сейчас загрузка ~60%, при тактовой 168 МГц и частоте ШИМ 60 кГц. Если сбавить частоту ШИМ до 40-20 кГц то хватит 72 МГц.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 07 апр 2016, 22:48 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
Вот так работает, при управлении током проблем почти никаких. Попробовал до 19А, начинает немного греться на таком токе. Думаю по тепловыделению предел будет 40А, как и предполагал, только вот датчики до 25А.

Со скоростью хуже, тяжело настроить контур, проблемы от зашумленного сигнала скорости из наблюдателя. Но при управлении скоростью отклик естественно намного лучше, и автоматически получается регенерация при снижении скорости. Только у меня она отключена, блок питания не выдерживает чтобы ток шел в него.

Изображение Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 07 апр 2016, 23:00 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 5007
"Только у меня она отключена, блок питания не выдерживает чтобы ток шел в него."
Возьмите галогенку и подключите как фоновая нагрузка на БП. Тогда БП будет спокойно относится к реверсу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 25 апр 2016, 18:19 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
Графики скорости и тока, мотор с винтом тот же, что был на видео, только теперь сняты ограничения по мощности регенерации. Регулятор пропорциональный, поэтому есть статическая ошибка, до 3000 об/мин не достал.

Вложение:
s1.png
s1.png [ 3.16 Кб | Просмотров: 9000 ]

Вложение:
s2.png
s2.png [ 3.09 Кб | Просмотров: 9000 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 05 сен 2016, 22:50 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 20:18
Сообщения: 473
Добавил freertos, или как правильно сказать, перешел на ртос? Но основная работа в прерываниях, там и останется, задачки только для вспомогательных дел. Теперь есть замер времени загрузки процессора, который учитывает все прерывания и задачи. Начал делать сохранение настроек, параметров мотора во флеш.

Дальше пока плана действий нет, надо наверно заняться железной частью. Делал недавно тесты датчиков тока ACS711.

1. Реагируют на положение относительно вектора силы тяжести, выходной сигнал уходит на ~100 мА при повороте на 90 градусов. Вертикальные колебания без изменения углов тоже влияют.

2. Рядом расположенные (не дальше 10 мм от корпуса) провода с током в несколько А могут вносить ~20-50 мА погрешности. Если беспокоится о перекрестных зависимостях датчиков из-за этого, то можно откалибровать, полагаю.

Но лучше ничего подобрать не могу. Шунты с усилителями портят трассировку силовой части, либо требуют громоздкой развязки если включать их в разрыв фаз а не по земле. Есть другие датчики на эффекте Холла, но они огромных размеров, либо аналогичные по характеристикам.

--

Тест на максимальное ускорение, с регенерацией, включайте 60 fps. Записывал давно.

Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 06 сен 2016, 03:04 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 5007
Есть еще способ измерения тока - по падению на ключе. Я потихоньку разрабатываю это направление.
Этот прием более шумен, но у него нет очевидных недостатков ACS7 - магниточувствительности и отвратительной временнОй термостабильности, когда сброс тока приводит к (относительно) кратковременному колебательному процессу.Т.е. идет 5А, набросил до 9А - показывает 9. Если ток сбросить до 5А, то будет показывать как 2А-6А-5А. Особенно противно, когда сброс до 0А, тогда появляется псевдо-реверс и софт дуреет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 06 сен 2016, 08:00 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 2412
amaora писал(а):
Но лучше ничего подобрать не могу. Шунты с усилителями портят трассировку силовой части, либо требуют громоздкой развязки если включать их в разрыв фаз а не по земле.

Возможно стоит присмотреться вот к этой схеме.

P.S. есть целое направление, которое мало кто копает, насколько я могу судить - управление движком для станка. особенно в сочетании с внешним датчиком положения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление BLDC
СообщениеДобавлено: 06 сен 2016, 14:12 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2011, 11:24
Сообщения: 3763
Откуда: г. Липецк
evsi писал(а):
...P.S. есть целое направление, которое мало кто копает, насколько я могу судить - управление движком для станка. особенно в сочетании с внешним датчиком положения.

В движках механизмов станков, требующих взаимной координации, применяются трехфазные "brushless" движки со специализированными инверторами. "Brushless" движок это специализированный BLDC, как правило со сложным оптическим энкодером. Стоит он негуманно, как и парный ему инвертор, входы и firmware которого заточены только под "brushless".
Сейчас все большую популярность набирают дроны, если их начнут делать китайцы в достаточно больших масштабах, думаю цена на "brushless" и и парный ему инвертор должна упасть.
Ну и конечно стоимость двигателя и инвертора зависит от мощности.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 87 ]  На страницу 1, 2, 3, 4  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB