Sida 1 av 2
Styra DC motor
Postat: 8 mars 2006, 17:04:07
av Elektro88
Nån som har något bra kopplings schema + program man kan använda till att styra DC motorer via paralell porten på datorn? helst utan att använda mikroprocessor
Funktioner som helst ska finnas med:
Av
PÅ
Fart (mha pulser)
styra med tangenterna på tgb
styrning av 2-4 motorer
Postat: 8 mars 2006, 17:10:17
av strombom
Vad menar du med pulser?
Postat: 8 mars 2006, 17:21:28
av Elektro88
det är väl så att LPT porten (paralell) använder sig av bitar (1 och 0) som man kan få att pulsera?
eller är jag helt ute och cyklar?
Postat: 8 mars 2006, 17:35:04
av strombom
Jo du kan styra pinnarna på parallellporten, jag har för mig att det är 8 pinnar som är in+ut samt kanske 5 till där några är in och några ut.
Jag tror det blir svårt att pulsbreddsmodulera en motor från parallellporten om det var det du tänkte på. Svårt att få det tillräckligt snabbt och rätt timing.
Jag tror det blir mycket lättare att använda en enchipsdator, särskilt när du ska styra hastigheten på 4 st motorer. Men det går säkert att göra någon finurlig lösning med skiftregister d/a omvandlare och någon drivkrets. Jag bara spånar...
Postat: 8 mars 2006, 17:47:15
av Elektro88
jo iofs...ja får prova mig fram....tack iaf
Postat: 8 mars 2006, 19:40:00
av bearing
Läste någonstans att om man ska styra hastigheten på en DC-motor med PWM ska signalen ha så låg frekvens som möjligt utan att motorn hackar. Mindre än 100 Hz var ett förslag. Detta var för att motorn har är induktiv och vid hög frekvens ökar impedansen så att motorn ger lägre effekt. Detta är tydligen också något man utnyttjar för att sänka strömmen.
Postat: 8 mars 2006, 22:03:15
av Millox
Hoho, det låter som nån kan sin laplacetransform lite för bra(eller dåligt).
Borde inte alls funka så eftersom spänningen över en induktans är V = L.*di/dt. Varierar man spänningen mellan Vd-Emf och -Emf får man en ström som är i_L,avg = 1/(L*Ts) (int(Vd-Emf,0,D*Ts)+int(-Emf,D*Ts,Ts)) där Ts är switchperiodtiden och D är pulsbredden. Man ser enkelt att integralerna kommer att bli lika oavsett switchfrekvens och medelströmmen kommer att bli i_L,avg=1/L*(Vd*D-Emf). Rippelströmmen däremot kommer att bero av switchfrekvensen, där en minskad switchfrekvens ger en större rippelström. Ett stort rippel i strömmen ger ett rippel i momentet också, vilket leder till att motorn kommer att gå mer ojämnt. Alltså, det är dåligt att ha lägre switchfrekvens, men det kan finnas begränsande faktorer såsom transistorval och liknande. För strömmar upp till 3 A eller så vid 12-24 V bör man dock kräma på så mycket man kan typ uppemot en 30-50kHz eller så...
Postat: 9 mars 2006, 00:13:13
av bearing
Jag förstår inte. Kanske har jag glömt bort hur en spole beter sig.
Om di löses ut ur första formeln fås di = V * dt / L . I dina andra formler använder du I = V / L om jag förstår rätt. Var tog tidsberoendet vägen?
På hög frekvens borde väl strömmen inte hinna stiga så högt under pulsen, alltså borde medelströmmen minska. Eller?
Postat: 9 mars 2006, 08:00:40
av Millox
Ja, jag tog en liten genväg. Vad jag gjorde var att medelvärdesbilda genom att dividera tidsintegralen med periodtiden. Men eftersom det är konstanta spänningar som laddar induktansen kan man även räkna såhär(som kanske blir lättare)
V = L * \Delta I / \Delta t. V Konstant -> konstant lutning. Strömmen får formeln:
V / L * \Delta t = \Delta i,
där \Delta i alltså är skillnaden mellan största och minsta värdet. Vi ser enkelt att ökar man \Delta t (minskar frekvensen) får vi en högre strömskillnad, dvs större strömrippel. För att få reda på medelströmmen måste vi medelvärdesbilda under en period. Med spänningen (Vd-Emf) under tiden D*Ts och (-Emf) under tiden (1-D)*Ts får vi strömmen:
1/L * ((Vd-Emf) * D * Ts+(-Emf) * (1-D) * Ts) / Ts = I
Dvs, förkorta bort Ts och Emf*D så får vi
1/L * (Vd*D-Emf) = I
Man ser att motorns emk inte påverkas av switchningen vilket är bra, spänningen som upplevs blir direkt beroende av Vd*D vilket gör det enkelt att kontrollera spänningen(inte nödvändigtvis viktigt dock) och strömmen minskar om man ökar L, vilket också stämmer väl eftersom strömmen inte hinner upp lika högt över som tidigare.
Ökar man switchfrekvensen däremot påverkar man bara ripplet, eftersom strömmen genom indukansen kommer att påverkas lika mycket uppåt som neråt.
Postat: 9 mars 2006, 19:09:04
av bearing
Just nu ser jag inget fel i beräkningarna. Men det känns som att du inte ska dividera med periodtiden.
Om man göra en enhetsanalys av vänster- och högerledet i din sista formel kommer man nog inte få samma sak.
Enheten på V/L kan väl inte vara samma som enheten på I?
V/R har samma enhet som I och w*L har samma enhet som R.
V/(w*l)=I verkar mer rimligt.
Men det är möjligt (jag tror att) jag är ute på en rejäl cykeltur här.
Hittade en av texterna jag läst.
http://www.epanorama.net/links/motorcontrol.html
Läsa stycket som börjar " Motor speed control of DC motor is nothing new "
Postat: 12 mars 2006, 14:21:59
av bearing
Jag tycker ämnet är intressant så jag skulle gärna se ett svar som reder ut missförståndet. Är jag ute på en iskall cykeltur eller har Millox fel?
Postat: 12 mars 2006, 15:00:58
av Millox
Sorry, har haft tentor(bland annat Power Electronics

) så jag har inte kunnat sitta och förklara det. Ska göra ett försök till nu.
Vi vet att spänningen är konstant under uppladdnings och urladdningsförloppen, vilket ger en konstant lutning på strömmen. Lutningen blir:
Uppladdning: (Vd-Emf)/L
Urladdning: (-Emf) / L
Strömmen måste naturligtvis vara lika stor i brytpunkterna, dvs då vi går från uppladdning till urladdning eller vice versa. Strömmen är i dessa båda punkter, uträknat från vanlig geometri:
Uppladdning: (Vd-Emf)/L * (D-0)*Ts (Tiden från 0 till DTs)
Urladdning (-Emf)/L * (1-D) * Ts (Tiden från DTs till Ts)
När dessa är lika får vi:
(Vd - Emf) / L * DTs = (-Emf) / L * (1-D) * Ts
Vi kan förkorta bort Ts, vilket ger oss ett förhållande som inte beror av Ts.
Observera att detta endast gäller för CCM. I DCM får vi iofs inte heller någon skillnad map Ts, men vi får formler som är betydligt mer komplicerade att räkna på. Brytpunkten mellan DCM och CCM däremot är klart beroende av Ts, där lägre Ts(högre frekvens) ger CCM vid en lägre ström.
Felet man gör när man säger att Z = jwL är att w != 2.*pi.*fs. Vi snackar fyrkantsvåg med pulsbredd skild från noll. w kommer alltså att vara ett oändligt antal udda och jämna övertoner. jw-metoden är bara definierad för harmoniska signaler, dvs rena sinus-signaler, utan snabbt varierande frekvens. Har man andra signaler än så måste man ner till differentialekvationerna och räkna.
Postat: 12 mars 2006, 15:06:37
av Millox
Nu har jag läst texten också (eller, det relevanta stycket bara). Det stora felet i den texten är att man anser att spänningen är det som driver motorn, men det är strömmen. Att bland annat koppla en kapacitans parallellt med motorn kommer bara att funka med ganska långsamma switchfrekvenser, eftersom denna annars kommer att stjäla all ström för att förhindra att spänningen växer. Dessutom kommer man få en oscillation mellan induktansen och kapacitansen vilken kan leda till problem.
Postat: 14 mars 2006, 00:09:24
av bearing
Nu har nog polletten ramlat ner här =)
Den senaste ekvationen med förklaring var pedagogisk. Kan ju bara inte vara fel.
Men det är inte främst den som fått mig att förstå.
Orsaken till att jag inte fått ihop det rent logiskt tidigare är att vi inte räknat med resistans i kretsen. Jag kom på det när jag försökte simulera en DC-motor i PSPICE vilket var mitt sista försök innan jag skulle ge upp.
(Antar att du vet följande, men skriver lite allmänt så att andra ska förstå eftersom jag tror jag löst det.)
Det finns ju alltid resistans i kretsen, främst i motor, drivkrets och spänningskälla.
Medelströmmen borde därför vara:
I = (Vd*D-Emf) / R där R är kretsens totala resistans.
Mina simuleringar visar just det du skrivit, att strömmen/momentet varierar större med lägre pulsfrekvens, men medelströmmen är samma oberoende av pulsfrekvens.
Med resistans i kretsen blir det även så att spänningen över spolen inte är konstant. Ju mer strömmen ökar ju mer spänningsfall blir det över resistansen; mindre spänning över spolen.
Nu tror jag iaf att jag fattat. Skriv om något verkar galet.
Då kommer även följdfrågan. Hur gör man för att begränsa strömmen? Enligt formeln ska duty minskas, men då kommer även spänningen över motorn minska.
Jag har läst någonstans att man med "high frequency PWM" ska kunna begränsa strömmen.
Postat: 14 mars 2006, 02:00:00
av rehnmaak
Självklart kommer spänningen att sjunka om du minskar duty cycle. Samtidigt sjunker strömmen eftersom den är beroende av spänningen.