BLDC moottorin ohjain, tämä elektroniikkapiiri on suunniteltu KiCAD ohjelmalla. Mikrokontrollerina toimii ARM Cortex M4 pohjainen mikrokontrolleri. Mikrokontrollerin kellotaajuus on 144Mhz, joka on toteutettu ulkoisella 16Mhz kristallilla.

Moottorin virtoja mitataan alemman mosfetin ja maan välille sijoitettujen shunttivastusten avulla, shunttivastuksen jännite vahvistetaan 100-kertaiseksi erillisellä vahvistimella. Vaiheiden jännitteet mitataan

BLDC Moottorin ohjain

Piirin arkkitehtuuri

Piirin arkkitehtuuri yksinkertaistettuna, piirilevy koostuu low voltage puolesta, johon kuuluu mikrokontrolleri sekä käyttöliittymä liitännät. Teho elektroniikan osasta, joka vastaa moottorin ohjaamisesta. Mittauselektroniikasta, jonka tehtävänä on mitata moottorin jännitteitä ja virtoja.

Elektroniikkapiirin suunnittelu

Elektroniikkapiiri on suunniteltu KiCAD ohjelmalla. KiCAD on täysin ilmainen ohjelmisto elektroniikkapiirien suunnittelemiseen. Piirin simuloimiseen on käytetty LTSpice ohjelmistoa, joka on myös täysin ilmainen. 

Elektroniikkapiiri KiCAD

Alipäästösuodatin suunnittelu LTSpice

Lowpass filtteri

Elektroniikka levyjen valmistus

Elektroniikkalevyt suunniteltiin niin, että suurin osa osista on pintaliitoskomponentteja, jotka valmistaja voi kiinnittää. Vain johdot piti kiinnittää myöhemmin itse.

Elektroniikkapiirin kotelointi

Kotelo valmistettiin 3D tulostamalla asa muovista, koteloon lisäksi tehtiin sovitteet, että jäähdytyssiilet saatiin kiinnitettyä mosfettien päälle. Kotelon kiinnitys onnistuu M3 pulteilla.

Moottorin ohjaimen testaaminen

Moottorin ohjaimeen lisättiin yksinkertainen firmware ohjelma, joka pyörittää moottoria SPWM menetelmällä. Moottorin hallintaan käyettiin SWDIO liitäntää ja STM32CubeMonitor -ohjelmistoa.

Firmware päivitys - ADC sampling

Ongelmia oli saada mosfettien ohjaaminen ja ADC sampling toimimaan niin, että kun alempi Mosfet ohjataan auki luettaisiin virran-mittaus arvo shuntti resistorin ylitse.
Alunperin käytössä oli Edge-Aligned PWM, kun PWM signaaleja on yhteensä 3 kappaletta ja jokaiselta yritetään lukea virta-arvo oli se haastavaa.
Tästä aiheutui paljon ongelmia ajoitukseen liittyen ja useasti ADC lukemissa oli paljon kohinaa.
Ratkaisu löytyi kun PWM generointi muutettiin Center Aligned PWM muotoon ja asetettiin ADC triggeröinti tämän syklin keskikohtaan. Näin virta arvo luetaan täsmälleen PWM pulssin keskipisteessä ja voidaan samalla kertaa lukea virta arvot kaikille kolmelle eri moottorin vaiheelle.

Center Aligned PWM

Firmware päivity - Kaavio

Ohjelman toimintaa muutettiin huomattavasti, enemmän closed loop sopivaksi, kun ADC sampling oli saatu toimimaan paremmin. Tarkoituksena on ajaa FOC ohjelmaa 6khz taajuudella, PWM signaalin taajuus on 24khz ja jokaiselta pwm sykliltä kerätään mittaus-arvot. Neljän mittausarvon jälkeen, mitatut arvot annetaan FOC control looppiin, joka laskee tarvittavat virrat seuraavalle syklille.

BLDC motor controller block diagram

USB data loggaus

Virtojen sampling nopeus on niin suuri ettei normaalilla SWDIO debuggauksella, nähnyt kaikkia arvoja, joten loggaamiseen otettiin käyttöön USB tiedonsiirto. Mitatut arvot lähetetään USB väylää pitkin tietokoneelle ja tietokoneella voidaan python skriptin avulla lukea tarkasti kaikki mitatut arvot. Tietokoneelle saadaan nyt siirrettyä data suoraan mikrokontrollerin rekisteristä, jota luetaan 24 000 mittausta/sekunnissa/moottorin vaiheelta. Lopulta tähän on tarkoitus lisätä loputkin virta-arvot ja jännitteet yhteensä 6 eri mittausta, tämän jälkeen dataa logataan jo 24000*6 = 144 000 / sekunnissa

Kotelo

Alumiinista valmistettu kotelo elektroniikkapiirille, alumiinikotelon tarkoitus on suojata ohjainta ja se toimii samalla myös jäähdytyslevynä mosfeteille. Mosfetit johtavat lämpöä alumiiniin lämpöäjohtavan liiman avulla.

Uusi ohjelma moottorin ohjaamiseen

Visual studiolla tehty sovellus moottorin ohjaamiseen. Ohjelmisto on tehty C# kielellä. Ohjelman avulla moottoria voidaan ohjata ja logata reaaliaikaisi arvoja moottorinohjaimelta.

Uusi moottorin ohjaus algoritmi - Field oriented control

Uusimmalla firmwarella toimii field oriented control aika hyvin, parannettavaa vielä on mutta perustoiminnolta moottori pyörii hyvin.

Jaa tämä postaus ystävillesi

Vastaa

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