Få igång en BLDC-motor på under en timme med en kombination av maskinvara och programvara.

Av Jacob Beningo

Bidraget med av DigiKeys nordamerikanska redaktörer

Det finns många tillämpningar inom försvars-, industri- och robotteknikbranschen som kräver ett inbäddat system för att använda en borstlös DC-motor (BLDC). Trots att det kan tyckas enkelt att få en motor att gå runt, men det är en komplex fråga som kan sinka ett projekt när utvecklaren bekantar sig med motordrivning, vridmoment, elektriska egenskaper och elektromagnetiska egenskaper samt aktuella återkopplingsmätningar.

Detta förutsätter att de redan har valt lämplig maskinvara för att köra algoritmen som ska driva motorn med smidig kontroll över tillämpningens hela rörelseomfång, med ett minimalt antal komponenter.

Vad som behövs är en genväg i form av ett kombinerat maskinvaru- och programvarupaket som kan förkorta utvecklingstiden betydligt och tillåta utvecklarna att fokusera på sluttillämpningen utan at behöva fördjupa sig alltför mycket i motorreglering.

Den här artikeln introducerar ett sådan paket från Texas Instruments som kombinerar företagets mikrostyrenhets- och utvecklingssatsmaskinvara med dess InstaSPIN™ fältorienterade programvara och verktyg för motorreglering. Därefter visas hur kombinationen kan användas av en utvecklare som är ny inom fältet för att enkelt bedöma motorparametrar och få en komplex BLDC-motor att gå runt på mindre än en timme.

Vad är InstaSPIN-FOC och är det verkligen så enkelt att använda?

Det unika med Texas Instruments InstaSPIN-lösning är att en utvecklare kan gå från noll till en roterande motor på under en timme. Utvecklare som har använt lösningen åtminstone en gång kan till och med få igång en motor på under tio minuter. Eftersom satsen använder fältorienterad styrning (FOC) istället för en kodare behöver utvecklarna endast koppla ström och jord till motorn och därefter ansluta varje drivfas. Vid det tillfället är de redo ur elektrisk synvinkel. Det finns inget behov av kodare eller annan komplex elektronik.

Givetvis finns det andra kontrollmekanismer utöver FOC som inte använder sensorer eller kodare som back-EMF nollgenomgångstiming. Dock övervakar InstaSPIN motorns flux för att avgöra när motorn ska kommuteras. Utvecklaren kan titta på fluxsignalen i ett plottningsfönster och ställa in skjutreglaget "Fluxtröskel" för att ange vid vilken fluxnivå som motorn ska kommuteras. Optimal kommutation kan kontrolleras genom att observera fasspänningen och strömvågformerna som också visas.

InstaSPIN-FOC-lösningen besår av fyra huvuddelar:

  • Ett mikrostyrenhetskort
  • Ett motordrivkretskort
  • InstaSPIN-FOC grafiskt användargränssnitt (GUI)
  • En BLDC-motor

Mikrostyrenhetskortet tillhandahåller de smarta funktionerna för att köra FOC-algoritmerna och berätta för motordrivkretsen när de olika motorfaserna ska slås på och stängas av tillsammans med hantering av kommunikation till GUI där utvecklaren kan visa fluxnivåerna och andra parametrar. Motordrivkretsen tillhandahåller gränssnittet för att driva den faktiska motorn. Detta innefattar de elektriska kretsarna för att skydda mikrostyrenheten från hög spänning, utföra mätningar och känna av motorfel.

InstaSPIN-FOC GUI är ett universellt GUI som finns i Texas Instruments online-utvecklingsgalleri. Utvecklare kan köra GUI direkt från en webbläsare eller så kan de ladda ner en lokalt körbar version till sin dator.

Slutligen finns den faktiska trefas-BLDC-motorn med permanentmagnet.

Nu undersöker vi alla dessa områden i detalj och undersöker en potentiell maskinvarulösning för att få igång BLDC-motorn.

BLDC-motordrivkretsar och mikrostyrenheter

Det finns flera olika lösningar som utvecklarna kan välja mellan för att driva sina BLDC-motorer, så konstruktörerna behöver inte leta länge: TI:s InstaSPIN-FOC och MotorControl SDK är hopparade med deras LAUNCHXL-F280049C TMS320F280049C LaunchPad (figur 1) och BOOSTXL-DRV8323RS LaunchPad Booster Pack. TMS320F28049C LaunchPad är ett kostnadseffektivt utvecklingskort som inkluderar en inbyggd XDS110 avbuggare, expansionshållare och F280049CPMS TMS320F280049C Piccolo™-mikrostyrenheten.

Bild på Texas Instruments TMS320F280049C LaunchPadFigur 1: TMS320F280049C LaunchPad innehåller en isolerad USB XDS110 avbuggningssond, en F280049C Piccolo mikrostyrenhet och elektroniken för att driva två utbyggnadspaket som kan användas för tillämpningsspecifik maskinvara. (Bildkälla: Texas Instruments)

Mikrostyrenheten TMS320F280049C använder en C2000-kärna och inkluderar 256 kbyte flashminne, 100 kbyte RAM och körs vid 100 megahertz (MHz). TMS320F280049C innefattar även TI:s FOC-motorstyrningsalgoritmer inbyggt i ROM-minnet så att utvecklarna inte behöver använda värdefullt kodutrymme.

TMS320F280049C LaunchPad är inte det enda sättet utvecklarna kan utnyttja TMS320F280049C-mikrostyrenheten. Det finns även ett TMDSCNCD280049C-styrkort för mikrostyrenheten TMS320F280049C (figur 2). Det här kortet kan användas i prototypfasen eller för utvecklare som vill ha flexibilitet att byta ut den mikrostyrenhet de använder i sin tillämpning eller som vill ha större expansionsmöjligheter. Styrkortet kan placeras i en dockningsstation som ger utvecklarna tillgång till mikrostyrenhetens I/O.

Bild på Texas Instruments TMS320F280049C styrkortFigur 2: Styrkortet TMS320F280049C tillhandahåller motorstyrningsegenskaper i ett litet modulpaket som kan användas med en dockningsstation för att komma åt mikrostyrenhetens I/O. (Bildkälla: Texas Instruments)

DRV8323RS LaunchPad Booster Pack är ett expansionskort som sitter ovanpå TMS320F280049C LaunchPad och lägger till den extra maskinvara som krävs för att driva en BLDC-motor (figur 3).

Bild på Texas Instruments DRV8323RS LaunchPad Booster PackFigur 3: DRV8323RS LaunchPad Booster Pack innehåller motordrivkretsens styrenhet, FET-enheter och ytterligare kretsar för att driva en BLDC-motor. (Bildkälla: Texas Instruments)

DRV8232RS-kortet kan antingen sitta i plats 1- eller plats 2-expansionsområdet, men plats 1 är den som MotorControl SDK-exemplen antar att den sitter på. Utvecklarna kan ansluta sin BLDC-motor till kortet via tre plintkontakter och sedan tillhandahålla kortet med extern kraft för att driva motorn. DRV8232RS LaunchPad Booster Pack tillhandahåller även ström till TMS320F280049C-kortet. Kortet innehåller LED-lampor för att visa att strömmen är på, tillsammans med en feligenkännings-LED.

I DRV8232RS LaunchPad Booster Packs hjärta finns DRV8230 den smarta trefas-gatedrivaren. Gatedrivaren tillhandahåller strömavkänning på lågsidan och direktdrivning för MOSFET-enheter med märkvärden upp till 60 volts drift.

Med TMS320F280049C LaunchPad och DRV8232RS LaunchPad Booster Pack kan utvecklarna driva ett brett urval av BLDC-motorer. En motor som är perfekt att börja med är QBL4208-41-04-006 från Trinamic (figur 4).

Trinamic-motor går på en 24-voltsförsörjning, roterar upp till 4000 varv per minut (RPM) och ger ett vridmoment på 62,5 millinewton per meter (mNm).

Bild på Trinamic QBL4208-41-04-006 4000 RPM BLDC-motorFigur 4: Trinamic QBL4208-41-04-006 4000 RPM BLDC-motorn går på en 24-voltsförsörjning och levererar ett vridmoment på 62,5 mNm. (Bildkälla: Trinamic Motion Control GmbH)

Nu när vi har beskrivit grunderna för vad en utvecklare behöver för att komma igång med BLDC-motorstyrning är nästa steg att titta på hur du identifierar motorns parametrar med InstaSPIN-FOC GUI.

Identifiera BLDC-motorparametrarna och köra motorn

Innan InstaSPIN-FOC GUI kan driva en motor behöver den förstå motoregenskaperna så att den kan utföra FOC-styrning av antingen varvtal eller vridmoment. För at göra detta måste algoritmen känna till egenskaper som:

  • Resistans
  • Induktans
  • Motorflux
  • Magnetiseringsström

Dessa egenskaper kan alla avgöras automatiskt genom InstaSPIN-FOC GUI under bara några minuter. GUI kan köras via en webbläsare och läser som standard in MotorControl SDK lab 5 som är utformat för att köras med TMS320F280049C och DRV8232-expansionskortet. Lab 5 demonstrerar hur en utvecklare kan identifiera en motor och få dess parametrar. De fullständiga detaljerna finns i GUI-snabbstartguiden och i labbhandboken.

För det första behöver utvecklarna öppna InstaSPIN-FOC GUI via TI-utvecklarens webbplats. Sedan kommer de att upptäcka att det finns en körknapp i GUI-miljön, precis som i andra utvecklings-IDE:er. Genom att klicka på den här knappen laddas motoridentifieringskoden ner till deras LaunchPad där den försöker köras.

Ingenting händer till en början eftersom utvecklaren måste aktivera programvaran. Detta kan göras genom att markera kryssrutan "Aktivera system" i GUI. Vid det här tillfället körs motoridentifieringskoden fortfarande inte eftersom kryssrutan Kör måste markeras. När Kör har aktiverats börjar koden köra en sekvens som är utformad för att identifiera motorn. Den utför de mätningar som krävs för att hämta de parametrar som behövs för att köra motorn. Hela identifieringsprocessen tar flera minuter och under den tiden ökar motorns varvtal och sjunker sedan och sedan körs motorn på lågt varvtal i några minuter.

När den här processen har slutförts kan en utvecklares GUI se ut ungefär som i figur 5.

Bild på InstaSPIN-FOC GUI kort efter att det har identifierat en motorFigur 5: InstaSPIN-FOC GUI kort efter att det har identifierat en motor. (Bildkälla: Jacob Beningo)

Observera i figur 5 att flera värden har fyllts i i GUI:s övre högra hörn. Det här är motorparametrar som ska registreras så att de kan användas senare för att driva motorn i vridmoment- eller varvtalsläge. På vänster sida ser du även att indikatorn "Motor identifierad" har växlat från grå till grön. I det här läget kan vi kontrollera motorvarvtalet direkt via GUI.

Motorvarvtalet styrs genom att ändra rutan speedRef(Hz) i GUI. Observera att motoraccelerationen är mycket snabb genom den här referensstyrningen. Hastighetsminskning däremot kräver att du anger flera börvärden med lägre och lägre speedRef. Motorn kan stoppas helt genom att avmarkera kryssrutan Kör.

Tips och trick för att använda en BLDC-motor med TI:s InstaSPIN-FOC

Nedan visas flera bästa metoder som utvecklarna måste överväga vid arbete med BLDC-motorer och TI:s InstaSPIN-FOC-lösning:

  • Välj en mikrostyrenhet som har motoralgoritmerna inbyggda i sitt interna flashminne. Detta minskar kodutrymmet som används för motoralgoritmerna och kan även tillhandahålla en prestandaförbättring i körningen.
  • På F280049C launchpad används plats 1 som standardplats för DRV8323RS LaunchPad Booster pack. Att använda plats 2 kräver att programvaran uppdateras.
  • Ta dig tid att gå igenom alla 13 exempellabbar som tillhandahålls som en del av TI:s MotorControl SDK. Dess labbar täcker allt från identifiering av motorparametrar till styrning av motorn genom varvtals-och vridmomentkontroll.
  • Använd lab 5-exemplet för at hitta dina egna motorparametrar. Om du använder en MOTOR_TYPE_PM, se till att du även lägger till följande definition för att lyckas sammanställa labben och därefter använda det inställda värdet:

    define #define USER_MOTOR_INERTIA_Kgm2 (7.06154e-06)

  • Starta BLDC-experimenteringen med InstaSPIN-FOC online GUI.

Slutsats

Att driva en BLDC-motor för vridmoment- eller varvtalsstyrning kan vara ett komplext problem som enkelt kan överskrida en inbäddad programvaruteknikers kunskaper, vilket saktar ner projektutvecklingen. Som visas kan utvecklare som arbetar med Texas Instruments InstaSPIN och MotorControl SDK och förknippad maskinvara snabbt och enkelt få igång en BLDC-motor med mycket begränsade kunskaper om reglerteknik.

 
DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Om skribenten

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo är konsult inom inbäddad programvara. Han har publicerat över 200 artiklar om utveckling av inbäddad programvara, och är en eftertraktad talare och teknisk utbildare med tre examina, däribland en master i teknik från University of Michigan.

Om utgivaren

DigiKeys nordamerikanska redaktörer