BLDC Moottorin ohjaus – Piirilevyn suunnittelu

BLDC moottorin ohjaus - Ensimmäinen piirilevy

BLDC moottorin ohjaus - Piirilevyn kehitys

Tässä projektissa keskitytään BLDC moottorin ohjaimen kehittämiseen ja ohjelmointiin. BLDC moottorin ohjain on suunniteltu Autodesk Fusion – ohjelmistolla, suunniteltu piirilevy on tilattu JLCPCB -piirilevyjen valmistajalta. Suuri osa komponenteista on tilattu komponenttien toimittajalta Digikeylta. Piirilevy on suunniteltu läpivienti komponenteilla, että kehitys ja kasaaminen olisi helppoa ja nopeaa.

BLDC moottorin ohjaus - Ensimmäinen versio

Ensimmäinen prototyyppi levy, jonka avulla moottoria on yritetty ohjata. 
Linkki : PCB Layout V1
Linkki : Schematic V1

Suunniteltu 3D mallinnus

Kasattu piirilevy

Vaihejännitteen mittaus

INA180B virtamittausanturin mitttaustulos

Mosfet driver

Mosfetti avataan 12 voltin jännitteellä, joka syötetään mosfetin VGS välille. Low side ohjaaminen on melko simppeliä, koska mosfetin source on 0V jännitettä vasten. High side ohjaaminen on hieman monimutkaisempaa ja tähän käytetään bootstrap kytkentää, bootstrapin avulla saadaan sama 12V jännite myös ylemmälle mosfetille. Ylempää mosfettia ohjataan siis VCC+12V jännitteellä. Mittauksen mukaan jännite näyttäisi nousevan hyvin, eikä putoa ohjauksen aikana. Kuvasta kuitenkin huomataan että jännitteen nousu nopeus oli hieman hidas, tätä voisi parantaa vaihtamalla pienemmät etuvastukset mosfetille.

Keltainen ohjaus-signaali driverille.
Sininen ohjaus-signaali mosfetille.

Ensimmäinen versio - Yhteenveto

Piirilevyn jännitteet olivat oikein, eikä ainakaan mitään kärähtänyt kun jännitteet laitettiin levylle.
ESP32 sai oikean 5 Voltin käyttöjännitteen ja mosfet gate drivereille meni suunniteltu 12 Voltin jännite.
Ohjelman ajamisessa oli ongelmia, tämä johtui siitä että ESP32 pinni 12 ja 4 olivat käytössä ja ne häiritsivät ohjelman lataamista.

Onnistui:
  • Mosfetin ohjaus onnistui melko hyvin, signaalin nousunopeus oli kohtalainen, eikä signaalissa näkynyt suurta oskillointia.

Ongelmia:
  • Virranmittauksessa on ongelmia, signaalissa on paljon kohinaa. Virranmittauksen kohina saattaa osittain johtua että piirilevyltä INA180B piirin läheisyydestä unohtui kondensaattori.
  • Moottoria ei vielä voinut pyörittää, koska yksi L6387 mosfetin ohjaimista oli viallinen ja se täytyy vaihtaa.

Korjauksia nykyiseen versioon:
  • Vaihdetaan PhaseA L6387 ohjain tai mosfet, kunnes vika on saatu korjattua.
  • Lisätään keraaminen kondensaattori INA180B osan käyttäjännitteelle.

Muutoksia piirilevyyn seuraavaan versioon:
  • Lisätään kondensaattori INA180B käyttöjännitteelle.
  • Siirretään INA180B lähemmäs shuntti resistoria.
  • Ohjainta ehkä kannattaa kokeilla akulla, nykyinen virtalähde saattaa aiheuttaa paljon kohinaa piiriin.

Muutoksia koodiin:
  • Lisätään ohjelmaan ABN enkooderin interrupt, että voidaan lukea moottorin mekaanista asentoa.
 

Ensimmäinen versio - Testi 28.2.2024

L6387 IC piirin vaihtamisella vika saatiin korjattua ja Phase A ohjaaminen onnistui. Ensimmäisessä testissä käytettiin yksinkertaista Arduino -koodia, joka ohjaa moottoria open loop tilassa. 

Ensimmäinen versio - Suljettu järjestelmä 1.3.2024

Moottorin asennettiin magneetti, että sen asentoa voidaan lukea enkooderin avulla. Arduino koodia muutettiin paljon ja uudessa versiossa luetaan asentoanturilta asentotieto ja ohjataan moottorin käämivirtoja asentotiedon mukaisesti.

BLDC moottorin ohjaus - Closed Loop Velocity

Uudella ohjelmakoodilla testattu virransäätö looppia, joka pyrkii pitämään moottorin pyörintä nopeuden vakiona.

Ohjelmiston muutokset

Kun useampia moottoreita on testattu, huomattiin nopeasti että parametrien määrittelyssä ja testaamisessa manuaalisesti on todella suuri työmäärä. Tämän takia moottorinohjaimen ohjelmakoodia muutettiin huomattavasti ja ohjaimelle tehtiin automaattinen kalibrointi vaihe, jonka moottorinohjain suorittaa jos nykyistä moottoria ei ole kalibroitu ohjaimelle. Kalibrointi tässä tapauksessa tarkoittaa, että moottorinohjain pyörittää moottoria ensin Open loop -tilassa ja mittaa moottorin arvoja, sekä vertaa näitä enkooderin ilmoittamaan asentoon. Kalibroinnin jälkeen moottorinohjain pystyy pyörittämään moottoria oikein, eikä käyttäjän tarvitse manuaalisesti yrittää parametreja ja ohjelmoida ohjainta tietylle moottorille.

Jaa tämä postaus ystävillesi

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *