PID-reglering + stanna motor exakt

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

PID-reglering + stanna motor exakt

Inlägg av squiz3r »

En PID-regulator implementerad i en PIC (18F4620) kommer att användas för att styra en elmotor med en spaltskiva på. 200 spalter per varv läses av med hjälp av en läsgaffel (bara en läsgaffel, så rotationsriktningen läses ej av). Motorn kommer först eftersträva att snurra med ett konstant varvtal, oavsett belastning, tills den snurrat ett visst antal varv. Efter det skall den stanna, helst på rätt spalt, dvs en precision på ett 200-dels varv.

Så är min tanke, men då detta är mitt första projekt med PID-reglering är jag lite osäker på hur jag bäst löser det. Skall jag köra PID-reglering sålänge som jag vill ha konstant varvtal och sedan byta till någon annan algoritm när den skall börja retardera? Eller kan jag först köra en PID-regulator med varvtalet som variabel och sedan en PID-regulator med vinkelpositionen som variabel? Känns som om det kan bli klurigt om man får "overshoot" på vinkelpositionen eftersom jag inte kan avgöra rotationsriktningen, utan bara anta att den är på det håll jag driver motorn...

Låter det rimligt att ställa in en belastad oväxlad elmotor till ett 200-dels varv på detta sättet? Förloppet får inte ta för lång tid heller, men det är väll ingen risk då motorn är oväxlad och måste hålla ett någorlunda högt varvtal för att orka?

Kom med tankar, idéer och tips!

Mvh. Daniel
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: PID-reglering + stanna motor exakt.

Inlägg av victor_passe »

Låter som att en stegmotor skulle vara lämpligare.
Och ja, du kan först reglera mot varvtal sedan mot position.
Och att anta att motorn snurrar åt samma håll som du driver den kommer nog inte funka så bra.
För du kan ju bara se den relativa positionen, så du får integrera fram din absoluta position och då får du aldrig missa en enda spalt. Och om du tolkar bak som fram en gång ligger du ju 2 spalter fel.
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: PID-reglering + stanna motor exakt.

Inlägg av squiz3r »

Att byta till en stegmotor är inte aktuellt, några hårdvaruförändringar över huvud taget känns som en absolut sista utväg om jag inte lyckas få till något bra med den hårdvara jag har idag. Men jag är tacksam för inputen!

Jag glömde nämna i det tidigare inlägget att motorn lär inte utsättas för någon kraft som kan få den att ofrivilligt rotera, utan bara ett bromsande moment. Detta gör att jag tycker att man borde kunna lägga in ett villkor som gör att motorn inte börjar driva på motsatt håll fören den har bromsats ner till stillastående, på detta vis bör man ju kunna vara helt säker på att motorn snurrar på det håll man faktiskt driver den?
H.O
Inlägg: 6031
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: PID-reglering + stanna motor exakt.

Inlägg av H.O »

Hastigheten är ju inget problem att reglera på med bara en läsgaffel men jag är ytterst tveksam till att att du kan positionera den på tillfredställande sätt. Sorry, men jag är tveksam....

Kan du verkligen inte få dit en läsgaffel till? Jag tror det gynnar dig i slutänden.

Jag brukar köra "moving target principen" dvs regulatorn använder position som indata, om jag sedan vill köra en specifik hastighet så ökar eller minskar jag "target position" med ett visst värde varje gång regulatorn körs (typ 1500ggr/sek eller så), ju högre värde som adderas (eller subtraheras) till target position desto högre blir hastigheten. Men det är bara ett sätt.
svanted
Inlägg: 5338
Blev medlem: 30 augusti 2010, 21:20:38
Ort: Umeå

Re: PID-reglering + stanna motor exakt.

Inlägg av svanted »

har du bara en enkel spaltskiva?
med en lite mera avancerad och två läsgafflar kan du utläsa rotaitonsriktning, och låt sedan avläsningen driva en räknare upp eller ner...
räknaren anger då "är" värdet på motorn som jämförs med börvärdet till den position du vill nå och differensen styr utspänningen
till motorn.
med minst 2 kvadrantdrivning för motorn som då även bromsas.....
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: PID-reglering + stanna motor exakt.

Inlägg av squiz3r »

Yes, jag har bara en enkel spaltskiva och en läsgaffel. Motorn är kopplad så att jag kan bromsa den också. Läsgaffeln är kopplad till en ingång som triggar ett interrupt där en räknare ökar och tiden sedan förra interruptet noteras. PID-regulatorn har jag väll tänkt att implementera som följande:

För konstant varvtal:

Kod: Markera allt

önskad dT = 1/(önskat varvtal[rpm]/60)*1/200;
fel = dT - önskad dT;
P = fel * Pgain;
I = ackumulerat fel * Igain;
D = (fel - förra fel) * Dgain;

Out = P + I + D;
För att stanna vid rätt spalt:

Kod: Markera allt

fel = önskad spalt - passerade spalter;
P = fel * Pgain;
I = ackumulerat fel * Igain;
D = (fel - förra fel) * Dgain;
Har jag tänkt rätt då?

Jag förstår att ni är skeptiska över att jag inte kan läsa av rot. riktningen, men jag vill göra ett försök i alla fall. Misslyckas jag så har jag lärt mig en massa och lyckas jag så har jag sparat på hårdvara :).
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4767
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: PID-reglering + stanna motor exakt.

Inlägg av Swech »

Vid inbromsningen bör du skifta system x antal pulser i förväg, t.ex. 100 st. (halvt varv)
Då drar du ned hastigheten till den lägsta där ett stopp från din PIC ser till att stoppa motorn
direkt, och så låter du motorn ta sig fram till den punkten. Att PID reglera den sista biten
verkar vara "overkill"

Swech
Användarvisningsbild
prototypen
Inlägg: 11108
Blev medlem: 6 augusti 2006, 13:25:04
Ort: umeå

Re: PID-reglering + stanna motor exakt.

Inlägg av prototypen »

Undrar bara vad det är för motor utan växellåda som du tror du kan positionera på ca 2 grader.
Om du sagt 60 grader, 6 spalter per varv hade jag inte skrivit detta inlägget.

Det finns ju styrningar som klarar detta t.ex. C-axel på en NC-svarv för att positionera spindeln när man fräser med drivna verktyg, men där är det nog lite mera mekanik än bara motorn.

Protte
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17801
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Re: PID-reglering + stanna motor exakt.

Inlägg av grym »

prova manuellt först och kolla om det funkar i praktiken först

en vanlig likströms motor med kol har inte ett jämt moment varvet runt, så då kanske inte rekleringen fungerar

ev att att man kan låta den gå så långsmat man får den att fungera och sedan låser motorn elektroniskt

men prova manuellt först, det brukar hjälpa myyycket , mången gång bygger man för avancerade saker som inte fungerar i praktiken, :vissla: :wall: :eh:
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Re: PID-reglering + stanna motor exakt.

Inlägg av squiz3r »

Jag testade med en elmotor och labbaggregatet nu, och jag förstår vad ni menar.. Först händer inget alls, sen tjoff, så har den snurrat flera varv.. En PID-regulator är i och för sig snabbare än jag, men det blir nog svårt..

Ett annat alternativ kanske kan vara att köra med konstant hastighet tills ett visst läge innan målet, och sedan slå av PWM och låta PID-regulatorn styra bromsen istället? Men vad händer då om det ligger ett väldigt högt bromsmoment på axeln...? Kanske ingen bra idé.. :)

Kanske får jag acceptera som ni säger att jag inte kan få den upplösningen på en sådan här motor och nedgradera mig till några tiondelars varv..

Det var i alla fall intressant med "moving target" principen, så jag ska läsa mer om den och se om det är något jag fattar tycke för!
H.O
Inlägg: 6031
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: PID-reglering + stanna motor exakt.

Inlägg av H.O »

Alltså jag tror att du kan få den att stanna på 1/200 varv under förutsättning att du har en läsgaffel till så att du får ut riktning också, varför skulle inte det gå? Om du sätter dit en läsgaffel till så 4-dubblas ju upplösningen om du läser alla fyra flankerna så då har du 800 "steg" på ett varv.

Här är en länk till det som var grunden och "utveklingsplatformen" för min servomodul. På videon får den hastighetskommandon över RS485 som den sedan kör med "moving-target-principen", det betyder också att den håller positionen när den står still.

Men jag vet, det hjälper dig inte ett dugg om du inte kan montera en läsgaffel till... :?
Användarvisningsbild
grym
EF Sponsor
Inlägg: 17801
Blev medlem: 16 november 2003, 12:22:57
Ort: i det mörka småland

Re: PID-reglering + stanna motor exakt.

Inlägg av grym »

det går att göra om motorn är bra nog

läs, mer än tre poler på kollektorn

även dom gamle gamle asea styrningarna kunde man få bra styrning på motorerna
det var verkligen gamla häckar med gjutjärnskåpor, och bara en tacho på motorn, men man kunde ha dom till duglig cncfräsning
dock jobbade thyristorstyrningen hårt ibland, så det gällde att man hadde trimmat in servona bra
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: PID-reglering + stanna motor exakt.

Inlägg av v-g »

Om inte annat kunde du ju köra med tex 73-215-57 tycker de är himlans trevliga ;)
BMI
Gått bort
Inlägg: 496
Blev medlem: 31 juli 2006, 22:29:08
Ort: Halmstad

Re: PID-reglering + stanna motor exakt.

Inlägg av BMI »

Hur många varv i sekunden är det tänkt att det snurrar med som mest ?

Om "många" hinner man då med med 200 pulser/varv att göra interupt och beräkningar ?
svanted
Inlägg: 5338
Blev medlem: 30 augusti 2010, 21:20:38
Ort: Umeå

Re: PID-reglering + stanna motor exakt.

Inlägg av svanted »

är detta ett projekt för att använda en elmotor istf stegmotor?
Skriv svar