Moment-/varvtalsstyrning av AC-motor
Postat: 17 augusti 2012, 18:05:36
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.
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.