Een BLDC-motor in minder dan een uur aan de praat krijgen met een hardware-software combinatie
Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey
2019-07-31
Er zijn heel wat toepassingen op het gebied van defensie, industrie en robotica die een embedded systeem nodig hebben dat gebruik maakt van een borstelloze gelijkstroommotor (brushless DC, BLDC). Het aandrijven van een motor kan misschien simpel lijken, maar is in werkelijkheid een complexe kwestie die vertraging in een project kan veroorzaken wanneer de ontwikkelaar snel beslissingen moet nemen over zaken als motoraandrijving, koppel, elektrische kenmerken en elektromagnetische eigenschappen, naast zaken als stroomterugkoppelingsmetingen.
Hiervoor wordt verondersteld dat de ontwikkelaar reeds de juiste hardware heeft geselecteerd om het algoritme uit te voeren dat de motor zal aandrijven, met een gelijkmatige regeling over het volledige bewegingsbereik van de toepassing en zo min mogelijk componenten.
Wat er in dergelijke gevallen nodig is, is een kortere weg in de vorm van een alles-in-één hardware- en softwarepakket dat de ontwikkeltijd aanzienlijk kan verkorten en ontwikkelaars in staat stelt zich op de eindtoepassing te concentreren, zonder zich in de fijne kneepjes van motorbesturing te hoeven verdiepen.
In dit artikel presenteren we zo'n pakket van Texas Instruments, dat microcontroller- en ontwikkelingskit-hardware combineert met InstaSPIN™ software voor veld-geöriënteerde motorregeling en tools. Vervolgens wordt getoond hoe een ontwikkelaar, ook zonder over specifieke ervaring te beschikken, de combinatie kan gebruiken om de motorparameters te bepalen en een complexe BLDC-motor in minder dan een uur aan de praat te krijgen.
Wat is InstaSPIN-FOC en is het echt zo gemakkelijk te gebruiken?
Wat uniek is aan InstaSPIN van Texas Instruments is dat een ontwikkelaar in minder dan uur van nul tot een draaiende motor gaat, ook zonder enige voorbereiding. Een ontwikkelaar die de oplossing ook maar één keer heeft gebruikt, zal er zelfs minder dan tien minuten over doen om de motor werkend te krijgen. Aangezien de kit gebruik maakt van de zogenaamde veld-geöriënteerde regeling (field-oriented control, FOC) in plaats van een encoder, hoeven ontwikkelaars hun motor alleen maar te verbinden met de voeding en de aarde om vervolgens elk van de aandrijvingsfasen aan te sluiten. Op dat punt zijn ze vanuit een elektrisch standpunt al klaar. Er zijn geen encoders of andere complexe elektronica nodig.
Naast FOC zijn er natuurlijk andere besturingsmechanismen die geen sensors of encoders gebruiken, zoals back-EMF zero-cross timing. InstaSPIN bewaakt echter de motorflux om te bepalen wanneer de motor moet worden omgeschakeld. De ontwikkelaar kan het fluxsignaal bekijken in een plot-venster en de schuifknop “Flux Threshold” (Fluxdrempel) instellen om te specificeren op welk fluxniveau de motor moet worden omgeschakeld. Er kan worden geverifieerd of de omschakeling optimaal is door observatie van de fasespanning en stroomgolfvormen, die ook worden weergegeven.
Het InstaSPIN-FOC systeem bestaat uit vier hoofdonderdelen:
- Een microcontroller-printplaat
- Een motordriver-printplaat
- InstaSPIN-FOC grafische gebruikersinterface (GUI)
- Een BLDC-motor
De microcontroller-printplaat zorgt ervoor dat de FOC-algoritmes worden uitgevoerd en vertelt de motordriver wanneer de verschillende motorfasen in- en uitgeschakeld moeten worden. Ook beheert hij de communicatie met de GUI waar de ontwikkelaar de fluxniveaus en andere parameters kan bekijken. De motordriver biedt de interface om de motor aan te drijven. Deze bevatten de elektrische circuits voor bescherming van de microcontroller tegen hoogspanning, voor het doen van metingen en ook voor het detecteren van motorfouten.
De InstaSPIN-FOC GUI is een universele GUI die zich in de online development gallery van Texas Instruments bevindt. Ontwikkelaars kunnen de GUI rechtstreeks vanuit een webbrowser uitvoeren of een lokaal uitvoerbare versie naar hun pc downloaden.
Als laatste onderdeel hebben we de drie-fase BLDC-motor met permanente magneet.
We zullen nu dieper ingaan op elk van deze onderdelen en vervolgens een mogelijke hardware-oplossing bespreken om een BLDC-motor aan de praat te krijgen.
BLDC-motordrivers en microcontrollers
Ontwikkelaars kunnen kiezen uit verschillende oplossingen om hun BLDC-motor aan te drijven, men hoeft dus niet lang te zoeken: InstaSPIN-FOC van TI en MotorControl SDK zijn gekoppeld met de LAUNCHXL-F280049C TMS320F280049C LaunchPad (Afbeelding 1) en het BOOSTXL-DRV8323RS LaunchPad Booster Pack. De TMS320F28049C LaunchPad is een goedkoop ontwikkelingsbord met een ingebouwde XDS110 debugger, uitbreidingsstiftlijsten en de F280049CPMS TMS320F280049C Piccolo™ microcontroller.
Afbeelding 1: de TMS320F280049C LaunchPad bevat een geïsoleerde USB XDS110 debugging-sonde, een F280049C Piccolo microcontroller en elektronica voor het voeden van twee booster packs die voor toepassingsspecifieke hardware kunnen worden gebruikt. (Bron afbeelding: Texas Instruments)
De TMS320F280049C microcontroller gebruikt een C2000 microcontrollerkern, heeft 256 Kbytes flash, 100 Kbytes RAM en werkt op 100 megahertz (MHz). De TMS320F280049C bevat ook FOC motorregelingsalgoritmes van TI, ingebouwd in het ROM zodat ontwikkelaars geen kostbare coderuimte hoeven te verspillen.
De TMS320F280049C LaunchPad vormt niet de enige manier waarop ontwikkelaars de TMS320F280049C-microcontroller kunnen gebruiken. Een alternatief is de TMDSCNCD280049C-besturingskaart voor de TMS320F280049C-microcontroller (Afbeelding 2). Deze kaart kan in de prototypefase worden gebruikt of door ontwikkelaars die de flexibiliteit willen hebben om de microcontroller in hun toepassing te kunnen verwisselen of die meer uitbreidingscapaciteit nodig hebben. De besturingskaart kan in een docking-station worden gestoken dat de ontwikkelaars toegang geeft tot de I/O van de microcontroller.
Afbeelding 2: de TMS320F280049C-besturingskaart biedt motorbesturingsfuncties in een klein modulepakket dat kan worden gebruikt met een docking-station om toegang tot de I/O van de microcontroller te krijgen. (Bron afbeelding: Texas Instruments)
DRV8323RS LaunchPad Booster Pack is een uitbreidingskaart op de bovenkant van de TMS320F280049C LaunchPad en biedt de aanvullende hardware die nodig is om een BLDC-motor aan te drijven (Afbeelding 3).
Afbeelding 3: DRV8323RS LaunchPad Booster Pack bevat de motordriver-controller, FET's en aanvullende circuits om een BLDC-motor aan te drijven. (Bron afbeelding: Texas Instruments)
De DRV8232RS-kaart kan zich in het uitbreidingsgebied van site 1 of site 2 bevinden, maar in de voorbeelden van MotorControl SDK wordt aangenomen dat de kaart zich op de locatie van site 1 bevindt. Ontwikkelaars kunnen hun BLDC-motor op de kaart aansluiten via drie connectors van het aansluitklemtype en de kaart vervolgens van een externe voeding voorzien om de motor aan te drijven. Het DRV8232RS LaunchPad Booster Pack levert ook stroom aan de kaart van TMS320F280049C. De kaart bevat leds om aan te geven dat de stroom is ingeschakeld en een led voor storingsdetectie.
In het hart van het DRV8232RS LaunchPad Booster Pack bevindt zich de DRV8230, een slimme drie-fase gate-driver. De gate-driver biedt lage-zijde stroomdetectie en directe aandrijving voor MOSFET's met een nominale bedrijfsspanning van maximaal 60 volt.
Met de TMS320F280049C LaunchPad en het DRV8232RS LaunchPad Booster Pack kunnen ontwikkelaars een breed scala aan BLDC-motors aandrijven. Een hele goede motor om mee te starten is de QBL4208-41-04-006 van Trinamic (Afbeelding 4).
De Trinamic-motor werkt op een voeding van 24 volt, draait op een toerental van 4000 toeren per minuut (RPM) en produceert een koppel van 62,5 millinewton per meter (mNm).
Afbeelding 4: de Trinamic QBL4208-41-04-006 4000 RPM BLDC-motor werkt op een voeding van 24 volt en produceert een koppel van 62,5 mNm. (Bron afbeelding: Trinamic Motion Control GmbH)
Na te hebben aangestipt wat een ontwikkelaar minimaal nodig heeft om aan de slag te gaan met BLDC-motorregeling, is de volgende stap om te kijken hoe de motorparameters kunnen worden geïdentificeerd met behulp van de InstaSPIN-FOC GUI.
De BLDC-motorparameters identificeren en de motor laten werken
Voordat InstaSPIN-FOC GUI een motor kan aandrijven, moet de software de motorkenmerken begrijpen zodat het de FOC, oftewel veld-geöriënteerde regeling voor toerental of koppel kan uitvoeren. Daarvoor moet het algoritme onder meer de volgende kenmerken kennen:
- Weerstand
- Inductantie
- Motorflux
- Magnetiseringsstroom
Deze kenmerken kunnen in luttele minuten automatisch worden bepaald via de InstaSPIN-FOC GUI. De GUI kan worden uitgevoerd vanuit een browser en zal standaard het MotorControl SDK lab 5 laden, dat is ontworpen om met de TMS320F280049C en de DRV8232 uitbreidingskaart te worden gebruikt. Lab 5 laat zien hoe een ontwikkelaar een motor kan identificeren en de motorparameters kan achterhalen. De volledige details zijn te vinden in de GUI-snelstartgids en in de lab-handleiding.
Om te beginnen opent de ontwikkelaar de InstaSPIN-FOC GUI via de ontwikkelaarssite van TI. In de GUI-omgeving bevindt zich een run-knop, net als in iedere willekeurige andere ontwikkelings-IDE. Wanneer op deze knop wordt geklikt, wordt de motoridentificatiecode naar de LaunchPad geladen en wordt gepoogd deze uit te voeren.
In eerste instantie gebeurt er niets interessants, omdat de ontwikkelaar de software eerst moet activeren. Hiervoor moet het selectievakje “Enable System” in de GUI worden aangevinkt. Op dit punt zal de motoridentificatiecode nog steeds niet worden uitgevoerd, aangezien ook het selectievakje “Run” moet worden aangevinkt. Nadat Run is aangevinkt, zal de code beginnen met het uitvoeren van een sequens om de motor te identificeren. Er worden metingen uitgevoerd om de parameters voor de werking van de motor te achterhalen. Het volledige identificatieproces neemt verscheidene minuten in beslag. Gedurende deze tijd zal het motortoerental omhoog en vervolgens omlaag gaan en zal de motor een aantal minuten op lage snelheid draaien.
Nadat dit proces is voltooid, kan de GUI van een ontwikkelaar er ongeveer uitzien als op Afbeelding 5.
Afbeelding 5: de InstaSPIN-FOC GUI kort nadat hij een motor heeft geïdentificeerd. (Bron afbeelding: Jacob Beningo)
In Afbeelding 5 is te zien dat er in de rechter bovenhoek van de GUI verschillende waarden zijn ingevuld. Dit zijn de motorparameters die moeten worden geregistreerd zodat ze later kunnen worden gebruikt om de motor in de koppel- of de snelheidsmodus aan te drijven. Ook is te zien dat de indicator “Motor Identified” (Motor geïdentificeerd) aan de linkerkant van grijs in groen is veranderd. Op dit punt kunnen we de motorsnelheid rechtstreeks aansturen via de GUI.
De motorsnelheid wordt eenvoudigweg geregeld door het vakje voor snelheidsreferentie, SpeedRef(Hz) in de GUI te veranderen. Merk op dat de motoracceleratie via deze referentieregeling zeer snel verloopt. Om de motor af te remmen is daarentegen de invoer van meerdere setpoints op een steeds lagere speedRef (snelheidsreferentie) vereist. De motor kan snel worden gestopt door het vinkje uit het selectievakje “Run” te verwijderen.
Tips en trucs voor het gebruik van een BLDC-motor met InstaSPIN-FOC van TI
Hieronder volgt een overzicht van werkpraktijken die ontwikkelaars moeten volgen bij het werken met BLDC-motors en InstaSPIN-FOC van TI:
- Selecteer een microcontroller waarop de motoralgoritmes zijn ingebouwd in het interne flashgeheugen. Daardoor is minder coderuimte nodig voor de motoralgoritmes en kan ook een verbetering van de uitvoering van de codes worden verkregen.
- Op de F280049C launchpad moet site 1 worden gebruikt als standaard site voor het DRV8323RS Launchpad Booster pack. Om site 2 gebruiken moet de software worden bijgewerkt.
- Neem de tijd om alle 13 de voorbeeld-labs te bekijken die als deel van de MotorControl SDK van TI worden geleverd. Deze labs dekken elk aspect, van de identificatie van de motorparameters tot de regeling van een motor via snelheids- en koppelregeling.
- Gebruik het lab 5 voorbeeld om je eigen motorparameters te vinden. Als je MOTOR_TYPE_PM gebruikt, zorg er dan voor dat je ook de volgende definitie toevoegt om het lab correct in te vullen en gebruik vervolgens de aangepaste waarde:
define #define USER_MOTOR_INERTIA_Kgm2 (7.06154e-06)
- Start het experimenteren met BLDC met de InstaSPIN-FOC online GUI.
Conclusie
Het aandrijven van een BLDC-motor via koppel- of snelheidsregeling kan een complex probleem zijn met aspecten die de kennis van een embedded software engineer te boven gaan, waardoor de projectontwikkeling vertraging oploopt. We hebben gezien dat ontwikkelaars die met InstaSPIN en MotorControl SDK en bijbehorende hardware van Texas Instruments werken, een BLDC-motor snel en gemakkelijk aan de praat krijgen, ook wanneer ze maar over een zeer beperkte kennis van besturingstechnieken beschikken.
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.




