Безколекторні двигуни. Приклади на C


14.09.2016

Ці приклади можна розглядати тільки як демонстрацію алгоритмів керування безколекторними двигунами. Для доведення їх до кінцевої технічної реалізації потрібно, як мінімум, додати схеми захисту. Ці приклади розраховані на керування двигунами з напругою живлення від 12 до 24 Вольт. При вищій напрузі живлення доведеться вносити зміни у схеми. У схемах передбачена можливість подачі PWM сигналу (за допомогою перемичок) на верхні та/або нижні ключі. Для керування бездатчиковими двигунами це може відіграти важливу роль.

Sensored BLDC

Приклад керування безколекторним двигуном з датчиками Холла

Приклад, написаний на GCC 3.4.6 для мікроконтролера Atmega168

Містить: схему, приклад коду на С.

brushless_sensored  

 

Скачати

Sensorless BLDC (AVR444)

Приклад керування бездатчиковим безколекторним двигуном

Приклад, написаний на GCC 3.4.6 для мікроконтролера Atmega168

Приклад від Atmel, адаптований до GCC Файли від Atmel (AVR444) можна скачати тут

Містить: схему, приклад коду на С.

brushless_sensorless_avr444  

 

Скачати

Контролер має працювати на частоті 8МГц. Алгоритм визначення положення ротора заснований на вимірі напруги на вільній фазі під час обертання ротора і визначенні моменту переходу напруги вільної фази через нуль. Для вимірювання напруги використовується АЦП мікроконтролера. У цьому прикладі в якості опорної напруги АЦП використовується живлення мікроконтролера, а рівень напруги переходу фази через нуль (значення АЦП) задається в константі ADC_ZC_THRESHOLD. Це не зовсім коректно, тому що при зміні напруги живлення двигуна, визначення моменту переходу вільної фази через нуль буде неточним. Через використання АЦП цей приклад має деякі обмеження по швидкості, що зазначено у документації від Atmel.

Sensorless BLDC

Приклад керування бездачиковим безколекторним двигуном

Приклад, написаний на GCC 3.4.6 для мікроконтролера Atmega168

Містить: схему, приклад коду на С.

brushless_sensored  

 

Скачати

Це ґрунтовна переробка прикладу AVR444. Його головна відмінність у тому, що для визначення моменту переходу напруги вільної фази через нуль використовується внутрішній компаратор мікроконтролера, а не АЦП. Також збільшено частоти роботи мікроконтролера до 16 МГц (тактування від зовнішнього кварцового резонатора). Ці та інші зміни дозволили працювати з більш швидкими двигунами.

Статті по безколекторним двигунам:

Brushless Motors Схеми і прошивки
Коментарі:
Сергій говорить:
10.11.2022 00:37
Не зрозумію чому у вихіднику Sensored BLDC , ШІМ налаштований як PWM, phase Correct OCRA, начебто має бути Fast PWM 0xFF, і навіщо в ланцюзі VB два bootstrap capacitor, мені здається одного на 1 мкф вистачить.

andre говорить:
10.11.2022 10:14
Стосовно PWM, не зрозумів про який саме приклад йдеться. Їх було декілька і досить давно, понад 6 років тому.
Я вже старенький і забуваю що було на минулому тижні. Дайте посилання про який саме код йде мова і де Ви його звантажити.
Стосовно конденсаторів.
Якщо здається, що 1 мкф вистачить – ставте 1 мкф. Якщо не вистачить – потім можна додати ;) Я ж не знаю у якому режимі і буде використовуватися плата.

Додати коментар
Code
* - обов'язкові поля

Архіви