Управление бесколлекторным двигателем hdd

Обновлено: 07.07.2024

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

Ответ: столько оборотов в минуту из известных мне двигателей дает только движок от формулы 1 :-)
Не зря трехфазные бесколлекторные двигатели нашли широкое применение в авиамоделизме.
Стандартный бесколлекторный двигатель выглядит примерно так:

Двигатели из CD-ROM/DVD-ROM приводов выглядят так:

В интернете есть даже статьи по переделке бесколлекторного двигателя от CD-ROM для дальнейшего его применения в авиамоделизме.
В переделку обычно входят:
- перемотка другим проводом(тоньше или толще диаметром),
- изменение схемы намотки (звезда или треугольник),
- замена обычных магнитов на ниодимовые.
После чего трехфазный двигатель приобретает дополнительные обороты и мощность.

двигатель от HDD

Я в эксперименте использовал обычный бесколлекторный двигатель от HDD привода, виглядит он так:

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

схема обмоток бексоллекторного двигателя

Сам двигатель, который я использовал имеет четыре вывода, что говорит о том, что схема намотки у него в виде звезды с отводом от центра, то есть что-то примерно такое:

схема включения трехфазного бексоллекторного двигателя

Схема управления простая, и состоит из не большого числа элементов. В виде управляющего устройства использован микроконтроллер ATmega8. Схема устройства показана на рисунке:

В схеме использованы драйверы полевых транзисторов IR4427 и сами полевые транзисторы IRFZ44.
Управляющая программа была написана не мною, автор Дмитрий(Maktep) за что ему отдельное спасибо.
Как исключение программа написана на Си для CV-AVR.
ПРограмма транслирована под компилятор WIN GCC.
Частота кварца 8МГц, для устройств с связью по UART рекомендую использовать внешний кварц, так как при тактировании от внутреннего генератора могут появляться ошибки в виду его нестабильной работы при изменении температуры окружающей среды.

Алгоритм работы построен так, что при нажатии на клавиатуре кнопки "+" передается по UART в микроконтроллер, который увеличивает скорость коммутации обмоток. И при нажатии на кнопку "-" все выполняется наоборот, то есть обороты двигателя уменьшаются. Для работы устройства дополнительно понадобится UART-RS232 конвертер.

Эксперимент показал что при данной программе и данной схеме включения можно разогнать двигатель до приличных оборотов, точное число не известно, думаю в пределах 30 000 оборотов в минуту. Но к сожалению сила двигателя недостаточная для раскручивания пластикового пропеллера, верней с пропеллером двигатель набирает обороты, но при нагрузке происходит сбой и остановка двигателя.

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

Видео работы устройства:

В видеоролике показано как я закрепил два кусочка пластика вырезанных из телефонной карточки в виде лепестка и прикрученных к ротору двигателя.

В планах попробовать применить ШИМ для коммутации обмоток. Рассчитываю на повышение мощности, улучшение характеристик разгона двигателя (в частности скорости разгона), повышение КПД.

Всем привет! В статье попытаюсь разъяснить основные способы управления двигателем HDD и сходными с ним электрическими машинами.

Введение


Двигатель жёсткого диска согласно отечественной теории электрических машин классифицируется как синхронная машина с возбуждением от постоянных магнитов. В западной терминологии PMSM (англ. Permanent Magnet Synchronous Motor). Как видите, это не шаговый двигатель, коим его некоторые по ошибке считают. Также встречается название Бесколлекторной Машины Постоянного Тока (англ. BLDC – Brushless Direct Current motor). В науке электропривода считается, что корректней называть это устройство Вентильным Двигателем. Однако следует помнить, что это не сама машина, а машина + инвертор напряжения + обратная связь с датчика положения ротора. В результате имеем некий объект, который питается постоянным током и имеет механические характеристики сходные с двигателем постоянного тока.

Обмотки двигателя соединены в звезду. От нулевой точки обычно выведен проводник, в некоторых случаях это упрощает управление. Сопротивление фазы


1 ом.

Алгоритмы управления

Забегая далеко вперёд скажу — идеальным случаем для нашей машины является подача на её фазы 3х синусоид сдвинутых на 120 градусов (как в обычных электрических сетях). Однако в некоторых случаях такая «идеальность» попросту не нужна.

1 способ.


Простой перебор фаз. Необходимо 3 силовых ключа, которые подключают фазы к источнику в порядке АВ-ВС-СА. Такой способ чаще всего встречается в интернете у самодельщиков.
Достоинства :
— простота;
— малое кол-во силовых ключей (3 шт);
— простота организации о\с по противоЭДС;
— меньший вес\габариты, что важно в rc моделизме.
Недостатки:
— большой ток через ключи;
— электромагнитный момент пульсирует и далёк от идеала (насыщен высшими гармониками). В итоге – стабильность работы без о\с низкая. В максимальной скорости также проигрывает другим способам управления.
На рис. ниже — фазные напряжения.

2 способ.


Перебор фаз с формированием 6-ти базовых векторов. Наткнулся на него в апноуте ST microelectronics [1]. Является улучшением 1-го способа (или ухудшением 3-его). Преимущества и недостатки смешаны. Рассматривать не будем, т.к. не понимаю почему имея 6 ключей не использовать способ, приведенный ниже О_о

3 способ.

Формирование 6-ти базовых векторов. Необходимо 6 ключей. В каждый момент времени работает 3 из них. Всего существует 8 положений этих ключей, 6 векторов (формируют синусоиды) + 2 нулевых вектора (открыты все ключи верхнего или нижнего плеча). Нулевые векторы нужны для более продвинутых систем с ШИМ.

Достоинства :
— простота;
— форма напряжения питания более приближена к синусоиде;
— как следствие предыдущего вывода – меньший нагрев;
— более стабилен в работе без о\с;
Недостатки :
— поле машины всётаки не круговое, как должно быть;
— ток машины немного выше чем в идеальном случае.

Фазные напряжения ниже.

4 способ.

Промышленный стандарт – добавляем к предыдущему способу №3 ШИМ модуляцию между базовыми векторами, для того чтобы получить любой вектор окружности вместо 6ти.

Достоинства :
— здесь всё практически идеально. Ток минимален, магнитное поле круговое. Момент при этом не пульсирует
Недостатки :
— Для организации полноценного привода с ШИМ 6ти векторов и о\с по положению необходим DS процессор.



Так выглядит ШИМ модуляция некоего привода ТРИОЛ АТ [2].

5способ.


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

В данном случае популярный на западе Field Oriented Control — контроль по полю, конкуренцию которому позже составил DTC — Direct torque control (прямое управление моментом). Остальные способы векторного управления (по вектору потокосцепления статора, ротора. ) в промышленности я не встречал

Обратная связь по положению.

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

Принцип используемой связи по противоЭДС: нам необходимо поймать момент когда полюс магнита проходит через фазу. Упрощённо это значит что ротор машины прошёл ровно половину пути и нам необходимо скорректировать (задержать) включение ключей на соответствующее время. К примеру: в способе №1 это время равно половине времени на включение ключей. В 3ем – оно равно времени работы одного базового вектора.

Технические аспекты.

Используя способ №1 необходимо на один вход компаратора подать половину питающего напряжения инвертора. На второй вход завести фазу и ловить момент когда выход компаратора изменится. Это опять же пром стандарт, который используется и в 4ом способе управления как одна из составляющих ШИМ. Кому интересны другие способы — прошу пройти по ссылке

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

ps Моя первая статья здесь, прошу сильно не критиковать

Комментарии ( 98 )

Спасибо, действительно нужная статья! Тема двигателей из HDD и правда как-то размыта, так что попытка внести в это ясность достойна всяческого одобрения. Жду продолжения. Весьма неплохо. Перенс в коллективный блог. Если будете продолжать, то вам надо в него тоже вступить (иначе статья перекидываться будет обратно в личный блог после редактирования любого)
Для организации полноценного привода с ШИМ 6ти векторов и о\с по положению необходим DS процессор.

Так ли он необходим? А что мешает сделать систему трех шимованых синусов в виде обычной таблицы, скажем с точностью до градуса. Тогда мы получим небольшой (360*3) расход памяти и бешеную скорость формирования этого самого тройного синуса.

Осталось только отслежить положение двигателя. Тут либо датчики Холла, либо какие другие ухищрения. И получаем в результате ОС.

Тут ШИМ из векторов — к примеру 1ый и 2ой вектор — первое положение(ключи 1,2,6) второе — ключи (1,5,6) — их модулируем. Потом переходим к следующему сектору, 2-3 векторы. + туда добавляем нулевые вектора (1,3,5) и (2,4,6) и для обработки о\с, кнопок БЫСТРЕЕ, МЕДЛЕННЕЕ и тд времени нет с единственным условием. Мы пытаемся раскрутить его на максимальные обороты с частотой синусоиды 300-500 Гц и дальше ;)

если брать привод как в промышленности 0-50 Гц, то вполне может хватить и ресурса mega.

Но если у нас есть система напряжений А B C генерируемая ШИМами по таблице, то что нам мешает перебирать эту таблицу с любой скоростью (хватило бы частоты ШИМ'a) с этим справится почти любой МК.

теперь понял что вы предлагаете. Но мне трудно представить как это возможно реализовать. У нас есть 6 ключей, с их помощью мы формируем сразу 3 синусоиды. А как в вашем случае?

ps существуют инверторы из 9 ключей. Там синусоида более «синусоидальная»

Ну, во первых, для современных Мег 6 аппаратных шим генераторов в порядке вещей. А для STM32 так и все 12 не проблема. Так что создать таблицу с шимами это совсем просто.

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

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

Замечу, что нам нужно всего лишь четверть волны держать в таблице, остальное можно получить из нее же. Я как-то давно генерил 3 синусоиды на обычном at90s8535. для управления движком пользовал полумостовые драйвера от IR. Работало. Причем смещение между фазами можно было регулировать с нужным шагом, равно как и частоту синусоидального сигнала. Хорошо, но уж слишком лаконично.
А какой способ управления используют родные контроллеры от этих моторов? Заинтересовало, какую мощность и момент может развить движок от винта? Если конкретно: смогут ли 4 мотора, подключенный напрямую к колесам, диаметром 12см, разогнать до приличной скорости робота (из нагрузки — лишь двигатели и батарея питания)? Слабый он совсем. Не для того расчитан. Но если перемотать то глядишь и сможет. Кстати первой же мыслью было перемотать! Ну что же, если добуду убитые винты — попробую! Смотря как и каким проводом перемотать. Сделав одновитковую обмотку из медяхи наверное можено и пол киловатта выжать. Если железо конечно выдержит. собственно к этому и написал — кроме перенасыщения скорее всего ничего не добиться этим. да лаадно! вон на марсоходе машинка на двух движках более-менее нормально бегает, так там примитивный контроллер. а если сделать нормальный регуль, так вообще замечательно будет. Для этого больше подойдут движки от цдрома, они помощнее, датчик положения есть (даже три), и подшипник не такой нежный, как у движка от хдд. Их, кстати, авиамоделисты перематывают и на модели ставят. А! Это просто невероятно! Совпадение. Я уже неделю мучаю такой двигатель разными формами питающего напряжения. Дошёл до того что сейчас пытаюсь применить микросхему снятую с платы винчестера. Смотрел раньше апноуты Атмел. Пересмотрел их сейчас — на простых контролерах типа tiny и mega предлагают вращать либо по 1му способу (перебор фаз)добавляя туда ШИМ либо используют датчики холла, либо применяют дополнительные схемные решения.
Может я что-то упустил, но мне на глаза не попалось бюджетное устройство, которое бы формировало ШИМ синусоиды с частотой 500 и больше Гц из 6ти базовых векторов без датчика положения и дополнительных схемных решений

Что Вы понимаете под дополнительными схемными решениями? Внешние компараторы?

Микрочип кстати в этом преуспел, согласен!

мне понравились ихние апноуты по FOC, очень хорошо расписаны

Больше на шаговик похож, униполярный. У ХДДшного четыре вывода. Да что-то он у меня не закрутился по униполярной схеме (подключал через L293D, рулил АТмегой).

Такое случается на униполярнике? Я почему-то думал, что у обмоток должны быть одинаковые сопротивления.

На крепёжном диске двигателя видна ещё какая-то микросхема, может это схема управления и для неё нужен специальный интерфейс?

Это тоже ХДДшный, от блинов.
Головкой рулил биполярник, он заработал сразу. Это двухфазный двигатель, а микросхема — датчик Холла для контроля положения ротора.
Такие же движки стоят в флоповодах. Dzhus! У меня такой же, сам заинтересован в том как его подключить. Выдрал таки из винта на 20 мегов)) а знакомый сказал, что раритет загубил) Да, ST-225 это раритет. Видели бы ценители, какими ящиками их на помойку институты списывают. Я как увидел это, сразу себе шаговики полутал. Шаговики в них не очень, шагов много, но вот момент никакой.

Есть еще самый простой и понятный способ — фозосдвигающая цепь и 1-но фазный ШИМ.

А мануалы от ST, лучше читать с предварительной академической подготовкой. Они там такой бредятину порой пишут, передергивая основы и здравый смысл. Взять хотя бы их недавно опубликованную PMSM-FOC библиотеку. Кроме подмены аббервеатур ничего нового и тщательно маскируют недостатки и возможности своей софтины. Чего стоит толькоутверждение что датчик холла обеспечивает «точное позиционирование».

Бред от ST короче.

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

Спасибо за разъяснение, теперь я разочаровался в STM ^_^ Без обратной связи будет плохо работать. Если приложить нагрузку будет пробуксовывать.

В авиамоделях используют 6 ключей… маломощные на N и P мосфетах с прямым управлением от МК для нижних и через транзюк+резюк — для верхних
потом китайци до этого же контроллера прикручивают ir2103 и получаем уже 6 одинаковых полевиков вверху внизу + дедтайм + защиты от одновременного открытия сквозняка

НО у них всех используется 2 способ а перемещение магнитой ловят смещением фазы реальной и фазы — суммы напруг на концах АВС — просто резисторами — заводят на компаратор или АЦП и вуаля

самый простой на 20-30 ампер контроллер стоит 6-8 баксов
смысла играться с такими вещами не вижу

далее
перематывать ХДД моторчики не советую
там очень слабый магнит
есть маленькая проблемка
когда полюс вентиля одной из обмоток перенасыщяется (намагничивается) больше чем магнит который к нему аналогичным полусом повёрнут — то вместо отталкиваться — магнит к нему притягивается — это называется срыв… потому что соседние катушки сами себе генерируют землю и получается что контроллер уходит в килогерцовые частоты думая что ротор за ним успевает а в реальности он стоит и гудит… свистит… ну и через 2-3 секунды обмотки обгорают так как КЗ

я пробывал перематывать и сидюковые моторки и моторки от хдд 5.25" — фигня полная…
от ХДД кстати в родном исполнении и 24 вольтах питания можно раскрутить до 1600 оборотов и при этом иметь крутящий момент очень серьёзный… но… нужно следить ибо если оставить на максимуме модуляцию(типа газ — заполнение ШИМом верхних ключей которые в данный момент по таблице должны быть открыты) — возможен срыв ибо магнитики в ХДД очень никакие… вот когда их заменил неодимовыми шариками… уууу… отогда крутяк… можно мини болгарку сделать или ещё что — по крайней мере рукой остановить за шпиндель выходной под диск — не мог рука горит…

я же сейчас мучаю СТМVLdiscovery чтоб заставить его красиво и без глюков выдавать ШИМом высокочастотным красивые синусоиды размах которых будет контроллировать ручка газа и ток через обмотки

делаю электромопед
без контроля тока я уже катался… мотор у меня 2500 ватт
100 ампер 24 вольта
взял обычный авиамодельный хороший контроллер с драйверами и четкими таймингами — не упрощенный китайский вариант
усилил выходную часть IRF3205
посеребренные провода 2800 жильные специальные… золотые разьёмы выдерживающие 250 ампер запросто…
аккумулятор с номинальной токоотдачей 200 ампер…
короче без контроля тока прокатался я до первой выбоины когда ручка газа дрогнула…
мотора — это 8 витков проволки 10мм квадратных… тоесть полное КЗ… если б не магниты — один раз отвертку туда заосало — ели отодрал… короче бахнуло так что у всех транзисторов и драйверов посрывало крыши в прямом смысле слова…
но всётаки он ехал… и очень непривычно…
теперь вот хочу сделать свой умный и быстрый контроллер…

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

Обычно используют электронные переключатели для реверсирования тока в подобных бесколлекторных двигателях. В двигателях типа BLDC катушки намотаны на статоре, а ротор имеет постоянный магнит. Но следует отметить, что бесщеточный двигатель не может работать от обычного источника постоянного тока. Нужен контроллер (драйвер). Его функции выполняет стандартная Ардуино плата.

Выходы Arduino питают транзисторы Дарлингтона TIP122 и управляют тремя фазами электродвигателя. Каждая фаза контролируется с помощью своего контакта микросхемы.


Обычно моторчик жесткого диска имеет 3 фазы + 1 общую = 3 фазы с 4-мя проводами. Используйте мультиметр для проверки сопротивления в этих четырех точках схемы измерения. Общий вывод + катушка = 1 Ом. Катушка + катушка = 2 Ома.


Схема управления двигателем через Arduino

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


Внимание! К приводу подключена лента, не тяните ее, потому что внутри очень тонкие провода, которые подключены к катушкам двигателя. Предлагаем припаять дополнительные провода, как видно на фото.

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


Нужно 3 цифровых контакта для отправки сигнала, тут контакты 2, 3, 4.

Компоненты контроллера

  • 3 штуки резисторы 1 кОм
  • 3 транзистора Дарлингтона TIP122
  • 3 диода 1N4004
  • 1 аккумулятор с напряжением от 5 до 12 В

Соедините всё как показано на рисунках.


Тут подшипник 22х8 в середине - он не из винчестера, лежит просто для сравнения.


Кодирование Ардуино

Программа может быть такой, а можете разработать свою, например с плавным стопом-стартом.

const int phase1pin = 2;
const int phase2pin = 3;
const int phase3pin = 4;
const int delayTime = 6000; // microsecs

void setup() Serial.begin(9600);
pinMode(phase1pin, OUTPUT);
pinMode(phase2pin, OUTPUT);
pinMode(phase3pin, OUTPUT);
>

void loop() switchStep(1);
switchStep(2);
switchStep(3);
>

void switchStep(int stage) switch(stage) case 1:
digitalWrite(phase1pin, HIGH);
digitalWrite(phase2pin, LOW);
digitalWrite(phase3pin, LOW);
delayMicroseconds(delayTime);
break;
case 2:
digitalWrite(phase1pin, LOW);
digitalWrite(phase2pin, HIGH);
digitalWrite(phase3pin, LOW);
delayMicroseconds(delayTime);
break;
case 3:
digitalWrite(phase1pin, LOW);
digitalWrite(phase2pin, LOW);
digitalWrite(phase3pin, HIGH);
delayMicroseconds(delayTime);
break;
>
>

Для данного двигателя от жесткого диска с 5400 об / мин использовалось напряжение 3,7 х 3 = 11,1 В. Минимальный период цикла = 1,3 мс, то есть он занимает около 1,3 х 2,25 х 2 = 5,85 мс для 1 об. Вы можете изменять значения в программе.

Форум по обсуждению материала УПРАВЛЕНИЕ МОТОРОМ HDD ОТ ARDUINO


Кодовая кнопка для ограничения доступа к объектам, простая схема с реле на МК Attiny13.


Буферный блок питания 12 В с аккумулятором - схема принципиальная и подробное описание работы.


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


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

Устройство представляет собой электронный коммутатор и предназначено для работы с маломощными бесколлекторными (иначе бесщеточными) электродвигателями при условии соединения их обмоток звездой. Типичный пример таких агрегатов - привод дисковода классических винчестерских дисков персональных компьютеров.

Отличается схемной простотой и собирается на недефицитных деталях, которые хорошо представлены в интернет-торговле.

Схемные особенности

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

Время нахождения транзисторов схемы в активном состоянии определяется последовательной RC-цепочкой, напряжение со средней точки которой подается на затвор.

Принципиальная схема устройства представлена на рисунке.

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

Как сделать простейший драйвер для бесколлекторного двигателя старого жесткого диска

Изготовление устройства

Схема устройства достаточно проста и не требует обязательного применения монтажной платы. С учетом ее рядной структуры в качестве силового несущего элемента может быть использована проволочная шина диаметром 1 – 2 мм, которая соединяется с плюсом источника питания. Общий вывод обмоток подключается на минус источника питания.

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

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

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

Смотрите видео

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