Reglerteknisk princip?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Christian
Inlägg: 86
Blev medlem: 3 november 2003, 22:54:49

Reglerteknisk princip?

Inlägg av Christian »

Jo, har en fråga angående reglerteknik på låg nivå.
Jag har en robot där två motorer styr vars ett hjulpar (4 hjul på roboten). Jag räknar ut felet mellan nuvarande färdriktning och den önskade färdriktningen mot en long,lat koordinat och kan få värden mellan -180 och 180.
Jag styr motorerna med pulsbreddmodulering där jag har ett värde på Duty-cycle:n till motorerna på 150 för normal hastighet.
Om jag vill "PID" reglera motorernas hastighet efter felvärdet som jag får i relation till den önskade färdrikningen, hur skulle en sådan ekvation se ut?
Jag förtydligar lite:

Normal cruising-hastighet frammåt:
Motor1 PWM-värde = 150
Motor2 PWM-värde = 150

Felvärde från gps kan vara mellan -180 och 180.
Ska jag addera felvärdet till den ena motorn och subtrahera felvärdet från den andra motorn för att åstadkomma en sväng?
Tex. Om felvärdet råkar vara -180:
Motor1 PWM-värde = 150+(-180)=-30 (skulle innebära reversera riktningen för den Motor1
Motor2 PWM-värde = 150-(-180)=330 (skulle innebära full speed på Motor2
Men jag vill ha så fin justering som möjligt, inga plötsliga kast från höger till vänster..
Hur gör man "enligt skolboken"?
Användarvisningsbild
prototypen
Inlägg: 11108
Blev medlem: 6 augusti 2006, 13:25:04
Ort: umeå

Re: Reglerteknisk princip?

Inlägg av prototypen »

Men det är ju bara att fortsätta tänket
GPS säger ett fel på 1

Motor1 PWM 150+1=151
Motor 2 PWM 150-1=149

Sedan är det alltid risk för självsvängning, kanske medelvärdesbilda signalerna från GPS:en över en tid.

Protte
Användarvisningsbild
Argtomte
Inlägg: 243
Blev medlem: 7 april 2008, 22:49:49
Ort: Linköping
Kontakt:

Re: Reglerteknisk princip?

Inlägg av Argtomte »

Jopp, det beror väl lite på vad för sorts andra krav som finns på din styrning, om den måste vara snabb samtidigt som den inte har tvära kast etc. Ett lätt sätt att slippa tvära styrningsändringar är ju som sagt bara att medelvärdesbilda isåfall. Ha någon lämplig timer som tickar fram tidsintervall, och medelvärdesbilda t.ex. de tio senaste felvärdena.

En plötslig ändring från 0 till 180 ger då:

0 0 0 0 0 0 0 0 0 180 => 18 i medelvärde, så första ändringen blir bara (ditt exempel) 150 + 18 = 168 och 150 - 18 = 132
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Re: Reglerteknisk princip?

Inlägg av Walle »

För att göra en riktig PID-reglering krävs ju att man har just de tre delarna, Proportionell, Integral och Derivata. Kort och gott kan man säga att P-delen står för det nuvarande felet, I-delen för ackumulerade tidigare fel, och D-delen förutsäger framtida fel baserat på den nuvarande förändringstakten.
Tex. Om felvärdet råkar vara -180:
Motor1 PWM-värde = 150+(-180)=-30 (skulle innebära reversera riktningen för den Motor1
Motor2 PWM-värde = 150-(-180)=330 (skulle innebära full speed på Motor2
Ovanstående ger bara P-delen av regleringen. Medelvärdesbildningen får väl sägas bli I-delen. Saknas bara derivatan, men den kanske är onödig i en sån här applikation?
Nerre
Inlägg: 27403
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Reglerteknisk princip?

Inlägg av Nerre »

PI räcker ju normalt om man kan acceptera lite tröghet. PID behövs om man ska ha snabb reaktion och vill slippa överslängar.

Men exakt vad som behövs går ju normalt inte att veta om man inte kan ställa upp reglersystemets formel och räkna på stegsvar eller liknande.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Reglerteknisk princip?

Inlägg av blueint »

Hur får man fatt på systemets formel? eller en tillräckligt god approximation iaf.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Reglerteknisk princip?

Inlägg av sodjan »

Det verkar totalfel från början...

Det som är "150" är ju ett mått på en hastighet på motorerna (PWM frekvensen ?).
Eller, ingentligen, ett mått på tillförd effekt till motorerna, hastigheten beror
på belastning o.s.v.

Det som är "+/- 180" är (så vitt jag förstår) en *vinkel* avvikelse. Varför
skulle det annars vara just +/- *180* ?

Det finns ingen som helst anledning att anta att dessa värden bara ska
läggas ihop så där utan vidare !

Du måste fundera på t.ex hur snabbt (sekunder) vill du att ett kursfel på
x grader ska rättas till. Sedan får man med ledning av bl.a utväxlingen
beräkna hur stor justering av PWM frekvensen detta bör medföra.
Det vore osannolikt att 1 grad kursavvikelse skulle motsvara just exakt
1 steg i PWM värdet.

> En plötslig ändring från 0 till 180 ger då:

Det skulle betyda att hela roboten skulle vända på en 5-öring och
åka i den helt motsatta riktning, på tiden mellan *2* avläsningar !?
Hur rimligt är det ? Och *om* det är rimligt, så är det på tok för lång
period mellan mätningarna för att styrningen ska gå att fixa på ett
meningsfullt sätt i alla fall. Om det kan hända så kan ingen reglering
i världen få styrsel på det hela.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Reglerteknisk princip?

Inlägg av sodjan »

En annan sak...

+180 och -180 är samma sak. Det går då inte att avgöra
i vilken riktning styrningen ska ske eller i vilken riktning
avvikelsen skedde.

Jag skulle säga att om fel-vinkeln går momentant från 0 till
+/- 180 så är det en felsituation och nödstoppet bör aktiveras.
Nerre
Inlägg: 27403
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Reglerteknisk princip?

Inlägg av Nerre »

blueint skrev:Hur får man fatt på systemets formel? eller en tillräckligt god approximation iaf.
Det är svårt... (Det är därför det finns högskolekurser i reglerteknik.)

Att mäta stegsvar brukar vara det enklaste om det är komplexa grejer.
Användarvisningsbild
Icecap
Inlägg: 26788
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Reglerteknisk princip?

Inlägg av Icecap »

PID-funktionen finns redan beskriven i andra länkar här i forumet, resten är faktisk logisk tänkande efter sodjans beskrivning.

Tänk även på att en GPS som står still ger lite olika positioner, dock centrerat runt en mitt men ändå ett antal olika positioner, så om du inte utför en integration blir det en mycket slingrande kurs som den kör.

Varje sekund kommer det en position, denna ska sedan integreras för att få lite stabilitet i det hela vilket betyder att ett sväng med roboten ska ta minst 10 sekunder för att inte vara helt sjukt.

När den står still kan du inte heller använda GPS'en till riktningsindikering, då måste du ha ett kompass istället.

Faktisk ville ett kompass kombinerat med GPS kunde ge en vettig funktion men bäst ville det vara att lägga med en gyro, då har du korttid-reaktion (gyro), mellantid-reaktion (kompass + GPS), absolutriktning (kompass), absolutposition (GPS) och långtidsreaktion (GPS).
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Reglerteknisk princip?

Inlägg av blueint »

Man kan bygga ett eget litet mini radiopositioneringssystem. Med radiofyrar osv.. för högre precision.
Användarvisningsbild
Icecap
Inlägg: 26788
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Reglerteknisk princip?

Inlägg av Icecap »

Med tanke på TS beskrivning av sina förmågor tror jag att det är ganska mycket att begära... Och frågan är om det är användbart till vad som ska utföras.

Är det bara en autonom bomb som ska hitta till närheten av Slottet duger ±5m nog ganska bra...
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Reglerteknisk princip?

Inlägg av blueint »

Icecap, Låter som ett bra examensjobb. "Mitt projekt är lyckat, titta slottsruinen ryker!" :whoho:
Användarvisningsbild
Icecap
Inlägg: 26788
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Reglerteknisk princip?

Inlägg av Icecap »

Lär bli uppmärksammat iaf. "Undrar på om jag klarade det... Ah, nyheterna... JA, JAG KLARADE DET!!! Hmmm, hur fan ska jag skriva det i CV't?"
Skriv svar