Specializarea Inginerie Electronică și Sisteme Inteligente [309931]

[anonimizat], Comunicații și Calculatoare

Specializarea Inginerie Electronică și Sisteme Inteligente

Sisteme de control pentru îmbunătățirea siguranței in autovehicule

(menținerea distantei de siguranță la frânare prin telemetrie laser)

Cuprins

CAPITOLUL 1 3

1. Tema Proiectului. Detalii de proiectare 3

2. Introducere – [anonimizat] 4

CAPITOLUL 2 7

2. Fundamente teoretice 7

2.1. [anonimizat] 7

2.2. Senzori si sisteme electronice utilizate in sistemele de frânare 8

2.2.1. Sistemul ABS 8

2.2.2. Sistemul ESP 12

2.3. Unitatea de procesare 16

2.3.1. Specificațiile unității centrale 16

2.3.2. Descrierea pinilor unității centrale 17

CAPITOLUL 3 18

3. Structura sistemului 18

3.1. Principiul de funcționare 18

3.2. Proiectarea microsistemului cu microcontroler 18

3.2.1. Schema bloc a sistemului 18

3.2.2. Conectarea telemetrului laser la microsistem 18

3.2.3. Proiectarea blocului de calcul al distantei de frânare 18

3.2.4. Proiectarea blocului fuzzy pentru menținerea distantei de siguranță la frânare 18

3.2.5. Logica de reset a sistemului 18

CAPITOLUL 4 18

4. Simularea funcționării microsistemului utilizând mediul Matlab Simulink 18

4.1. Simularea functionarii modulului fuzzy pentru mentinerea distantei de siguranta la franare 18

CAPITOLUL 5 18

5. Concluzii și dezvoltări viitoare 18

Bibliografie 18

CAPITOLUL 1

Tema Proiectului. Detalii de proiectare

Tema lucrării de disertație

Sisteme de control pentru îmbunătățirea siguranței in autovehicule (menținerea distantei de siguranță la frânare prin telemetrie laser).

Detalii de proiectare

Obiectivele urmărite constau in proiectarea unui sistem pentru îmbunătățirea sistemelor de menținere a distantei de siguranță la frânare. [anonimizat] o aplicație software cu ajutorul căreia se va gestiona avertizarea conducătorului auto in cazul unei distante prea mici fata de autovehiculul din fata sa. [anonimizat], sistemelor de citire și sistemelor de comandă.

Introducere – [anonimizat] (Aide au Freinage d’Urgence) în țările francofone sau EBA (Emergency Brake Assist) / BAS (Braking Assistance System) [anonimizat], acest sistem este de o importanță capitala în cazul unor frânări de urgență atâta timp cât șoferul nu are puterea necesară să apese cu o presiune suficient de mare pedala de frână.

Sistemele de asistare la frânare reduc pericolul de accidentare a pietonilor și sprijină evitarea coliziunilor din spate. Sistemul de asistare la frânare oferă sprijin în cazul frânării de urgență: [anonimizat] o situație de urgență. [anonimizat]. [anonimizat]-se astfel coliziunile.

[anonimizat] o frânare extrem de rapidă, o [anonimizat], însă, nu este suficient de puternică pentru a efectua o manevră de urgență. [anonimizat], însă au viteza de reacție la fel de bună cu a acestora.

În acest moment, creierul electronic dictează o suplimentare temporară a presiunii în circuitul de frânare, astfel încât să compenseze lipsa de putere a apăsării. Sistemul a fost dezvoltat de Daimler-Benz si Lucas/TRW în 1992.

Studiile Bosch efectuate prin intermediul bazei de date pentru accidente GIDAS (German In-Depth Accident Study) indică faptul că, în cazul accidentelor din Germania soldate cu victime umane, aproape 1/3 dintre șoferi nu au frânat înainte de coliziune, iar 50% nu au folosit capacitatea maximă de frânare a autovehiculului. Astfel, pentru a preîntâmpina situații asemănătoare, sistemul de frânare de urgență cu funcție de anticipare dezvoltat de Bosch, asistă șoferul în 3 etape. Prin intermediul funcției de avertizare la coliziune, sistemul recunoaște un potențial obstacol și avertizează șoferul – mai întâi acustic sau vizual, apoi printr-o scurtă acționare a frânelor. Dacă șoferul reacționează și frânează, presiunea de frânare este adaptată prin intermediul sistemului de asistare la frânare în caz de urgență cu funcție de anticipare, astfel încât șoferul să nu intre în coliziune cu respectivul obstacol. În cazul în care șoferul nu reacționează deloc și daca impactul nu mai poate fi evitat, sistemul frânează cu forța maximă, cu puțin timp înainte de coliziune. O analiză derulată de Bosch în baza de date GIDAS indică faptul că, prin intermediul unui sistem de frânare de urgență cu funcție de anticipare, ar putea fi evitate aproximativ 3 din 4 coliziuni din spate, soldate cu victime umane.

În prezent, obiectivul industriei de autovehicule este dezvoltarea unor sisteme cu funcție de anticipare care, prin intermediul unor senzori radar și video, să analizeze traficul existent în fața autovehiculului. „Sistemele de frânare de urgență lansate ulterior vor interpreta situația din trafic și vor oferi șoferului un sprijin inteligent în procesul de frânare”, afirma dr. Werner Struth, directorul departamentului Sisteme de Control al Șasiului din cadrul Bosch. „Astfel de sisteme vor fi tot mai des integrate în următorii ani în cadrul autovehiculelor. Din 2010, acest sistem fabricat de Bosch va intra în producția de serie pentru autovehiculele Audi”.

Frânarea asistată – Principiu de funcționare

Comparat cu senzorii electronici moderni, omul are timpi de reacție destul de lenți. Scopul frânării asistate și a tehnologiilor asociate este acela de a ajuta la oprirea autoturismelor mai devreme și mai rapid. Acele secunde critice – în general fracțiuni de secundă – pot însemna, practic, diferența dintre un accident sau de o oprire “la limită”.

Deci, este frânarea asistată o caracteristică demnă de luat în seamă pentru sistemele de siguranță sau este doar o caracteristică de marketing, proiectata pentru a creste prețul autovehiculelor? Numeroase studii arată că frânarea asistată este o caracteristică foarte utilă, având potențialul de a preveni sute de accidente auto fatale, anual.

Frânarea asistată face referire strict la siguranță. Studiile arată că majoritate oamenilor acționează frânele ineficient în situații de urgență. Conform Mercedes-Benz, 99% dintre șoferi fie nu au aplicat presiunea completă de frânare, fie au aplicat presiunea de frânare prea târziu într-o situație de oprire de urgență. Când Mercedes a introdus această tehnologie pe piață, la finalul anilor ’90, compania spunea că frânarea asistată ajuta la scurtarea distanței de frânare cu 45%. Chiar și șoferii experimentați au beneficiat de distanțe de frânare mai scurte ce erau cu 10% mai scurte. Practic, distanța de oprire mai scurtă înseamnă mai puține accidente.

Cât despre acțiunile de frânare puternică, apărute în momente nedorite, inginerii au avut grijă ca aceste situații sa nu apară. Frânarea asistată reprezintă ceea ce inginerii din domeniul automotive numesc sistem adaptiv pe conducător. Cu alte cuvinte, partea electronică ce controlează frânarea asistată măsoară și monitorizează șabloanele de condus în regim normal ale conducătorului, incluzând și aplicarea frânelor. Sistemul poate face diferența dintre micșorarea vitezei pentru un semafor și o oprire panicată în momentul în care un copil aleargă în stradă.

Constructorii de mașini au fost cunoscuți dintotdeauna ca și rezervați în ceea ce ține de noi caracteristici de siguranță, datorită costurilor adiționale pe care acestea le aduceau. Totuși, Mercedes-Benz, împreună cu furnizorii de componente auto, TRW / LucasVarity au inventat sistemul de frânare asistată si au început sa o instaleze pe mașinile lor. Tehnologia a apărut pentru prima dată pe piața de consum în anul 1996, odată cu lansarea modelelor Mercedes-Benz S-Class și SL-Class. În 1998, compania a făcut acest sistem o dotare standard pentru toată gama lor de autovehicule. De atunci, mai multe companii au început să ofere propria lor versiune de frânare asistată, aici fiind incluse Acura, Audi, BMW, Infiniti, Land Rover, Rolls Royce și Volvo.

Sistem de frânare anti-blocare (ABS) vs Frânare asistată

Sistemul ABS ( engleză: anti – lock braking system sau germană: Antiblockiersystem ) este un sistem pentru vehicule motorizate ce previne blocarea roților în timpul frânării. Acesta prezintă două avantaje: permite șoferului să păstreze controlul direcției în timpul frânării și scurtează distanța de frânare. Această caracteristică este foarte utilă în situații de trafic intens.

Frânarea asistată este concepută să completeze sistemul anti-derapare al ABS. ABS-ul acționează rapid frânele în timpul unei opriri bruște pentru a preveni deraparea sau alunecarea autovehiculului. Fără acest sistem frânele se pot bloca și autovehiculul ar scăpa de sub control. Frânarea asistată are rolul de a face sistemul ABS să oprească mașina mult mai eficient.

Pentru exemplificarea modului de funcționare a sistemului de frânare asistată, considerăm un caz de conducere nocturnă, cu vizibilitate redusă. Presupunem apariția unui obstacol ce necesită acționarea bruscă a sistemului de frânare.

Principiul pe care se bazează frânarea asistată ar fi următorul: în momentul în care pedala de frână este apăsată, un senzor va ști imediat, în funcție de viteza și presiunea cu care a fost apăsată pedala, că este o frânare de urgență. Într-o fracțiune de secundă, sistemul de frânare asistată semnalează către frâne că este necesară clipsarea la presiune maximă a plăcuțelor de frână. Pedala pulsează pe măsură ce sistemul AB este activat, conlucrând cu frâna asistată. Vehiculul rămâne sub control în timp ce decelerează și se oprește la o distanță sigură față de obstacol.

Există mai multe tipuri de frânare asistată. Volvo oferă sistemul City Safety, care frânează automat în traficul urban de tip stop-and-go. Mercedes-Benz a venit cu o caracteristică suplimentară, cunoscută ca Distronic Plus. Toyota a dezvoltat un sistem ce combină sistemul de frânare asistată a unui autovehicul cu date de la sistemul de navigație pentru ca frânarea asistată să se activeze în situații de opriri bruște la semnalele de trafic.

Active Brake Assist este o tehnologie dezvoltată mai recent, care umple frânele cu presiune hidraulică, ceva milisecunde înainte de o coliziune iminentă. Acest lucru ajută la eliberarea unei puteri mai mari de oprire către frâne, chiar mai rapid. Bosch, furnizorul german de piese, numește versiunea sa de sistem Predictive Brake Assist. Acesta este proiectat să comunice cu senzorul radar al sistemului Adaptive Cruise Control pentru a recunoaște situații care s-ar putea transforma într-un accident.

Dincolo de un anumit prag de declanșare, sistemul aplică o presiune de frânare ușoară, pe care conducătorul nici nu o va observa, în timp ce pregătește vehiculul pentru o oprire bruscă. Dincolo de un alt prag al proximității, sistemul activează sistemul complet de frânare asistată.

CAPITOLUL 2

Fundamente teoretice

Senzori pentru măsurarea distantei – telemetrul Laser

Telemetrul laser este un instrument de măsură ce folosește o undă laser pentru a determina distanta pană la un obiect. Cea mai comună formă de telemetru laser operează pe baza principiului duratei de zbor, prin trimiterea unui impuls laser într-un fascicul îngust către un obiect, măsurând timpul necesar impulsului pentru a fi reflectat de pe țintă și returnat expeditorului.

Precizia telemetrului laser este determinată de timpul de ridicare sau cădere a impulsului laser, precum și de viteza receptorului. Telemetrele ce utilizează impulsuri laser foarte precise și au detector foarte rapid pot măsura un obiect aflat și al distanțe de câțiva milimetri.

Deși fasciculul emis este îngust, acesta se va răspândi în cele din urmă pe distanțe lungi, ca urmare a divergenței fasciculului laser, precum și efectelor de scintilație și deviere ale fasciculului, cauzate de prezența unor bule de aer ce acționează ca lentile, variind de la dimensiuni microscopice până la dimensiuni de aproape jumătate din cea a traseului fasciculului laser deasupra pământului.

Aceste distorsiuni atmosferice, combinate cu divergența laserului și curenții transversali de aer ce deservesc la împingerea în lateral a bulelor de căldură, pot cauza dificultăți la citirea corectă a distanței unui obiect ( ex. aflat în spatele unor arbuști, sub un copac ).

Tehnologii

Durata de zbor -> aceasta măsoară timpul necesar unui fascicul de lumină să zboare până la țintă și înapoi. Având deja cunoscută viteza luminii, precum și o măsurare precisă a timpului necesar, putem calcula distanța. Mai multe impulsuri sunt lansate secvențial, iar răspunsul mediu este cel mai des utilizat. Această tehnică necesită circuite foarte precise cu temporizări sub pragul de nanosecundă.

Defazajul frecvențelor multiple -> aceasta măsoară defazajul mai multor frecvențe în timpul reflexiei și apoi rezolvă o serie de ecuații simultane pentru a oferi o măsură finală.

Interferometria -> cea mai precisă, precum și cea mai utilă pentru a măsura schimbările de distanță mai degrabă decât distanțele absolute.

Pentru proiect a fost ales telemetrul laser OSLRF-01. Modelul OSLRF-01 permite configurarea ratei de actualizare și a rezoluției, putând efectua citiri pe distanțe de până la 9m.

Acest telemetru laser funcționează pe principiul „duratei de zbor”, optim pentru a efectua măsurători rapide și precise. Acesta include senzorul laser, detectorul, elementele optice, precum și circuite SETS (sequential-equivalent-time-sampling).

Telemetrul OSLRF-01 este alcătuit din senzorul laser, o fotodiodă, elementele optice, amplificatoare și circuite SETS. Aceste componente lucrează împreună pentru a creea semnale ce sunt ușor de analizat, fiind amplificate și încetinite până la o viteză ce permite manipularea ușoară. Semnalele de ieșire de la OSLRF-01 includ pulsul laser trimis, semnalul returnat și multiple referințe despre temporizări.

Ca și principiu de funcționare, OSLRF-01 măsoară timpul necesar unui fascicul scurt de lumină laser să călătorească până la un obiect și înapoi. Acuratețea măsurătorii nu este afectată de culoarea suprafeței obiectului sau de unghiul de incidență al razei laser cu suprafața. Acest telemetru este imun la lumina de fundal, vânt, zgomot și alte interferențe ale ambientului.

Senzori si sisteme electronice utilizate in sistemele de frânare

Sistemul ABS

Sistemul de frânare anti-blocare ( ABS ) sau sistemul de frânare anti-derapare este un sistem de siguranță al automobilului ce permite roților unui autovehicul motorizat să mențină un contact in tracțiune cu suprafața drumului, in funcție de comenzile conducătorului, în timp ce frânează, prevenind blocarea roților (oprirea rotației), evitând derapajul necontrolat. Acesta este un sistem automat ce folosește principiile pragului de frânare și cadența de frânare ce erau practicate de șoferii avansați cu generațiile anterioare ale sistemelor de frânare. Acest sistem realizează operațiile precizate anterior cu o rată mai rapidă și un control mult mai bun decât mulți șoferi le-ar putea realiza.

În mod general, ABS oferă un control îmbunătățit și micșorează distantele de frânare pe suprafețele uscate si alunecoase; totuși, pe suprafețele pavate cu pietriș sau acoperite cu zăpadă, sistemul ABS poate mări distanța de frânare, cu toate acestea îmbunătățind totuși controlul direcției vehiculului.

Încă de la utilizarea inițială pe scară largă în mașini de producție, sistemele de frânare anti-blocare au fost îmbunătățite considerabil. Versiunile recente nu doar previn blocarea roților în timpul frânării, ci și controlează electronic balansul față-spate al frânelor. Această caracteristică, în funcție de capabilitățile și implementările sale specifice, este cunoscută ca electronic brakeforce Distribution (EBD), tracționa control sistem, emergency brame asist sau electronic stabilit control (ESC).

Sistemul ABS include o unitate centrală electronică de control (ECU), patru senzori ce măsoară viteza roților și cel puțin două valve hidraulice în interiorul sistemului hidraulic al frânei. Unitatea ECU măsoară în mod constant viteza cu care se rotește fiecare roată; dacă acesta detectează o roată ce se învârte mult mai încet decât celelalte, o condiție ce indică o blocare iminentă a roții, acesta acționează valvele pentru a reduce presiunea hidraulică pentru frâna de pe roata afectată, prin urmare reducând forța de frânare pe acea roată; astfel, roata se va învârti mai rapid. În sens invers, dacă ECU detectează o roată ce se învârte mult mai repede decât celelalte, presiunea hidraulică de frânare este mărită, deci forța de frânare este reaplicată, încetinind roata.

Acest proces este repetat continuu și poate fi detectat de șofer prin intermediul pulsațiilor din pedală. Unele sisteme anti-blocare pot aplica sau diminua presiunea de frânare de 15 ori pe secundă. Din acest motiv, rotile mașinilor echipate cu sistem ABS sunt practic imposibil de blocat, chiar si în timpul frânării panicate în condiții extreme.

ECU este programat să desconsidere diferențele de viteză de rotație a roților ce sunt sub un nivel critic, deoarece în momentul în care mașina se întoarce, cele două roți dinspre centrul curbei se învârt mai încet decât cele două din exterior. Din același motiv, diferențialul este folosit, practic, la toate vehiculele.

În cazul în care apare o problemă în orice parte a sistemului ABS, o lumină de avertizare se va aprinde pe panoul de bord, iar ABS va fi dezactivat până la remedierea problemei.

Sistemele ABS moderne aplică presiune individuală de frânare pentru toate cele 4 roți prin intermediul unor senzori și a unui micro-controller dedicat. ABS vine ca dotare standard pe majoritatea automobilelor produse și reprezintă fundația sistemelor electronice de stabilitate.

Sistemele electronice de stabilitate moderne reprezintă o evoluție a conceptului ABS. La acestea, un minim de 2 senzori suplimentari au fost adăugați pentru a ajuta sistemul să funcționeze; aceștia sunt: un senzor ce măsoară unghiul volanului și un senzor giroscopic.

Principiul de funcționare este simplu: atunci când senzorul giroscopic detectează că direcția în care se deplasează mașina nu coincide cu ceea ce senzorul de pe volan a raportat, software-ul ESC va înfrâna roata individuală (sau roțile, până la maxim 3, folosind un sistem foarte complex), astfel încât autovehiculul să se îndrepte în direcția dorită de șofer. Senzorul de pe volan ajută și în operația de control la frânare în viraje ( CBC – Cornering Brake Control ), deoarece acesta îi comunică sistemului ABS faptul că roțile din interiorul curbei trebuie să fie înfrânate mai mult decât cele de pe exteriorul virajului și cu cât.

Componentele sistemului ABS

Sistemul ABS este compus din 4 componente principale: senzorii pentru măsurarea vitezei roților, valvele, o pompă și un controller.

1. Senzorul de viteză

Acest senzor monitorizează viteza fiecărei roți și determină necesitatea accelerării sau decelerării roților. Acesta constă dintr-un excitator ( un inel cu dinți in formă de V ) și un ansamblu bobină / magnet, care generează impulsuri electrice în momentul în care dintele excitatorului trece prin fața acestuia.

2. Valvele

Valvele au rolul de a regla presiunea aerului din frâne în timpul acțiunii sistemului ABS. În fiecare linie de frânare există o valvă ce este controlată de sistemul ABS. Pe prima poziție, valva frânei este deschisă și permite presiunii din cilindrul principal să fie transferată către frâne. Pe cea de-a doua poziție valva frânei rămâne închisă , iar presiunea din cilindrul principal către frâne este constrânsă. Pe cea de-a treia poziție valva eliberează o parte din presiune către frâne. Cel de-al treilea pas este repetat până când mașina ajunge într-o poziție de staționare. Rezistența resimțită în momentul în care se frânează la viteze mari este de fapt cauzată de valvele frânelor ce controlează presiunea ce este transferată din cilindrul principal în frâne.

3. Unitatea Electronică de Control ( ECU – Electronic Control Unit )

ECU este o unitate de control ce primește, amplifică și filtrează semnalele de la senzori pentru a calcula viteza de rotație și accelerația roților . ECU primește un semnal de la senzorii din circuit și controlează presiunea frânelor, în conformitate cu datele analizate de unitate.

4. Unitatea de Control Hidraulic (HCU – Hidraulic Control Unit)

Unitatea de control hidraulic primește semnale de la ECU pentru a aplica sau elibera frânele sub condițiile de anti-blocare. Unitatea de control hidraulic controlează frânele prin creșterea presiunii hidraulice sau evitând forța pedalei pentru a reduce puterea de frânare.

Cum funcționează ABS ?

În timpul frânării, dacă o situație de blocare a roților este detectată sau anticipată, ECU va alerta HCU prin trimiterea unui curent, comandându-i astfel să elibereze presiunea din frâne, ce va permite creșterea vitezei roților și va micșora alunecarea acestora. Atunci când viteza roților crește, ECU reaplică presiunea în frâne și restricționează alunecarea roților la un anumit grad ( În momentul în care acțiunea de frânare este inițiată va avea loc un derapaj între roată și suprafața de drum în contact, ceea ce va face ca viteza vehiculului să fie diferită de cea a roților ). Unitatea de control hidraulic va controla presiunea din frâne pentru fiecare roată pe baza informațiilor primite de la senzorii sistemului. Acest proces este repetat la fiecare operație de frânare.

ABS este clasificat în funcție de numărul de senzori și tipul de frâne folosit. Frânele, la rândul lor, pot fi diferențiate de numărul de canale ( câte valve sunt controlate și numărul de senzori ).

ABS tip 4-canale, 4-senzori

Aceasta este cea mai bună combinație pentru un sistem ABS eficient. Acest sistem are câte un senzor și câte o valvă separată pe fiecare dintre cele 4 roți.

ABS tip 3-canale, 3-senzori

Această combinație, care este cel mai des întâlnită la autofurgonete, având un senzor de viteză și o valvă pentru fiecare dintre roțile frontale și un senzor pentru roțile din spate. Senzorul de viteză pentru roțile din spate este plasat în axul spate.

Similar, există și sistemele ABS 2-canale și 1-canal, varianta cu 1 singur canal fiind cel mai puțin eficient.

Sistemul ESP

Siguranța automobilului devine un criteriu din ce în ce mai important în procesul de achiziție al unui automobile. Aceasta se poate clasifica în două categorii: activă și pasivă.

Siguranța activă ajută la prevenirea accidentelor (ABS, ESP, direcție activă, etc.).

Siguranța pasivă minimizează efectele unui accident (centuri de siguranță, airbag-uri, caroserie, etc.).

Sistemul ESP asigură stabilitatea automobilului și menținerea direcției dorite de rulare, în situațiile critice (pierderea aderenței), precum in intervenția rapidă asupra sistemului de frânare și a cuplului generat de propulsor (motor termic, electric, etc.).

Un automobil echipat cu ESP integrează mai multe sisteme de control, fiecare dintre acestea având funcții diferite:

Toate aceste sisteme de control utilizează aceleași componente ale automobilului:sistem de frânare, senzori, …, dar se activează în situații diferite.

Componentele sistemului ESP

Componentele sistemului ESP sunt următoarele:

bloc electro-hidraulic cu modul electronic de control integrat

senzori viteză roți

senzor unghi volan

senzor girație și accelerație transversală

calculator injecție

Dacă privim cele trei axe ale automobilului putem spune că sistemul ESP monitorizează și corectează momentul de girație al automobilului (rotația în jurul axei verticale).

Ruliu – rotația în jurul axei x (longitudinală)

Tangaj – rotația în jurul axei y (transversală)

Girație – rotația în jurul axei z (verticală)

Sistemul ESP este activ încă de la pornirea motorului. Modul de funcționare este relativ simplu și se bazează pe informații venite de la senzori. Pe scurt, sistemul ESP compară direcția dorită de rulare a automobilului cu direcția efectivă a acestuia.

Direcția dorită de rulare a automobilului și intenția conducătorului auto este determinată pe baza informațiilor de la senzorii de: poziție a volanului, viteză a roților, poziție pedală de accelerație și cel de presiune a circuitului hidraulic de frânare. O parte din aceste informații vine direct de la senzori, restul informațiilor fiind primite prin magistrala de comunicație CAN. Astfel, sistemul ESP știe in ce direcție dorește conducătorul auto să ruleze automobilul

Direcția efectivă de rulare a automobilului se calculează pe baza informațiilor venite de la senzorul de accelerație laterală și girație (rotire în jurul axei verticale).

senzor de accelerație laterală și de girație (girometru)

senzor poziție volan

senzor presiune lichid frână

senzor de viteză a roții

modul electronic de control

bloc hidraulic

sistem de frânare a roții

calculator injecție

injector

bujie

clapetă obturatoare

Pe baza informațiilor de la senzori, sistemul ESP identifică situațiile critice în care direcția de deplasare efectivă a automobilului este diferită de direcția dorită de conducătorul auto, impusă prin poziția volanului. Astfel, sistemul ESP intervine simultan asupra sistemului de frânare și a sistemului de management al motorului.

Prin frânarea individuală a roților, combinată cu reducerea cuplului motor, sistemul ESP reușește să aducă automobilul pe direcția de deplasare dorită de conducătorul auto. Intervenția sistemului ESP este foarte rapidă, având loc înainte de conștientizarea situației critice de către conducătorul auto.

Spre deosebire de sistemul ABS, care este activ doar în momentul în care conducătorul auto apasă pedala de frână, sistemul ESP poate frâna roțile individual, indiferent dacă pedala de frână este apăsată sau nu.

Evitarea unui obstacol iminent în timpul rulării poate conduce la apariția efectului de supravirare. Sistemul ESP corectează acest effec t (supravirare) prin frânarea unei roți, combinată cu reducerea cuplului motor (pentru restabilirea aderenței).

În acest caz sistemul ESP frânează roata stângă a punții față și creează un contra-moment de girație( rotire în jurul axei vertical ) care va readuce automobilul pe direcția de rulare dorită.

De asemenea, la deplasarea cu viteză în timpul virajelor, mai ales în cazul în care suprafața de rulare prezintă o aderență scăzută, automobilul poate subvira și părăsi calea de rulare.

Pentru a corecta subvirarea, sistemul ESP frânează roata dreapta spate. Astfel se creează un moment de girație suplimentar care va aduce automobilul pe direcția de virare dorită.

Prin frânarea individuală a roților, sistemul ESP controlează momentul de girație și corectează stabilitatea automobilului. Prin modul de acționare, se poate spune că sistemul ESP acționează ca un sistem de direcție suplimentar. În același timp, acesta reduce cuplul motor pentru a nu perturba procesul de frânare al roților motoare și pentru a îmbunătăți aderența laterală.

Sistemul ESP este activ tot timpul și monitorizează dinamica automobilului. Chiar dacă acesta nu intervine, schimbă informații cu restul modulelor în mod continuu, oferind detalii despre viteza automobilului, accelerația laterală și starea în care se află (cu/fără intervenție, stare nominală, defect, etc.).

Unitatea de procesare

Unitatea de procesare, într-un sistem de calcul, reprezintă componenta hardware a sistemului ce are rolul de a executa instrucțiunile unui program, realizând operații aritmetice și logice, precum și operațiunile de intrare/ieșire ale sistemului.

În proiect, rolul de unitate de procesare este atribuit unei platforme de procesare standard de tip Arduino. Mai precis, platforma de procesare aleasă este modelul Arduino Uno R3.

Specificațiile unității centrale

Arduino Uno este o plăcuță de dezvoltare cu microcontroller, bazată pe microprocesorul Atmega328. Aceasta conține 14 pini I/O (dintre care 6 pot fi utilizate ca ieșiri ale PWM (Pulse Width Modulation)), 6 intrări analogice, un rezonator ceramic de 16 MHz, o conexiune USB, o conexiune pentru alimentare, un header ICSP și un buton de RESET. Cu alte cuvinte, conține tot ce este necesar pentru a suporta microcontrollerul.

Această plăcuță poate fi alimentată fie utilizând o conexiune USB, fie utilizând o sursă externă de current. Sursa de putere este selectată automat.

Alimentarea externă poateproveni fie de la un adaptor AC-DC sau o baterie. Alimentarea externă se poate face prin intermediul unui conector de 2.1mm cu centru pozitiv, respectiv prin intermediul pinilor Gnd și Vin ai conectorului de putere. Pentru o alimentare în siguranță se recomandă o alimentare cu o scară cuprinsă între 7 și 12V

Memoria

Microprocesorul ATmega328 are o memorie de 32 KB ( 0.5 KB sunt utilizați pentru bootloader ). Acesta are de asemenea un SRAM de 2 KB și un EEPROM de 1 KB ( ce poate fi scris și citit prin intermediul librăriei EEPROM ).

Descrierea pinilor unității centrale

Fiecare dintre cei 14 pini de pe Arduino Uno pot fi folosiți ca intrare sau ieșire, folosind funcțiile pinMode(), digitalWrite() și digitalRead(). Acești pini operează la 5 volți. Fiecare pin poate oferi sau primi un maxim de 40 mA și fiecare are câte o rezistență de pull-up (deconectată, în mod prestabilit) de 20-50 kOhmi. Suplimentar, o parte din pini au funcții specializate:

Serial: 0 (RX) și 1 (TX). Folosiți pentru a primi (RX) și a trimite (TX) date TTL seriale. Acești pini sunt conectați la pinii corespunzători ai chip-ului ATmega16U2 USB-to-TTL serial.

Întreruperi externe: 2 și 3. Acești pini pot fi configurați să declanșeze o întrerupere pe o valoare mică, un front crescător sau descrescător sau o schimbare de valoare. Se folosește funcția attachInterrupt().

PWM: 3, 5 ,6, 9, 10 și 11. Pune la dispoziție output PWM pe 8 biți prin folosirea funcției analogWrite().

SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Acești pini suportă comunicația SPI folosind librăria SPI.

LED: 13. Este un Led încorporat pe pinul digital 13. Când pinul este HIGH, LED-ul este aprins; când pinul este LOW, LED-ul este oprit.

Uno are 6 intrări analogice, etichetate A0-A5, fiecare având o rezoluție de 10 biți (ex. 1024 valori diferite). În mod prestabilit pot avea valoare de la GND la 5 volți, totuși, se poate schimba pragul superior al intervalului folosind pinul AREF și funcția analogReference(). Adițional, unii pini au funcționalitate specializată:

TWI: A4 sau pinul SDA și A5 sau pinul SCL.

Alți pini de pe placă:

AREF. Voltajul de referință pentru intrările analogice. Folosit cu analogReference().

RESET. Se aduce această linie în LOW pentru a reseta microcontrollerul. În mod tipic se folosește pentru a adăuga un buton de reset shield-urilor care blochează butonul de reset de pe plăcuță.

CAPITOLUL 3

Structura sistemului

Principiul de funcționare

Scopul final al acestui sistem este de a analiza datele primite de la senzori în scopul menținerii unei distanțe sigure de frânare .

Sistemul se bazează pe un telemetru laser pentru a prelua informații despre distanța dintre cele două autovehicule. Această distanță este procesată de plăcuța Arduino Uno pentru a obține un rezultat utilizabil și în celelalte module ale sistemului.

Pentru ca sistemul să știe în orice moment care este distanța de siguranță la frânare în funcție de viteza de deplasare și distanța propriu-zisă dintre autovehicule, modulul pentru calculul distanței de frânare va primi distanța propriu-zisă și viteza autovehiculului. În urma procesării informațiilor primite, la ieșirea modulului va rezulta în orice moment valoarea distanței sigure pentru frânare.

Valoarea distanței de frânare este trimisă către blocul fuzzy, acolo unde este comparată cu distanța efectivă dintre autovehicule. În funcție de diferența rezultată în urma comparației, controller-ul fuzzy va analiza situația în care se află și va lua o decizie. În principiu, decizia va consta în acționarea frânei pentru a ajusta viteza, respectiv distanța, în cazul în care diferența dintre cele două distanțe conduce la imposibilitatea de a frâna în siguranță.

Proiectarea microsistemului cu microcontroler

Schema bloc a sistemului

Modulul Arduino Laser are rolul de a prelua informațiile de la senzorii sistemului și să convertească datele într-un format ce poate fi utilizat pentru restul modulelor.

Acest bloc are în componența sa telemetrul laser OSLRF-01, precum și unitatea de procesare a sistemului, plăcuța Arduino Uno r3

Arduino Uno este interfața cu toate celelalte componente ale sistemului, având în componența sa microcontroller-ul ATmega328, nucleul de procesare al sistemului.

Modulul pentru calculul distanței de frânare are rolul de a prelua informații despre viteza cu care rulează mașina pentru a putea calcula în timp real distanța de frânare estimată. După calculare, datele referitoare la distanța de frânare sunt transmise către blocul logic fuzzy.

Blocul Fuzzy Logic are rolul de a prelua informații de la senzorii sistemului cu scopul de a evalua situațiile în care se află automobilul, pentru a putea lua deciziile corecte asociate cu fiecare caz. Acest bloc asigură gândirea inteligentă a sistemului, având posibilitatea să ia decizii în cazuri aproximative de decizie.

În plus, blocul Fuzzy va putea decide și dacă sistemul se află într-o situație de urgență. În cazul în care o astfel de situație este detectată, acest bloc va putea activa, după caz, sistemele din pachetul de siguranță: ABS, EBA.

3.2.2. Conectarea telemetrului laser la microsistem

Conectarea telemetrului laser OSRLF-01 la microsistem, mai precis, conectarea acestuia la plăcuța Arduino Uno se poate realiza într-un mod destul de intuitiv.

Astfel, un mod simplu de conectare ar fi :

Telemetrul laser se va alimenta cu o tensiune regulată de 12V, utilizând conectorul „Vin”;

Placa Arduino uno va folosi aceeași sursă de alimentare cu a telemetrului;

Pin-ul „Zero” se va conecta la A1 al Arduino Uno;

Pin-ul „Return” se va conecta la A3 al Arduino Uno;

Pin-ul „Sync” se va conecta la pinul digital „2” al Arduino Uno;

Pentru alimentarea circuitelor se va folosi o sursă de 12V, aceasta fiind suficientă atât pentru alimentarea telemetrului, cât și pentru alimentarea plăcuței Arduino Uno.

În imaginea de mai jos este reprezentat chipul logic al OSLRF-01. Alimentarea circuilului se face prin intermediul pinilor „Vin” și „GND”.

După conectarea telemetrului am analizat comportamentul acestuia. În primul rând ar fi important de menționat că, fără a folosi „Control”, măsurătorile sunt făcute la o frecvență de aproximativ 37 Hz. Frecvența scade tot timpul. Imediat după pornire, aceasta scade considerabil:

După câteva minute, semnalul se stabilizează, însă, o practică bună ar fi verificarea în mod constant a valorii sale exacte.

În al doilea rând, analizăm semnalele menționate în manualul oficial:

Lucrurile funcționează astfel:

– Semnalul “Sync” trece pe frontul descrescător și începe procesul de măsurare.

– Unda laser este lansata și electronicele generează impulsul „Zero”.

– Lumina se întoarce de la țintă și electronicele generează impulsul „Return”.

Totul se repetă în următorul ciclu.

Obiectivul este acela de a măsura timpul dintre „Zero” și „Return”, respectiv transformarea diferenței rezultate într-o valoare a distanței ce are sens și poate fi utilizată.

Testarea telemetrului laser

Conform diagramei de mai jos, am considerat că este suficient timp între momentul lansării impulsului laser (semnalul „Zero”) și semnalul „Return”. Practic, a fost foarte greoaie identificarea frontului crescător al semnalului „Return” după ce am identificat frontul descrescător al semnalului „Zero”. Acest lucru a fost cauzat de faptul că nu a fost folosit pin-ul „Control” al SF02/F pentru a ajusta frecvența lansării impulsurilor laser, fapt pentru care semnalul „Return” se suprapunea cu semnalul „Zero” când ținta se deplasa la o distanță mai mică de 400-500cm. Acestea sunt măsurătorile făcute:

Pentru fiecare distanță au fost făcute două măsurători:

– una cu o țintă de culoare albă (semnalele cu amplitudinea mai mare)

– cea de-a doua cu o țintă de culoare neagră

!Obs.: Valoarea maximă de pe grafic reprezintă dimensiunea maximă a zonei de testare, nu valoarea maximă ce poate fi măsurată de telemetru.

Țintele de culoare diferită au fost alese în scopul identificării unor diferențe în valorile semnalelor, însă, în urma măsurătorilor a rezultat faptul că valorile nu variază foarte mult în funcție de culoarea țintei. Excepție au făcut cazurile în care obiectele erau foarte apropiate de senzor.

După cum am menționat și anterior, diferența dintre timpii semnalelor „Zero” și „Return” ajută la calcularea distanței. Documentația telemetrului menționează formula d = ((Rt – Zt) / Sp) * 18.33, unde d este distanța până la țintă (în metri), Rt este timpul de la frontul descrescător al semnalului „Sync” la semnalul „Zero”, Sp este perioada semnalului „Sync”.

Apare astfel problema „timp de la semnal la semnal”. În principiu, acest lucru nu reprezintă timpul de la frontul unui semnal până la frontul celui de-al doilea semnal. Acest lucru se aplica cel puțin în cazul în care distanța măsurată este mai mică de 1 metru. Analizând Fig.18. , se observă că fronturile pentru 100cm, 50cm și 25cm sunt aproape la fel. De asemenea, este posibilă alegerea unui prag greșit atunci când 50cm și 25cm vor apărea mai departe decât 100cm. Manualul oficial recomandă măsurarea „centrului” semnalelor, sau jumătatea distanțelor dintre fronturile crescătoare și cele descrescătoare. Acest lucru ajută la lucrul cu distanțele mici. Însă, acest lucru nu rezolvă problema alegerii unui prag corect.

Putem alege un prag înalt, „de siguranță” , mai sus decât toate nivelele posibile de zgomot:

Însă, în acest fel vom pierde țintele apropiate și culorile închise (25cm distanță, culoare închisă). O altă modalitate este aceea de a alege pragul cel mai jos posibil.

Ilustrarea pragului jos:

După cum se poate observa din Fig.18. și Fig.19. , măsurarea jumătății dintre fronturi nu returnează un răspuns liniar (deasupra riglei alb/negru). Deci, sunt necesare ajustări înaintea returnării valorii finale.

Mai jos se poate vedea modul în care Arduino „vede” aceste semnale după conversia ADC. Am înregistrat semnalul „Return” într-un vector și am reprezentat următoarele grafice:

După cum se poate observa, dacă alegem cel mai mic prag posibil din graficul țintei de culoare neagră, la distanța de 25cm, valoarea de ~20 unități (sau 100mV), aceasta nu va fi potrivită pentru detecția fronturilor crescătoare/descrescătoare ale țintelor albe la distanța de 200 cm. După o serie de teste am obținut o formulă empirică ce se poate folosi pentru toate distanțele :

Prag_adaptiv_Return = 0.13 * Amplitudine + 10.

Aplicarea acestei formule încetinește puțin răspunsul însă funcționează bine și chiar produce mai puțin zgomot în rezultate.

Pentru a verifica acuratețea citirilor pentru o țintă în mișcare am efectuat următorul test:

M-am îndepărtat de senzor, am oprit la distanta de 300 cm, am înaintat până la distanța de 500 cm, m-am întors, am mers înapoi spre senzor 200 cm, m-am oprit, m-am apropiat încă puțin de senzor și apoi am ieșit din raza de acțiune.

Rezultatul acestui test este acesta:

Proiectarea blocului de calcul al distantei de frânare

Blocul de calcul al distanței de frânare are rolul de a prelua date privind viteza de deplasare a automobilului cu scopul de a calcula distanța necesară automobilului pentru a putea frâna în siguranță în orice moment.

În principiu, în momentul frânării, mașina nu va opri imediat. Distanța de oprire reprezintă distanța pe care mașina o parcurge până se oprește. Aceasta depinde de viteza mașinii și de coeficientul de frecare (µ) dintre roți și suprafața drumului.

Pentru a calcula distanța de frânare se va folosi formula:

Cu alte cuvinte:

Unde:

d = distanța de frânare (m)

v = viteza mașinii (m/s)

µ = coeficient de frecare

g = accelerație gravitațională (9.80 m/s2)

Astfel, sistemul prezentat mai sus urmează următorul algoritm:

se citește viteza autovehiculului; schema de mai sus conține un numărător pe intrarea pentru viteză, având ca scop testarea sistemului;

viteza citită este primită ca valoare în km/h; pentru a putea utiliza această valoare în sistem, se convertește în m/s;

după efectuarea conversiei se calculează distanța de frânare folosind formula prezentată anterior.

De exemplu: Pentru o mașină ce se deplasează cu viteza de 50 km/h, având un coeficient de frecare cu suprafața drumului, µ = 0.60, distanța de oprire va fi următoarea:

Distanța de frânare se va calcula astfel:

În figura de mai jos se poate vedea modul în care variază distanța de frânare pentru un autoturism cu o viteză maximă de 250 km/h, pentru un coeficient de frecare µ = 0.8.

3.2.4. Proiectarea blocului fuzzy pentru menținerea distantei de siguranță la frânare

3.2.5. Logica de reset a sistemului

CAPITOLUL 4

Simularea funcționării microsistemului utilizând mediul Matlab Simulink

Simularea funcționării modulului fuzzy pentru menținerea distantei de siguranță la frânare

CAPITOLUL 5

Concluzii și dezvoltări viitoare

Bibliografie

Anti-lock Braking System – https://en.wikipedia.org/wiki/Anti-lock_braking_system

How Does The Anti-lock Breaking System (ABS) Technology In Cars Work? – https://www.scienceabc.com/innovation/abs-sensors-anti-lock-breaking-system-technology-cars-work.html

SF02/F Laser Rangefinder – https://www.parallax.com/sites/default/files/downloads/28043-SF02-Laser-Rangefinder-Manual-Rev-8.pdf

Arduino Uno R3 – http://www.hobbytronics.co.uk/arduino-uno-r3

Conectare telemetru laser cu arduino + afișare distanța masurată pe panoul lcd

#define ZERO_PIN A1 // Arduino pin tied to Zero pin on the OSLRF.

#define RETURN_PIN A3 // Arduino pin tied to Return pin on the OSLRF.

#define SYNC_PIN 2 // Arduino pin tied to Sync pin on the OSLRF.

//LCD

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int zero_val = 0;

int return_val = 0;

int sync_val_1 = 0;

int sync_val_2 = 0;

int amp = 0;

int zero_thresh = 40;

int return_thresh = 50;

float raw_distance = 0.0;

float distance = 0.0;

unsigned long zero_time;

unsigned long zero_time1;

unsigned long zero_time2;

unsigned long echo_time;

unsigned long echo_time1;

unsigned long echo_time2;

unsigned long sync_time_1;

unsigned long sync_time_2;

unsigned long sync_period;

// Distance average variables

const int numReadings = 20;

int readings[numReadings]; // the readings from the analog input

int index = 0; // the index of the current reading

int total = 0; // the running total

int avgDist = 0; // the average

// Sync period average variables

const int numReadings2 = 40;

unsigned long readings2[numReadings2]; // the readings from the analog input

int index2 = 0; // the index of the current reading

unsigned long total2 = 0; // the running total

unsigned long avgSync = 0; // the average

void setup()

{

pinMode(SYNC_PIN, INPUT);

Serial.begin(57600);

//set up the LCD's number of columns and rows:
 lcd.begin(16, 2);

// Sync averaging itialize routine

for (int thisReading = 0; thisReading < numReadings; thisReading++)

readings[thisReading] = 0;

// Distance averaging itialize routine

for (int thisReading2 = 0; thisReading2 < numReadings2; thisReading2++)

readings2[thisReading2] = 0;

}

void loop() {

getSyncPeriod(); // This "Sync" period update can be done not on every loop cycle,

AverageSyncPeriod(); // as it takes time and looses some (3) distance measurements

// Detect Zero signal rising edge

while ((zero_val = analogRead(ZERO_PIN)) < zero_thresh)

zero_time1 = micros();

// Detect Return signal rising edge based on previous measurement amplitude

while ((return_val = analogRead(RETURN_PIN)) < return_thresh)

echo_time1 = micros();

// Get maximum height of Return pulse…

amp = 0;

while (amp <= return_val ) {

amp = return_val;

return_val = analogRead(RETURN_PIN);

}

// Detect Return signal falling edge

while ((return_val = analogRead(RETURN_PIN)) > return_thresh)

echo_time2 = micros();

// New Return signal threshold for next measurement, based on the new amplitude

return_thresh = 0.13 * (float)amp + 10; // Pure empiric, based on observations.

if (return_thresh < 18) return_thresh = 18; // Make sure that threshold is over the noise

zero_time = zero_time1 + 3500; // Midpoint of Zero. Full Zero signal width – 7000us, when threshold 40

echo_time = echo_time1 + ((float)echo_time2 – (float)echo_time1)/3.0;

raw_distance = (float)(echo_time – zero_time)/(float)avgSync * 1833.0;

if (raw_distance > 1000) {} // Just ignore this reading

else{

if (raw_distance < 220){ // RAW measure corrections if distance less than 100 cm

distance = 0.725 * raw_distance – 56.208;

}

else distance = 1.078 * raw_distance – 134.05; // Empiric correction for 100cm and up

}

AverageDistanceReadings();

Serial.println(avgDist);

// set the cursor to column 0, line
  // (note: line 0 is the first row, since counting begins with 0):
  lcd.setCursor(0, 0);
  // print the average distance reading
  lcd.print(avgDist);

} //loop

void getSyncPeriod(){

// sync_period = 2*pulseIn(SYNC_PIN, LOW); // was too big about 80us, because duty cycle not perfect 50%

// Need to optimize, as it takes full two clocks

unsigned long sync_period1 = pulseIn(SYNC_PIN, LOW);

unsigned long sync_period2 = pulseIn(SYNC_PIN, HIGH);

sync_period = sync_period1 + sync_period2;

}

void AverageSyncPeriod(){

total2 = total2 – readings2[index2]; // subtract the last reading

readings2[index2] = sync_period; // Get last measure

total2 = total2 + readings2[index2]; // add the reading to the total

index2 = index2 + 1; // advance to the next position in the array

if (index2 >= numReadings2) // if we're at the end of the array…

index2 = 0; // …wrap around to the beginning

// avgSync = 1;

avgSync = total2 / numReadings2; // calculate the average

}

void AverageDistanceReadings(){

total = total – readings[index]; // subtract the last reading

readings[index] = distance; // Get last measure

total = total + readings[index]; // add the reading to the total

index = index + 1; // advance to the next position in the array

if (index >= numReadings) // if we're at the end of the array…

index = 0; // …wrap around to the beginning

avgDist = total / numReadings; // calculate the average

}

Similar Posts