Implementarea Mecanica a Unui Bicopter
Capitolul 1. Introducere
Memoriu justificativ
În ultimul deceniu domeniul roboticii a cunoscut o importantă și accentuată dezvoltare în activitățile umane, ca rezultat a dorinței omului de a progresa, de a crea lucruri noi care să-i ofere precizie, siguranță, rapiditate și randament ridicat în activitate.
Robotica este un domeniu științific care urmărește tehnologia, dezvoltare, proiectarea și construcția sistemelor cu funcții diversificate în scopul realizării sarcinilor umanoide. Prin robot percepem un ansamblu de mai multe elemente: mecanice, module electronice, motoare, senzori care dau operatorului uman posibilitatea de a interacționa cu acesta și de a-l controla. Interacțiunea dintre om și mașină în scopul manipulării eficiente și a evidenței anumitor informații necesare în luarea deciziilor operaționale se realizează la nivelul interfaței om-mașină.
Roboții reușesc să ofere avantaje în multe domenii precum: domeniul medical (sisteme robotizate pentru intervenții neurochirurgicale), domeniul militar (explorarea locațiilor greu accesibile și periculoase), în construcții (excavatoare autonome), în agricultură (sistem robotizat de plantare a răsadurilor), toate ramurile industriei și multe alte domenii.
O nouă tendință în rândul roboților este utilizarea dronelor în domeniul civil. Dronele sunt aparate de zbor ghidate de la sol prin intermediul unei telecomenzi. Acestea au fost des utilizate în domeniul militar pentru recunoaștere, supraveghere, spionaj sau în scop combativ.
Lucrarea de față își propune realizarea și studierea controlului și stabilității unei drone bi-motoare asemenea unui elicopter militar Boeing CH-47 (numită în continuare bicopter) controlată de la sol prin intermediul unui joystick, luând în calcul totodată și optimizarea costurilor de implementare.
Bicopterul din lucrarea de față implică următoarele componente:
● șasiu realizat din aliaj de aluminiu;
● două motoare fără perii avînd atașate pale de 24 cm diametru;
● două invertoare pentru controlul motoarelor;
● senzori pentru a prelua date din mediu;
● două microcontrolere pentru a facilita controlul platformei și manipularea datelor preluate de la senzori;
● interfața grafică pentru a dispune operatorului toate informațiile necesare și pentru a-i oferi un control eficient al platformei de la distanță.
1.2 Structura lucrării
Lucrarea este structurată în șase capitole, după cum urmează:
Capitolul 1 – Introducere: cuprinde memoriul justificativ al lucrării, în care este prezentată tema lucrării, justificarea alegerii făcute și descrierea structurii lucrării;
Capitolul 2 – Fundamente teoretice: în acest capitol sunt prezentate noțiunile teoretice necesare pentru realizarea aplicației;
Capitolul 3 – Realizarea practică a proiectului: cuprinde o descriere a etapelor de proiectare și implementare a aplicației;
Capitolul 4 – Rezumat.Concluzii: cuprinde o serie de idei ce surprind punctele esențiale alea lucrării;
Capitolul 5 – Anexe: în acest capitol au fost atașate codurile sursă ale programelor platformei ,schemele și layout-urile circuitelor electronice.
Capitolul 6 – Bilbiografie;
Capitolul 2. Fundamentare teoretică
2.1 Modelul lucrarii – Boeing CH-47 Chinook
Modelul lucrării de față este elicopterul Boeing CH-47 Chinook, un elicopter bimotor, cu două rotoare în tandem proiectat special pentru a transporta artilerie, trupe, muniție, combustibil și provizii în cadrul trupelor militare (figura 2.1.1), de asemeni poate fi o buna alegere pentru operațiuni umanitare în caz de dezastre salvarea și evacuarea în masă a refugiaților, aprovizionarea cu hrană).
Configurația rotorului în tandem oferă calități de manipulare excepționale (bună funcționare în condiții climatice dificile, stabilitate la vânt lateral) fiind cel mai fiabil și mai eficient elicopter de trasnport din lume capabil să suporte sarcini de până la 12 tone. În anii 1960 viteza sa maximă de 315 km/h era mai mare decât cea a elicopterelor utilitare și de atac contemporane.
Figura 2.1.1 Boeing CH-47 Chinook
Bicopterul CH-47 Chinook este propulsat de două motoare turbopropulsoare Lycoming T55, montate pe fiecare parte a stâlpilor posteriori și conectate la rotoare de arbori cardanici. Modelele inițiale au fost echipate cu motoare cu putere de 2200 CP fiecare.
Rotoarele contra-rotative elimină necesitatea unui rotor vertical anti-cuplu, permițând ca toată puterea să fie utilizate pentru ridicare, ca forța de tracțiune. Capacitatea de a regla forța de ridicare în oricare dintre rotoare îl face mai puțin sensibil la schimbările centrului de greutate, important pentru ridicarea încărcăturii și fixarea. În cazul în care un motor eșuează, celălalt poate conduce ambele rotoare.
2.2 Motoare
2.2.1 Motoare Brushless outrunner
Dispozitivul electromecanic cu rolul de a transforma energia electrică în magnetică și din magnetică în mișcare de rotație mecanică poartă denumirea de motor electric. Motoarele electrice pot fi de mai multe tipuri, diferența constând în maniera în care câmpul magnetic este generat pentru a obține cuplul, forța de rotație, însă ele pot fi clasificate în două mari categorii, funcție de alimentare, și anume: motoare de curent continuu și motoare de curent alternativ.
În funcție de construcție și sistemul de control, motoarele de curent continuu se împart în motoare cu perii colectoare și motoare fără perii colectoare. Motoarele de curent continuu fără perii, cunoscute și sub denumirea de motore brushless, prescurtat BLDC, sunt motoare electrice sincrone cu magneți permanenți și înfășurări concentrate alimentate de la o sursă de curent continuu cu ajutorul unui sistem de comutație controlat electronic spre deosebire de cele cu perii care au sistemul de comutație mecanic bazat pe perii colectoare.
Motoarele brushless, au câștigat rapid popularitate fiind foarte utilizate în procese industriale (automatizări), tracțiuni electrice, sistemele de centrifugare, ventilatoare, pompe, servosisteme și mai recent în periferice de calculator și aparatură medicală.
Făcând o comparație între motoarele de curent continuu cu perii și cele fără perii putem observa următoarele avantaje în cazul celor din urmă: necesită întreținere minimă, nu produc scântei ionizante (interferențele electromagnetice fiind reduse total), au un zgomot redus, densitate de putere mare, dimensiuni reduse, control complex al vitezei(lipsa periilor înlătură limitarea vitezei maxime datorate încălzii periilor colectoare), o buna disipare a căldurii, pierderi rotorice minime.
În domeniul 1-10kW performanțele motoarelor fără perii de curent continuu sunt asemănătoare cu cele ale motoarelor asincrone, sub acest domeniu au un randament și factor de putere mult mai ridicat. În funcție de dispunerea magneților rotorului față de stator întâlnim motoare brushless cu magneții situați în exteriorul statorului (brushless outruner – Figura 2.2.1.1 a) sau cu magneții situați în interiorul statorului (brushless inrunner – Figura 2.2.1.1 b).
Motoarele brushless outrunner spre deosebire de cele inrunner au cuplu mare si turatie redusa (nu necesita reductor), sunt mai silentioase, dar mai putin eficiente. Aceste tipuri de motoare sunt folosite des in aeromodelism.
Figura 2.2.1.1 Tipuri de motoare brushless
Rotorul motorului brushless este format dintr-un ax pe care sunt dispuși magneți permanenți cu un număr de perechi de poli variabil, putând avea între 2 și 8 poli. Magneții pot fi construiți din ferite sau aliaje magnetice din pământuri rare (magneții neodim fier bor sau neo magneți), cele din urmă având o densitate deflux mult mai bună.
Statorul motorului brushless este fabricat din lamele (tole) de oțel stivuite cu înfășurări plasate în fantele care sunt tăiate axial de-a lungul periferiei interioare. Cele mai multe motoare brushless au trei înfășurări statorice legate în mod stea, acestea fiind distribuite la periferia statorului pentru a forma un număr par de poli.
Din punct de vedere al configurației înfășurărilor, motoarele fără perii sunt întâlnite în două variante constructive: motoare cu excitație sinusoidală (tensiunea electromotoare indusă și curentul variază sinusoidal) și motoare cu excitație dreptunghiulară (tensiunea electromotoare indusă și curentul variază trapezoidal) . În cazul motoarelor cu unde sinusoidale cuplul variază mai lin.
Pentru a avea un control cât mai bun al motorului este necesară cunoașterea poziției rotorului la un moment dat, cea mai simpla modalitate este folosirea senzorilor de poziție hall, sau ceva mai complicată metoda back-EMF (back electromotive force). Detaliile privind modul de realizare a comutației folosind senzorii hall sau metoda back- EMF și determinarea vitezei pe baza informației de poziție, vor fi precizate în subcapitolul următor.
2.2.2 Comanda motoarelor de curent continuu fără perii
Simpla aplicare a tensiunii la bornele unui motor de curent continuu fără perii, cu trei înfășurări conectate în mod stea, nu este translată în mișcare de rotație, așa cum este posibil în cazul motoarelor cu perii, unde comutația este realizată prin intermediul periilor colectoare (autocomutație).
Prin urmare este necesar dezvoltarea unui sistem electronic (schema bloc echivalentă fiind prezentată în figura 2.2.2.1) și a unui algoritm de comutație bazat pe șase sectoare. Fiecărui sector îi corespunde o translare cu un unghi α de 60° electrice, o secvență completă de comutație fiind de 360° electrice și corespunde unei rotați electrice complete.
Figura 2.2.2.1.Schema bloc a unui sistem electronic de control a motorului brushless
O secvență de comutare presupune ca una din înfășurări să fie conectată la borna pozitivă, o a doua înfășurare să fie conectată la borna negativă, iar cea de-a treia înfășurare rămânând în stare de înaltă impedanță (nu este conectată la nici o bornă). Rotația este rezultatul interacțiunii câmpului magnetic produs de înfășurările statorice și câmpul magnetic rotoric, cuplul maxim obținându-se când aceste două câmpuri sunt perpendiculare unul față de celălalt.
În continuare pentru a înțelege mai bine funcționarea motoarelor brushless se va analiza pe scurt modelul matematic al acestora. Reprezentând fiecare fază a motorului printr-o rezistență, inductivitate și o tensiune electromotoare (simetrice și echilibrate așa cum se poate observa în figura 2.2.2.2) și ținând seama că în timpul funcționării sunt conectate două câte două fazele înfășurării statorice, se poate analiza modelul matematic în coordonatele fazelor cu parametri concentrați, ecuațiile care descriu acest model fiind:
(2.2.2.1)
Valorile instantanee ale curenților: (2.2.2.2)
Ecuația de cuplu : (2.2.2.3)
Figura 2.2.2.2. Reprezentarea înfășurărilor statorice ale motorului brushlessprintr-orezistență, inductivitate și o tensiune electromotoare
-iA,iB,iC –curenții prin înfășurările statorice;
– eA, eB, eC – tensiunile electromotoare corespunzătoare celor trei înfășurările statorice;
– Te –cuplul electric;
– TL –cuplul de sarcină;
– ωm -viteza unghiulara a rotorului;
– Kf -constanta de frecare;
– j – momentul de inerție al motorului;
Modelul matematic al motorului poate fi analizat și din punct de vedere bidimensional (reprezentare vectorială, în coordonate d-q) :
Figura 2.2.2.3. Orientarea fluxului rotoric
Ecuațiile de tensiune: (2.2.2.4)
Expresiile fluxului: (2.2.2.5)
Fluxul de magnetizare: (2.2.2.6)
Inductivitățile sincrone: (2.2.2.7)
Ld –inductanța sincronă longitudinală;
Lq –inductanța sincronă transversală;
LSσ –inductivitatea de dispersie a fazei statorice;
Md –inductivitatea de magnetizare longitudinală;
Mq –inductivitatea de magnetizare transversală;
ω – viteza unghiulara a rotorului;
-cu indicele E au fost notate mărimile infășurărilor statorice.
Cuplul motorului poate fi dedus dintr-un bilanț energetic obținându-se expresia:
(2.2.2.8)
unde reprezintă cuplul electromagnetic.
În regim staționar () dacă inductivitățile sincrone nu depind de curent și fluxurile sunt constante , din ecuațiile de tensiune:
(2.2.2.9)
și folosind notațiile: (2.2.2.10)
rezultă:
Ecuația de tensiune: (2.2.2.11)
Expresia fluxului statoric: (2.2.2.12)
Cea mai comodă strategie de comandă a motoarelor brushless este orientarea după fluxul rotoric. Această modalitate necesită realizarea ortogonalității dintre fluxul de excitație și curentul statoric. În cazul în care cele două componente nu sunt perpendiculare, răspunsul sistemului este lent iar cuplul electromagnetic se reduce. Deci curentul de cuplu din stator trebuie să fie pe direcția axei q și în consecință id = 0. Dacă se neglijează și rezistența fazei statoricerelațiile 2.11 și 2.12 devin:
Ecuația de tensiune: (2.2.2.13)
Expresia fluxului statoric: (2.2.2.14)
Figura 2.2.2.4. Diagrama vectorială în regim staționar
Factorul de putere: (2.2.2.15)
Pulsația statorică (viteza unghiulară a rotorului la sincronism ):
(2.2.2.16)
Poziția rotorului este dificil de determinat datorită lipsei autocomutației. Există câteva metode de determinare a poziției, dintre care cele mai utilizate fiind metoda de detecție cu senzori hall și metoda nesenzorială back-EMF.
Metoda nesenzorială este bazată pe măsurarea tensiunii electromotoare induse în înfășurările statorului și ține de implementare hardware și software. Măsurarea tensiunii electromotoare induse este posibilă deoarece una dintre înfășurări este lăsată în gol la un moment dat.
Tensiunea electromotoare fiind proporțională cu viteza de rotație, la viteze mici, amplitudinea tensiunii induse este de valoare foarte mică, citirea semnalului fiind foarte dificilă pentru determinarea trecerilor prin zero,prin urmare este necesar ca rotorul să ajungă la o anumită turație, de aceea, inițial, pornirea acestui tip de motoare se face fără controlul poziției (orbește).
Metoda este convenabilă în condiții nefavorabile metodei senzoriale, precum spații greu accesibile, încăperi cu mult praf sau agenți dăunători componentelor electronice. Însă în cazul în care motorul trebuie să efectueze opriri sau porniri repetate, această metodă prezintă dezavantaje.
În ultima vreme folosirea senzorilor hall a devenit cea mai răspândită metodă de detecție a poziției rotorului, cele mai multe motoare brushless având câte trei senzori hall montați la capătul statorului.Acești senzori, care funcționeaza pe baza efectului hall, furnizează un semnal digital cu nivel 1 logic pe o perioadă π iar pentru cea de a doua perioadă π un semnal digital cu nivel 0 logic. Semnalele furnizate de cei trei senzori sunt defazate între ele cu 60° astfel fiecare senzor este aliniat cu unul dintre circuitele electromagnetice.
Efectul hall apare când un conductor sau un semiconductor, parcurs de un curent electric, este supus acțiunii unui cîmp magnetic perpendicular pe direcția curentului și se manifestă prin apariția unei tensiuni, denumită tensiune hall.
Numărul de cicluri electrice care trebuie să se repete pentru a obține o rotație completă este determinat de numărul de poli rotorici.
2.2.3 Micro Servomotor
În literatura sub denumirea de servomotoare se cuprind motoarele electrice executate special pentru a fi utilizate în sistemele automate de poziționare și care în general sunt de puteri reduse. Servomotoarele sunt motoare electrice speciale, de curent continuu sau curent alternativ cu viteză de rotație reglabilă într-o gamă largă în ambele sensuri având ca scop deplasarea într-un timp prescris a unui sistem mecanic (sarcina) de-a lungul unei traiectorii date, realizând totodată și poziționarea acestuia la sfârșitul cursei cu o anumită precizie.
Servomotoarele electrice se folosesc în diverse aplicații cum ar fi acționarea roboților industriali universali, a mașinilor unelte cu comandă numerică, a perifericelor de calculator, în acționarea imprimantelor rapide, în tehnica aerospațială, instalații medicale , aeromodelism etc. În aeromodelism cele mai utilizate servomotoare sunt micro servomotoarele datorită greutăți lor foarte mici.
Figura 2.2.3.1. Micro Servo SG90
Servomotorul prezentat în figura 2.2.3.1 este un servomotor de dimensiuni mici compus dintr-un motor de curent continuu cu perii care prin intermediul unui angrenaj de roți dințate (din plastic) antrenează un ax de ieșire și un circuit electronic de control. Pe axul de ieșire este montat un potențiometru pentru a determina poziția acestuia. Circuitul de control are rolul de a modifica parametrii funcționali (poziție, viteză etc.) ai servomotorului în funcție de semnalul de intrare.
Figura 2.2.3.2 Diagrama servomotorului
Din punct de vedere al gradului de rotire al axului există două tipuri de servomotoare, servomotoare cu rotație de 180 grade și servomotoare cu rotație completă, 360 grade. Servomotorul prezentat este un servomotoare cu grad de rotație de 180 grade. Pentru a controla servomotorul este nevoie de un semnal PWM cu perioada de 20 ms, unde durata pulsului variază între 1 și 2 ms. Poziția de zero grade corespunde unui puls de 1 ms pe când poziția de 180 grade corespunde unui puls de 2 ms.
Figura 2.2.3.3. Controlul servomotorului
2.3 Senzori
Denumirea de senzor provine din cuvântul latin „sensus” –simț și este un dispozitiv sensibil capabil să detecteze sau să măsoare unii parametrii din mediu înconjurător sau unele condiții, care sunt aplicate la intrare și să furnizeze un răspuns de aceași natură sau de natură diferită. Astfel senzorii au și funcția de a converti stimulul într-un semnal măsurabil. Cuprinde atât traductorul care transformă mărimea de intrare în semnal electric util cât și circuite aferente pentru adaptarea și conversia semnalelor și eventual prelucrarea și evaluarea informațiilor. Stimulii de la intrare pot fi de natură mecanică, termică, electromagnetică, acustici sau chimici.
2.3.1 Accelerometrul și Giroscopul
Dispozitivul folosit pentru măsurarea accelerației poartă denumirea de accelerometru. În măsurarea accelerațiilor se pot utiliza accelerometre: piezoelectrice, piezorezistive și capacitive.
Accelerometrele piezoelectrice folosesc efectul piezoelectric al elementelor sensibile pentru a genera sarcină electrică la ieșire. Elementele piezoelectrice cu rol de elemente elastice produc sarcină electrică proporțională cu efortul aplicat. Sensibilitatea acestor traductoare poate fi exprimată prin:
sensibilitatea de sarcină: [pC/m·s2]
sensibilitatea de tensiune: [mV/m·s2] sau [mV/g]
Traductoarele piezoelectrice sunt robuste, preiau undele longitudinale, au o frecvență de rezonanță ridicată, dar, prezintă și o sensibilitate transversală ceea ce face ca sensibilitatea totală să varieze în funcție de unghiul de orientare între o valoare maximă și minimă. Pentru reducerea influenței sensibilității transversale, pe traductor se marchează direcția pe care aceasta este minimă, fiind necesară respectarea acesteia la montare.
Accelerometrele piezorezistive funcționează pe principiul modificării rezistenței, conține o punte Wheatstone de rezistoare, pe unul sau mai multe brațe, ce își schimbă valoarea rezistenței electrice sub acțiunea efortului. Deoarece alimentarea acestui senzor este cu tensiune electrică exterioară, ieșirea poate fi cuplată în curent continuu pentru a raspunde și la condiții statice. Sensibilitatea unei punți Wheatstone variază direct proporțional cu tensiunea de alimentare care trebuie să fie stabilă și nezgomotoasă. Ieșirea acestei punți este flotantă fiind nevoie de un amplificator diferențial. Față de accelerometrele piezoelectrice, cele piezorezistive prezintă avantajul unei impedanțe echivalente redusă și imunitate la zgomote. Sensibilitatea provine din răspunsul elastic al structurii și rezistivitatea materialului. Senzorii piezoelectrici sunt fabricați dintr-o singură piesă din siliciu astfel rezultând stabilitate mai bună, coeficienți termici buni și fiabilitate mare.
Accelerometrele capacitive sunt realizate sub formă de condesatoare plane cu plăci paralele și drept dielectric având aerul, în care mișcarea este perpendiculara pe plăci. Excitația este dată de un oscilator cu frecvență mare. Variațiile de capacitate sunt sesizate de o pereche de convertoare curent tensiune. Sunt realizați prin microprelucare pe mai multe substraturi suprapuse de siliciu, cu un interstițiu de aer de câțiva micrometri, pentru a permite amortizarea. Deoarce vâscozitatea aerului variază cu câteva procente pe o gamă largă de temperaturi de lucru se obține un răspuns în frecvență mai stabil decât la accelerometrele piezorezistive. Aceste tipuri de accelerometre au cele mai bune caracteristici de funcționare. Dezavantajele sunt reprezentate de costul, gabaridul mare și complexitatea circuitelor de condiționare.
Giroscopul este un corp solid căruia i se imprimă o mișcare de rotație (în jurul unei axe de simetrie, de obicei), având scopul de a indica o anumită direcție (fixă în spațiu). Termenul de giroscop vine din limba greacă (giros – rotație, scopein – a observa) este vorba deci despre un aparat care permite observarea mișcării de rotație. Giroscoapele se utilizează pentru măsurarea înclinărilor, direcțiilor, vitezelor unghiulare, accelerațiilor liniare și unghiulare, cuplurilor, vibrațiilor, etc.
Un giroscop este alcătuit dintr-un rotor (de obicei de forma unui disc), fixat într-un cadru astfel încât să se poată roti în jurul oricăreia dintre cele trei axe (în cazul unui giroscop cu trei grade de libertate). Funcționarea giroscopului se bazează pe conservarea impulsului unghiulare, un corp care se rotește în jurul propriei axe tinde să-și păstreze această axă de rotație și se va opune unui impuls perturbator cu un altul, de-a lungul unei axe perpendiculare pe axa de rotație și pe axa impulsului perturbator Giroscopul este folosit în principal în aeronave, nave, submarine pentru a determina viteza și poziția.
În cazul giroscoapelor apar următoarele fenomene caracteristice: stabilitatea axei giroscopului, efectul giroscopic, cuplul giroscopic, mișcarea de precesie. Stabilitatea axei giroscopului constă în menținerea axei de rotație proprii atunci când asupra giroscopului nu acționează forțe perturbatoare exterioare, fenomen care este des utilizat în aplicațiile practice. Efectul giroscopic constă în rotirea axei giroscopului atunci când asupra acestuia acționează un cuplu de forțe perturbatoare exterioare, fenomenul apărând la toate giroscoapele centrate sau necentrate. Sub acțiunea greutății proprii ( giroscopul liber ) și eventual sub acțiunea altor forțe exterioare apare o deviație a axei giroscopului. Această deviație determină o mișcare de revoluție a axei giroscopului în jurul axei care se suprapune peste mișcarea de rotație proprie, rezultanta celor două mișcări reprezentând mișcarea de precesie.
Clasificarea aparatelor giroscopice din punct de vedere funcțional, în funcție de parametrii măsurați de aparatele giroscopice:
a) Aparate giroscopice poziționale sau de memorare a unei direcții date, utilizează proprietatea giroscopului liber de a-și menține neschimbată orientarea în spațiu a momentului cinetic. De regulă pozițiile memorate sunt verticala locului și direcția meridianului geografic, care, nefiind fixe se rotesc datorită rotației Pământului și deplasării aeronavei, rezultând un giroscop nesatisfăcător. Acesta trebuie prevăzut cu un sistem de corecție fie de tip pendular, fie un traductor de câmp magnetic.
b) Compasurile giroscopice, reprezintă clasa de aparate giroscopice la care axa de rotație proprie, are capacitatea de a se orienta în azimut, ca urmare a deplasării centrului de masă față de punctul de suspensie.
c) Stabilizatoarele giroscopice, se împart în două grupe: stabilizatoare giroscopice directe ( stabilizatorul servește ca element de forță ce asigură stabilizarea impusă unui dispozitiv de bord) și stabilizatoare giroscopice indirecte (giroscopul este folosit ca element de măsurare).
d) Giroscoapele de viteză, care mai sunt numite și girometre sunt folosite la măsurarea vitezei unghiulare de rotație a unei aeronave în jurul axelor sale. Aceste giroscoape sunt foarte des întâlnite în sistemele de comandă automată a aeronavelor.
e) Alte tipuri de aparate giroscopice: giroscoape integratoare de accelerație liniară, giroaccelerometre, giroscoape de comandă, relee giroscopice, giroscoape cu vibrații.
MPU6050
2.3.2 Senzor optic – APM Optical Flow
Optical Flow sensor este un senzor optic de debit, care se bazează pe efectul optic al senzorului mouse-ului. Acesta este utilizat pentru îmbunatățirea poziției și menținerea altitudinii platformelor robotice (drone) pe orizontală precum și pentru evitarea obstacolelor. Va permite trecerea platformei robotice la altitudini joase (cum ar fi mediul interior), fără a fi nevoie de GPS.
Figura 2.3.2.1 APM Optical Flow Sensor
Senzorul prezentat în figura 2.3.2.1 are o rezoluție destul de mare 30 x 30 pixeli, o rată de actualizare de la 2000 până la 6400 de cadre pe secundă ceea ce contribuie la o mai bună performanță pe lumină scăzută față de alți senzori. Poate fi interfațat la mai multe controlere și co-există cu alți senzori datorită interfaței seriale de comunicare SPI. În scopul de a converti valorile preluate de la senzor în distanță reală de deplasare, trebuie să se ia în considerare și altitudinea. Acest lucru este necesar, deoarece după cum se poate vedea în figura 2.3.2.2, dacă avem două platforme care se deplasează în aceeași direcție și parcurg aceași distanță, una la o altitudine joasă (figura 2.3.2.2 a) iar cealaltă la o altitudine mai mare (figura 2.3.2.2 b), platforma inferioră va percepe caracteristica de suprafață ca mișcându-se în continuare și acest lucru va avea ca rezultat valori de flux optic mai mari:
Figura 2.3.2.2 Situații măsurare
În imaginea de mai sus (figura 2.3.2.2 d) se poate vedea că platforma este înclinată cu 10 de grade față de platforma din imaginea c, cele două obiecte din centrul imaginii c deplasându-se spre margine, în cazul acesta poziția așteptată se determină astfel:
2.3.3 Senzor de curent
În multe aplicații este utilă cunoașterea curentului absorbit de circuit. Cea mai simplă modalitate de a afla curentul este sesizarea rezistivă. Metoda presupune montarea unei rezistențe în serie cu circuitul în cauză. Pe această rezistenșă se va măsura căderea de tensiunea. Valoarea curentului va fi determinată apoi ușor cu ajutorul legii lui Ohm U=R*I.
Curentul poate fi sesizat fie în configurație flotantă (capetele rezistorului sunt conectate la tensiuni diferite de zero) fie față de masă. În figura 2.3.3.1 este prezentat modul de conectare a rezistentei în cazul configurației flotante.
Figura 2.3.3.1 Sesizare rezistivă în configurație flotantă
Pentru a măsura căderea de tensiune pe rezistenta de sesizare în cazul configurației flotante se poate folosi un amplificator operational conectat in modul diferential. Acesta va măsura diferența de potențial dintre capetele rezistenței și va furniza la ieșire o tensiune față de masa, amplificată si direct proporțională cu valoarea curentului.
Figura 2.3.3.2 Schema de principiu a senzorului de curent cu sesizare rezistivă în configurație flotantă cu amplificator diferențial
Dacă aplicăm teorema lui Millman pe schema din figura 2.3.3.2 se poate scrie expresia potențialului față de masă al intrării inversoare:
(2.3.3.1)
Pentru a obține expresia potențialului intrării neinversoare observăm că avem un divizor de tensiune și putem scrie:
(2.3.3.2)
Aplicând condiția de egalitate a potențialelor celor două intrări ale amplificatorului operațional tensiunea de la ieșirea amplificatorului va fi:
(2.3.3.3)
Dacă presupunem că R1 = R3 și R2 = R4 tensiunea la ieșirea amplificatorului va fi:
(2.3.3.4)
Expresia factorului de amplificare pentru amplificatorul diferențial are forma:
(2.3.3.5)
Prin urmare valoarea curentului măsurat va fi:
(2.3.3.6)
Căderea de tensiune pe rezistorul de sesizare influențează funcționarea circuitului. De aceea se face un compromis între tensiunea necesară pentru o măsurare precisă și căderea de tensiune tolerată de aplicație.
Curentul ce trece prin rezistor va genera pe lângă căderea de tensiune și căldură. Dacă puterea ce trebuie disipată se apropie de puterea maximă recomandată pentru rezistor, este necesară montarea rezistorul pe radiator de caldură, altfel temperatura ridicată îi va scurta timpul de viață.
2.4 Comunicare
2.4.1 UART
Universal Asynchronous Receiver/Transmitter(abreviat UART) este o interfata seriala de comunicare. Comunicarea serială este definită ca fiind transferul secvențial de informații între 2 puncte de comunicare. Transmisia informațiilor se realizează bit cu bit pe un număr redus de linii de transfer. Acest tip de comunicare, deși mai înceată decât comunicarea paralelă, oferăposibilitatea de transmitere pe o distanță mare a informației.
După modul în care se face comunicarea serială avem comunicare serială sincronă și comunicare serială asincronă. Comunicarea serială sincronă folosește un semnal de ceas care indică când o anumită dată este validă. Comunicarea serială asincronă se folosește de structura informației transmise pentru a realiza sincronizarea între emitor și receptor.Cele mai cunoscute standarde de comunicare serială, pentru a realiza compatibilitatea între echipamentele furnizate de diverși producători, sunt RS 232 și RS 485.
Pentru ca transferul să poate avea loc este necesar un protocol de comunicație. Echipamentele care comunică prin intermediul magistralei seriale trebuie să respecte același protocol și aceiași parametri de transmisie (mod de sincronizare, lungimea setului de date, viteza de transfer).
Viteza de transmisie a datelor reprezintă numărul de biți transmiși într-o secundă și se măsoară în bps (biți pe secondă) sau baud. Ratele standardizate de transmisie a datelor pentru RS232 sunt: 110, 300, 1200, 2400, 4800, 9600, 19200, (28800, 33600), 38400, 57600, 76800, 115200, 230400, 460800, 921600 bps. Cel mai utilizat standard RS-232, este un standard de comunicare serială asincronă, bidirecțional, folosit pentru transmiterea caracterelor codului ASCII.
Figura 2.4.1.1 Structura informației transmise conform standardului RS232
În cazul microcontrolerelor cel mai comun standard de comunicare serială cu dispozitivele periferice utilizat este modulul UART.
Figura 2.4.1.2. Schema de comunicare serială
Cuvândut care este trimis are aceeași structură ca cea prezentată în figura 2.4.1.1, fiind format dintr-un bit de start, întotdeauna 0 logic, 8– 9 biți de date, un bit de paritate, necesar pentru detecția erorilor și 1-2 biți de stop, întotdeauna 1 logic. Erorile pot apărea atunci cînd configurarea între dispozitive nu este corect facută. Erorile pot fi generate și pe liniile de transmisie, ele putând fi detectate prin bitul de paritate sau biții de stop. La transmiterea sau recepția mai multor cuvinte consecutive trebuie verificat dacă modulul a realizat operația completă de trimitere sau citire altfel poate apărea o altă eroare.
Sincronizarea, în cazul transmisiei seriale asincrone, se face prin intermediul bitului de start, la începutul fiecărui caracter transmis. Datele sunt citite secvențial la jumătatea intervalelor de bit ce urmează bitului de start. Protocolul reușește să asigure citirea corectă a datelor chiar dacă între frecvența de emisie și cea de citire a datelor există mici diferențe.
2.6.2 SPI
Serial Peripheral Interface Bus (abreviat SPI) o interfață serială de comunicare (ca și IIC) dezvoltată de Motorola ce operează în mod full-duplex (transferul de date are loc în ambele direcții simultan). Dispozitivele comunică folosind o relație de tipul un singur coordonator – mai mulți subordonați (single master – multi slave, nu sunt suportați mai mulți masteri) coordonatorul fiind cel care inițiază frame-urile de date. SPI se mai numeste și "four wire" serial bus pentru al deosebi de celelalte standarde ce folosesc 1, 2 sau 3 fire. Cele patru fire utilizate de magistrală sunt:
SCLK – Serial Clock (semnal de tact provenit de la coordonator);
MOSI/SIMO – Master Output, Slave Input (ieșire de date, semnal generat de coordonator);
MISO/SOMI -Master Input, Slave Output (intrare de date, semnal generat de subordonat);
SS – Slave Select (semnal de ieșire a coordonatorului utilizat pentru selecția subordonatului – de obicei activ pe 0 logic);
Figura 2.6.2.1. Semnalele SPI
Transferul datelor este întotdeauna inițiat și controlat de coordonator. Pentru a porni comunicația coordonatorul trebuie să aibă generatorul de tact setat la o frecvență cel mult egală cu frecvența suportată de subordonat. În timpul unui ciclu SPI transmisia este full – duplex, cu alte cuvinte coordonatorul trimite un bit pe linia MOSI (subordonatul îl citește de pe aceași linie) iar subordonatul trimite un bit pe linia MISO (coordonatorul îl citește de pe aceași linie).
Comunicația pe magistrala SPI implică de obicei existența a doi registri de shiftare unul fiind inclus în coordonator iar celălalt făcând parte din subordonat. Întregul transfer de date se realizează doar pe fronturile semnalului de tact. Datorită acestui lucru sunt tolerate situațiile în care perioada semnalului de tact nu este constanta pe durata transferului de date, timpul dintre două fronturi succesive nefiind contorizat. Totodată transferul de date pe frontul semnalului de tact aduce următoarele beneficii: limitarea superioară a semnalului de tact se face doar funcție de rapiditatea de prelucrare a semnalului și de capacitatea fizică de la capetele liniilor de date. Frecvențele maxime impuse de subordonat sunt cuprinse între 1 Mhz și 100 Mhz.
2.6.3 IIC
Inter Integrated Circuits (abreviat IIC) este o interfață serială de comunicare, apărută din
necesitatea de a realiza sisteme cu microcontrolere ieftine, destinate în principal conducerii proceselor industriale. Un astfel de sistem este constituit, de regulă, dintr-unul sau mai multe microcontrolere și o serie de echipamente periferice.
Magistrala IIC este formată din numai trei linii: două de semnal și una de masă. Liniile de semnal sunt denumite "serial data" (SDA) și "serial clock" (SCL). Fiecare circuit integrat are o adresă unică și poate funcționa fie ca transmițător, fie ca receptor, în funcție de tipul circuitului. Un circuit integrat din sistem poate fi coordonator sau executant.
Circuitul integrat coordonator (master) este circuitul care inițiază un transfer de date și tot el generează semnalele de tact pentru a permite realizarea unui transfer. Orice alt circuit integrat adresat de coordonator este subordonat (slave). Structura IIC este o structură multi-coordonator (multi-master), adică se pot interconecta mai multe circuite care pot avea rolul de coordonator.
Pentru conectarea la magistrala IIC fiecare circuit integrat este prevăzut cu câte un etaj de interfață pentru fiecare linie a magistralei. Ambele linii, SDA și SCL, sunt linii bidirecționale, conectate la plusul sursei de alimentare prin câte un rezistor (pull-up resistor). Dacă magistrala este liberă, ambele linii sunt la nivel ridicat. Etajele de ieșire ale fiecărui circuit care se conectează la magistrala IIC trebuie să aibă o ieșire de tip colector în gol sau drenă în gol, pentru a putea permite realizarea funcției „și-cablat”.
Figura 2.6.3.1. Conectarea dispozitivelor la magistrala IIC
Rata maximă de transfer pe magistrală este de 100 kbit/s. Ultimile realizări de circuite integrate destinate să funcționeze în sisteme I2C admit rate maxime de transfer de 400 kbit/s. Numărul de circuite care se pot conecta la magistrală este limitat numai de capacitatea maxim admisă pentru fiecare linie, care este de 400 pF.
Protocolul de transfer al datelor pe magistrala IIC presupune inițierea transferului prin aducerea magistralei într-o condiție de start, transferul propriu-zis și încheierea transferului prin aducerea magistralei într-o condiție de stop. Condiția de start (S) este definită prin trecerea liniei SDA din 1 în 0, în timp ce linia SCL este menținută la nivel ridicat. Condiția de stop (P) este definită prin trecerea liniei SDA din 0 în 1, în timp ce linia SCL este menținută la nivel ridicat. Ele sunt generate întotdeauna de către coordonator.
Figura 2.6.3.2. Condițiile de start și stop
Datele trebuie să fie stabile pe durata impulsurilor de tact, pentru ca transferul pe magistrala sa se desfasoare in bune conditii. Modificarea datelor se poate face pe durata pauzelor dintre impulsurile de tact.
Figura 2.6.3.3. Transferul unui bit pe magistrala IIC
Datele sunt transferate pe magistrală sub formă de octeți. După transmiterea fiecărui octet transmițătorul trebuie să afle dacă acesta a fost recepționat în bune condiții de către receptor. Aceasta se face prin procedura de acceptare.
După transmiterea celui de-al 8-lea bit, transmițătorul lasă în starea sus linia de date SDA. Dacă recepția s-a facut corect (fiecare bit a fost preluat, s-a verificat paritatea, cuvântul recepționat în registrul de deplasare pentru recepție a fost preluat de registrul tampon pentru recepție), atunci receptorul trage jos linia SDA pe durata celui de-al 9-lea tact de pe linia SCL.
Figura 2.6.3.4. Confirmarea pe magistrala IIC
Numărul de octeți care poate fi transmis în cadrul unui transfer nu este limitat. În cadrul unui octet, primul bit transferat este bitul cel mai semnificativ. După primele opt impulsuri de tact necesare transmiterii unui octet urmează un al nouălea impuls, utilizat pentru recunoașterea efectuării transferului (figura 2.6.3.4.). Dacă, după recepția unui octet, receptorul nu admite un nou octet (pentru că, de exemplu, tratează o întrerupere internă), el poate menține linia SCL la nivel coborât pentru a forța transmițătorul într-o stare de așteptare. Transferul poate continua când receptorul este gata, situație indicată prin eliberarea liniei SCL. În felul acesta se face adaptarea vitezei de transmisie după viteza celui mai lent participant.
Întotdeauna, primul octet transmis după condiția de start reprezintă adresa unui subordonat, împreună cu tipul operației solicitate (scriere sau citire). Primii șapte biți ai acestui octet reprezintă adresa. Tipul operației este precizat de bitul 8, notat R/W. Astfel, dacă R/W = 1, coordonatorul va citi date de la subordonatul adresat iar dacă R/W = 0, coordonatorul va transmite date subordonatului adresat.
Utilizarea tehnicii de recunoaștere a transferului este obligatorie pentru asigurarea unui transfer corect. Impulsul de tact corespunzător fiecărui octet, denumit impuls de recunoaștere, este generat de coordonator. Transmițătorul eliberează linia SDA pe durata impulsului de recunoaștere. Receptorul trebuie să aducă linia SDA la nivel coborât și să o mențină așa pe toată durata impulsului de recunoaștere, ceea ce garantează efectuarea corectă a transferului octetului
respectiv. În general, un receptor adresat trebuie să recunoască fiecare octet transmis. Există și excepții, care însă nu fac obiectul acestei tratări.
Figura 2.6.3.5. Transferul de date pe magistrala IIC
Dacă un receptor subordonat nu recunoaște adresa care i-a fost trimisă pe magistrală (de exemplu, nu poate recepționa date pentru că execută o funcție în timp real), subordonatul trebuie să lase linia SDA la nivel ridicat. În această situație, coordonatorul poate genera o condiție de stop pentru a abandona transferul.
Dacă receptorul subordonat recunoaște adresa care i-a fost trimisă, dar, după transferul unui număr oarecare de octeți, nu mai poate recepționa alții, atunci coordonatorul trebuie să abandoneze din nou transferul. Pentru aceasta, după primul octet care nu mai poate fi recepționat, subordonatul nu mai generează recunoașterea, adică lasă linia SDA la nivel ridicat. În această situație, coordonatorul poate genera condiția de stop pentru a abandona transferul. Dacă circuitul coordonator este receptor și nu mai poate recepționa date, atunci el semnalează aceasta transmițătorului subordonat prin faptul că nu mai generează recunoașterea după ultimul octet pe care îl poate recepționa. În această situație, transmițătorul subordonat trebuie să elibereze linia SDA pentru a permite coordonatorului să genereze o condiție de stop.
2.5 Microcontrolere
Un microcontroler este un sistem electronic miniaturizat destinat controlului unui proces sau al unei interacțiuni cu mediul exterior, intervenția operatorului uman nefiind necesară. Datorită prețului scăzut, în prezent microcontrolerele se regăsesc în aproape toate dispozitivile electrocasnice (televizoroare, mașini de spălat, imprimante, frigidere,cuptor cu microunde etc.). De asemenea microcontrolerele sunt folosite pe scară largă și în industrie. În industria automobilelor de exemplu este integrat în unitatea de control (ECU) și poate realiza controlul frânări și al direcției(ABS), controlul injecției carburantului, controlul dispozitivelor de siguranță(Airbag), reglarea scaunelor și oglinzilor, climatizarea, diagnoza.
Microcontrolerul în structura sa internă poate include o unitatea centrală (microprocesor), un temporizatoar/numărător, un generator de tact (de obicei un circuit RC), o memorie volatilă (RAM) și o memorie nevolatilă (ROM/EPROM/EEPROM/FLASH), un sistem de întreruperi (ISR), un dispozitiv I/O intrări/ieșiri atât seriale cât și paralele, un covertoar A/D și D/A, un comparator analogic, un generator de PWM, periferice și alte resurse. Dimensiunea cuvântului de date reprezintă un prim criteriu de clasificare, astfel funcție de acesta și de puterea de calcul dorită întâlnim microcontrolere cu o lungime a cuvântului de date cuprinsă între 4 și 64 de biți. Cel mai important aspect în ceea ce privește analiza oricărui sistem de calcul se referă la arhitectura sa internă. Dintre cele mai întâlnite arhitecturi amintim: arhitecturi de tip " Von Neumann " și arhitecturi de tip " Harvard ".
Limbajul mașină este singurul mod prin care microcontrolerul poate interpreta informația. Însă acest limbaj nu este deloc la îndemâna unui programator. Acesta va utiliza un limbaj de programare (ASM, C/C++) în care o instrucțiune are corespondent o instrucțiune în limbajul mașină. Conversia instrucțiunilor din limbajul de programare în limbaj mașină va fi realizată de un compilator.
2.5.1 Microcontroler PIC16F886/887
Produse de firma Microchip Technology Inc, PIC16F886 și PIC16F887 sunt microcontrolere pe 8 biți construite pe o arhitectură de tip Harvard (figura 2.4.1.1) . Arhitectura Harvard permite executarea instrucțiunilor microcontrolerului (majoritatea) într-un singur ciclu. Spațiile de memorie sunt separate pentru memoria program și memoria de date. Lățimea magistralelor variază în funcție de mărimea memoriei. Unitatea centrală de programare de înaltă performanță este bazată pe o arhitectură RISC (Reduced Instruction Set Computer) având numai 35 de instrucțiuni.
Figura 2.5.1.1 Arhitectura Harvard
Oscilatorul intern este de 8Mhz, frecvența acestuia poate fi divizată pentru a obține frecvențe de oscilație de 4 MHz, 2MHz, 1MHz, 500KHz, 250 KHz, 125 Khz și respectiv 31KHz, prin intermediul registrului OSCCON (biții IRCF<2:0>). Frecvența maximă de operare este de 20 MHz, în acest caz este necasar atașarea unui cuarț extern.
Microcontrolerul are o memorie program FLASH de 8192 cuvinte. Această memorie poate fi ștearsă și reprogramată electric. În cazul ștergerii este permisă doar ștergera întregului conținut. Memoria de date este formată din 368 bytes (octeți) SRAM și 256 bytes EEPROM, fiind împărțită în patru bancuri care conțin registri de uz general (GPR) și registri de funcții speciale (SFR).Memoria SRAM (Static Random Access Memory) folosește circuite logice combinaționale pentru a memora fiecare bit și nu necesită un ciclu periodic de reîmprospătare. Această memorie conține registri de uz general, unde sunt memorate date aflate în continuă schimbare. Memoria EEPROM (Electrically Erasable Programmable Read Only Memory) este un tip de memorie nevolatilă în care sunt stocate date pe termen lung. Ștergerea este selectivă, iar pentru rescriere trebuie parcurși mai mulți pași. Memoria este lentă și are un număr de rescriere limitat (aproximativ 10 000).
Capsula microcontrolerului PIC16F887 este de tip TQPF având 44 de pini dintre care 4 de alimentare (VDD, VSS) iar capsula microcontrolerului PIC16F886 este de tot de tip TQPF având 28 de pini. Pentru alimentare este recomandată o tensiune stabilizată cu o valoare cuprinsă între 3.7V și 5V. Pini microcontrolerului sunt grupați în patru porturi (PORTA, PORTB, PORTC, PORTD) a câte 8 pini fiecare și un port de 4 pini ( PORTE). Prin intermediul rigiștrilor TRISA/TRISB/TRISC/TRISD/TRISE pinii acestor porturi pot fi setați fie de intrare fie de ieșire, funcție de cerințele aplicației. În figura 2.4.1.2 se poate observa o diagramă a pinilor celor două microcontrolere .
Figura 2.5.1.2 Diagrama pinilor
În continuare se va analiza microcontrolerul PIC16F887, acesta are 3 module de timere respectiv TMR0, TMR1, TMR2. Modulul TMR0 poate lucra pe 8 biți, putând fi folosit atât ca timer cât și ca numărător de evenimente. Acesta are un prescaler de 8 biti care poate fi asignat cu TMR0 sau WDT. Prescaler-ul are rolul de a diviza frecvența oscilatorului intern sau extern. În modul de lucru timer va incrementa la fiecare ciclu instruțiune până va atinge valoarea maximă de 255, după care o va lua de la capăt. Incrementarea va porni de la o valoare prescrisă de programator. Orice modificare a TMR0 va inițializa și prescalerul. Prescalerul va memora de cate ori TMR0 a incrementat până la depășirea valorii maxime. Un ciclu instrucțiune se desfășoară pe durata a 4 perioade de ceas. La depășirea valorii de 255 (0xff) TMR0 poate genera o întrerupere.
Ecuația funcționării TMR0 este:
(2.5.1.1)
t – timpul dorit (în milisecunde);
Fosc –frecvența oscilatorului intern/extern.
Registrul OPTION_REG conține biții de control pentru a configura prescalerul, întreruperea INT externă, TMR0, și pull-up-uri de pe PORTB:
RBPU – bit de setare al „pull-up” PORTB:
1 = pull-up PORTB este dezactivat;
0 = pull-up PORTB este activat de valorile individuale ale latch-urilor;
INTEDG – bit de selecție al frontului întreruperii RB0/INT:
1 = întrerupere pe front crescător RB0/INT;
0 = întrerupere pe front descrescător RB0/INT;
T0CS –bit de selecție a tactului pentru TMR0:
1 = TMR0 incrementează prin impulsurile experne primite pe pinul RA4/T0CKI;
0 = TMR0 incrementeaza de la oscilatorul intern(Fosc/4);
T0SE –bit de selecție a polarității semnalului de tact extern:
1 = incrementare pe tranziția low-high a RA4/T0CKI;
0 = incrementare pe tranziția high-low a RA4/T0CKI;
PSA –bit de asignare a prescalerului:
1 = prescalerul este asignat la WDT;
0 = prescalerul este asignat la TMR0;
PS<2:0> – biții de selecție a ratei prescalorului:
Modulul TMR1 are o funcționare asemănătoare cu TMR0. Este un timer și numărător pe 16 biți care poate fi incrementat și în starea de hibernare (sleep) a microcontrolerului. Poate fi configurat prin intermediul registrului T1CON. Activarea timerului se face prin setarea bitului TMR1ON. TMR1 are doi regiștri paraleli TMR1H și TMR1L care se vor incrementa la fiecare tact de ceas dacă timerul este pornit și bitul T1OSCEN setat. Prescalerul este complet separat și poate fi setat la 1:1, 1:2, 1:4, 1:8.
Modulul TMR2 este un timer și numărător de 8 biți cu registru de perioadă de 8 biți. Configurare acestuia se face prin intermediul registrului T2CON. Acest timer are inclus atât prescaler cât și postscaler. Prescalerul este controlat de biți T2CKPS, iar postscalerul este controlată de biți TOUTPS ai registrului. Poate fi deservit ca bază de timp pentru modulul CCP.
Microcontrolerul PIC16F887 permite lucrul în întreruperi, punând la dispoziție multiple surse de întrerupere. Prin întrerupere înțelegem suspendarea procesului de execuție a programului pentru a deservi o problemă prioritară, după finalizare reluându-se execuția procesului oprit anterior din punctul unde s-a produs întreruperea. Întreruperea în mod general este determinată de răspunsul la un efect fizic extern sau intern, care necesită o tratare imediată. Tratarea situației presupune existența unei subrutine definite în acest scop.
Întreruperile sunt controlate prin 3 biți, dintre care unul stabilește nivelul de prioritate al întreruperii (ridicat/scăzut), unul activeză întreruperea și al treilea marchează când s-a produs întreruperea. Întreruperile pot fi controlate prin intermediul regiștrilor INTCON, PIE1, PIE2, PIR1, PIR2, IOCB.
În registrele INTCON se pot face anumite configurații ale întreruperilor:
GIE –bit de permisie a întreruperilor globale:
1 = permite toate întreruperile nemascate;
0 = dezactivează toate întreruperile;
PEIE –bit de permisie a întreruperilor periferice:
1 = permite toate întreruperile periferice nemascate;
0 = dezactivează toate întreruperile periferice;
T0IE –bit de permisie a întrerulerilor generate de depășirea contorului TMR0:
1 = întrerupere permisă;
0 = întrerupere nepermisă;
INTE –bit de permisie a întreruperilor externe de la RB0/INT:
1 = întrerupere externă permisă;
0 = întrerupere externă nepermisă;
RBIE –bitul de permisie a întreruperilor generate de schimbarea stări pinilor portului B:
1 = întrerupere generate de schimbarea stări pinilor portului B permisă;
0 = întrerupere generate de schimbarea stări pinilor portului B nepermisă;
În cazul în care se utilizează întreruperea generată de schimbarea stării pinilor portului B (RBIE=1) este necesar și setarea biților corespunzători din registrul IOCB.
T0IF –flag de detecție a depășiri contorului TMR0 (trebuie șters prin program) :
1 = depășirea s-a produs;
0 = nu s-a produs depășirea;
INTF –flag de detecție a întreruperilor externe (trebuie șters prin program) :
1 = întreruperea externă a avut loc;
0 = nu a avut loc întreruperea externă;
RBIF–flag de detecție a întreruperilor genereate de schimbarea stări pinilor portului B (trebuie
șters prin program) :
1 = întreruperea avut loc;
0 = nu a avut loc întreruperea ;
Registrele PIE (Peripheral Interrupt Enable) conțin biți individuali de activare pentru fiecare periferic ce poate lucra în întrerupere.
PIE1:
PIE2:
Registrele PIR (Peripheral Interrupt Request) conțin informații care ne spun daca s-a produs sau nu o întrerupere.
PIR1:
PIR2:
ADIE –bit pentru setarea întreruperii convertorului AD;
ADIF –flag de întreruperi al convertorului AD;
RCIE –bit pentru setarea întreruperii pentru recepția USART;
RCIF –flag de întrerupere pentru recepția USART;
TXIE –bit pentru setarea întreruperii pentru transmisie USART;
TXIF–flag de întrerupere pentru transmisia USART;
TMR2IE –bit pentru setarea întreruperii la coincidență TMR2/PR2;
TMR2IF –flag de întrerupere la coincidență TMR2/PR2;
TMR1IE –bit pentru setarea întreruperii la depășirea valorii maxime a TMR1;
TMR1IF –flag de întrerupere la depășirea valorii maxime a TMR1;
Modulul utilizat pentru conversia mărimilor analogice în mărimi digitale, converotorul analog numeric sau prescurtat ADC, pe care acest microcontroler îl pune la dispoziție are o rezoluție de 10 biți. Modulul ADC poate fi folosit prin intermediul a 14 canale analogice. Dacă avem o mărime analogică care variază între 0 și 5V rezultatul conversiei va fi un număr cu valoarea cuprinsă între 0 și 1023. Pinii responsabili pentru preluarea semnalelor analogice sunt distribuiți în portul A (RA0/AN0, RA1/AN1, RA2/AN2, RA3/AN3, RA5/AN4), portul B (RB0/AN12, RB1/AN10, RB2/AN8, RB3/AN9, RB4/AN11, RB5/AN13), și portul E (RE0/AN5, RE1/AN1, RE2/AN2).
Când se dorește conversia de semnale analogice, acești pini de intrare/ieșire ar trebui să fie configurați pentru modul analogic. Pentru a seta pinii utilizați pentru citirea semnalelor analogice se vor utiliza regiștri TRIS, ANSEL, ANSELH, ADCON0, ADCON1. ANSEL și ANSELH sunt regiștri de setare a modului analogic sau digital pentru pinii destinați acestui mod de lucru.
Registrul ADCON0:
ADCS<1:0> –biți de selecție a ceasului pentru conversia A/D:
00 = FOSC/2; 10 = FOSC/32;
01 = FOSC/8; 11 = FRC;
CHS<3:0> –biți de selecție a canalului analogic;
GO/DONE –bit status al conversiei A/D;
ADON –bit de activare a conversiei A/D;
Registrul ADCON1:
ADFM –bit de selecție al formatului rezultatului;
VCFG<1:0> –biți de selecție a tensiunii de referință:
00 = VDD,VSS; 10 = +Vref, VSS;
01 = VDD, -Vref; 11 = +Vref, -Vref;
Microcontrolerul PIC16F887 dispune de două module de comunicație serială: EUSART (Enhanced Universal Syncronous Asyncronous Receiver Transmitter) și MSSP (Master Syncronus Serial Port). EUSART este un port periferic bidirecțional destinat implementării unui protocol clasic de comunicație serială atât asincronă cât și sincronă. Comunicare se poate realiza cu un alt microcontroler, calculator sau dispozitiv periferic (modul bluetooth, modul wireless, modul GSM ). Transmisia datelor fiind bidirecțională aceasta se realizează prin intermediul a doi pini, RX/RC7 (recepție) și TX/RC6 (transmisie). La comunicarea sincronă pe lângă legăturile de transmisie a datelor mai existență și o legătură prin care se stabilește același semnal de tact între dispozitive. EUSART se poate folosi în configurații standard RS-232, RS-422 sau RS-485.
Regiștrii de interes pentru a configura modulul de comunicare serială sunt: registrul de control a ratei de transfer a datelor (BAUDCTL), registrul de setare a parametrilor transmisiei (TXSTA), registrul de setare a parametrilor recepției (RCSTA), registrul generator al vitezei de comunicație (SPBRG,SPBRGH), registrul de transmisie a caracterului (TXREG) și registrul de recepție a caracterului (RXREG). Registrul TXSTA permite selecția numărului de biți (8 sau 9 prin bitul TX9), modul de comunicație (sincron sau asincron prin bitul SYNC), selecția vitezei ridicate de comunicație (BRGH) și începerea transmisiei (TXEN). Registrul de recepție RCSTA permite activarea sau inhibarea recepției (SPEN), selectarea numărului de biți recepționați ( 8 sau 9 RX9), activarea recepției în mod continuu (CREN) și detecția a două tipuri de erori: frame error (FERR) respectiv overrun error (OERR).
Formula ce stabilește viteză de transfer a datelor este:
BRGH = 0, BRG16=0, SYNC=0: ;
BRGH ={0,1}, BRG16={0,1}, SYNC=0: ; (2.5.1.2)
BRGH = 1, BRG16={0,1}, SYNC={0,1}: ;
Microcontrolerul mai are încorporat și module de captură, comparare , PWM (Puls Width Modulation). Captura este realizată pe 16 biți cu rezoluția maximă de 12.5nS, compararea pe 16 biți cu rezoluția maximă de 200nS, iar rezoluția maximă a PWM- ului este de 10 biți . PWM-ul dispune de 1,2 sau 4 canale de ieșire având o frecvență maximă de 20kHz.
Regiștrii asociați modulului comparare/captură/pwm sunt CCPR1L, CCPR1H, CCP1CON, CCPR2L, CCPR2H, CCP2CON. Dacă se utilizează modulul PWM următoarele relații sunt importante de cunoscut:
(2.5.1.3)
(2.5.1.4)
(2.5.1.5)
2.6 Interfața grafică
Interfața grafică cu utilizatorul (GUI Graphical User Interface ) este o interfață bazată pe un sistem de afișaj ce utilizează elemente grafice. Sistemul de afișaj grafic-vizual este situat funcțional între utilizator si un dispozitiv electronic (calculator, telefon). Interfața oferă pictograme și indicatori vizuali pentru a prezenta toate informațile și acțiunile disponibile. În spatele acestora se află un program care va executa diverse operații.
Lab Windows CVI este un mediu de programare ANSI C pentru testare și măsurare dezvoltat de National Instruments. Aceste mediu permite dezvoltarea interfețelor si produselor software punând la dispoziția programatorului un set de biblioteci. Fiecare dintre aceste biblioteci au o interfață specializată (function panel) care permit mediului să fie foarte flexibil, putând realiza o execuție interactivă , identificarea automată a variabilelor și constantelor existente, generare automată de cod și multe alte funcți. Dintre bibliotecile specializate puse la dispoziție fac parte: biblioteca pentru achiziția de date, biblioteca pentru portul serial RS232, biblioteca pentru operații I/O în cazul achiziției de date.
2.7 Filtrul Kalman
Filtrul Kalman cunoscut și sub numele de estimare pătratică liniară este un algoritm de eliminare a zgomotul nedorit dintr-un flux de date prin calculul recursiv, fiind folosit pe scară largă atât în sisteme de localizare, navigare, identificare radar, clasificare sonar, determinarea orbitei sateliților cât și în alte domenii cum ar fi prelucrarea datelor seismice, instrumentația pentru echipamente nucleare și econometrie.
Conceptul de spațiu a stărilor utilizat în descrierea matematică reprezintă una dintre caracteristicele filtrului Kalman. O altă trăsătură deosebită a filtrul Kalman este faptul că soluția finală este obținută prin calculul recursiv. Fiecare nouă estimare a stării se calculează pe baza estimării anterioare și a noii valori a mărimii de intrare, astfel încât numai ultima estimare trebuie memorată (astfel reducându-se volumul de calcul necesar implementării filtrului Kalman).
Filtrul Kalman estimează stările procesului pentru un anumit moment și obține apoi reacția în forma unor măsurători. Ecuațiile filtrului Kalman, se regăsesc în două grupuri: ecuații de predicție a stării și ecuații de reactualizare în măsurări. Ecuațiile de predicție sunt responsabile de proiectarea în timp a stările curente și estimările de covarianță ale erorilor, urmărind obținerea estimărilor pentru următorul moment. Reactualizarea ecuațiilor de măsurare sunt responsabile pentru reacție.
Ecuația de proces are forma:
(2.7.1)
Unde: reprezintă mătricea de tranziție a stărilor, face legătura dintre stările sistemului la momentele n+1 și n. v1 [n] reprezintă semnalul de intrare a procesului, el este zgomotul de proces, un proces de zgomot alb cu media nulă, și are matricea de corelație:
(2.7.2)
O ecuație de măsurare :
(2.7.3)
Unde: C[n] reprezintă matrice de măsurare, v2 [n] este zgomotul de măsurare, modelat printr-un proces de zgomot alb ce are matricea de corelație:
(2.7.4)
Vectorii de zgomot v1 [n] și v2 [n] sunt statistic independenți:
(2.7.5)
Matricea de covarianță a erorii de estimare corespunzătoare momentului de timp n se folosește pentru descrierea statistică a erorii făcute prin utilizarea estimării :
(2.7.6)
Informația suplimentară adusă de valoarea măsurată la momentul de timp n:
(2.7.7)
Valoarea optimă a factorului de câștig
(2.7.8)
Odată calculată matricea de câștig G[n], se poate reînnoi cu un nou pas predicția. Întrucât pentru determinarea lui G[n] este nevoie de cunoașterea valorii matricii de autocorelație a erorii de predicție a se deduce în continuare o formulă de calcul recursiv pentru matricea folosind ecuații cu diferențe de tip Ricatti:
(2.7.9)
K[n] este definită prin ecuația de recursie:
(2.7.10)
Pentru a pune în mișcare algoritmul filtrului Kalman este obligatorie specificarea condițiilor inițiale. Starea inițială a procesului nu se cunoaște cu precizie, ea se descrie de obicei prin media și matricea sa de autocorelație.
Figura 2.7.1 Schema bloc a filtrului Kalman
Mecanismul de operare a filtrului Kalman poate fi reprezentat sugestiv prin schema bloc din figura 2.3. Filtrul Kalman este de fapt un algoritm de calcul care urmărește minimizarea unei funcții de eroare și nu de interpretarea obișnuită de sistem cu răspuns selectiv în frecvență.
Capitolul 3. Realizarea practică a proiectului
3.1 Implementare mecanică
Bicopterul prezentat în această lucrare are drept model elicopterul Boeing CH-47 Chinook, nu este o replică în miniatură a unui astfel de elicopter, s-a urmărit conceptul de dispunere a-l motoarelor. Scheletul bicopterului a fost proiectat în AutoCAD într-o manieră simplistă și simetrică cu multe decupaje (pentru o greutate redusă) și găuri potrivite pentru sistemele de prindere al pieselor. Acesta este prevăzut cu două brațe de 13 cm lungime și 3 cm lățime la capătul cărora se vor putea atașa cu ușurință motoarele brushless. Un corp central cu o dimensiune de 90 cm x 90 cm face legătura între cele două brațe, rolul acestuia fiind susținerea circuitelor, a bateriei și a echipamentelor adiționale.
După finalizarea etapei de proiectare scheletul a fost decupat cu ajutorul unui CNC la o firmă locală în tablă de aluminiu de 1.2 mm grosime (un material ușor și rezistent). În figura de mai jos (figura 3.1.1 ) este prezentat scheletul bicopterului și dimensiunile acestuia.
Figura 3.1.1 Scheletul bicopterului
În timpul zborului, pentru a putea fi dirijat, bicopterul are motorul din spate fixat pe un mecanism de pivotare antrenat de un servomotor în timp ce motorul din față este fix, spre deosebire de CH-47 unde motoarele sunt fixe și antrenează palele prin intermediul rotoarelor prevăzute cu sisteme de control al înclinației acestora (sistem controlat de trei servomecanisme). Acest lucru prezintă un dezavantaj în controlul platformei, motorul de pe spate va fi pivotat cu totul într-o parte sau alta, bicopterul putându-se roti doar în jurul axei primului motor și nu în jurul centrului de greutate. În figura 3.1.2 găsim o privire de ansamplu a bicopterului unde se pot vedea și modul în care au fost distribuite celelalte componente .
Figura 3.1.2 Privire de ansamblu bicopter
Rezultatul final al implementarii mecanice poate fi observat în imaginea de mai jos (figura 3.1.3).
Figura 3.1.3 Scheletul bicopterului
3.1.1 Ecuațiile de mișcare
Sistemul de ecuații care descriu mișcarea bicopterului într-un sistem inerțial este descris mai jos. În figura 3.1.1.1 se poate observa sistemul de coordonate utilizat în descrierea ecuațiilor.
(3.1.1.1)
(3.1.1.2)
(3.1.1.3)
Figura 3.1.1.1 Sistemul de coordonate folosit pentru a exprima mișcarea bicopterului
Pot fi adăugate ecuațiile traiectoriei, pentru a descrie complet mișcarea în raport cu sistemul de axe al Pământului:
(3.1.1.4)
La aceste sisteme de ecuații, se adaugă ecuațiile diferențiale pentru fluxul dinamic al rotoarelor. Acestea descriu fluxul dinamic ca un flux cvasi-constant, prin intermediul unor constante de timp:
(3.1.1.5)
unde CT,Elem si CT,Glau sunt coeficienții de tracțiune ai rotoarelor exprimați în teoria elementelor, respectiv teoria Glauert.
(3.1.1.6)
(3.1.1.7)
Totalul forțelor și momentelor care acționează asupra centrului de greutate al bicopterului constă în suma rotoarelor (Rf – față, Rr – spate), cuplul rotorului (Q) și aerodinamica (B). Un corp cu punctul de suspensie (S) este considerat ca fiind adăugat atunci când sarcina este atașată sub bicopter.
(3.1.1.8)
(3.1.1.9)
unde:
Tf, Tr – componentele de tracțiune verticală;
Hxf, Hxr – forțele de tracțiune;
Hyf, Hyr – forțele laterale;
MQf, MQr – cuplul la axul rotorului.
3.2 Implementare hardware
Circuitele au fost proiectate în mod special pentru acest bicopter. S-a utilizat cu precădere tehnologia Surface – Mounted Device (datorită dimensiunilor și volumelor mici ale componentelor) dar și tehnologia Trough-Hole (pentru pini și terminale).
În realizarea cablajelor s-a optat ca circuitele să fie trasate pe două layere (double side) datorită componentelor numeroase și preferându-se o greutate redusă și un spațiu ocupat cât mai mic. Imprimarea acestora, într-un mod profesionist, a fost făcută la o firmă locală . În continuare vor fi analizate fiecare din aceste circuite.
În figura 3.2.1 este prezentat modul de comunicare al informațiilor între toate modulele plăcii de control și celelalte dispozitive periferice de pe platformă.
Figura 3.2.1 Schema bloc a bicopterului
3.2.1 Placa de control
Se poate observa faptul că microcontrolerul PIC16F887 este creerul întregii platforme (figura 3.2.1), acesta preia și prelucrează majoritatea informațiilor, urmând să controleze cele două motoare prin intermediul ESC-urilor (invertoare). Cel de-al doilea microcontroler are rol de conversie a informației de altitudine preluate de la senzorul optic, deoarece microcontrolerul principal, deși prevăzut atât cu comunicație SPI cât și cu IIC, nu poate folosi decât una din ele într-un moment dat, pentru a folosi ambele comunicații este necesară o multiplexare software, ceea ce ar încetini achiziția semnalelor.
Figura 3.2.1.1
Placa de bază a bicopterului este prevăzută cu circuit de protecție la inversărea polarității. Necesitatea unei căderi de tensiune mici (implicit o putere disipată pe componente redusă), pe lângă protecția la inversarea polarității, au dus la realizarea circuitului cu ajutorul a două tranzistoare MOSFET cu canal P, IRF7425. Acest tip de tranzistor este caracterizat de o rezistență drenă sursă mică (8.5 mohmi), tensiune drenă sursă de 20 volți , și curent de drenă -15 amperi.
În figura 3.2.1.2 se poate observa faptul că tranzistorul este conectat cu dioda body având catodul înspre sarcină. Între grila și sursa tranzistorului a fost conectată o diodă zener de 15 volți cu rol de protecție deoarece joncțiunea grilă – sursă a tranzistorului MOSFET este foarte sensibilă la tensiuni înalte. Grila este conectată la masă printr-o rezistență, pentru a intra în conducție tranzistorul are nevoie de o tensiune grilă sursă negativă, mai mică decât minus trei volți. În cazul în care tensiunea de la bornele circuitului este inversată dioda body este polarizată invers iar potențialul grilei va fi mai pozitiv decât potențialul sursei, deci tranzistorul va fi blocat.
Figura 3.2.1.2 Diagrama pinilor
Cele două tranzistoare sunt conectate în paralel pentru a obține o cădere de tensiune cât mai mică și a avea o capabilitate de curent mare. Circuitul este potrivit pentru aplicații ce funcționează la tensiuni mici și au curenți de sarcină mari.
Cu scopul de a ține evidența curentului total absorbit de circuitele electronice și de motarele platformei am realizat un senzor de curent cu sesizare rezistivă. Senzorul este montat între bornele pozitive ale acumulatorilor și intrarea pozitivă a plăcii de alimentare.
Figura 3.2.1.2 Senzor de curent
Senzorul este format dintr-o rezistență și un circuit de măsurare și amplificare a căderii de tensiune pe rezistență. Rezistența de măsurare dintre terminalele S1 și S2 are 0.01 Ω și 5W putere.
Circuitul de măsurare și amplificare este defapt un amplificator operațional conectat în modul diferențial. Amplificatorul operațional utilizat este LM2904N, de putere mică. Acesta va măsura diferența de potențial dintre capetele rezistenței și va furniza la ieșire o tensiune față de masă. Rezistențele RA1 ,RA2 ,RB1 ,RB2, au fost alese astfel încât amplificarea la ieșirea amplificatorului să fie de 33.
(3.2.1.1)
Tensiunea furnizată la ieșirea amplificatorului este, direct proporțională cu valoarea curentului prin rezistența de măsurare (șunt).
(3.2.1.2)
La ieșirea amplificatorului, deoarece curentul absorbit poate varia foarte brusc în unitatea de timp, a fost conectat un filtru trece jos (rezistența R1 și condensatorul C1) a cărui frecvență de tăiere este setată la 723 Hz.
Dioda DZ este o diodă Zenner de 5.3 V stabilizatoare. Pinul ADC fiind conectat direct la portul analogic al microcontrolerului, dioda va reprezenta un mod de protecție împotriva unei eventuale tensiuni mai mari de 5V la ieșirea amplificatorului.
Rezistențele R4 ,R5 formează un divizor rezistiv calculat astfel încât tensiunea maximă VS1 să fie 5V pentru tensiunea acumulatorilor complet încărcați VS1= 12.55 V. Această tensiune va fi citită pe un pin analogic al microcontrolerului și apoi interpretată. Formula care caracterizează divizorul rezistiv este:
(3.2.1.3)
Circuitele de pe placa de comandă necesită alimentare stabilizată la 5 V, pe când invertoarele trebuie alimentate la 12V, astfel placa a fost prevăzută cu două borne pentru tensiunea de ieșire de 12V (necesară alimentării invertoarelor) și un modul pentru stabilizarea tensiunii. Stabilizarea tensiunii se realizează cu ajutorul circuitul integrat stabilizator UA7805 SMD, acesta putând furniza un curent maxim de ieșire de 0.8 A.
Fiecare microcontroler este prevăzută cu un quartz de 10MHz, conectat între pini RA6 și RA7, pentru a funcționa la o frecvență precisă care nu va fi afectată de temperatură sau de tensiunea de alimentare. Pinii Vpp-Vcc-Vss-Pgd-Pgc au fost conectați pe placă pentru o programare mai comodă a microcontrolerelor. Cu ajutorul programatorului Pickit 2 (clonă), programul specific aplicației va putea fi încărcat în microcontrolere prin intermediul acestor pini.
Toți pinii au fost amplasați strategic astfel încât conexiunile cu senzorii, cu radio telemetria și cu celelalte periferice să fie făcute într-un mod cât mai avantajos și cât mai ușor posibil.
3.2.2 Circuit de încărcare LiPo
Figura 3.2.2.1 Oscilator
Figura 3.2.2.2 Încărcător LiPo
3.4 Implementare software
Capitolul 4. Rezumat.Concluzii
4.1 Rezumat
4.2 Concluzii
Capitolul 5. Anexe
Anexa 1. Cod PIC16F887
Capitolul 6. Bibliografie
[Motor, 2016]
[1] http://www.rasfoiesc.com/inginerie/electronica/MODELUL-DINAMIC-AL-MOTORULUI-D52.php, (24 mai 2016);
[2] Controlul unui motor BLDC –Modoranu Alexandru, http://81.180.214.82/aE/Stud2011/SCI_spatiu_de_lucru.html, (24 mai 2016);
[3] Brushless DC (BLDC) Motor Fundamentals – Microchip Application Note, (24 mai 2016);
[4] http://en.wikipedia.org/wiki/Brushless_DC_electric_motor, (24 mai 2016);
[5] Mașini sincrone speciale (cu magneți permanenți), curs MS, Universitatea tehnică din Cluj, http://users.utcluj.ro/~birok/MS/4-Masini_cu_MP.pdf , (26 mai 2016);
[6] Vas P.–Sensorless Vector and Direct Torque Control ( Vector and direct torque control of synchronous machines, p.87), (26 mai 2016);
[7] Jacek F. Gieras and Mitchell Wing –Permanent magnet motor technology ,United Technologies Research Center (p.227), (27 mai 2016);
[8] Dr. Ing. Mihai Albu –Invertorul PWM trifazat de tensiune, laborator electronică de putere Facultatea IEEI, (30 mai 2016);
[9] Florin Ionesc, Dan Floricău, Smaranda Nitu, Jean-Paul Six, Philippe Delarue, Cristian Bogu –Electronică de putere (p.322), (30 mai 2016);
[10] http://en.wikipedia.org/wiki/Pulse-width_modulation, (30 mai 2016);
[11] http://ro.wikipedia.org/wiki/Tranzistor_unipolar, (31 mai 2016);
[Microcontrolere, 2016]
[1] http://ro.wikipedia.org/wiki/Microcontroler, ( 1 iunie 2016);
[2] Datasheet PIC16F886/887, (1 iunie 2016);
[3] Nebojsa Matic –PIC microcontrollers for beginners,too!, (2 iunie 2016);
[4] http://www.scritub.com/stiinta/informatica/Notiunea-de-microcontroller-De95575.php, (2 iunie 2016);
[5] http://www.mcu-labs.com/2012/11/intreruperi-programe-cu-intreruperi.html, (2 iunie 2016);
[6] Vasile Surducan, Wouter van Ooijen –Microcontrolere pentru toți, (2 iunie 2016);
[Senzori, 2016]
[1]
[2]
[3]
[4]
[5]
[Comunicare, 2016]
[1] http://invataelectronica.blogspot.ro/2011/08/usart.html, (22 iunie 2016 );
[2]
[3]
[4]
[Interfață, 2016]
[1] Conferențiar Dr.Ing. Dan Marius Dobrea –Laborator EPIOC, (22 iunie 2016 );
[Filtru Kalman, 2016]
[1] Teza de doctorat ing. Gál János – Contributii privind utilizarea filtrelor Kalman in telecomunicatii, (04 iunie 2016 );
[Strategii de control, 2016]
[1]
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Implementarea Mecanica a Unui Bicopter (ID: 116311)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
