Контроллер bldc мотора своими руками

Добавил пользователь Алексей Ф.
Обновлено: 19.09.2024

Вскройте термоусадку на приобретенном регуляторе оборотов и не приятно удивитесь вопросом как долго проработает .

Трехфазный генератор на трех полевых транзисторах,которые выдают поочередно импульсы.Эти импульсы поступают на .

Всем привет) В этом видео я пробовал в первый раз работать с бесколлекторным моторчиком, для начала я специально не .

Драйвер бесколлекторного двигателя с регулятором оборотов и реверсом. Отлично подходит для запуска двигателя .

Регулятор для HDD двигателя с минимальным количеством деталей. Правильно собранная схема в наладке не нуждается .

Пример на микроконтроллере STM32. Управления бездатчиковыми BLDC моторами для микроконтроллера STM32: .

Устраняю незначительный брак регулятора бесколлекторного двигателя. Регулятор куплен тут ali.pub/y25v7 Про .

В этом выпуске научимся управлять бесколлекторными (бесщёточными) моторчиками при помощи Ардуино (Arduino), .

5V-12V DC Controller For Hard Drive Motor 3/4 Wire . Контроллер 5V-12V постоянного тока для 3/4 контактных моторов .

В жестких дисках есть трехфазный бесколлекторный двигатель.Им управляет специальная микросхема-драйвер.

Ротвейлер,Электробайк. Контроллер двигателя своими руками. Олег Макаренко,Контроллер студийных мониторов .

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

Провожу тестирование разных 3-х фазных без коллекторных высокоскоростных двигателей (вентиляторов) с разными .

Самая простая схема для шагового двигателя построенная на микросхеме счетчике CD4017 и таймере 555. Файлы для .

Вторая часть видео про самодельный регулятор мощного бесколлекторного двигателя с датчиками холла для .

Контроллер трехфазного двигателя для электровелосипеда. H-Мосты из MOSFET. Управление мощным двигателем с .

Вы увидите как сделать регулятор скорости которым можно запитать автомобильный стартер на 2 кВт. Своими руками .

Собираем самодельный бесколлекторный электродвигатель из бумаги и картона. Группа ВКонтакте: inofids .

Принцип действия, проектирование, и сборка самодельного бесколлекторного электродвигателя. Оптический датчик .

Что бы запустить мотор от жесткого диска, нужен драйвер, электронная схема. Можно купить готовую, а можно собрать .

В видео рассмотрена работа синхронной машины, бесколлекторного двигателя потоянного тока BLDC, синхронной .

Регулятор скорости для мелких бездатчиковых бесколлекторных двигателей (Sensorless BLDC). Идеальный привод для .

Видео о том, как работает бесколлекторный мотор. Простым языком, почти для гуманитариев) Группа Техномания в ВК .

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

Я начинал изучение схемотехники драйвера бесколлекторного двигателя по апноте Atmel "AVR492: Управление бесколлекторным электродвигателем постоянного тока с помощью AT90PWM3" Она есть на русском языке. Немного пояснений: "Для управления БКЭПТ используется силовой каскад, состоящих из 3 полумостов. Схема силового каскада показана на рисунке 4."
Здесь силовой каскад - это 6 транзисторов, схематично показанных ключами CmdSW, полумост - пара транзисторов, соединенных последовательно между "+" и "-" питания, например CmdSW1, CmdSW2. A, B, C - выводы обмоток двигателя, соединение обмоток между собой как у асинхронных двигателей. Эта схема позволяет току протекать между фазами A, B, C в любом направлении. Например если замкнуть ключ CmdSW1 и CmdSW4, то ток потечет от вывода A к выводу B, а если замкнуть CmdSW3 и CmdSW2 - от вывода В к выводу A. А если замкнуть CmdSW1 и CmdSW2 - получится короткое замыкание с выгоранием транзисторов, так что управлять транзисторами нужно осторожно. Кстати для управления коллекторым двигателем с реверсом нужно 2 полумоста, без реверса - 1 транзистор.
Для регулирования силы тока в фазе используют широтно-импульсную модуляцию (ШИМ). Например часть времени открывают ключи CmdSW1, CmdSW4 и ток начинает течь от "A" к "B", затем закрывают CmdSW1 и открывают CmdSW2 и за счет индуктивности обмоток ток продолжить течь по кольцу A-B-CmdSW4-"земля"-CmdSW2. Кстати в транзисторы встроены диоды, проводящие ток в обратном направлении. Так что если во второй фазе ШИМ разомкнуть все транзисторы, то в обмотке начнет расти напряжение и через эти диоды энергия из обмоток начнет возвращаться в сеть.
Эта схема из 6 транзисторов называется трехфазным инвертором и применяется для преобразования постоянного тока в трехфазный переменный для питания как бесколлекторных, так и асинхронных двигателей. Для бесколлекторных двигателей применяются низковольтные полевые транзисторы (MOSFET), для асинхронных двигателей - высоковольтные биполярные транзисторы с изолированным затвором (IGBT). С помощью этой схемы можно осуществлять и рекуперацию. Её используют все и лучше не сделать.

Как инвертор бывает оформлен в зависимости от мощности двигателя:

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

Вот первый пример реализации инвертора - авиамодельный, самый дешевый. Фото с двух сторон.

На одной стороне видно 6 транзисторов в корпусах SOIC. (3 N-канальных, 3 P-канальных), на другой стороне микроконтроллер ATMEGA8 и линейный стабилизатор для получения 5В питания. Ещё есть электролитический конденсатор и всякая мелочь - резисторы с конденсаторами. И всё. Дешево и сердито. Цена в рознице около 1000р. Микроконтроллер напрямую управляет затворами транзисторов. Греется такой контроллер довольно сильно, но так как он устанавливается на авиамодели, то хорошо обдувается. Разумеется есть более продвинутые модели, это просто пример упрощения и миниатюризации.

А вот фотография демо-платы от Atmel

Предполагается, что можно купить её и сразу начать программировать контроллер, пытаться крутить двигатель. Я решил не покупать, возможно зря. Во всяком случае к ней неплохо бы продавать сразу запасные транзисторы, я их сжег не один раз. И контроллер пару раз. Собственно 6 транзисторов справа, контроллер слева, драйвера транзисторов на другой стороне.


Схема моего драйвера с пояснениями
Я решил не делать простейший драйвер с тем, чтобы расширить возможности его применения, при необходимости несложно будет упростить. Схема разбита на 3 части. Она не такая наглядная, как в апноте Atmel, но постараюсь всё пояснить.

Первая часть - силовая

Силовые транзисторы VT1-VT6 управляются микросхемами-драйверами DA1-DA3. Транзисторы я выбрал IRLR3705 как одни из наиболее мощных в корпусе D-Pak на напряжение 55V с сопротивлением 8мОм. Я рассчитывал на напряжение работы 36В плюс запас. В принципе можно ставить транзисторы на радиаторы и использовать корпуса TO-220, но я решил не усложнять монтаж и паять транзисторы на плату. В таком случае для меньших мощностей можно ставить транзисторы в корпусе soic, а для больших - в D2-Pak. Драйвера взял самые мощные из полумостовых от фирмы International Rectifier - irf2186s с током управления до 4A. Получился большой запас, но самые простые драйвера ir2101 из апнота атмел (ток 130/270мА) с мощными транзисторами справлялись плохо, разница в нагреве транзисторов была ощутима. Полумостовой драйвер управляет двумя транзисторами - верхним и нижним, для управления верхним транзистором нужно высокое напряжение, которое получается по бустрепной схеме питания с помощью диода и конденсатора (например C6, DD7), эта схема наиболее проста и принцип её можно легко найти в интернете. Можно было взять одну микросхему full-brige для управления сразу шестью транзисторами, но у меня разводка с ней получалась хуже. Между затворами транзисторов и драйверами - резисторы с диодом. Они ограничивают ток затвора, причем ток зарядки почти в 2 раза больше. Тут следующая логика - чем больше ток, тем меньше греются транзисторы при переключении, но растут всплески напряжения. Поэтому номинал резисторов нужно уменьшать до какого-либо разумного предела. Причем транзистор открывается медленнее, чем закрывается, поэтому ток зарядки я сделал больше. Сигнальные выводы драйверов подтянуты к земле на всякий случай, чтоб не сработали когда нет сигналов управления. В целом здесь всё почти так же, как в апноте атмел. Датчики холла также подключил как в апноте, здесь ничего интересного. Питание, силовые Выводы транзисторов и выводы датчиков холла выведены на клеммник X1. Для защиты от короткого замыкания нужно контролировать ток. Для этого служат резисторы R19, R21 суммарным сопротивлением 0,005Ом (в апноте был резистор 0,1Ом), падение напряжение на них усиливается микросхемой LM358 и идет на компаратор и АЦП контроллера. Реализация у меня получилась не очень удачной, но в большинстве случаев защита срабатывает. Неплохо было бы ставить переменный резистор, чтобы пользователь мог задавать порого срабатывания защиты, но это как-нибудь потом ). Также в контроллер заведен сигнал V_IN_MEAS, пропорцональный входному напряжению. Сделано это, чтобы не давать работать драйверу при входном напряжении более 36В, но защиту я пока не включил.

Следующая часть схемы - питание логических элементов.

Из входного питания 24..36В нужно получить 12В для питания драйверов транзисторов и 5В для остальной логики

Для получения 12В я использовал линейный стабилизатор MC78M12. Лишнее напряжение он просто рассеивает в виде тепла, но так как драйверы транзисторов поребляют не очень много нагрев приемлемый.
Для 5В питания линейный стабилизатор уже применить не получилось, потому что 5В ещё задумывалось использовать для питания внешнего экрана индикации и нагрев оказался слишком большим. Поэтому применил понижающий преобразователь L5973AD. Он не очень дорогой, но в отличии от ещё более дешевых вариантов имеет защиту от короткого замыкания на выходе. Внешняя обвязка для него и разводка дорожек выполнена по соответствующей апноте.
Обе эти микросхемы имеют максимально допустимое напряжение 35В. Для гашения возможного излишнего напряжения предназначена конструкция из транзисторов VT7, VT8 и стабилитрона VD3.

Последняя часть схемы - микроконтроллер AT90PWM3B с обвязкой.

  • 6 выводов PSCOUT_XX используются для управления драйверами транзисторов.
  • 3 вывода HALL_X используются для отслеживания датчиков холла двигателя.
  • 3 вывода задействованы на микропереключатель SA1 - он служит для переключения интерфейсов драйвера (RS485 либо переменный резистор с кнопками), выбора числа пар полюсов подключенного двигателя (2 либо 4) и для проведения калибровки двигателя (определение положения датчиков холла)
  • 3 вывода задействованы для управления микросхемой-драйвером RS485
  • 6 выводов задействованы под вариант традиционного управления драйвером - с кнопками и переменным резистором. 4 кнопки служат для включения/выключения (Enable), реверса(F/R), тормоза(Brake) и выбора режима поддержания скорости(Mode). Еще один вывод Speed(analog) для переменного резистора задания скорости и на последний выход Hall_out подаются импульсы при срабатывании датчиков холла. Эти выводы и выводы интерфейса RS485 выведены на клеммник X3.
  • 2 вывода задействованы для контроля сигнала токового шунта ERROR_ADC. Один для быстрого срабатывания защиты, другой для грубой оценки потребляемого тока.
  • 1 вывод для контроля входного напряжения V_IN_MEAS
  • 1 вывод для светодиода VD5, полезного для индикации различных событий.

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

В качестве контроллера возьмем Arduino DUE. Предвижу шквал критики в свой адрес по поводу контроллера, но цель данного видео не сделать промышленный вариант сервопривода, а показать принцип работы двигателя BLDC и принцип построения сервопривода. Для этих целей, на наш взгляд нужно использовать наиболее простое наглядное решение. Поэтому DUE. Также для критиков сразу отмечу, что мы не делаем сервоприводов на arduino. В данном видео мы сделаем анализ почему обычные контролеры не подходят для построения промышленных приводов и каким требованиям должен удовлетворять контроллер, для построения промышленного привода.

Прототип промышленного сервопривода мы разберем в третьем видео, в котором будет запускать двигатель PMSM. Как учили в учебном заведении, прежде чем что-то сделать, нужно провести обзор литературы. Мы поступим примерно таким же способом. Вскроем сервопривод Leadshine, сервопривод Hiwin и частотник Delta и посмотрим какие контроллеры установлены в промышленных приводах. Забегая вперед, скажу, что это будут не Atmel не PIC и не STM. PMSM мы будем запускать на таком же контроллере, который установлен в сервоприводах Hiwin серии D2.

1. Сам двигатель. Это будет двигатель от сервопривода Leadshine – ACM 604. Мощностью 400 Вт. Благодаря наличию датчиков холла, мы сможем его запустить в режиме BLDC. Также данный двигатель содержит инкрементный энкодер с количество рисок 2500. Выход инкрементного энкодера – это квадратурный дифференциальный сигнал A B и индексной меткой Z в соответствии со стандартом RS-422. Сигналы с датчиков Холла – U V W также дифференциальные. Дифференциальные сигналы являются более помехозащищенными по сравнению с обычными TTL и передаются по витым парам. Силовая часть запитывается на три фазы. По энкодеру мы будем отслеживать положение вала двигателя, по датчикам холла будет определяться положение постоянных магнитов относительно обмоток статора.

2. Драйвер бесколлекторных двигателей. Будем использовать DRV8323 от Texas Instruments. Этот драйвер с обвязкой распаян вот на такой платке. Цена платы в магазине TI 79$. Тянет эта платка 15 ампер в длительном режиме на напряжении до 54В, а это целых 810 Вт, так, что на наш двигатель с двукратным запасом хватит. Mosfet-ы от TI поражают, вот эти чипы тянут 15 ампер без каких-либо радиаторов. Конфигурируется драйвер по шине SPI. Драйвер имеет встроенный управляемый преобразователь напряжения и сконфигурирован на данной плате на 3,3В с током до 650 mA. Питается этот преобразователь от напряжения питания двигателя. Силовое питание драйвера и двигателя подключается вот к этим клеммам, к этим клеммам подключаются силовые обмотки двигателя. Особенностью данного драйвера, является, то, что он может работать в режиме PWMx1. Это как раз тот режим, что нам нужен, плюс ко всему драйвер имеет встроенную логическую таблицу на переключение Mosfet-ов в зависимости от положения ротора двигателя, т.е. от сигналов с датчиков холла. Причем делает это на аппаратном уровне, а не на уровне контроллера в цикле, съедая и без того драгоценные вычислительные ресурсы контроллера.

3. Далее нам потребуется Arduino DUE. Один из самых быстрых контроллеров в семействе ардуино. Одной из самых важных характеристик сервопривода – это время серво цикла, т.е. время за которое контроллер получил данные обработал их и выдал управляющее воздействие. Чем меньше данное время, тем лучше регулирование и тем более качественным считается сервопривод. Поэтому берем контроллер побыстрее.

4. Для подсчета импульсов квадратурного энкодера нам нужен счетчик. Имея максимальную скорость двигателя по каталогу 4500 об/мин и разрешение энкодера в 2500 рисок нам нужно считать импульсы с частотой 4500/60*2500*4 = 750 кГц. (а если бы количество рисок было 5000, то мы бы получили все 1,5 МГц.). Понятно, что обычный контроллер не сможет считать импульсы с такой скоростью. Для этих целей возьмём аппаратный счетчик для квадратурных сигналов. Микросхемка называется IC-MD. Имеет разрядность счетчика до 48 бит и может считать импульсы с частотой до 40 МГц. Данная микросхема на вход может принимать сразу дифференциальный сигнал, чем мы и воспользуемся. Получать данные с квадратурного счетчика наша Arduino будет по SPI.

5. Далее нам потребуется высокоскоростной квадратурный дифференциальный линейный ресивер AM26LV32. Работает на частоте 32 МГц, напряжение питания 3,3 В. Дело в том, что драйвер DRV8323 принимает на вход датчиков холла сигналы TTL, а как мы помним с двигателя у нас идут дифференциальные сигналы RS-422. Квадратурный ресивер будет принимать на вход дифференциальный сигнал, а выдавать TTL, по сути, выполнять функцию преобразования сигналов.

6. Поскольку мы задались целью также подключить наш сервопривод к Mach 3 и поуправлять приводом с его помощью, нам потребуется любой контроллер для Mach 3. Я буду использовать самый простой USB контроллер, который на выходе эмулирует обычный 25 пиновый LPT порт. С данного порта мы заберем два сигнала. Первый сигнал – это Step. Он у нас будет на втором пине. И второй сигнал – это DIR он у нас будет на 6-м пине. И не забываем землю. Максимальная частота импульсов Step с данного контроллера 100 кГц. Не очень много, но для теста нам хватит. Для того чтобы раскрутить наш двигатель на максимальные обороты, нам необходимо 750 кГц. При коэффициенте делителя 1 к 1. Например в своих станках мы используем, в том, числе контроллер SmoothStepper, который способен выдавать сигнал Step с частотой до 4 МГц.

7. Далее нам потребуется еще один счетчик, который будет считать импульсы Step/Dir. Для этих целей возьмем микросхемку LS7366 – это 32 битный квадратурный счетчик, способный считать импульсы с частотами до 20 или 40 МГц, в зависимости от питающего напряжения. Данная микросхема в отличии от IC-MD требует некоторой обвязки, поэтому воспользуемся готовым модулем от SuperDroidRobotics. Данная микросхема умеет сразу считать Step/Dir, хотя если немного подумать, то эту же функцию можно осуществить и на микросхеме IC-MD. Наш контролер также будет получает значение счетчика по SPI.

8. Из необходимого нам еще потребуется три светодиода, кнопка, два сопротивления 1,2 кОм, три сопротивления 500 ом. Два сопротивления 4,7 кОм.

(Схема доступна по ссылке ниже)

Электрическая схема серводрайвера, а также схемы на все модули и даташиты будут доступны по ссылке под видео.

Собирать будем по этапам.

На первом этапе

Подключим дифференциальный приемник к датчикам холла и включим светодиоды через сопротивления 500 Ом на выходы дифф. приемника, чтобы видеть визуально, как будут срабатывать датчики холла.

Для подключения энкодера двигателя к макетной плате я сделал вот такую распайку. Здесь, две группы. Первая группа это квадратурный энкодер, вторая группа, это датчики холла.

Питать цифровую часть нашего серводрайвера будет 3,3 вольтами от преобразователя, который встроен в драйвер DRV8232.

Сам драйвер будем питать от лабораторного блока питания напряжением 42В.

Включаем питание. Медленно проворачивая вручную вал двигателя, можно видеть, как срабатывают датчики холла. Три датчика имеют всего 6-ть логических положения, положения в котором все датчики включены или выключены логически исключены. Можно видеть, что за один полный оборот вала двигателя датчики проходят 4-е полных цикла, что свидетельствует о том, что в двигателе 4-е пары полюсов.

На втором этапе

Подключим наш квадратурный счетчик и Arduino. Терминальные резисторы устанавливать не будем ввиду того, что длина дифференциальной линии мала. Сконфигурируем счетчик энкодера по SPI на разрядность счета в 32 бит. Исходный код для Arduino я также выложу под видео. Будем в бесконечном цикле с периодичностью в 1 секунду считывать показания счетчика и выводить их в консоль. Посмотрим, как это работает. Можно видеть, что примерно один полный оборот вала двигателя соответствует 10000 импульсов. У данного счётчика есть особенность, первые два импульса индексной метки он сбрасывается, таким образом он калибрует количество импульсов между Z метсками.

На третьем этапе

Подключим драйвер мотора. Датчики холла подключим к контактам на боковых пинах. У драйвера есть отдельные пины для подключения датчиков холла, но они не подключены на самой плате. Посмотрим на схему. Если есть желание подключить датчики холла именно к этим пинам нужно будет вооружившись паяльником впаять сюда перемычки. Сигнал ШИМ будем брать с 9 пина Arduino. Также нужно не забыть про Enable. В отличии от драйвера шагового мотора DRV8711, который мы запускали в первом видео, у нашего драйвера DRV8323 SPI не будет работать, если не подан сигнал Enable. Также подключим кнопку, она будет задавать направление.

Конфигурируем драйвер на режим PWMx1. Зададим некоторое значение ШИМ. ШИМ будем задавать с разрядностью 12 бит. С периодичностью в 1 секунду будем выводить значение счетчика энкодера в консоль. Прошиваем ардуино и видим, как двигатель начал вращаться. Кнопка меняет направление вращения мотора.

Важным моментом при запуске BLDC мотора, является соблюдение правильного подключения фаз двигателя и чередования датчиков холла. Правильное подключение также можно найти опытным путем. Подключаем фазы двигателя произвольным образом, а конфигурацию датчиков холла подбираем опытным путем. Ток при этом, который задается ШИМ сигналом, желательно установить как можно меньше, ну это так, чтобы двигатель не скакал как сумасшедший. Всего конфигураций подключения датчиков холла 6 их можно просто перебрать. Положение, в котором двигатель вращается с самым минимальным заданным током и не имеет мертвых зон (т.е. положений ротора в которых мотор останавливается) и является правильным.

Одним из недостатков режима BLDC от PMSM, является, то, что поле статора изменяет направление дискретно, что вызывает скачкообразное изменение момента двигателя, а также сопровождается незначительной вибрацией при работе двигателя. Да этот эффект несколько нивелирован увеличением количества пар полюсов двигателя, но он все равно присутствует. Попробуем увидеть этот эффект. Для этого заставим вращаться мотор максимально медленно. Можно видеть, как при переключении датчиков холла происходит скачкообразное изменение скорости вращения двигателя.

Теперь немного теории, что такое сервопривод и почему его основная настройка – это коэффициенты ПИД регулятора.

Возможно, Вы знаете, что сервопривод может работать в трех режимах:

1. Режим поддержания заданного момента на валу.

2. Режим поддержания заданной скорости.

3. Режим следования заданного положения.

Давайте разберемся как это достигается. Каждый из этих режимов реализуется так называемым контуром регулирования, контур регулирования момента, скорости и положения.

Рассмотрим на примере контура регулирования скорости. Мы задали некоторое значение скорости, которое хотим достигнуть, сервопривод это значение сравнивает с текущим значением и посредством ПИД регулятора осуществляет регулирование. Далее опять сравнивает заданное значение (причем это значение могло уже измениться, мы уже могли задать новое) с текущим значением и опять осуществляет регулирование посредством ПИД регулятора. Таким образом сервопривод циклично сравнивает текущее значение скорости с заданным и осуществляет регулирование посредством ПИД регулятора. Именно время на такую итерацию и называется временем сервоцикла. Логично, что чем меньше время сервоцикла, тем лучше мы осуществляем регулирование и быстрее достигаем заданного значения. Величина обратная времени называется частотой сервоцикла. Эта частота разная для разных контуров регулирования, как правило, выше всего для момента (или что тоже самое – тока), у контура положения меньше и у контура скорости медленнее всего. Для применения в ЧПУ наибольший интерес представляет частота сервоцикла контура положения. В китайских сервоприводах частота сервоцикла составляет 500 Гц, в сервоприводах среднего класса Delta Hiwin 1-1,5 кГц. В Yaskawa и Panasonic – это 5-6 кГц. В Специализированных контроллерах 20-25 кГц.

Поскольку регулирование в сервоприводе осуществляется посредством ПИД регулятора, рассмотрим кратко, что такое ПИД регулятор.

(Схема доступна по ссылке ниже)

ПИД регулятор — это, по сути, математический алгоритм, который рассчитывает корректирующее воздействие, т.е. например на сколько нам нужно увеличить текущую скорость, чтобы достигнуть заданную. Величина корректирующего воздействия состоит из трех составляющих, пропорциональной, интегральной и дифференциальной. Данные составляющие входят в регулирование с некоторыми коэффициентами Kp, Ki, Kd (пропорциональный коэффициент, интегральный и дифференциальный). Чем больше коэффициенты, тем быстрее регулирование и жёстче система, но тем больше вибраций и ее неустойчивость. Именно подбор этих коэффициентов и является основной настройкой сервопривода. Эти коэффициенты разные для разных контуров регулирования.

Запустим контур скорости. Для этого мы будем сачить скорость двигателя, сравнивать полученное значение с заданной скоростью, рассчитывать ПИД регулятором корректирующее воздействие, задавать его. И будем делать это в бесконечном цикле.

Давайте запустим наш двигатель в режиме контура скорости. Зададим скорость в 40000 импульсов в /секунду (это 4 оборота в секунду).

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

Аналогично контуру скорости мы можем сделать контур положения. Для этого будем считывать текущее положение с энкодера, рассчитывать ПИД регулятором корректирующее воздействие, задавать его и будем делать это в бесконечном цикле. Если заданное положение будет равно 0, то соответственно при попытке провернуть вал двигателя, серво драйвер будет пытаться вернуть вал мотора в исходное положение. Оценим также время серво цикла в этом режиме.

Добавим в нашу схему контроллер для Mach 3 и счетчик импульсов Step/Dir. Значение с данного счетчика будем читать в Arduino по SPI. Таким образом будем задавать значение для ПИД регулятора. Оценим также время серво цикла в этом режиме. В Mach 3 зададим количество импульсов на 1 мм = 2000, ускорение 500 мм/с2, скорость максимальную 2250 мм/мин. Данная величина скорости ограничена максимальной частотой импульсов step используемого контроллера.

К сожалению, Arduino не позволяет силами своего АЦП построить контур тока. Драйвер двигателя выдает аналоговый сигнал пропорциональный току, но для того, чтобы его включить в АЦМ нужно также подать опорное напряжение. DUE отказалась работать с внешним опорным напряжением, да и считать нужно ток в каждой из фаз, а для каждой из фаз свое опорное напряжение.

1. Аппаратные счетчики энкодера и Step/Dir. (быстродействие от 20 МГц)

2. Быстродействующие АЦП. (разрядность не менее 16 bit, скорость не менее 40 ksps).

3. Высокоскоростной 6х канальный ШИМ, разрядность не менее 16 bit и частота не менее 50 кГц.

BLDC мотор своими руками из . чего попало. Мотор был собран из статора от автомобильного генератора, досок и .

собрать BLDC мотор своими руками у себя в гараже, да легко!) BLDC motor из автомобильного генератора инструкция.

всем привет сегодня продолжение про мотор для лодки , и как обещал сегодня попробуем взять bldc мотор , и посмотрим .

Axial BLDC (permanent magnet motor) DIY wheel motor Если набереться 10 лайков - выложу подробную инструкцию по .

Это будет двигатель для электромотоцикл автомобильного который будет иметь себе свой размер будет полностью .

Расчет мощности BLDC мотора (прикидочный). Как рассчитать (приблизительно) мощность BLDC мотора не имея .

Представляю вам свой первый самодельный бесколлекторный мотор марк 1 обороты мотора 5600. Номинальная .

Самодельный бесщеточный мотор BLDC, в котором использована магнитная сборка Халбаха с особым расположением .

Всем привет, в этом видео вы узнаете как можно сделать бесколлекторный электродвигатель из болтов и .

Пришла в голову идея собрать ветряк, но передумал и решил переделать его в мотор для велосипеда, смотрите, что из .

В данном видео расскажу про самодельный BLDC двигатель сделанный из хлама, на проект не потрачено ни единого .

Намотанного слой сейчас снял не мог где-то высунули магниты маленько повылазили но немного никто места руку ли он .

Принцип действия, проектирование, и сборка самодельного бесколлекторного электродвигателя. Оптический датчик .

Запускаю двигатель в квартире , надеюсь соседи не против) Данный двигатель будет принимать участие интересном .

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

Создание BLDC электродвигателя. От идеи до реализации. Идея создания ЭД превосходящего по ТХ китайские аналоги.

Подробное описание моего 2го электровелосипеда собранного с мотор-колесом в качестве мид-драйв привода. Мотор с .

Аксиальный BLDC мотор своими руками . В данном видео сделал новый ротор, поставил магниты большего размера, .

Это 3 серия 1 сезона нашего небольшого сериала про разработку и производство самодельного электрического багги.

ЦЕЛЬ СДЕЛАТЬ ЭЛЕКТРИЧЕСКИЙ МОКИК С КПП. За основу взят мопед ЗиД 50 пилот 2T. Его силовая установка буде .

Читайте также: