Sedan en tid tillbaka har jag ägnat mig åt att försöka åstadkomma styrning av asynkrona växelströmsmotorer. Det hela började som ett projekt där jag ville kunna kommunicera mellan en dator (C++-program) och en elektronisk krets av typen Atmega16 via USART för att läsa från/skriva till pinnar på mikrokontrollern. När jag väl fått denna kommunikation att fungera ville jag kunna göra något (vettigt?) av detta så jag ville göra ett försök till styrning av en AC-motor från min PC. För att åstadkomma detta har jag byggt två kort; ett som hanterar kommunikation och styrning och ett kort som hanterar kraftdelen för matning av motorn. För att styra motorn skickas parametrarna frekvens (Hz), ramptid (s) och ett modulationsvärde som styr amplituden på spänningen till styrkortet (ger upphov till varierande tillgängligt moment) via C++-programmet. Därefter skickas signaler från styrkortet till kraftkortets transistorer som spänningssätter motorn. Nedan ses en bild på hur korten ser ut
Teorin bakom styrningen har jag hämtat från diverse kurs- och facklitteratur. I huvudsak handlar det om att utgå från en likspänning (i det här fallet endast 24V) och med hjälp av mikrokontrollern skapa ett slags pulståg som via transistorer matar AC-motorn med spänning, principen bakom kraftdelen ses nedan
Som ett första steg ville jag kunna reglera hastigheten på motorn. Varvtalet i denna första version kan ändras språngvis till valfri frekvens (inom vissa intervall) eller rampformat. Nedan ses en video på versionen som hanterar motorvarvtalet och visar en upprampning av motorn. Fick lägga upp en kort video p g a filstorleken.
Därefter ville jag kunna styra momentet på AC-motorns axel. För att kunna göra det krävdes en del kompletterande arbete för pulstågen men till slut fick jag till en hyfsat fungerande variant där det är möjligt att styra axelmomentet för ett givet varvtal. I skrivande stund är rampningen lite "hackig" men detta kan åtgärdas. Då varvtalet uppnåtts via rampning eller stegvis ändring rullar det dock på bra. Genom att variera kraften (parameter i C++-programmet) till motorn vid samma varvtal kan man med handen känna att det är olika lätt att bromsa motoraxeln. Ska se om jag kan lägga upp en video som kan åskådliggöra detta på ett bra sätt.
Moment-/varvtalsstyrning av AC-motor
Moment-/varvtalsstyrning av AC-motor
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Re: Moment-/varvtalsstyrning av AC-motor
Hur påverkar ramtid (s) och modulationsvärde vågformen som driver elmotorn ?
Re: Moment-/varvtalsstyrning av AC-motor
I mikrokontrollern beräknas skillnaden mellan aktuell frekvens och den önskade frekvensen om rampning skall utföras. Då kommer den aktuella frekvensen successivt att öka/minska (uppdateringen sker med 10 Hz i nuläget så att hastighetsändringen skall vara mjuk) tills dess att det önskade slutvärdet uppnåtts. Med andra ord genereras en ny signal varje 0,1 s tills önskad frekvens uppnåtts.
När det gäller modulationsvärdet kan nedanstående bild, som visar en spänningsmätning mellan två av motorns faser, vara till hjälp. Då modulationsvärdet ökar, kommer pulsernas längd att öka (högre spänning) och vid minskande modulationsvärde kommer pulsernas längd att minska (lägre spänning) enligt ett matematiskt samband.
Hoppas detta svar hjälper!
När det gäller modulationsvärdet kan nedanstående bild, som visar en spänningsmätning mellan två av motorns faser, vara till hjälp. Då modulationsvärdet ökar, kommer pulsernas längd att öka (högre spänning) och vid minskande modulationsvärde kommer pulsernas längd att minska (lägre spänning) enligt ett matematiskt samband.
Hoppas detta svar hjälper!
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.