Sie sind auf Seite 1von 20

STAGEVERSLAG

Rotorblokkagedetectie bij stappenmotoren


a.d.h.v. tegen–emk meting

PsiControl Mechatronics

Juli – September 2010

Michaël Kerkhofs

Stagebegeleider: ir. Griet Van den Abeele

Stagepromotor: Prof. dr. ir. Lieven Vandevelde


Woord vooraf

Na het afspringen van mijn buitenlandse stage heb ik gelukkig last minute nog een stage
kunnen vinden bij PsiControl Mechatronics1 te Ieper. Hoe beter te weten komen hoeveel
werk er nog is voor je klaar bent voor de arbeidsmarkt dan een echte opdracht. Ik ben dan
ook zeer blij dat ik zeker een stage heb kunnen doen.

In deze stage heb ik onder andere geleerd een data–aquisitie systeem op te zetten en de
problemen die hiermee gepaard gaan. Het was zeer interessant om de overgang te maken van
theoretische stof naar toepassingen. Daarom alleen al is een stage aan iedereen aan te raden.
Het maakt ook duidelijk hoe belangrijk het is de geziene stof in de lessen op een diep niveau
te begrijpen.

Hier nog een stukje over de stappenmotor.

Ik wil vooral mijn stagebegeleidster, Griet Van den Abeele, bedanken voor de uitleg en het
bijstaan tijdens deze stage. Door mij op regelmatige basis te bevragen naar mijn vooruitgang
en mij raad te geven heb ik het doel zeker sneller bereikt.

Dit verslag is zeker geen samenvatting van alle methodes die in de literatuur te vinden zijn.
Door de beperking op het aantal pagina’s, heb ik altijd enkel de theorie nodig voor het
probleem neergeschreven. Zo wordt een volledige beschrijving van de werking van stappen-
motoren hier niet gegeven en kunnen sommige (triviale) details ontbreken.

Michaël Kerkhofs
Gent September 2010

1
http://www.psicontrolmechatronics.com/

i
Inhoudsopgave

1 Bedrijf 1
1.1 Picanol Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 PsiControl Mechatronics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Stageopdracht 2
2.1 Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Theorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.1 De stappenmotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2.2 Sturingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2.3 Vervangschema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Automatische acceleratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Detectie van de mechanische stop 8


3.1 Werkomgeving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.1 ADwin Gold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.2 Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.3 OXI driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.4 Meetprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1.5 Stappenmotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 Realisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.1 Werking van de verschillende programma’s . . . . . . . . . . . . . . . 11
3.2.2 Werking van het algoritme . . . . . . . . . . . . . . . . . . . . . . . . 12

4 Automatische acceleratie 13
4.1 Literatuurstudie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2 TRINAMIC TMC262 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.1 stallGuard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.2.2 coolStep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.2.3 Gebruik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

A Verificatie stopdetectie 16

ii
Hoofdstuk 1

Bedrijf

1.1 Picanol Group


Picanol is een Belgisch bedrijf met geschiedenis. Sinds de oprichting in 1936 speelt het een
pioniersrol in de ontwikkeling en productie van weefmachines. Het werd opgericht door Jaime
Picanol, die de eerste machine ontwierp en Karel Steverlynck, die de succesvolle bedrijfstra-
tegie uitwerkte. In 1973 introduceerde Picanol als eerste een elektrisch gestuurd weefgetouw.
Sindsdien staat Picanol garant voor hoogtechnologische weefgetouwen. De oprichting van de
Picanol Group had hoofdzakelijk twee doelstellingen. Enerzijds laat het toe een weefgetouw te
ontwerpen, gieten en assembleren vanuit de ruwe basismaterialen, tot de afgewerkte machine.
Anderzijds kan men na verkoop ondersteuning en wisselstukken aanbieden. Hierdoor heeft de
Picanol Group alle touwtjes in handen.

1.2 PsiControl Mechatronics


PsiControl Mechatronics is een dochterbedrijf van weefgetouwenproducent Picanol. Net zoals
Picanol, Proferro en Melotte maakt het deel uit van de Picanol Group. PsiControl Mechatro-
nics is gespecialiseerd in ontwerp, ontwikkeling, productie en ondersteuning van elektrische en
mechatronische systemen. Zo worden er bijvoorbeeld controllers voor Atlas Copco ontworpen
en gebouwd. Voor de Picanol Group zorgt PsiControl Mechatronics voor de sturing van de
weefgetouwen. Aangezien hier precieze positionering nodig is, zijn dit vooral stappenmotoren.
Doorheen de jaren heeft PsiControl Mechatronics dan ook een grote expertise op het vlak van
stappenmotoren (en variabele reluctantiemotoren) opgebouwd. Een expertise die ze ook ter
beschikking stellen van externe bedrijven. De afgelopen jaren is het OXI platform ontworpen,
een controller die via PC tot 8 stappenmotoren kan aansturen. R&D en prototyping gebeurt
op de site in Ieper. Productie gebeurt in België, Roemenië en China.

1
Hoofdstuk 2

Stageopdracht

2.1 Probleemstelling
Bij een subsysteem van de weefgetouwen van Picanol worden stappenmotoren gebruikt. Dit
omdat stappenmotoren zich heel goed lenen tot nauwkeurige positionering zonder terugkop-
peling. De motor wordt naar een bepaalde positie gebracht door het aanleggen van een
elektrische pulstrein. Aangezien op deze manier de rotor een gegeven aantal graden verdraaid
wordt van zijn huidige positie, is het nodig een startpositie te definiëren, ten opzichte waarvan
de te bereiken posities gedefinieerd worden. Nu wordt deze startpositie bereikt door een me-
chanische stop te installeren waartegen de rotorarm aanslaat. Er wordt een voldoende lange
pulstrein aangelegd zodat de arm de mechanische stop zeker bereikt. Als de arm al dicht bij
de stop staat, zal hij er dus veel tegenaan slaan met lawaai en slijtage tot gevolg. Na het
beëindigen van de pulstrein, wordt verondersteld dat de arm zich tegen de stop bevindt. De
rotorarmen worden zo geı̈nstalleerd dat als de rotorarm tegen de stop staat, de rotor intern
gealigneerd staat met een bepaalde fase. Dit is arbeidsintensief aangezien bij assemblage al-
tijd deze fase moet bekrachtigd worden voordat de rotorarm kan geı̈nstalleerd worden. Na de
starttrein staat de rotorarm dus tegen de stop en is ook geweten welke fase nu bekrachtigd
moet worden.

Figuur 2.1: Stappenmotor in de Picanol applicatie

2
Hoofdstuk 2. Stageopdracht 3

In deze stage was het de bedoeling een manier te vinden om de botsing van rotorarm met
mechanische stop te detecteren zodat deze niet tegen de stop blijft slaan. Hiervoor zijn
metingen van de fasestroom en –spanning van elke fase en encodermetingen van de rotor
beschikbaar. Rotorpositiemeting is in de uiteindelijke uitvoering niet mogelijk aangezien er
geen encoders geı̈nstalleerd worden. Als botsten gedetecteerd wordt, moet het algoritme
ook onthouden bij welke fase dit gebeurt. Deze fase wordt dan in het latere programma
als startfase gebruikt. Hierdoor kan de stappenmotor gewoon geı̈nstalleerd worden op de
machine zonder eerst te bekrachtigen om de rotorarm te installeren (anders moet eerst de
motor bekrachtigd worden met een bepaalde bekrachtiging om daarna de rotorarm tegen de
stop te installeren).

PsiControl wil met het ISMA-project (Intelligent Stepper Motor Algorithm) een vervangmid-
del zoeken voor de relatief dure encoder (en complexere/meer dure bouw van de motor, er
is immers een tweede asuiteinde nodig). PsiControl werkt aan dit project samen met drie
partners: Hogeschool West-Vlaanderen (HOWEST), ON Semiconductor (ON) en Universiteit
Gent (UG – EELAB). Het doel van het project is, met enkel een stroom– en spanningsmeting
alle nodige parameters voor een robuuste terugkoppeling te bekomen (zonder enconders). Dit
komt neer op een schatting van de tegen–emk a.d.h.v. spannings- en stroommeting. Deze
tegen–emk is immers evenredig met de snelheid en de fasehoek met de stroom geeft informa-
tie over de last en het moment van stapverlies. Deze emk–meting kan dan gebruikt worden
voor vectorsturing van de motor. De voordelen hiervan zijn: lager stroomverbruik, kleinere
verliezen, minder fouten door stapverlies, koppel in optimale punt.

2.2 Theorie
2.2.1 De stappenmotor
Stappenmotoren worden veel gebruikt in de industrie aangezien ze een nauwkeurige positie-
regeling mogelijk maken zonder snelheidsfeedback. Hierdoor zijn geen (dure) encoders nodig
om de snelheid terug te koppelen. Stappenmotoren zijn vrij goedkoop en ook de sturing valt
goedkoop te realiseren. Er kunnen drie soorten stappenmotors onderscheiden worden:

• permanente–magneet–stappenmotors (PMSM)

• variabele–reluctantie–stappenmotors (VRSM)

• hybride stappenmotors (HSM)

Voor meer informatie omtrent de verschillende types wordt verwezen naar de cursus gestuurde
elektrische aandrijvingen, het handboek Elektronische vermogenscontrole of het internet.

De stappenmotoren waarmee in deze stage gewerkt werden, zijn van het hybride type (ei-
genschappen tabel 1). Hybride stappenmotors hebben een permanente magneet rotor en een
Hoofdstuk 2. Stageopdracht 4

Figuur 2.2: PMSM (links) en HSM (rechts)

groot aantal poolparen. De permanente magneet draagt bij tot de koppelvorming maar de
stapgrootte wordt alleen bepaald door het aantal tanden van rotor en stator. Het gebruikte
type is een tweefasige bipolaire motor met 50 poolparen. Dit komt neer op 200 stappen per
omwenteling of 1,8◦ per stap.

2.2.2 Sturingen
In de applicatie wordt een volstap sturing gebruikt waarbij beide fasen altijd bekrachtigd
zijn. Dit levert een groter koppel ten opzichte van het geval waarin fase A en B elk om beurt
bekrachtigd worden. De pulssequentie wordt in figuur 2.3 weergegeven. Het is duidelijk dat
de rotor de sequentie zal volgen.

Andere mogelijke sturingen zijn wave drive, half step drive en microstepping. Bij wave drive
wordt altijd maar één winding bekrachtigd. Dit zorgt voor een lager verbruik maar ook voor
minder koppel. Half step drive wisselt af tussen bekrachtiging van twee fasen en bekrachtiging
van één fase. Het aantal stappen wordt dan verdubbeld (in geval van de gebruikte stappen-
motoren gaat men van 1,8◦ naar 0,9◦ per stap). Er is een zwakke en een een krachtige stap.
De flux is niet dezelfde voor elke stap en de nauwkeurigheid is ook niet zo goed als bij full
step sturing. In het geval van microstepping wordt de stroom (en dus de statorflux) in kleine
stapjes gevarieerd. Dit laat toe om de stroom een sinusfunctie te laten benaderen (tegenover
blokvorm bij full step). Dit zorgt voor een vloeiende beweging van de rotor en vermindering
van het resonantiegedrag. Op deze manier kan men van 200 (of 400) echte stappen naar 10000
of zelfs 25000 stappen per omwentelling gaan.

De windingen worden bekrachtigd vanuit een spanningsbron. De tijdsconstante van een stap-
perfase ligt rond de 10ms. Bij hoge schakelfrequenties kan de stroom soms niet meer stijgen
tot maximale waarde (en dus gewenst koppel). Daarom wordt een te hoge voedingsspanning
aangelegd en door middel van hakkers wordt de stroom begrensd op een bepaalde waarde.
Door de hogere spanning zal de stroom sneller stijgen naar de gewenste waarde waardoor
Hoofdstuk 2. Stageopdracht 5

Figuur 2.3: Excitatiemodes

hogere schakelfrequenties mogelijk zijn.

2.2.3 Vervangschema
Uit het vervangschema van een fase wordt volgende formule bekomen:

dI(t)
V (t) = RI(t) + L + emk(t)(dezef ormulemoetnogaangepastworden)
dt
Hierbij is de tegenemk evenredig met de de draaisnelheid:

emk(t) = kφω(t)

Het uitgangspunt is dat het botsen van de rotorarm tegen de mechanische stop kan gede-
tecteerd worden door observatie van de tegenemk. Immers, als tegen de stop gebotst wordt,
staat de de rotor stil. Dit zou moeten waargenomen worden door een op nul vallen van de
tegenemk.
De tegenemk is niet rechtstreeks meetbaar aan de klemmen van de motor. Herschikken van
de eerste formule geeft:

dI(t)
emk(t) = V (t) − RI(t) − L
dt
De tegenemk is dus functie van de klemspanning, fasestroom en afgeleide van de fasestroom.
De eerste twee kunnen rechtstreeks in de vergelijking gebracht worden aangezien ze beschik-
baar zijn via metingen. De afgeleide van de stroom is niet beschikbaar maar kan verkregen
worden door discrete differentiatie van de stroom:

dI(t) I(t) − I(t − ∆t)


=
dt ∆t
In eerste instantie werd deze aanpak gevolgd in de stage. Berekenen van de afgeleide brengt
problemen met zich mee. Het vraagt veel extra rekenkracht en ruistermen worden uitver-
groot. Er is echter een eenvoudigere methode. Als de klemspanning gemeten wordt over een
stroomloze fase, geeft dit automatisch de tegenemk:
Hoofdstuk 2. Stageopdracht 6

V (t) = emk(t)

Om dit te kunnen doen wordt overgestapt van full step drive naar wave drive (zie fig. 2.3).
Bij wave drive wordt altijd maar één fase bekrachtigd. Ondertussen wordt over de andere
(open) fase de spanning gemeten, dit is de tegenemk over die fase. Stroommeting wordt in
deze oplossing dus niet gebruikt.

Figuur 2.4 toont dat bij blokkeren van de motor, de tegenemk op nul valt. Het algoritme
krijgt de emkmetingen en vergelijkt deze met een referentiespanning. De amplitude van de
tegenemk bij gewoon bedrijf bevindt zich voor verschillende snelheden en stromen altijd in de
grootte-orde van meerdere volts. Bij stall daarentegen valt de gemeten spanning op nul. De
afwijkingen van de nulspanning door ruis zijn klein. Hierdoor is er geen of niet veel regeling
nodig bij de keuze van een referentiespanning. Hier werd gekozen voor een referentiespanning
van 0.5 V.

2.3 Automatische acceleratie


De pulssequenties die aan de stappermotors worden aangelegd worden bij PsiControl hand-
matig ontworpen voor de specifieke toepassing. Er wordt een pulssequentie ontwikkeld die
schakelt op het moment dat de rotor in de juiste richting beweegt (als dit niet gedaan wordt,
kan er geschakeld worden op moment dat de motor aan het uitslingeren is en de snelheid in
de verkeerde richting gericht is). Deze handmatig ontwikkelde sequentie wordt dan getest
om te zien of ze in de praktijk robuust genoeg is. Aangezien dit moet gebeuren voor elke
toepassing is dit een tijdrovende bezigheid. Een andere doelstelling van het ISMA-project
is een automatische acceleratie te ontwikkelen. De gewenste snelheid wordt opgegeven en
het programma versnelt de motor hier naartoe. Met behulp van de emkschatting wordt er-
voor gezorgd dat de motor voldoende stroom (koppel) levert om geen stappen te verliezen en
eventueel te decellereren als de motor stappen dreigt te verliezen.

Figuur 2.4: Stapresponsie (boven) en tegenemk (onder) bij vier stappen (derde stap rotor geblokkerd)
Hoofdstuk 2. Stageopdracht 7

Er was niet voldoende tijd meer om dit uit te werken. Wel werd gekeken naar de mogelijkheid
tot gebruik van een extern aangekochte controller.

Figuur 2.5: Botsdetectiealgoritme bij stapsnelheid van 50ms


Hoofdstuk 3

Detectie van de mechanische stop

3.1 Werkomgeving
In figuur 3.1 is schematisch de gebruikte opstelling weergegeven. Communicatie tussen de
computer en de componenten gebeurt via het ADwin Gold data–aquisitiesysteem. Aansturen
van de stappenmotor wordt gerealiseerd door de OXI–print. Informatie over spanning en
stroom wordt via de meetprint gemeten en ingegeven in de computer via het ADwin systeem.
Ook de (digitale) encodersignalen worden via het ADwin systeem doorgegeven aan de com-
puter voor verdere verwerking. Op de computer wordt gebruikt gemaakt van de ADbasic
programmeeromgeving om de het ADwin systeem te programmeren en te configureren. Mat-
lab wordt gebruikt voor verwerking van data en als eenvoudigere interface voor het ADwin
systeem (parameters plaatsen en starten van processen geschreven in ADbasic via Matlab).

Figuur 3.1: Opstelling

8
Hoofdstuk 3. Detectie van de mechanische stop 9

3.1.1 ADwin Gold


Om de motor te sturen vanaf de computer is er een DAC nodig en om de gewenste analoge
signalen (stroom, spanning) in te lezen is er een ADC nodig. Bij PsiControl Mechatronics
wordt gebruik gemaakt van het ADwin Gold Data–aquisitiesysteem van Jäger Computerge-
steuerte Messtechnik1 . Deze beschikt over 16 analoge ingangen, 2 analoge uitgangen en 32
configureerbare IO’s. Voor meer informatie wordt verwezen naar de handleiding (te vinden
op de bedrijfswebsite).

3.1.2 Computer
Matlab

In eerste instantie werd de opgemeten data geplot in Matlab om voeling te krijgen met het
gedrag van de motor. Er werden verschillende snelheden aangelegd, versneld vertraagd en
bruusk gestopt. Om dit vlot te testen werd een standaardprogramma geschreven in ADbasic
dat een pulstrein genereert om de motor aan te sturen. De gewenste pulstrein wordt ge-
maakt door een functie in Matlab en ingeladen in het ADbasic programma via het commado
Set Data.

Matlab werd vooral gebruikt om inzicht te verwerven, algoritmes te testen op sets opgemeten
data en om ADbasic programma’s te starten via een functie.

ADbasic

Programma’s voor de ADwin Gold worden geprogrammeerd in een Basic taal genaamd
ADbasic. Het programma is opgebouwd uit drie delen:

• Init:

• Event:

• Finish:

In Init worden alle variabelen en arrays gedefinieerd alsook de Global Delay. Dit is de tijd
tussen twee Event loops. Het Event bevat het eigenlijke programma. Hier wordt bijvoorbeeld
een spanningssample gemeten, een ADC uitgevoerd en de waarde opgeslagen in een array.
Deze event–lus wordt zo vaak herhaald tot een END-voorwaarde voldaan is. Dit kan een aantal
stappen van de motor zijn of bijvoorbeeld het waarnemen van een botsing met de mechanische
stop. Nadat de END–voorwaarde voldaan is, stopt de Event loop en gaat het programma
door naar de Finish. Dit wordt maar één keer uitgevoerd. Hierin kan bijvoorbeeld staan dat
1
http://www.adwin.de/index-us.html
Hoofdstuk 3. Detectie van de mechanische stop 10

aan de motor een bepaalde houdstroom moet aangelegd worden om hem in de eindstand te
houden. Ook subroutines die gebruikt worden in het Event worden hier gedefinieerd.

De ADwin Gold kan tot 10 processen simultaan uitvoeren. Hierdoor kan een apart proces
gebruikt worden voor de ADC–data en voor het motorstapprogramma. Om communicatie
tussen de verschillende processen mogelijk te maken, wordt gebruik gemaakt van parameters.
Er kunnen tot 80 parameters gebruikt worden (PAR 1 tot PAR 80). Deze worden door alle
processen gedeeld en zijn dus geschikt om informatie uit een proces beschikbaar te maken in
een ander proces. Parameters kunnen ook extern geı̈nitialiseerd worden, bijvoorbeeld vanuit
Matlab. Door bijvoorbeeld de huidige bekrachtigingsfase op te slaan in een parameter, weet
elk proces altijd welke fase bekrachtigd is.

3.1.3 OXI driver


Het OXI platform is een stuurprint voor stappenmotoren, ontworpen door PsiControl zelf.
De outputs zijn de bekrachtigingen van fase A en B van de stappenmotor.

3.1.4 Meetprint
Deze meetprint werd ontworpen door een thesisstudent van de HOWEST. Ze vereist een
voedingsspanning van 24V. Zowel spanningen als stromen over beide fasen kunnen uitgelezen
worden. De meetprint krijgt de bekrachtigingen voor fase A en B als input. De klemspanning
en fasestroom wordt gemeten en gesampled door de ADwin Gold. De bekrachtigingen worden
aangelegd aangelegd aan de stappenmotor. In bijlage zit het schema van deze print.

3.1.5 Stappenmotor
De stappenmotor gebruikt in deze stage werd hiervoor al besproken (zie paragraaf 2.2.1). In
een later stadium werd het algoritme ook (succesvol) getest op enkele andere stappenmotors
om de robuustheid te controleren.

Figuur 3.2: ADwin Gold (links), meetprint (midden) en Oxi platform (rechts)
Hoofdstuk 3. Detectie van de mechanische stop 11

3.2 Realisatie
3.2.1 Werking van de verschillende programma’s
De procedure is op te splitsen in drie deelprocessen: een calibratie om de meetoffset van de
meetprint te vinden, een synchronisatie van de motor en het bewegen van de motor. Deze
processen worden opgeroepen door volgende matlabfuncties:

• cal()

• sync()

• motorstep(dir,aantal stappen, stapsnelheid)

cal

Het calibratieprogramma doet een meting bij stilstaande rotor om de offset op de spannings-
meting te bepalen. De offsetwaarden worden opgeslagen in het bestand waarden.mat.

sync

Het synchroniseerprogramma zorgt ervoor dat het programma weet tegenover welke fase de
rotor gealigneerd staat. Dit gebeurt door eerst de stepper motor met A+ te bekrachtigen.
Als de rotor verspringt, staat deze nu volgens bekrachtiging A+. Als de rotor niet verspringt,
staat hij al volgens A+ maar wordt ter controle bekrachtiging A- aangelegd. De rotor zal zich
dan aligneren met bekrachtiging A-. Als dit niet gebeurt en we gebruiken het botsdetectie-
algoritme, kan dit soms problemen geven: Stel dat de rotor al volgens A+ staat en als eerste
bekrachtiging wordt ook A+ aangelegd. De rotor zal dan niet draaien en het algoritme zal
verkeerdelijk weergeven dat tegen de mechanische stop gebotst wordt.

motorstep

In dit programma wordt gewenste draairichting, aantal stappen en stapsnelheid ingegeven.


Aan de hand hiervan wordt dan in Matlab een stapsequentie opgebouwd die in het Ad-
win programma wordt ingelezen. De volgende te bekrachtigen fase wordt hier ook bepaald,
uitgaande van de huidige positie, verkregen uit het sync programma. Deze matlabfunctie
communiceert met twee Adwinprogramma’s: motorstep en emk–reken. Motorstep zorgt er-
voor dat de motor stapt volgens de gegenereerde stapsequentie en stopt het stappen zodra
de mechanische stop gedetecteerd wordt. Emk–reken meet de ADC–waarden in en past het
algoritme toe. Zodra de stop gedetecteerd wordt, zet het programma een controlevariabele
op 1. Deze controlevariabele wordt ook door motorstep gedetecteerd zodat het programma
gestopt kan worden.
Hoofdstuk 3. Detectie van de mechanische stop 12

Eigenlijk kunnen deze drie programma’s vervat worden in één ’initialisatieprogramma’ dat
eerst de offset bepaalt voor verder gebruik, dan de rotor aligneert met een gekende fase en
daarna de motor laat stappen. Praktisch gaan deze programma’s elk maar één keer lopen
om de motor naar de stop te brengen. Ik heb deze echter gescheiden gehouden omdat ik de
calibratie en de synchronisatie maar één keer moet uitvoeren maar het programma motorstep
meerdere keren gebruik. Zodra de motor goed gealigneerd staat, houdt het programma altijd
bij hoe de rotor staat en is de synchronisatie niet meer nodig.

3.2.2 Werking van het algoritme


Als in een stap (waarin 100 spanningsmetingen gebeuren), te weinig metingen boven de re-
ferentiespanning lagen, kan aangenomen worden dat er stall opgetreden is. De volgende be-
krachtigingen worden aangelegd en na vier keer wordt dezelfde bekrachtiging weer aangelegd.
Als weer stall waargenomen wordt bij deze bekrachtiging, wordt de stapsequentie gestopt en
onthoudt het programma met welke fase en bekrachtiging de motor nu gealigneerd staat.

Het algoritme kan nog robuuster gemaakt worden door er rekening mee te houden dat als
tegen de stop gebotst wordt, vier bekrachtigingen later (fase waarbij botsing gebeurde), er
weer stall moet waargenomen worden. Als dit niet gebeurt, kan er van uit gegaan worden dat
er een stap verloren gegaan is om een andere reden.
Hoofdstuk 4

Automatische acceleratie

4.1 Literatuurstudie
Er werd een literatuurstudie uitgevoerd om te kijken naar mogelijke oplossingen. Een veel-
gebruikte strategie bestaat erin naar de lasthoek te kijken. Naarmate de motor meer belast
wordt, zal de rotorflux beginnen naijlen op de statorflux. Maximaal koppel wordt bekomen bij
lasthoek van 90◦ . Dit is ook de hoek tussen de tegenemk en de fasestroom. Een manier om
dit te meten is de spanning meten bij nuldoorgang van de stroom. Dit is dan een emkmeting.
Als er altijd op dit punt gemeten wordt en belasting blijft constant, zal dit een constante
waarde geven. Bij stijgende belasting zal de tegenemk beginnen naijlen. Bij spanningsmeting
op de nuldoorgang van de stroom krijgt men dus een kleinere waarde. Als de de emk nul
wordt, zijn stroom en tegenemk in fase. Het lastkoppel wordt groter dan het houdkoppel en
de motor verliest een stap.
(nota: nog iets zeggen over microstepping)

Figuur 4.1: Emk bij belasting

13
Hoofdstuk 4. Automatische acceleratie 14

4.2 TRINAMIC TMC262


Ook werd gekeken naar de mogelijkheden van een controller van het bedrijf Trinamic1 : de
TMC262. Deze heeft de, door het bedrijf gepatenteerde, functie stallGuard2 en coolStep.

4.2.1 stallGuard
Het algoritme stallGuard2 voert een relatieve emkmeting uit aan de hand van spannings–
en stroommeting. Aangezien de software niet beschikt over de waarden van weerstand en
inductantie van de fasen, kan de emk niet bepaald worden. Er wordt een waarde berekend
die evenredig is met de werkelijke emk en noemen die de stallGuard waarde (SG). Aangezien
de emk in een groot bereik van snelheden en bekrachtigingen lineair evenredig is met de last-
hoek, geeft de SG–waarde informatie over de lasthoek. Als de lasthoek 90◦ wordt, wordt het
lastkoppel groter dan het geleverd koppel door de motor. De SG–waarde kan dus voorspellen
wanneer stall zou optreden. Aangezien dit een relatieve waarde is, moet deze getuned worden
voor elke motor. Door de stallGuard treshold value (SGT) proefondervindelijk te tunen (voor
een bepaalde stroom en snelheid), kan men een waarde vinden waarvoor de SG–waarde nul
bereikt, net voor de motor in stall gaat. Het is belangrijk deze te tunen zodat ze daadwerkelijk
nul wordt net voor stall optreedt. Immers, de output van de controller is een discrete waarde:
nul of één. Als SG nul wordt, wordt de output van de controllerpin één. Dit signaal kan dan
gebruikt worden in een algoritme om stall te vermijden (stroom verhogen of decellereren).

Figuur 4.2: werking stallGuard

1
http://www.trinamic.com/
Hoofdstuk 4. Automatische acceleratie 15

4.2.2 coolStep
Het algoritme coolStep bepaalt de stroom naar de motor a.d.h.v. de SG–waarde. Als de
motor belast wordt, zal de SG–waarde dalen en coolStep zal de stroom laten stijgen zodat
stall vermeden wordt. Als de motor minder belast wordt, zal SG stijgen en zal coolStep de
stroom laten dalen. Zo zorgt coolStep ook voor lager stroomverbruik.

Figuur 4.3: werking coolStep

4.2.3 Gebruik
Het stallGuard algortime kan getuned worden voor de motors van PsiControl zodat de SGT–
pin hoog wordt, net voor de motor een stap verliest. Op basis hiervan kan een acceleratie–
algoritme ontwikkeld worden.

Deze uitgang kan ook gebruikt worden voor hetzelfde doel als het eerste deel van de stage,
namelijk detectie van een botsing met de mechanische stop. Als de rotorarm tegen deze stop
botst, zal de SGT hoog worden dus dit is eenvoudig te implementeren.
Bijlage A

Verificatie stopdetectie

16
Bijlage A. Verificatie stopdetectie 17

Figuur A.1: Stall bij 20ms

Das könnte Ihnen auch gefallen