Реклама: Контроллер BLDC электродвигателя на базе платы гироскутера, прошивка, исходник.

 

Хочешь стать куратором любимой темы?

* Комментарии к новостям

7. Убрать нижний порог по току на контролере Headway-5 (Микроэлектроника) от ernis727 (4.06.2023 в 18:31)8. Обсуждаем: моноколеса Ninebot (Моноколёса Ninebot) от Dael75 (4.06.2023 в 18:30)9. Смазка редукторного мотор колеса (Электровелосипеды) от aviator79 (4.06.2023 в 18:11)10. Переделка ВАЗ 2115 в гибрид. (Гибридный электротранспорт) от бурелом (4.06.2023 в 18:06)11. Клуб 2х2 (Электровелосипеды) от Кузьма (4.06.2023 в 18:03)12. Какая разнитца между датчиком хола 43f и 41f ? И доп. вопрос. (Электровелосипеды) от Артьом (4.06.2023 в 17:37)

Прочитано 4357 раз

0 Пользователи и 1 Гость просматривают эту тему.

07 Фев 2021 в 16:00
Прочитано 4357 раз
Оффлайн

kor

Сообщений: 2073
Написал программу управления  BLDC мотором, используя примеры с сайта:
ссылка
ссылка
 Проект сделан в CooCox 1.7.8 , процессор STM32F103RBT6 , сам контроллер-плата гироскутера (трехплатный вариант). Для управления моторколесом от гироскутера и другими подобными, имеющими такие-же сигналы и градусность с датчиков холлов. Управление пока только одним мотором (левым, где спикер).
Скрытый текст
Тип управления -блочное пушпульное ( в активной фазе ключуются шим-ом оба транзистора (верхний и нижний) , с модуляцией шим-а внутри блока (к концу блока заполнение шим уменьшается, чтобы убирать "трамплины" фазного тока возникающие в конце блока при обычной блочной коммутации, скрестил блочную и синусную коммутацию).  Программа содержит много комментариев.
  Имеется:
-Накат при полном сбросе курка газа.
-ПИ ограничитель фазного тока. (Честного измерителя фазного тока в схеме гироскутера нет, поэтому он расчитывается из среднего батарейного тока, делением на текущее заполнение ШИМ. )
  Пока нет:
-Защиты от обрыва земляного провода от курка газа.
-нет блокировки от включения при накрученном курке газа.
-нет контроля за напряжением батареи.

Как позже оказалось, в программе много глюков, поэтому она годится лишь как вариант для ознакомления. Далее есть более рабочий вариант.
       Контроллер включается замыканием тумблера (подключается к разъему вместо штатной кнопки включения).
Выход с курка газа через дополнительный токоограничивающий резистор 1...10к, подключается к разъему для гироплаты (около спикера) к 2-му пину (синий провод)(для ориентира первый пин красный +14в, четвертый пин черный общий минус). К нему-же припаивается конденсатор 0,1 мкф, второй вывод конденсатора припаивается на общий ("-"). Максимальное входное напряжение 3.3 в.
+5в и - для питания курка газа можно взять с разъема для Холлов.
  Предлагаю испытать и "допилить" программу до необходимых "хотелок".
Смены вращения мотора тоже пока нет, пока только перекоммутацией проводов от мотора и от Холлов, кто знает какие менять напишите.
Тут говорится что надо на разъеме холлов на моторе поменять местами желтый провод с зеленым, и фазные провода поменять местами синий с зеленым.
Скрытый текст
Фото платы с подключениями
Скрытый текст

Исходник и прошивка (первый неудачный вариант 00 )прилагается:
  Величины ограничения фазного тока при тяге и рекуперации, уровни курка газа, скорость замедления при частичном сбросе газа, можно изменять в файле pmsm.h
--------------------------------
Второй вариант проекта и прошивки (01) простая блочная коммутация с накатом, шимятся только верхние ключи.
  Настраивается:
Скрытый текст
батарейный и фазный токи, нижний порог отключения по напряжению батареи, времена отклика на курок газа, диапазон напряжения с курка газа.
  При аварийном сверхтоке, проседании напряжения батареи ниже порога, а также при включении с не нулевым положением курка газа, срабатывает триггерная защита с загоранием светодиода на плате. Выход из  нее только отключением питания.
  Накат получается автоматически (ибо коммутация односторонняя, не пушпульная, поэтому 3 нижних транзистора будут греться сильнее при большой нагрузке с малыми оборотами).
  Тормоза нет.
Если кто будет тестить, пишите замечания предложения.
Пороект исходник в CooCox и прошивка прилагаются ( вариант 01)
 
« Последнее редактирование: 06 Апр 2021 в 12:21 от kor »


07 Фев 2021 в 18:05
Ответ #1
Оффлайн

i

Администратор Иваново Сообщений: 4205
Отличное желание поделиться наработками. Если это выложить на github.com или на bitbucket.org, или на любой другой ресурс для обмена исходниками и совместной работы над проектом, то вполне возможно обзавестись соавторами... да и самому будет удобнее.


07 Фев 2021 в 18:43
Ответ #2
Оффлайн

kor

Сообщений: 2073
Отличное желание поделиться наработками. Если это выложить на github.com или на bitbucket.org
Попробую, просто пока не понял как это делается.


07 Фев 2021 в 18:47
Ответ #3
Оффлайн

Pau62

Россия, Рязань Сообщений: 1955
Приветствую.
А с какой целью именно так:
в активной фазе ключуются шим-ом оба транзистора (верхний и нижний)
Поэтому и накат половинчатый.
Меня привлекает вот такое управление:
Скрытый текст





07 Фев 2021 в 19:01
Ответ #4
Оффлайн

kor

Сообщений: 2073
Поэтому и накат половинчатый.
Меня привлекает вот такое управление:
То что у вас на картинке это чистый синус. Я исходно так и делал, все полумосты ключуются пушпульно. Я отказался от синуса ибо увидел в нем только проблемы и недостатки (профита в моменте нет, нужно точно держать оптимальную фазу, эдс мотора должна быть синусоидальной, иначе появляются дополнительные потери (на синусной прошивке контроллер потребляет больше тока на холостом ходу чем блочный при тех- же оборотах.). Поэтому синусное управление я себе не хочу, хочу чтобы ежемоментно работали только 2-е фазы, а треья была отключена (висела в воздухе), тогда никаких проблем с "перетекающими" токами между фазными обмотками и связанными с ними доп потерями.  Жужжание блочного уменьшил с помощью модуляции шима, заодно и форма фазного тока улучшилась.
  По поводу половинчатого наката, накат сейчас полный , при полностью сброшеном газе все транзисторы запираются.
Вот картинка, исходно выдавался пушпульный синус (зеленая картинка). Теперь пушпульные блоки с модуляцией (красным)
Скрытый текст
Пушпульная коммутация для того чтобы не греть обратные диоды внутри транзисторов.
« Последнее редактирование: 07 Фев 2021 в 19:13 от kor »


07 Фев 2021 в 19:14
Ответ #5
Оффлайн

Pau62

Россия, Рязань Сообщений: 1955
Я исходно так и делал, все полумосты ключуются пушпульно
Я просто не обяснил.
По моей ( ну в общем не совсем моей)  роль нижних ключей - только тянуть к "-".
тогда накат будет и при промежуточном газе.
А в каком режиме общий нагрев будет больше - я не знаю пока.


07 Фев 2021 в 19:15
Ответ #6
Оффлайн

TRO

Украина, г. Запорожье. Сообщений: 8685
(на синусной прошивке контроллер потребляет больше тока на холостом ходу чем блочный при тех- же оборотах.).
На правильном синусе должно быть все наоборот, так как синусное повторяет противоЭДС обмоток. И если синус хуже блочного, то дело не в синусе, а в конкретной реализации.


07 Фев 2021 в 19:23
Ответ #7
Онлайн

edw123

ПодМосква Сообщений: 24373
То что у вас на картинке это чистый синус. Я исходно так и делал, ...
 Пушпульная коммутация для того чтобы не греть обратные диоды внутри транзисторов.
Может не совсем грамотно вопрос задаю, но это ведь не векторная модель управления?


07 Фев 2021 в 19:24
Ответ #8
Оффлайн

kor

Сообщений: 2073
По моей ( ну в общем не совсем моей)  роль нижних ключей - только тянуть к "-".
тогда накат будет и при промежуточном газе.
  Накат при промежуточном газе будет  если полумосты ключевать не пушпульно а "односторонне", сбрасывать ток самоиндукции через внутренние диоды. Так и сделано в простых китайских контроллерах, не пушпульное ключевание а только верхние ( или нижние) транзисторы ключуются, но я не хочу так делать, не хочу греть диоды.
 Рассматривал такой вариант коммутации: пока фазный ток маленький делается "односторонняя" коммутация, диоды сильно греться не будут. Как только фазный ток превышает некий порог-переключаемся на пушпульную коммутацию. Тогда при любом среднем сборсе газа будет полный накат, ибо ток уменьшится и коммутация переключится на "одностороннюю". Но пока не дошли руки до написания такого варианта програмы.
  Сейчас сделано так, что при частичном резком сбросе газа шим  сбрасывается не сазу а постепенно плавно 2-3 секунды (время задается в программе)  и происходит плавное замедление (подобно как сделано в эл самокате Сяоми).
  Реально проверить работу контроллера только не на чем сейчас.
« Последнее редактирование: 08 Фев 2021 в 16:30 от kor »


07 Фев 2021 в 19:29
Ответ #9
Оффлайн

kor

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


07 Фев 2021 в 19:44
Ответ #10
Оффлайн

Pau62

Россия, Рязань Сообщений: 1955
Ну форму ЭДС легко посмотреть. У гироскутерного я не могу на глаз увидеть отличие от моей картинки.


07 Фев 2021 в 20:04
Ответ #11
Оффлайн

kor

Сообщений: 2073
Ну форму ЭДС легко посмотреть. У гироскутерного я не могу на глаз увидеть отличие от моей картинки.
Есть начатый проект синусный с коммутацией как на вашей картинке (верблюжьи горбы), тоже по примерам с Авислаб, я его забросил (ток потребления на холостых был 2 А, против 0,58 А у блочного. Мне подсказывали что фазу надо подстроить точнее,  но я переключился на блочный. Будет время проверю этот синусный проект на работоспособность на железе и выложу, может вы допилите.


08 Фев 2021 в 11:39
Ответ #12
Оффлайн

kor

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


08 Фев 2021 в 11:51
Ответ #13
Онлайн

edw123

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


08 Фев 2021 в 16:10
Ответ #14
Онлайн

Sonar

Санкт-Петербург, Приморский Сообщений: 1735
Как только фазный ток превышает некий порог-переключаемся на пушпульную коммутацию. Тогда при любом среднем сборсе газа будет полный накат, ибо ток уменьшится и коммутация переключится на "одностороннюю".
Только не забудьте про запаздывание измерения тока относительно поданой команды на уменьшение газа. Иначе могут быть заметные рывки. Имею ввиду тот момент, когда измеренное значение тока ещё выше некоего порога, при котором происходит переключение на односторонний ШИМ, а заданный уровень газа уже ниже ЭДС двигателя или вообще нулевой. Это длится очень короткое время, но лучше от этого сразу избавиться :) Я, кстати, в своем контроллере для куги, тоже использую этот метод переключения между двумя вариантами ШИМа, но ориентируясь на батарейный ток.
И ещё. Есть интересный момент, как люди борятся с шумом межфазного переключения при блочной коммутации:
Контроллер BLDC электродвигателя на базе платы гироскутера, прошивка, исходник.
Может есть смысл поиграться с этим начальным импульсом? Я его использую, он реально помогает, но не так сильно, как хотелось бы.


08 Фев 2021 в 20:04
Ответ #15
Оффлайн

kor

Сообщений: 2073
Есть начатый проект синусный с коммутацией как на вашей картинке (верблюжьи горбы), тоже по примерам с Авислаб
Вот его исходник, там только вращение вперед , ток не ограничивается. И три провода обмоток мотора надо подключать к правым выходам на плате (ибо ТИМ1 используется в программе, не менял его на ТИМ8 который работает на левые выходы.) а кабель от холлов оставить на левом разъеме.
 Оказалось, как мне и говорил Sonar, в примере с Авислаб исходно неверные данные в массиве с точками коррекции фазы. После корректировки фазы (новые значения в Phase correction table в pmsm.с , пришлось сдвинуть на четверть времени блока, на 8...9 ) ток холостого хода упал до 0,62..0,64 А).
( У блочного 0,58-0,6 А ток хх.)
 
« Последнее редактирование: 09 Фев 2021 в 12:43 от kor »


09 Фев 2021 в 13:35
Ответ #16
Оффлайн

kor

Сообщений: 2073
И ещё. Есть интересный момент, как люди борятся с шумом межфазного переключения при блочной коммутации:
Как видно по схеме их токомера, они измеряют мгновенное значение тока (вход токомера не заинтегрирован),  поэтому видимо он ловит все шумы и всплески тока. У вас в схеме как я помню нечто подобное но с использованием пикового детектора на диоде после ОУ.
 У гирскутерной же схемы токомер сильно заинтегрирован (стоит RC цепь на входе), поэтому он фактически измеряет средний батарейный ток и не чувствителен к шумам и коротким всплескам. Поэтому вроде-как нет нужды бороться с шумами переключений.
  Далее фазный ток из среднего батарейного расчитывается путем деления на текущее заполнение ШИМ. Медлительность такого токомера компенсируется сглаживанием приходящего с курка газа сигнала, изменение шим программмой всегда происходит "медленно, плавно"  даже при резких перекидках курка газа.
Скрытый текст


09 Фев 2021 в 14:30
Ответ #17
Оффлайн

Pau62

Россия, Рязань Сообщений: 1955
Не, у гирика фазный ток измеряется на сопротивлении каналов открытых нижних мосфетов.
Именно по этому у забугорных подельщиков макс. значение ШИМ ограничено, ну там они еще косячат в том смысле, что все измерения АЦП происходят при открытых нижних фетах. Поэтому их прошивки недодают мощи и скорости % на 15.
А, ну должен дополнить, что на каналах фетов истинного значения тока конечно не померить. Да оно им и не надо - для векторного управления и относительные значения годятся, да их можно еще приводить к боле - мене истинным на основе батарейного тока.
« Последнее редактирование: 09 Фев 2021 в 15:15 от Pau62 »


 

Контроллер мощного электродвигателя 3,5квт от станка ЧПУ с датчиками

Автор MasterРаздел Наше творчество

Ответов: 2
Просмотров: 1447
Последний ответ 07 Фев 2021 в 20:09
от yurgen
Контроллер для BLDC двигателя HPM.05K-4Q 5кВт 48в

Автор zelimxРаздел Куплю

Ответов: 0
Просмотров: 875
Последний ответ 05 Июл 2018 в 11:08
от zelimx
Попытка создать бездатчиковый BLDC контроллер из подручного хлама

Автор dranduletchikРаздел Микроэлектроника

Ответов: 19
Просмотров: 2567
Последний ответ 11 Апр 2020 в 05:11
от Fatv
Как прошить контроллер BLDC?

Автор KAZUZAРаздел Микроэлектроника

Ответов: 2
Просмотров: 235
Последний ответ 15 Апр 2023 в 12:41
от edw123
неспеша делаю BLDC и контроллер к нему

Автор GostyaРаздел Электродвигатели и генераторы

Ответов: 28
Просмотров: 4606
Последний ответ 17 Авг 2015 в 20:52
от Gostya