Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
1
CONTROLLER QUADCOPTER
Zsolt KOVÁCS
Coordonator ştiinţific: Prof. dr. ing. Dan NICULA
Rezumat Această lucrare prezintă paşii de proiectare a unui controller de quadcopter implementat pe
o placă de dezvoltare Zybo rezultând un sistem hardware combinat cu software. Paşii sunt:
înţelegerea fenomenului, proiectarea unui algoritm de control, validarea algoritmului prin
simulare, proiectarea hardwareului şi softwareului, testarea dispozitivului. Rezultatul lucrării este un controller realizat pe placă de dezvoltare Zybo capabil să
controleze un quadcopter, să preia comenzi de la o telecomandă şi să menţină altitudinea în
timpul zborului.
Cuvinte cheie: quadcopter, PID, filtru Kalman, BLDC, ESC, MEMS, FPGA, Zynq
1. Înţelegerea fenomenului (Cum zboară un quadcopter?)
Quadcopterul – sau quadrotor elicopter – este o aeronavă de tip elicopter multirotor care
este ridicat şi propulsat de patru elice antrenate de motoare fixate în general la
extremităţile cadrului.
Pentru eliminarea forţelor care rotesc cadrul quadcopterului după axa yaw sunt folosite
elice CW (produc forţă ridicătoare rotind în sens al acelor de ceas) şi CCW (produc forţă
ridicătoare rotind în sens contrar al acelor de ceas).
Pentru corecţia unei rotaţii după axele pitch şi roll se accelerează două motoare şi se
decelerează celelalte două motoare, cum este şi prezentat pe figurile de mai jos.
Figura 1: Dinamica de zbor a quadcopterului
2
2. Proiectarea şi simularea algoritmului de control
Algoritmul de control este bazat pe module PID, care sunt bucle închise de control. S-au
folosit patru bucle PID: trei pentru corecţia rotaţiilor în jurul celor trei axe şi unul pentru
menţinerea altitudinii.
PID-urile pentru corecţia rotaţiilor au ca referinţă o valoare de viteză unghiulară care se
poate modifica de la telecomandă, iar reacţia buclei este generată de giroscopul – care
măsoară viteză unghiulară - montat pe cadrul quadcopterului.
PID-ul pentru menţinerea altitudinii are ca referinţă o altitudine care se poate modifica de
la telecomandă iar reacţia buclei este o altitudine estimată de filtrul Kalman, folosind un
senzor de distanţă ultrasonic şi un accelerometru fixaţi pe cardul quadcopterului.
Pentru simulare s-a folosit ca proces un element de întârziere de ordinul II.
Figura din colţul de stânga sus prezintă intrarea iar din colţul de dreapta jos răspunsul
sistemului controlat cu o buclă PID.
Filtrul Kalman foloseşte datele de la accelerometru în faza de predicţie şi datele de la
senzorul ultrasonic în faza de corecţie.
Figura 3: Simularea unei bucle PID
Figura 2: Bucla PID
3
3. Proiectarea sistemului
Pentru că sistemul proiectat conţine atât soluţii hardware cât şi software, sistemul
proiectat conţine şi sistem de procesare dar şi hardware personalizat.
Modulul apbpwm este modulul hardware proiectat care comunică cu procesorul (ZYNQ)
din sistemul pe procesare prin interfaţa APB. Acest modul hardware este responsabil
pentru generarea şi citirea semnalelor PWM pentru comanda perifericelor.
4. Proiectarea hardwareului şi a softwareului 4.1 Proiectarea hardwareului
Hardwareul a fost scris în limbajul Verilog şi a fost verificat folosind simulatorul
Modelsim, în care a fost construit şi un mediu de verificare. Folosind acest
mediu s-au corectat erorile, şi s-a verificat funcţionarea hardwareului.
După depanarea erorilor (debug) din hardware s-a folosit programul Vivado
pentru împachetarea codului, realizarea sistemului care conţine atât modulul
hardware proiectat cât şi modulele necesare pentru sistemul de procesare, şi
generarea bitsreamului care se poate încărca pe o placă de dezvoltare cu FPGA.
Figura 4: Arhitectura sistemului
4
4.1 Proiectarea softwareului Implementarea modulelor PID în software: submodulele P, I şi D se pot implementa prin
adunări, scăderi sau înmulţiri:
Structura sistemului software:
Figura 6: O buclă PID implementat in software
Figura 5: Sistemul realizat in Vivado
5
5. Depanarea şi Testarea dispozitivului
După generarea bitstreamului şi încărcarea acestuia pe FPGA s-a realizat depanarea pe
FPGA folosind chipscope.
După depanarea hardwareului cu chipscope o ultimă fază a depanării se realizează
folosind osciloscopul:
6. Concluzii Sistemul proiectat corespunde cerinţelor definite în faza de proiectare: prelucrează datele
de la senzori şi comenzile de la telecomandă în timp real şi permite utilizatorului
teleghidarea quadcopterului.
7. Bibliografie
[1] Moldoveanu F., Floroian D., Comnac V., Teoria sistemelor de reglare automată,
Braşov: Universităţii Transilvania din Braşov, 2006.
[2] Biezen, Michel van, „Lectures in The Kalman Filter,”
http://www.ilectureonline.com/lectures/subject/SPECIAL%20TOPICS/26, 2015.
[3] M. Ivanovici, „Curs: Bazele Procesării Semnalelor,” Universitatea Transilvania din
Braşov, Braşov, 2015
Figura 8: Semnalele trigger - echo pentru sonar