Sida 14 av 14

Re: Quadrocopter med egendesignat styrsystem.

Postat: 23 maj 2011, 09:04:50
av LHelge
Just nu kör jag fartreglagen i 300 Hz och reglerloopen i 200 Hz. Fartreglagen är kalibrerade efter min utsignal på 1-2 ms så teoretiskt sätt borde de klara straxt under 500 Hz, Jag ska i alla fall testa att peta upp dem till 400 Hz och se om det gör någon skillnad.

Jag har ingen cutoff, de är inställda på NiMh med low-cutoff villket vad jag hört betyder att den står på 0 V på Turnigy Plush. Jag har tänkt att lägga den logikien i styrkortet istället men inte kommit så långt än. Just nu har jag 4800 mAh batterier på och det mesta jag lyckats aldda i ett batteri efter att jag lekt en stund är ca 1600 mAh. Så jag tror att jag har lite marginal att byta batteri innan jag kör det i botten. Jag vill inte riskera att ett fartreglage går in i soft-cutoff-mode medan de andra fortsätter som vanligt.

Jag har inte tillgång till källkoden just nu, men jag kan försöka skriva ungefär vad jag har för värden på reglersystemet nu.

Till att börja med är pitch & roll axlarna helt frikopplade om man bortser från yaw och grundgas. För att uppskadda nuvarande vinkel & vinkelhastighet används följande kalman-filter
(Wikipedia notation)

Kod: Markera allt

ts = 1/200; % samplingstid vid 200 Hz

x = [vinkel;
     vinkelhastighet;
     gyrobias

F = [1 ts -ts;
     0  1   0;
     0  0   1];

B = 0;

Q = [100     0     0;
    [0    1000     0;
     0       0  0.01];

z = [vinkel enl. accelerometer;
     vinkelhastighet enl. gyro];

H = [1 0 0;
     0 1 0];

R = [10000    0;
     0     100];
För regleringen har jag en vanlig PID-regulator och mina erfarenheter fram tills nu är att med bromsen aktiverad kan man dra på med endast P-verkan till ca 1.1-1.2 innan man börjar få stabila oscillatoner då får man dra upp D-verkan till ca 0.3-0.4 innan oscillationerna försvinner. Då börjar den istället motverka sina egna förändringar när man ger en styrsignalsändring vilket ger en relativt slö styrning. I-verkan har jag än så länge ganska lågt, typ 0.05-0.1 försöker istället hålla tyngdpunkten i mitten tills vidare. Får trimma in I när den är i övrigt stabil. Men man märker ändå om man ställer den i en sluttning när man startar att I-verkan börjar gå in och kompensera om man inte ger den tillräckligt med gas för att lyfta. Jag tyckades faktist få den att stå i en sluttning och balansera på ett landningsställ med de övriga tre i luften. Men detta är ett väldigt långsamt förlopp så jag är ganska säker på att det inte är detta som ger upphov till oscillationerna.

När jag tänker efter så måste det vara att broms-läget i ESC:erna ger upphov till en olinjäritet i form av en backlash/hysteres som ställer till problem för reglerloopen.

Styrsignalen som sedan kommer ut ur pid-regulatorn mixas in i motorutsignalen enligt följande

Kod: Markera allt

motor = k1*thrust + k2*pitch_roll_pid_out + k3 * yaw_p_out
där k1 är 0.9
k2 är plus/minus 0.8 beroende på motor
k3 är plus/minus 0.6 beroende på motor

Jag har också ett villkor som inte tillåter motorerna att gå ner på 0 så länge inte gasreglaget är helt av för att de inte ska tappa synk. Har även laborerat med att ha den negativa mixkoefficienten mindre än den positiva villket gav ett bättre resultat då bromsen var aktiverad. Men jag är inte säker på att det är så fortfarande. Ett exempel för roll:

Kod: Markera allt

if(u_roll > 0.0)
{
    motor_left = k1*thrust + k2*u_roll + k3*u_yaw;
    motor_right = k1*thrust - 0.3*k2*u_roll + k3*u_yaw;
} else {
    motor_left = k1*thrust + 0.3*k2*u_roll + k3*u_yaw;
    motor_right = k1*thrust - k2*u_roll + k3*u_yaw;
}
Alla siffror, både filtret och regleringen, är på ett ungefär och tagna ur minnet har inte tillgång till koden just nu.

Re: Quadrocopter med egendesignat styrsystem.

Postat: 23 maj 2011, 10:15:10
av malx
Det låter ju som att du (precis som jag trodde) redan har rejält koll. För enkelhetens skull så refererar jag till min och mitt filter/PID nedan men jag menar då inte att jag skrivit koden utan att det är vad som finns på mitt CC-kort.

Filtret:
Jag misstänker att ditt filter är bättre än mitt. Mitt använder sig av ett enklare "3M"-filter anpassat för att fungera både på koptrar och flygplan. Till det ingår en inbyggd kontinuerlig kalibrering av gyrona i pitch och roll utifrån hjälp av accelerometrarna. Något jag inte riktigt funnit jättebra. (Jag har problem med en lite vandrade "nollpunkt" har inte rikitgt hittat ultimata inställningar än). Även mina accelerometrar behöver kalibreras då de har ett bias men det gör jag på backen innan flygning då det verkar vara konstant. Det jag upptäckt är accelerometrarna är de som är mest påverkade av vibrationer och det går inte lita på dem lika mycket i luften som på marken när man testar mot datorn.

Det som jag funderar på är din PID-regulator. Du försöker reglera lutningen direkt där? De flesta implementationer jag sett använder dubbla regulatorer, inklusive min. Jag har har två PI-regulatorer. Först en inre reglerloop som sköter lutningshastigheterna och sen en yttre med lutningen. Detta gör ju också att man lätt kan switch mellan att flyga i "rate"-mode och i "attitude"-mode.

När jag ska trimma regulatorn så har jag fördelen att kunna utgå från vissa defaultvärden som flyger det mesta även om det inte är så fort eller så bra. Sen drar jag upp P-delen på inre loopen till jag får oscillationer och sänker den då med 10-20%. I-delen sätter jag sen till 1/3 av P. Dessa åtgärder upprepar jag på yttre loopen.
Resultatet jag fått är en quadro (18 cm motor till motor och helt fingersäker ;)) som hovrar stabilt lutningsmässigt men som har vissa problem med att hålla höjden stabilt. Den har även vissa problem vid "häftig" flygning men jag misstänker att det är motorer och propellrar som inte håller klassen där. (4" nästan ratispropellrar och 5gs motorer).

Jag ska testa kortet på min X450 snart, men en kompis råkade ha av en propeller vid transport så den är stående just nu. x450 med standardkontrollern som jag då inte har en aning vad den gör hovrar enormt stabilt både i lutning och i höjd. Har testat släppa handkontrollern i en halvminut inne i min lägenhet och det utan andra sensorer än acc och gyron.

Re: Quadrocopter med egendesignat styrsystem.

Postat: 23 maj 2011, 10:32:53
av LHelge
Låter intressant det där med en inre loop för att styra vinkelhastigheten, det ska jag testa. Tyvärr lämnade jag min ställning hos föräldrarna så jag får hitta på något annat sätt att hänga upp den, alternativt vänta några veckor tills jag ska dit nästa gång. En så stor förändring av styrsystemet är inget jag vill testa med 1 kW motorer utan att den är fastspännd ordentligt. Såg en bild på någon som hade använt någon form av städredskap som var ledat med en kardanliknande konstuktion som var fastsatt i en parasollfot, kanske skulle vara något att testa.

Har lite annat jag vill bygga in i mjukvaran också som jag kan jobba med under tiden. Jag vill automatiskt kunna känna av throttle range från sändaren precis som fartreglagen gör. Jag vill också ha möjlighet att kunna koppla in den till datorn för att ändra parametrar utan att behöva flasha om mjukvaran.

Re: Quadrocopter med egendesignat styrsystem.

Postat: 24 maj 2011, 18:33:24
av malx
mm, att kunna ändra parametrarna under flygning är rätt bra.
Jag håller just på att montera ett billigt blåtandskort på min "mini" (13$ ebay) så jag kan justera parametrarna med såväl datorn som telefonen utan att behöva koppla sladd. (På den stora ska jag sedan sätta en ~430 Mhz radio och ha en markstation som bryggar till blåtand men då behöver jag ta amatörradiocertet först)

Om du har fler kanaler på radion så kan du ju också använda en vridpot för att justera parametrarna.

Re: Quadrocopter med egendesignat styrsystem.

Postat: 25 maj 2011, 00:29:14
av niklascooke
Hej,

Ang. öron proppar så har jag gjort så här !

har limmat dit en plastskruv med huvudet mot öronproppen (på toppen) sedan i botten på öronproppen har jag monterat en distans, även den limmad med snabblim (det som luktar gott)

Re: Quadrocopter med egendesignat styrsystem.

Postat: 30 maj 2011, 19:24:31
av Korken
Jag har nu följt eran diskussion om regulatorn ett tag och tänkte dela med mig av ett dokument jag har skrivit till projektet jag gjorde om Quadrocopters.
Det går igenom hur man kan designa en regulator samt så härleder jag systemet och två PID-designer. Jag tror ni kanske kan ha nytta av detta.

LHelge har redan en gammal version av detta dokument, men det här är den senaste.
Hittar ni några fel så återkom gärna! :)
Dimensionering av PID.pdf

Re: Quadrocopter med egendesignat styrsystem.

Postat: 30 maj 2011, 23:49:04
av LHelge
Jag har inte hunnit kolla igenom det noggrannare än, men jag ska göra det så fort jag får lite tid över.

Re: Quadrocopter med egendesignat styrsystem.

Postat: 31 maj 2011, 13:47:03
av Korken
Ingen fara. Jag kommer själv att fixa mer med detta så fort mina kretskort anländer så jag kan konfirmera att detta fungerar utanför simulatorerna också. :)
Det är väldigt frustrerande att sitta på teorierna och delarna men man kan inte testa allt tillsammans för man väntar på någon liten grej.

Re: Quadrocopter med egendesignat styrsystem.

Postat: 31 maj 2011, 14:14:51
av AAndreeee
Tjena, lånar tråden lite om det är okej!
Jag har nu under ett tag funderat på att bygga en quad eller tri copter. Det verkar enklast med quad för då slipper man tail servot!
Räcker det med gyron eller måste man ha ett styrkort ? Jag har läst mycket och ni har ju egen designade styrkort, skulle man kunna få köpa ett sånt ? Och till sista frågan kan man komma undan med riktigt billiga motorer och esc från HK ? Skule varit väldigt tacksam om någon kunde länka några !

Tack i förhand !

Re: Quadrocopter med egendesignat styrsystem.

Postat: 31 maj 2011, 14:16:39
av hubben
Till en tricopter kan du köra med gyron, till en quad behöver du ett styrkort.
Det finns färdiga kort att köpa.

Det går att köra billiga motorer/ESC från HK, det gör nog de flesta. ;-)

Re: Quadrocopter med egendesignat styrsystem.

Postat: 31 maj 2011, 15:24:20
av LHelge
De jag använder är länkade tidigare i tråden, men om du går till http://www.hobbyking.com och söker efter turnigy 2217 och turnigy plush 25 så hittar du dem. Propellrarna kommer från http://www.dyi.nu

Jag skickar dig gärna ett kretskort och de komponenter jag har men du behöver skaffa fram bland annat processor och sensorer själv i så fall för de är slut hemma hos mig. Vill du inte lägga ned allt för mycket tid på bygget rekommenderar jag nog ändå att du kollar på något av de andra korten som har byggts här eller köper ett färdigt kk multicopter från DYI. Mjukvaran till mitt är långt ifrån färdig men jag ställer gärna upp med viss hjälp och glada tillrop och jag kan garantera att det kommer vara ordentligt lärorikt att få upp den i luften. En av grundförutsättningarna är nog i alla fall att du har hyffsad koll på c-programmering och åtminstone hört talas om PID-regulatorer tidigare.

Re: Quadrocopter med egendesignat styrsystem.

Postat: 1 juni 2011, 16:38:14
av Korken
Om någon är intresserad så utökade jag dokumentet med grafer som visar skillnaden med fler arbetspunkter.
Jag la till 2st i +-30 grader och plottade. Kanske är intressant för några. :)
Dimensionering av PID.pdf

Re: Quadrocopter med egendesignat styrsystem.

Postat: 4 juni 2011, 23:57:32
av niklascooke
Hej Korken!

Jag har läst din uppsats ang. PID reg. Men när man bygger en quad så är det ju så mycket annat än en PID regulator som man måste tänka på. Som tex sensor filtrering analog/digital. Resonans frekvenser , vibrationer. Så att man får en stabil in signal till PID regulatorn. Om man har skit in så får man ju skit ut eller hur :)
PID koden i min quad är egentligen en väldigt liten del av hela "snurran".

//C++

X_PD = ((x_g * Quadhelix.PID[0].P) / 2048.0) + ((x_backStep * Quadhelix.PID[0].D) / 128.0);
X_I = (x_sum * Quadhelix.PID[0].I) / 4096.0;

X_Error = (X_PD + X_I) - (StickPitch / Quadhelix.StickGain);

//END


Mvh Niklas

Re: Quadrocopter med egendesignat styrsystem.

Postat: 5 juni 2011, 11:58:58
av Korken
Helt klart är det mycket runt om kring! :)
Men det jag vill framföra är att för att få en optimalt stabil flygning så måste man verkligen lägga tanke bakom hur det ska fungera. Det är klart att man kan testa sig fram men jag gillar att ha bra matematiska modeller bakom det.
Det brukar fungera bra när man tar den approachen och om det inte fungerar så vet man att man har räknat fel. :)

Det jag skrivit i det dokumentet är bara en del i den stora slutrapporten. Den kommer innehålla alla delar, från tanke till slutgiltigt farkost.
Jag gav ut den här delen just bara för att det pratades mycket om hur man ska designa regulatorer och jag tror/hoppas det jag har arbetat på kunde hjälpa lite.

Även den del jag har givit ut här är inte den slutgiltiga. Just nu så har det också utökats med två sidor till så det är ganska mycket WIP och mycket mer ska in. :)