25.08.2013 Views

Rezumat teza - Facultatea de Electronica, Telecomunicatii si ...

Rezumat teza - Facultatea de Electronica, Telecomunicatii si ...

Rezumat teza - Facultatea de Electronica, Telecomunicatii si ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

FACULTATEA DE ELECTRONICĂ, TELECOMUNICAŢII<br />

ŞI TEHNOLOGIA INFORMAŢIEI<br />

Ing. Marius Valentin MUREŞAN<br />

Teză <strong>de</strong> doctorat<br />

REZUMAT<br />

Cercetări privind <strong>de</strong>zvoltarea unor <strong>si</strong>steme embed<strong>de</strong>d <strong>de</strong><br />

monitorizare şi control în electronica auto<br />

CONDUCĂTOR ȘTIINȚIFIC<br />

Prof. dr. ing. Dan PITICĂ<br />

2011


UNIVERSITATEA TEHNICĂ DIN CLUJ-NAPOCA<br />

<strong>Facultatea</strong> <strong>de</strong> Electronică, Telecomunicaţii şi Tehnologia Informaţiei<br />

Vă facem cunoscut că în data <strong>de</strong> 22 iulie 2011, ora 10:00, în Aula Domşa a<br />

Univer<strong>si</strong>tăţii Tehnice din Cluj-Napoca, va avea loc susţinerea publică a tezei<br />

<strong>de</strong> doctorat cu titlul “ Cercetări privind <strong>de</strong>zvoltarea unor <strong>si</strong>steme embed<strong>de</strong>d <strong>de</strong><br />

monitorizare şi control în electronica auto”, elaborată <strong>de</strong> ing. Marius Valentin<br />

MUREŞAN, în ve<strong>de</strong>rea conferirii titlului ştiinţific <strong>de</strong> doctor în inginerie<br />

electronică.<br />

Comi<strong>si</strong>a <strong>de</strong> doctorat are următoarea componenţă:<br />

Președinte<br />

Prof.dr.ing. Dorin Petreuş<br />

<strong>Facultatea</strong> <strong>de</strong> Electronică, Telecomunicaţii şi Tehnologia Informaţiei,<br />

Univer<strong>si</strong>tatea Tehnică din Cluj-Napoca<br />

Membrii:<br />

Prof. Dr. Ing. Dan PITICĂ – conducător ştiinţific<br />

<strong>Facultatea</strong> <strong>de</strong> Electronică, Telecomunicaţii şi Tehnologia Informaţiei,<br />

Univer<strong>si</strong>tatea Tehnică din Cluj-Napoca<br />

Prof.dr.ing. Dorel AIORDĂCHIOAIE - referent<br />

Decan - <strong>Facultatea</strong> <strong>de</strong> Automatică, Calculatoare, Inginerie Electrică şi<br />

Electronică, Univer<strong>si</strong>tatea „Dunărea <strong>de</strong> Jos” din Galați<br />

Prof. Dr. Ing. Petre OGRUŢAN – referent<br />

<strong>Facultatea</strong> <strong>de</strong> Inginerie Electrică și Știința Calculatoarelor<br />

Univer<strong>si</strong>tatea „Tran<strong>si</strong>lvania” Braşov<br />

Conf.dr.ing. Gabriel Chindriș<br />

<strong>Facultatea</strong> <strong>de</strong> Electronică, Telecomunicaţii şi Tehnologia Informaţiei,<br />

Univer<strong>si</strong>tatea Tehnică din Cluj-Napoca


Cuprins<br />

Cuprins ................................................................................................................... i<br />

Capitolul 1 ......................................................................................................... 1<br />

1. Introducere în <strong>si</strong>stemele embed<strong>de</strong>d <strong>de</strong> control automate din industria auto. 1<br />

1.1. Tendinţe în industria auto ............................................................................ 1<br />

1.2. Dezvoltarea software-ului în industria auto ................................................ 1<br />

1.3. Testarea <strong>si</strong>stemelor embed<strong>de</strong>d...................................................................... 2<br />

1.4. Scopul tezei .................................................................................................... 2<br />

1.5. Organizarea tezei .......................................................................................... 3<br />

Capitolul 2 ......................................................................................................... 4<br />

2. Evaluarea performanţelor codului <strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong> control<br />

automate folo<strong>si</strong>te în industria auto. ............................................................... 4<br />

2.1. Stadiul actual al meto<strong>de</strong>lor <strong>de</strong> măsurare a frecvenţei ................................. 4<br />

2.2. Estimarea performanţelor meto<strong>de</strong>lor <strong>de</strong> măsurare a frecvenţei ................. 4<br />

2.2.1. Metoda I – Metodă <strong>de</strong> măsurare a frecvenţei folo<strong>si</strong>nd un <strong>si</strong>ngur<br />

timer ..................................................................................................... 5<br />

2.2.2. Metoda II – Metodă <strong>de</strong> măsurare a frecvenţei folo<strong>si</strong>nd un <strong>si</strong>ngur<br />

timer şi numărarea <strong>de</strong>păşirilor. .......................................................... 5<br />

2.2.3. Metoda II îmbunătăţită – Metodă <strong>de</strong> măsurare a frecvenţei<br />

folo<strong>si</strong>nd două timere <strong>de</strong>fazate şi numărarea <strong>de</strong>păşirilor. ................... 5<br />

2.2.4. Metoda III – Metodă <strong>de</strong> măsurare a frecvenţei folo<strong>si</strong>nd o<br />

“fereastră” <strong>de</strong> măsură. ......................................................................... 6<br />

2.2.5. Metoda III îmbunătăţită - Metodă <strong>de</strong> măsură folo<strong>si</strong>nd o fereastră<br />

prin ajustarea dinamică a acesteia. .................................................... 6<br />

2.3. Contribuţii la îmbunătăţirea meto<strong>de</strong>lor <strong>de</strong> măsurare a frecvenţei. ............ 7<br />

2.3.1. Metodă <strong>de</strong> măsură a frecvenţei utilizând PEC şi CAPCOM. ............. 7<br />

2.3.2. Evaluarea performanţelor meto<strong>de</strong>i propuse ....................................... 8<br />

Capitolul 3 ....................................................................................................... 10<br />

3. Mo<strong>de</strong>larea <strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong> control automate folo<strong>si</strong>nd tehnici <strong>de</strong> tip<br />

real-time. ..................................................................................................... 10<br />

3.1. Structura <strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong> control ................................................. 10<br />

3.2. Algoritmi <strong>de</strong> control ..................................................................................... 10<br />

3.2.1. Implementarea numerică a algoritmilor <strong>de</strong> control. ........................ 11<br />

i


3.3. Mo<strong>de</strong>larea <strong>si</strong>stemului controlat – exemplificare pentru motorul <strong>de</strong> curent<br />

continuu ....................................................................................................... 11<br />

3.4. Validarea mo<strong>de</strong>lului <strong>si</strong>stemului controlat .................................................. 12<br />

3.4.1. Validarea mo<strong>de</strong>lului motorului <strong>de</strong> curent continuu prin<br />

compararea curbelor <strong>de</strong> sarcină. ....................................................... 12<br />

3.4.2. Validarea mo<strong>de</strong>lului motorului <strong>de</strong> curent continuu prin<br />

compararea răspunsurilor la semnal treaptă. .................................. 12<br />

3.5. Implementarea algoritmilor <strong>de</strong> control pentru generarea automată a<br />

codului. ......................................................................................................... 13<br />

3.6. Generarea automată a codului. .................................................................. 14<br />

Capitolul 4 ....................................................................................................... 15<br />

4. Dezvoltarea mediilor <strong>de</strong> testare ale <strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong> control<br />

automate în industria auto .......................................................................... 15<br />

4.1. Mo<strong>de</strong>lul V multiplu ..................................................................................... 15<br />

4.2. Testarea în faza <strong>de</strong> <strong>de</strong>zvoltare a prototipurilor .......................................... 16<br />

4.3. Conceptul arhitecturii mediului <strong>de</strong> testate SiL împlementat în<br />

Matlab/SIMULINK ..................................................................................... 17<br />

4.3.1. Implementarea XCP .......................................................................... 18<br />

4.3.2. Implementare scheduler OS (Operating System) ............................. 18<br />

4.3.3. Emularea perifericelor <strong>si</strong>stemului embed<strong>de</strong>d ................................... 19<br />

4.3.4. Compilarea şi linkeditarea automată a funcţiei S ........................... 20<br />

4.3.5. Facilităţi <strong>de</strong> rulare pas cu pas a codului funcţiei S .......................... 20<br />

4.3.6. Implementarea interfeţei grafice pentru testele manuale (GUI) .... 20<br />

4.4. Generarea testelor automate ...................................................................... 21<br />

4.5. Mediul <strong>de</strong> testare SiL – Rezultate experimentale ..................................... 21<br />

Capitolul 5 ....................................................................................................... 23<br />

5. Concluzii finale și contribuții personale ....................................................... 23<br />

5.1. Perspective <strong>de</strong> <strong>de</strong>zvoltare ............................................................................ 28<br />

5.2. Premii obținute ............................................................................................ 28<br />

5.3. Publicații citate în teză ................................................................................ 28<br />

5.4. Publicații din domenii adiacente subiectului tezei ..................................... 30<br />

ii


Capitolul 1<br />

1. Introducere în <strong>si</strong>stemele embed<strong>de</strong>d <strong>de</strong> control<br />

automate din industria auto.<br />

Sistemele embed<strong>de</strong>d <strong>de</strong> control automat joacă un rol important în<br />

industria mo<strong>de</strong>rnă, în<strong>de</strong>plinind o largă varietate <strong>de</strong> funcţii. Una dintre<br />

caracteristicile principale ale acestui tip <strong>de</strong> <strong>si</strong>stem, este aceea <strong>de</strong> a fi proiectat<br />

pentru execuţia unei funcţii specifice, având sau nu constrângeri legate <strong>de</strong><br />

execuţia proceselor în timp real.<br />

Funcţionalitatea <strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong> control automate este<br />

a<strong>si</strong>gurată, în mare parte, <strong>de</strong> către software-ul <strong>si</strong>stemului. Comparativ cu acum<br />

zece ani, se observă o tendinţă <strong>de</strong> scă<strong>de</strong>re a pon<strong>de</strong>rii hardware, <strong>de</strong> la 80% la 62%<br />

şi o creştere a pon<strong>de</strong>rii software, <strong>de</strong> la 20% la 38%, din efortul total <strong>de</strong><br />

<strong>de</strong>zvoltare a <strong>si</strong>stemului embed<strong>de</strong>d (Figura 1.1).<br />

Procent din costul<br />

total al autovehicolului<br />

35%<br />

22%<br />

Software 20%<br />

Figura 1.1 Pon<strong>de</strong>rea HW/SW în <strong>si</strong>stemele embed<strong>de</strong>d din industria auto.<br />

1.1. Tendinţe în industria auto<br />

In zilele noastre, un ciclu complet <strong>de</strong> proiectare în industria auto<br />

durează între 24 şi 36 <strong>de</strong> luni, mult mai puţin <strong>de</strong>cât în urmă cu cinci ani, când<br />

un ciclu complet dura în medie aproximativ 60 <strong>de</strong> luni. Durata scurtă a<br />

ciclurilor <strong>de</strong> proiectare, pune pre<strong>si</strong>une extraordinară asupra <strong>de</strong>zvoltării <strong>de</strong><br />

<strong>si</strong>steme embed<strong>de</strong>d <strong>de</strong> control automate, în ve<strong>de</strong>rea creşterii rapi<strong>de</strong> a<br />

prototipurilor şi testării lor<br />

1.2. Dezvoltarea software-ului în industria auto<br />

Pentru reducerea semnificativă a costurilor generate <strong>de</strong> implementările<br />

software, tendinţa este <strong>de</strong> a folo<strong>si</strong> interfeţe grafice capabile să genereze<br />

software pentru ECU. În prezent, mai mult <strong>de</strong> 60% din software-ul <strong>de</strong> la<br />

nivelul aplicaţiei este implementat în formă grafică.<br />

1<br />

Hardware<br />

62%<br />

Hardware<br />

13% Software <strong>de</strong> bază 2%<br />

80%<br />

Sistem <strong>de</strong> operare 8%<br />

4%<br />

Software Aplicaţie<br />

28%<br />

2000 2010


1.3. Testarea <strong>si</strong>stemelor embed<strong>de</strong>d<br />

Testarea ECU se face <strong>de</strong>-a lungului întregului proces <strong>de</strong> proiectare,<br />

fiecare etapă având teste specifice: testarea mo<strong>de</strong>lelor, testarea în laborator şi<br />

testele <strong>de</strong> drum. Tendinţele sunt <strong>de</strong> a implementa cât mai multe teste în<br />

partea <strong>de</strong> mo<strong>de</strong>lare şi laborator, în scopul reducerii costurilor.<br />

1.4. Scopul tezei<br />

Dezvoltarea ECU se bazează pe mo<strong>de</strong>lul V prezentat în Figura 1.2, un<strong>de</strong><br />

fiecare din etapele <strong>de</strong> proiectare, testare/verificare implică tool-uri diferite<br />

furnizate <strong>de</strong> diferiţi producători.<br />

Figura 1.2 Ciclul V pentru <strong>de</strong>zvoltarea ECU<br />

Scopul acestei teze constă în <strong>de</strong>zvoltarea unor meto<strong>de</strong> <strong>de</strong> implementare<br />

şi testare a codului <strong>de</strong>stinat <strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong> control automate în<br />

ve<strong>de</strong>rea reducerii timpilor şi costurilor proiectării. Raportându-ne la mo<strong>de</strong>lul V,<br />

meto<strong>de</strong>le și mo<strong>de</strong>lele <strong>de</strong>zvoltate se <strong>si</strong>tuează în partea <strong>de</strong> Proiectare software<br />

ECU, Programare software și Revizuire cod/Teste unități.<br />

Pentru verificarea experimentală a conceptelor s-a ales spre mo<strong>de</strong>lare<br />

un <strong>si</strong>stem embed<strong>de</strong>d <strong>de</strong> control al turației unui motor <strong>de</strong> curent continuu cu<br />

perii, conceptele putând fi extinse și altor <strong>si</strong>steme embed<strong>de</strong>d mai complexe.<br />

Generarea automată a codului <strong>si</strong>stemelor embed<strong>de</strong>d și implementarea<br />

mediului <strong>de</strong> testare s-a făcut folo<strong>si</strong>nd platforma <strong>de</strong> <strong>de</strong>zvoltare<br />

Matlab/SIMULINK.<br />

În ve<strong>de</strong>rea optimizării codului <strong>si</strong>stemelor embed<strong>de</strong>d s-a urmărit<br />

îmbunătățirea lui prin:<br />

• creșterea performanțelor meto<strong>de</strong>lor <strong>de</strong> măsură.<br />

• minimizarea timpilor <strong>de</strong> execuție prin optimizarea accesului la<br />

resursele microcontrollerului.<br />

Codul astfel implementat, este folo<strong>si</strong>t ca și referință, fiind înglobat ca și<br />

bloc cu caracter dual în Simulink, cu scopul generării automate a codului.<br />

Software-ul obținut după procesul <strong>de</strong> generare automată a codului este testat<br />

folo<strong>si</strong>nd tehnici mo<strong>de</strong>rne. Corelațiile între direcțiile <strong>de</strong> cercetare amintite și<br />

implementarea <strong>si</strong>stemului embed<strong>de</strong>d sunt prezentate în Figura 1.3.<br />

2


Figura 1.3 Corelațiile între direcțiile <strong>de</strong> cercetare urmărite și implementarea practică.<br />

1.5. Organizarea tezei<br />

Teza este structurată în cinci capitole, astfel:<br />

Capitolul 1 intitulat Introducere în <strong>si</strong>stemele embed<strong>de</strong>d <strong>de</strong> control automate<br />

din industria auto prezintă stadiul actual şi trendurile viitoare în industria<br />

auto, precum şi oportunitatea temei alese.<br />

Capitolul 2, intitulat Evaluarea performanţelor codului <strong>si</strong>stemelor embed<strong>de</strong>d<br />

<strong>de</strong> control automate folo<strong>si</strong>te în industria auto prezintă o soluţie <strong>de</strong><br />

îmbunătăţire a performanţelor unui <strong>si</strong>stem embed<strong>de</strong>d <strong>de</strong> control automat <strong>de</strong><br />

măsurare a frecvenţei, prin analiza timpilor <strong>de</strong> execuţie a codului, optimizarea<br />

lui şi gă<strong>si</strong>rea <strong>de</strong> noi implementări specifice tipului <strong>de</strong> microcontroller folo<strong>si</strong>t.<br />

Capitolul 3 intitulat Mo<strong>de</strong>larea <strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong> control automate<br />

folo<strong>si</strong>nd tehnici <strong>de</strong> tip real-time prezintă o soluţie <strong>de</strong> accelerare a <strong>de</strong>zvoltării<br />

software-ului <strong>si</strong>stemelor embed<strong>de</strong>d prin generarea automată a codului şi<br />

testarea funcţionalităţii lui pe <strong>si</strong>steme reale. Pentru implementarea<br />

algoritmilor <strong>de</strong> control s-a folo<strong>si</strong>t Matlab/SIMULINK, codul generat fiind rulat<br />

în ve<strong>de</strong>rea testări pe un <strong>si</strong>stem în timp real.<br />

Capitolul 4 intitulat Dezvoltarea mediilor <strong>de</strong> testare ale <strong>si</strong>stemelor embed<strong>de</strong>d<br />

<strong>de</strong> control automate în industria auto prezintă o metodă <strong>de</strong> testare cu costuri<br />

reduse, folo<strong>si</strong>tă în faza <strong>de</strong> <strong>de</strong>zvoltare a software-ului <strong>si</strong>stemului embed<strong>de</strong>d <strong>de</strong><br />

control automat, pentru diferite tipuri <strong>de</strong> teste specifice (testarea<br />

componentelor software, teste <strong>de</strong> integrare), acce<strong>si</strong>bilă fiecărui programator.<br />

S-a urmărit <strong>de</strong>zvoltarea unui mediu <strong>de</strong> testare SiL (Software in the Loop)<br />

pentru codul <strong>si</strong>stemului embed<strong>de</strong>d <strong>de</strong> control automat, în acelaşi timp folo<strong>si</strong>duse<br />

aceleași tool-uri şi vectori <strong>de</strong> test ca şi pentru testele finale.<br />

Capitolul 5 prezintă concluziile finale şi contribuţiile aduse optimizării<br />

timpilor şi costurilor <strong>de</strong> proiectare în <strong>de</strong>zvoltarea <strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong><br />

control automate folo<strong>si</strong>te în industria auto.<br />

3


Capitolul 2<br />

2. Evaluarea performanţelor codului <strong>si</strong>stemelor<br />

embed<strong>de</strong>d <strong>de</strong> control automate folo<strong>si</strong>te în industria auto.<br />

Utilizarea pe scară din ce în ce mai largă, în domeniul industriei<br />

automobilelor, a senzorilor ce furnizează informaţia ca şi semnal modulat în<br />

frecvenţă, impune folo<strong>si</strong>rea unor tehnici <strong>de</strong> măsurare precise, a căror eroare să<br />

fie menţinută sub o valoare critică pe întreg domeniul <strong>de</strong> măsură.<br />

Deoarece majoritatea unităţilor electronice <strong>de</strong> control sunt <strong>de</strong>zvoltate în<br />

jurul microcontrollerelor, măsurarea frecvenţei semnalelor generate <strong>de</strong> senzori<br />

se bazează pe folo<strong>si</strong>rea timerelor <strong>si</strong>stemului.<br />

În prima parte se prezintă stadiul actual al meto<strong>de</strong>lor <strong>de</strong> măsură şi sunt<br />

prezentate câteva meto<strong>de</strong> cla<strong>si</strong>ce <strong>de</strong> măsurare a frecvenţei unui semnal<br />

dreptunghiular, cum ar fi:<br />

a. măsurarea frecvenţei folo<strong>si</strong>nd un <strong>si</strong>ngur timer;<br />

b. măsurarea frecvenţei folo<strong>si</strong>nd un <strong>si</strong>ngur timer şi numărarea<br />

<strong>de</strong>păşirilor;<br />

c. măsurarea frecvenţei folo<strong>si</strong>nd două timere <strong>de</strong>fazate şi numărarea<br />

<strong>de</strong>păşirilor;<br />

d. măsurarea frecvenţei folo<strong>si</strong>nd o fereastră <strong>de</strong> măsură.<br />

În a doua parte a abordării este prezentată o metodă <strong>de</strong> măsură ce<br />

acoperă un domeniu larg (1Hz – 10kHz), cu o precizie mai mare <strong>de</strong> 1Hz pe<br />

întreg domeniul, suficient pentru ca semnalele generate <strong>de</strong> senzorii folo<strong>si</strong>ţi în<br />

industria automobilelor să poată fi măsurate precis. Această metodă se<br />

bazează pe înglobarea a două meto<strong>de</strong> <strong>de</strong> măsură intr-una <strong>si</strong>ngură:<br />

a. metoda bazată pe folo<strong>si</strong>rea a două timere <strong>de</strong>fazate şi numărarea<br />

<strong>de</strong>păşirilor<br />

b. metoda bazată pe folo<strong>si</strong>rea unei „ferestre” <strong>de</strong> măsură.<br />

Pentru <strong>de</strong>terminarea performanțelor legate <strong>de</strong> timpii <strong>de</strong> execuţie şi<br />

încărcarea microprocesorului s-a implementat un modul software <strong>de</strong><br />

monitorizare (profiler).<br />

2.1. Stadiul actual al meto<strong>de</strong>lor <strong>de</strong> măsurare a frecvenţei<br />

Principiile generale <strong>de</strong> măsură constau în:<br />

• măsurarea directă, când sunt numărate perioa<strong>de</strong>le unui semnal<br />

<strong>de</strong> măsură cuprinse în perioada semnalului măsurat;<br />

• măsurarea inversă, când sunt numărate perioa<strong>de</strong>le semnalului<br />

măsurat cuprinse într-o fereastră <strong>de</strong> măsură.<br />

2.2. Estimarea performanţelor meto<strong>de</strong>lor <strong>de</strong> măsurare a<br />

frecvenţei<br />

Studiul comparativ a urmărit în principal modul în care aceste meto<strong>de</strong><br />

<strong>de</strong> măsură pot fi implementate pe <strong>si</strong>steme cu microcontrollere În continuare,<br />

4


prezentarea lor este strâns legată <strong>de</strong> implementarea practică, luându-se ca<br />

mo<strong>de</strong>l microcontroller-ul pe 16 biţi produs <strong>de</strong> firma Infineon, C167CR.<br />

Principiul <strong>de</strong> măsură al fiecărei meto<strong>de</strong> este prezentat pentru un canal,<br />

implementarea programului făcându-se pentru măsurarea <strong>si</strong>multană a trei<br />

canale.<br />

2.2.1. Metoda I – Metodă <strong>de</strong> măsurare a frecvenţei folo<strong>si</strong>nd un <strong>si</strong>ngur timer<br />

Cea mai <strong>si</strong>mplă metodă pentru <strong>de</strong>terminarea perioa<strong>de</strong>i constă în folo<strong>si</strong>rea<br />

unui timer pe 16 biţi şi capturarea valorii timerului la fiecare front crescător<br />

sau <strong>de</strong>screscător al semnalului <strong>de</strong> intrare.<br />

2.2.2. Metoda II – Metodă <strong>de</strong> măsurare a frecvenţei folo<strong>si</strong>nd un <strong>si</strong>ngur<br />

timer şi numărarea <strong>de</strong>păşirilor.<br />

O primă metodă prin care domeniului <strong>de</strong> măsură se poate extin<strong>de</strong>,<br />

eliminând limitarea legată <strong>de</strong> perioada <strong>de</strong> <strong>de</strong>păşire a timerului, este aceea prin<br />

care întreruperea <strong>de</strong> <strong>de</strong>păşire a timerului pe 16 biţi este monitorizată şi<br />

folo<strong>si</strong>tă în calculul perioa<strong>de</strong>i/frecvenţei semnalului <strong>de</strong> intrare. Metoda constă<br />

în incrementarea unui contor la fiecare întrerupere <strong>de</strong> <strong>de</strong>păşire a timerului.<br />

Statistic, această metodă furnizează următoarele rezultate:<br />

• În 99,99% din cazuri măsurătorile sunt corecte.<br />

• În 0,01% din cazuri rezultatele sunt eronate. Erorile apar atunci când<br />

perioada ce trebuie măsurată este multiplu întreg al perioa<strong>de</strong>i timerului.<br />

2.2.3. Metoda II îmbunătăţită – Metodă <strong>de</strong> măsurare a frecvenţei folo<strong>si</strong>nd<br />

două timere <strong>de</strong>fazate şi numărarea <strong>de</strong>păşirilor.<br />

Eliminarea erorii statice din metoda anterioară se poate face prin<br />

utilizarea a două timere, <strong>de</strong>fazate cu o jumătate <strong>de</strong> perioadă. Constrângerea<br />

majoră a acestei meto<strong>de</strong>, ce o face implementabilă doar pentru anumite<br />

microcontrollere, constă în menţinerea unui <strong>de</strong>fazaj constant între timere pe<br />

tot timpul măsurătorilor (Figura 2.1).<br />

Timer 1<br />

0x0000<br />

Timer 2<br />

0x8000<br />

<strong>de</strong>fazaj<br />

constant<br />

T1&0x8000=0<br />

T1&0x8000=1<br />

1 2 3<br />

1 2<br />

3<br />

Figura 2.1 Principiul meto<strong>de</strong>i II îmbunătăţite.<br />

5<br />

T1&0x8000=0<br />

T1&0x8000=1<br />

T1&0x8000=0<br />

4


2.2.4. Metoda III – Metodă <strong>de</strong> măsurare a frecvenţei folo<strong>si</strong>nd o “fereastră”<br />

<strong>de</strong> măsură.<br />

Pentru oricare dintre meto<strong>de</strong>le anterior prezentate, acurateţea la<br />

frecvenţe înalte este nesatisfăcătoare. Metoda care rezolva aceasta problemă<br />

propune folo<strong>si</strong>rea unei ferestre <strong>de</strong> măsură.<br />

Eroarea <strong>de</strong> măsură în acest caz, se poate calcula folo<strong>si</strong>nd relaţia (2.1).<br />

( N − 2)<br />

eroarea[<br />

Hz]<br />

=<br />

2.1<br />

Dimen<strong>si</strong>une _ fereastra −<br />

6<br />

( N − 2)<br />

⋅ Tin<br />

2.2.5. Metoda III îmbunătăţită - Metodă <strong>de</strong> măsură folo<strong>si</strong>nd o fereastră<br />

prin ajustarea dinamică a acesteia.<br />

Din analiza erorii relative pentru metoda III, rezultă că pentru a obţine<br />

o precizie <strong>de</strong> 1Hz la frecvenţa <strong>de</strong> 10000Hz avem nevoie <strong>de</strong> o fereastră <strong>de</strong><br />

dimen<strong>si</strong>une minimă 0,1s. Informaţiile referitoare la frecvenţe sunt folo<strong>si</strong>te ca<br />

variabile <strong>de</strong> intrare în algoritmii <strong>de</strong> control implementaţi pe <strong>si</strong>steme embed<strong>de</strong>d<br />

cu constrângeri <strong>de</strong> timp. Această metodă <strong>de</strong> măsură poate fi îmbunătăţită<br />

astfel încât precizia măsurătorii să satisfacă cerinţele impuse, folo<strong>si</strong>nd ferestre<br />

<strong>de</strong> măsură <strong>de</strong> ordinul milisecun<strong>de</strong>lor. Acest lucru este po<strong>si</strong>bil dacă folo<strong>si</strong>m un<br />

timer cu ajutorul căruia să obţinem valorile corespunzătoare primului şi<br />

ultimului front pozitiv/negativ din fereastră. În acest caz, eroarea nu mai este<br />

<strong>de</strong>pen<strong>de</strong>ntă <strong>de</strong> valoarea perioa<strong>de</strong>i/frecvenţei semnalului măsurat, ci este<br />

<strong>de</strong>pen<strong>de</strong>ntă <strong>de</strong> cuanta timerului. Acest lucru este echivalent cu o ajustare<br />

dinamică a ferestrei în limita maximă a dimen<strong>si</strong>unii ei (Figura 2.2).<br />

Semnalul <strong>de</strong><br />

măsurat<br />

Dimen<strong>si</strong>une fereastră <strong>de</strong> măsură<br />

N*Tin<br />

Valoare_timer_t0<br />

Valoare_timer_t1<br />

Figura 2.2 Principiul meto<strong>de</strong>i III îmbunătăţite.<br />

Calculul perioa<strong>de</strong>i semnalului <strong>de</strong> intrare se face folo<strong>si</strong>nd relaţia (2.2).<br />

Valoare _ timer _ t1−<br />

Valoare _ timer _ t0<br />

⋅Tclk<br />

Tmas<br />

[ s]<br />

=<br />

2.2<br />

N<br />

Eroarea <strong>de</strong> măsură in acest caz se poate calcula folo<strong>si</strong>nd ecuaţia (2.3).<br />

1<br />

eroarea[<br />

Hz]<br />

=<br />

( Valoare _ timer _ t1<br />

− Valoare _ timer _ t0<br />

−1)<br />

⋅ Tclk<br />

2.3<br />

Tin −<br />

N<br />

Eroarea <strong>de</strong> măsură pentru cazul folo<strong>si</strong>rii ajustării dinamice a frecvenţei<br />

este prezentată în Figura 2.3. Se observă că se obţin erori relative mai mici <strong>de</strong><br />

0,01% chiar şi pentru dimen<strong>si</strong>uni ale ferestrei <strong>de</strong> 5ms.


Eroarea <strong>de</strong> masura [%]<br />

0.01<br />

0.008<br />

0.005<br />

0<br />

-0.005<br />

-0.008<br />

-0.01<br />

10000<br />

9500<br />

Frecventa semnalului <strong>de</strong> intrare [Hz]<br />

9000<br />

Figura 2.3 Eroarea relativă <strong>de</strong> măsură obţinută prin <strong>si</strong>mulare Matlab pentru metoda<br />

III îmbunătăţită.<br />

2.3. Contribuţii la îmbunătăţirea meto<strong>de</strong>lor <strong>de</strong> măsurare a<br />

frecvenţei.<br />

În continuare este prezentat un algoritm <strong>de</strong> măsură a frecvenţei cu o<br />

eroarea absolută mai mică <strong>de</strong> 1Hz pe întreg domeniul cuprins între 1Hz şi<br />

10KHz, cu un timp minimizat <strong>de</strong> ocupare a microcontrollerului. Această<br />

metodă a fost implementată şi testată pe microcontrollerul C167CR, special<br />

ales pentru perifericele CAPCOM (CApture/COMpare) şi Peripheral Event<br />

Controler (PEC).<br />

2.3.1. Metodă <strong>de</strong> măsură a frecvenţei utilizând PEC şi CAPCOM.<br />

Metoda propusă combină cele două meto<strong>de</strong> <strong>de</strong> măsura prezentate<br />

anterior:<br />

• pentru frecvenţe joase se foloseşte metoda II îmbunătățită;<br />

• pentru frecvenţe înalte se foloseşte metoda III îmbunătățită.<br />

Frecvenţa este calculată la fiecare cinci milisecun<strong>de</strong> şi datele sunt<br />

transmise pe CAN. În rutina <strong>de</strong> tratare a acestei întreruperi se calculează<br />

frecvenţa după următorii paşi:<br />

• Dacă au avut loc unul sau mai multe trasferuri PEC,<br />

perioada/frecvenţa semnalului <strong>de</strong> intrare se calculează în funcţie<br />

<strong>de</strong> datele din vectorul <strong>de</strong>stinaţie asociat PEC-ului şi numărul <strong>de</strong><br />

transferuri; Acest lucru este exemplificat în Figura 2.4.;<br />

7<br />

x 10<br />

8<br />

-3<br />

0.01 0.005<br />

0.02<br />

0.03<br />

0.04<br />

-6<br />

0.05<br />

0.06<br />

0.07<br />

0.08<br />

0.09<br />

0.1<br />

-8<br />

Dimen<strong>si</strong>une fereastra [s]<br />

6<br />

4<br />

2<br />

0<br />

-2<br />

-4


Semnalul<br />

<strong>de</strong> intrare<br />

Intreruperi<br />

Figura 2.4 Calculul frecvenţei pentru cazul în care au avut loc transferuri PEC.<br />

• Dacă nici un transfer PEC (Figura 2.5), rutina <strong>de</strong> tratare a<br />

întreruperii capture fiind activă.<br />

Semnalul<br />

<strong>de</strong> intrare<br />

Timer1<br />

overflow<br />

Timer2<br />

overflow<br />

Intreruperi<br />

Calculul<br />

frecvenţă.<br />

Iniţializare<br />

PEC<br />

Salvări valori<br />

timer şi<br />

<strong>de</strong>păşiri<br />

Iniţializare<br />

PEC<br />

Salvări valori<br />

timer şi<br />

<strong>de</strong>păşiri<br />

Figura 2.5 Calculul frecvenţei pentru cazul în care nu au avut loc transferuri PEC.<br />

Frecvența la care se trecere <strong>de</strong> la o metodă <strong>de</strong> măsură la alta s-a ales în<br />

urma analizei erorii absolute minime pe întreg domeniul <strong>de</strong> măsură, prin<br />

<strong>si</strong>mulare Matlab. În acest caz, s-a ales ca frecvența <strong>de</strong> trecere să fie cea mai<br />

mică frecvență măsurată cu metoda nou propusă.<br />

2.3.2. Evaluarea performanţelor meto<strong>de</strong>i propuse<br />

Pentru evaluarea performanţelor meto<strong>de</strong>i propuse s-a folo<strong>si</strong>t standul<br />

experimental din Figura 2.6: generatorul <strong>de</strong> funcţii NI 5406 a furnizat un<br />

semnal dreptunghiular cu o rezoluție <strong>de</strong> 0,355µHz. Semnalul astfel generat<br />

este folo<strong>si</strong>t ca şi semnal <strong>de</strong> intrare pentru <strong>si</strong>stemul <strong>de</strong> măsură implementat în<br />

jurul microcontrollerului C167CR. Toate meto<strong>de</strong>le au fost implementate<br />

pentru măsurarea <strong>si</strong>multană a trei canale <strong>de</strong> intrare.<br />

Figura 2.6 Stand experimental pentru evaluarea performanţelor <strong>si</strong>stemelor <strong>de</strong><br />

măsură implementate.<br />

8<br />

Transferuri<br />

PEC<br />

Calcul frecvenţă după<br />

relaţiile 2.5 sau 2.6<br />

Calculul<br />

frecvenţei cu<br />

relaţia 2.8.


Pentru <strong>de</strong>terminarea performanţelor legate <strong>de</strong> timpii <strong>de</strong> execuţie ai<br />

programului, pentru fiecare metodă studiată, s-a implementat un profiler.<br />

Timpul <strong>de</strong> execuţie al fiecărei rutine este compus din: Tin – timpul <strong>de</strong> intrare în<br />

întrerupere, un<strong>de</strong> se salvează conţinutul regiştrilor pe stivă; Tcitire – timpul<br />

necesar citirii timerului asociat profilerului; Tprofiler_start –timpul necesar<br />

salvării în memorie a datelor legate <strong>de</strong> startul rutinei <strong>de</strong> întrerupere; Texec –<br />

timpul <strong>de</strong> execuţie al rutinei <strong>de</strong> întrerupere, așa cum este el <strong>de</strong>terminat<br />

software <strong>de</strong> către profiler; Texec_echivalent – timpul <strong>de</strong> execuţie efectiv al rutinei <strong>de</strong><br />

întrerupere, ce poate fi <strong>de</strong>terminat doar analitic; Tprofiler_stop –timpul necesar<br />

salvării în memorie a datelor legate <strong>de</strong> finalul rutinei <strong>de</strong> întrerupere; Tout –<br />

timpul <strong>de</strong> ieşire din întrerupere, un<strong>de</strong> se reface conţinutul regiştrilor din stivă;<br />

Tint – timpul suplimentar datorat întreruperii rutinei <strong>de</strong> către alte rutine cu<br />

priorităţi cu nivele mai ridicate. Acest timp poate fi oriun<strong>de</strong> pe durata<br />

celorlalţi timpi.<br />

La frecvenţe joase, performanţele meto<strong>de</strong>i PEC sunt afectate <strong>de</strong><br />

dimen<strong>si</strong>unea codului. Codul implementat pentru măsurarea frecvenţei are cea<br />

mai mică dimen<strong>si</strong>une pentru metoda cu un timer, urmată <strong>de</strong> metoda <strong>de</strong><br />

măsură folo<strong>si</strong>nd două timere <strong>de</strong>fazate cu numărarea <strong>de</strong>pășirilor şi <strong>de</strong> metoda<br />

<strong>de</strong> măsură cu fereastră folo<strong>si</strong>nd PEC. La frecvenţe mari (> 3 KHZ), PEC-ul<br />

preia din încărcarea microcontrollerul realizând transferuri directe fără<br />

ocuparea µC, timpii <strong>de</strong> ocupare fiind semnificativ mai mici <strong>de</strong>cât la celelalte<br />

două meto<strong>de</strong>. Aceste aspecte sunt exemplificate în Figura 2.7, un<strong>de</strong> sunt<br />

prezentaţi timpii <strong>de</strong> ocupare ai microcontrollerului pentru meto<strong>de</strong>le analizate,<br />

la diferite frecvenţe.<br />

Figura 2.7 Încărcarea microcontrollerului în funcţie <strong>de</strong> metoda <strong>de</strong> măsură<br />

implementată.<br />

9


Capitolul 3<br />

3. Mo<strong>de</strong>larea <strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong> control automate<br />

folo<strong>si</strong>nd tehnici <strong>de</strong> tip real-time.<br />

Un <strong>si</strong>stem embed<strong>de</strong>d care are ca scop implementarea unui algoritm <strong>de</strong><br />

control în scopul menţinerii anumitor mărimi fizice dintr-un proces, la o<br />

valoare prescrisă, fără intervenţia din exterior a factorului uman se numeşte<br />

<strong>si</strong>stem embed<strong>de</strong>d <strong>de</strong> control.<br />

În acest capitol s-a studiat problema proiectării algoritmilor <strong>de</strong> control<br />

pentru <strong>si</strong>steme liniare pe platforme embed<strong>de</strong>d cu po<strong>si</strong>bilitatea impunerii<br />

anumitor constrângeri <strong>de</strong> timp. Scopul principal constă în gă<strong>si</strong>rea unei meto<strong>de</strong><br />

vali<strong>de</strong> pentru acordarea algoritmilor <strong>de</strong> control folo<strong>si</strong>nd mo<strong>de</strong>le <strong>si</strong>mulate.<br />

Mo<strong>de</strong>lul algoritmului astfel acordat, va fi folo<strong>si</strong>t în scopul generării automate a<br />

codului pentru a fi rulat pe <strong>si</strong>stemul embed<strong>de</strong>d. Acest lucru s-a făcut prin<br />

analiza <strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong> control folo<strong>si</strong>nd meto<strong>de</strong> analitice şi<br />

experimentale cu scopul îmbunătăţirii timpilor <strong>de</strong> proiectare, reducerii<br />

resurselor necesare în ve<strong>de</strong>rea proiectării şi îmbunătăţirii performanţelor<br />

<strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong> control folo<strong>si</strong>nd tehnici <strong>de</strong> <strong>si</strong>mulare în timp real.<br />

Exemplul utilizat în <strong>de</strong>zvoltarea meto<strong>de</strong>i <strong>de</strong> <strong>de</strong>terminarea a parametrilor<br />

algoritmului <strong>de</strong> control automat este un algoritm PID pentru controlul turaţiei<br />

unui motor <strong>de</strong> curent continuu cu perii (<strong>de</strong>numit în continuare motor <strong>de</strong> curent<br />

continuu).<br />

3.1. Structura <strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong> control<br />

Schema bloc funcţională a unui <strong>si</strong>stem embed<strong>de</strong>d <strong>de</strong> control este<br />

prezentată în Figura 3.1, un<strong>de</strong> putem i<strong>de</strong>ntifica partea <strong>de</strong> controller ca fiind<br />

implementată ca şi software ce rulează pe microcontroller, partea <strong>de</strong> element<br />

<strong>de</strong> execuţie fiind echivalentă cu driver-ul <strong>de</strong> ieşire şi partea <strong>de</strong> traductor fiind<br />

echivalentă cu senzorul.<br />

Figura 3.1 Schema bloc funcţională a unui <strong>si</strong>stem embed<strong>de</strong>d <strong>de</strong> control.<br />

3.2. Algoritmi <strong>de</strong> control<br />

Există mai multe tipuri <strong>de</strong> algoritmi <strong>de</strong> reglaj, cei mai comuni fiind:<br />

proporțional (P), proporţional-integrativ (PI), proporţional-<strong>de</strong>rivativ (PD) şi<br />

proporţional-integrativ-<strong>de</strong>rivativ (PID). Deoarece algoritmul PID inclu<strong>de</strong> toate<br />

tipurile <strong>de</strong> algoritmi menţionaţi anterior, el fiind şi cel mai comun în<br />

10


implementarea <strong>si</strong>stemelor <strong>de</strong> control, în continuare se va analiza doar acest tip<br />

<strong>de</strong> algoritm. Expre<strong>si</strong>a matematică a algoritmului <strong>de</strong> reglaj PID este dată <strong>de</strong><br />

relaţia (3.1).<br />

t ⎡ 1<br />

<strong>de</strong><br />

( ) ( )<br />

( t)<br />

⎤<br />

u(<br />

t)<br />

= K⎢e<br />

t + ∫ e t dt + τ d ⎥⎦<br />

3.1<br />

⎣ τ i<br />

dt<br />

0<br />

un<strong>de</strong> K este câştigul, τi este constanta <strong>de</strong> timp <strong>de</strong> integrare <strong>si</strong> τd este constanta<br />

<strong>de</strong> timp <strong>de</strong> <strong>de</strong>rivare.<br />

3.2.1. Implementarea numerică a algoritmilor <strong>de</strong> control.<br />

Implementarea numerică a algoritmilor <strong>de</strong> control în <strong>si</strong>stemele<br />

embed<strong>de</strong>d are avantajele unei flexibilităţi ridicate şi <strong>si</strong>guranţă mărită în<br />

funcţionare. Implementare discretă a algoritmului <strong>de</strong> reglaj PID, folo<strong>si</strong>tă în<br />

constinuare este dată <strong>de</strong> relaţia:<br />

u n)<br />

−u( n −1)<br />

= s e(<br />

n)<br />

+ s e(<br />

n −1)<br />

+ s e(<br />

n − 2)<br />

3.2<br />

un<strong>de</strong><br />

( 0 1<br />

2<br />

⎡ Ts<br />

τ ⎤ d<br />

s0<br />

= K⎢1<br />

+ + ⎥<br />

⎣ 2τ<br />

i Ts⎦<br />

⎡ Ts<br />

τ ⎤ d<br />

s1<br />

= K⎢−<br />

1+<br />

− 2 ⎥<br />

⎣ 2τ<br />

i Ts⎦<br />

τ d<br />

s2<br />

= K<br />

T<br />

s<br />

3.3. Mo<strong>de</strong>larea <strong>si</strong>stemului controlat – exemplificare pentru<br />

motorul <strong>de</strong> curent continuu<br />

un<strong>de</strong><br />

Ecuaţiile <strong>de</strong> funcţionare discrete ale motorului <strong>de</strong> curent continuu sunt:<br />

Va<br />

( z)<br />

−Vb<br />

( z)<br />

Va<br />

( z)<br />

− KmΩ<br />

m(<br />

z)<br />

Ia<br />

( z)<br />

=<br />

=<br />

⎛ Ts<br />

⎞ ⎛ Ts<br />

⎞<br />

Ra⎜1<br />

+ τ a⎟<br />

Ra⎜1<br />

+ τ a⎟<br />

⎝ z −1<br />

⎠ ⎝ z −1<br />

⎠<br />

T ( z)<br />

− TL(<br />

z)<br />

KmI<br />

a(<br />

z)<br />

− TL<br />

( z)<br />

Ωm(<br />

z)<br />

=<br />

=<br />

⎛ Ts<br />

J⎞<br />

⎛ Ts<br />

⎞<br />

b⎜1+<br />

⎟ b⎜1+<br />

τ m⎟<br />

⎝ z −1<br />

b⎠<br />

⎝ z −1<br />

⎠<br />

J<br />

τ m =<br />

b<br />

La<br />

τ a =<br />

R<br />

a<br />

Mo<strong>de</strong>lul Simulink în formă discretă a motorului <strong>de</strong> curent continuu este<br />

prezentat în Figura 3.2.<br />

Figura 3.2 Mo<strong>de</strong>lul discret Simulink a motorului <strong>de</strong> curent continuu.<br />

11<br />

3.3<br />

3.4<br />

3.5


3.4. Validarea mo<strong>de</strong>lului <strong>si</strong>stemului controlat<br />

Pentru <strong>si</strong>stemul mo<strong>de</strong>lat (motorul <strong>de</strong> curent continuu) s-au <strong>de</strong>terminat<br />

prin meto<strong>de</strong> experimentale parametrii acestuia. Mo<strong>de</strong>lul astfel obţinut a fost<br />

validat prin două meto<strong>de</strong>:<br />

• Compararea curbelor <strong>de</strong> funcţionare ale motorului <strong>de</strong> curent<br />

continuu obţinute prin <strong>si</strong>mularea mo<strong>de</strong>lului Simulink cu cele<br />

oferite <strong>de</strong> către producător;<br />

• Compararea răspunsurilor motorului <strong>de</strong> curent continuu la un<br />

semnal <strong>de</strong> tip treaptă unitate.<br />

3.4.1. Validarea mo<strong>de</strong>lului motorului <strong>de</strong> curent continuu prin compararea<br />

curbelor <strong>de</strong> sarcină.<br />

Pentru obţinerea curbelor <strong>de</strong> sarcină ale motorului <strong>de</strong> curent continuu<br />

în funcţie <strong>de</strong> cuplu s-a folo<strong>si</strong>t mo<strong>de</strong>lul Simulink al motorului <strong>de</strong> curent<br />

continuu. Comparând curbele obţinute prin <strong>si</strong>mulare cu cele oferite <strong>de</strong> către<br />

producător, putem spune că parametrii motorului <strong>de</strong> curent continuu au fost<br />

corect <strong>de</strong>terminaţi.<br />

3.4.2. Validarea mo<strong>de</strong>lului motorului <strong>de</strong> curent continuu prin compararea<br />

răspunsurilor la semnal treaptă.<br />

I<strong>de</strong>ntificarea răspunsului motorului la un semnal <strong>de</strong> tip treaptă unitate<br />

s-a făcut folo<strong>si</strong>nd <strong>si</strong>stemul <strong>de</strong> măsură a cărui schemă bloc este prezentată în<br />

Figura 3.3. Măsurătorile sunt făcute <strong>de</strong> un <strong>si</strong>stem <strong>de</strong> măsură în timp real care<br />

s-a implementat în două moduri:<br />

• Folo<strong>si</strong>nd un calculator pe care rulează xPC Target 4.0 împreună<br />

cu o placă <strong>de</strong> achiziţie multifuncţională PCI 6251 produsă <strong>de</strong><br />

firma National Instruments<br />

• Folo<strong>si</strong>nd un PXI-1031 împreună cu o placă <strong>de</strong> achiziţie<br />

multifuncţională PXI 6251.<br />

.<br />

Figura 3.3 Schemă <strong>de</strong> măsură a răspunsului <strong>si</strong>stemului la semnalul <strong>de</strong> tip treaptă<br />

unitate folo<strong>si</strong>nd <strong>si</strong>steme <strong>de</strong> măsurare şi <strong>si</strong>mulare în timp real.<br />

Algoritmii pentru <strong>de</strong>terminarea răspunsului motorului <strong>de</strong> curent<br />

continuu sunt implementați folo<strong>si</strong>nd mo<strong>de</strong>lare Simulink și LabVIEW.<br />

Din cauza a<strong>si</strong>metriilor mecanice ale <strong>si</strong>stemului <strong>de</strong> măsură și ale<br />

motorului <strong>de</strong> curent continuu utilizat, s-a folo<strong>si</strong>t un algoritm <strong>de</strong> filtrare <strong>de</strong> tip<br />

„element <strong>de</strong> întârziere <strong>de</strong> ordinul unu”. Rezultatele obţinute folo<strong>si</strong>nd cele două<br />

<strong>si</strong>steme <strong>de</strong> măsură sunt i<strong>de</strong>ntice, din acest motiv, vom prezenta în continuare<br />

doar datele achiziţionate folo<strong>si</strong>nd <strong>si</strong>stemul <strong>de</strong> măsură ce foloseşte xPC Target<br />

4.0.<br />

12


Datele obţinute prin <strong>si</strong>mulare au fost comparate cu cele achiziţionate <strong>de</strong><br />

<strong>si</strong>stemul <strong>de</strong> măsură în timp real. Putem observa că erorile semnificative apar<br />

pe durata timpilor tranzitorii.<br />

Figura 3.4 Eroarea absolută dintre răspunsurile <strong>si</strong>stemului la un semnal treaptă<br />

(<strong>si</strong>mulat şi real).<br />

3.5. Implementarea algoritmilor <strong>de</strong> control pentru<br />

generarea automată a codului.<br />

Ca şi implementare, s-a ales un algoritm <strong>de</strong> control <strong>de</strong> tip PID care să<br />

regleze turaţia unui motor <strong>de</strong> curent continuu. Algoritmul <strong>de</strong> control este<br />

implementat ca şi o funcţie S într-un mo<strong>de</strong>l Simulink al întregului <strong>si</strong>stem <strong>de</strong><br />

control (Figura 3.5), care este încărcat pe <strong>si</strong>stemul în timp real.<br />

Figura 3.5 Mo<strong>de</strong>lul Simulink al <strong>si</strong>stemului <strong>de</strong> control folo<strong>si</strong>t ca şi referinţă.<br />

Algoritmul este astfel testat în condiţii reale. În continuare s-a urmărit<br />

modul în care algoritmul <strong>de</strong> control PID trebuie inclus în <strong>si</strong>mularea <strong>si</strong>stemului<br />

<strong>de</strong> control în buclă închisă a turaţiei motorului <strong>de</strong> curent continuu astfel încât,<br />

rezultatele obţinute prin <strong>si</strong>mulare, să fie cât mai apropiate <strong>de</strong> realitate. Toate<br />

experimentele, atât cele <strong>si</strong>mulate cât şi cele reale s-au făcut con<strong>si</strong><strong>de</strong>rând<br />

valoarea prescrisă ca fiind 200rpm.<br />

Algoritmul <strong>de</strong> control este implementat utilizând două moduri:<br />

1. Folo<strong>si</strong>nd blocuri discrete din librăriile SIMULINK (Figura 3.6).<br />

2. Integrând codul algoritmului <strong>de</strong> control PID <strong>de</strong>scris prin relaţiile<br />

(3.2) şi (3.3) într-o funcţie S.<br />

Scopul principal constă în gă<strong>si</strong>rea mo<strong>de</strong>lului optim <strong>de</strong> integrare a<br />

algoritmului <strong>de</strong> control în <strong>si</strong>stemul <strong>si</strong>mulat în buclă închisă. Nu s-a urmărit<br />

obţinerea unor parametrii optimi <strong>de</strong> reglaj pentru algoritmul implementat.<br />

Mo<strong>de</strong>lul cel mai complex ales este cel din Figura 3.6, un<strong>de</strong> sunt incluse<br />

mo<strong>de</strong>lul driverului PWM și mo<strong>de</strong>lul tarductorului, incluzând filtrul.<br />

Figura 3.6 Mo<strong>de</strong>lul <strong>si</strong>stemului <strong>de</strong> control ce conţine mo<strong>de</strong>lul driverului PWM şi<br />

mo<strong>de</strong>lul circuitului <strong>de</strong> filtrare.<br />

13


În Figura 3.7 este comparat răspunsul <strong>si</strong>stemului mo<strong>de</strong>lat ca în figura<br />

3.6 cu cel real. Pentru această implementare, se poate con<strong>si</strong><strong>de</strong>ra că rezultatele<br />

obţinute sunt satisfăcătoare, <strong>de</strong>şi între răspunsul <strong>si</strong>stemului real şi a celui<br />

obţinut prin <strong>si</strong>mulare există o întârziere<br />

Vi<strong>teza</strong> <strong>de</strong> rotatie [rad/s]<br />

250<br />

200<br />

150<br />

100<br />

0<br />

0 0.5 1 1.5 2 2.5 3<br />

Timp [s]<br />

Figura 3.7 Comparare între răspunsul <strong>si</strong>stemului obţinut prin mo<strong>de</strong>lare şi răspunsul<br />

real.<br />

3.6. Generarea automată a codului.<br />

50<br />

În continuare s-a urmărit obţinerea unei meto<strong>de</strong> <strong>de</strong> generare automată<br />

a codului algoritmului <strong>de</strong> control <strong>de</strong> tip PID, pentru reglarea turaţiei unui<br />

motor <strong>de</strong> curent continuu, <strong>si</strong>stemul embed<strong>de</strong>d <strong>de</strong> control <strong>de</strong>stinat fiind<br />

<strong>de</strong>zvoltat în jurul µC C167CR. Pentru implementarea mo<strong>de</strong>lului s-a ales<br />

programul Simulink®, iar pentru generarea codului s-a folo<strong>si</strong>t Real Time<br />

Workshop® Embed<strong>de</strong>d Co<strong>de</strong>r împreună cu Embed<strong>de</strong>d Target for Infineon<br />

C166® .<br />

Întreg procesul <strong>de</strong> generare automată a codului folo<strong>si</strong>nd funcţii <strong>de</strong> tip S<br />

inlined este prezentat în Figura 3.8 a.<br />

a.<br />

Figura 3.8 a. Generarea automata a codului folo<strong>si</strong>nd funcţii <strong>de</strong> tip S-inlined.<br />

b. Implementare Simulink pentru mo<strong>de</strong>lul controllerului<br />

Mo<strong>de</strong>lul Simulink implementat este prezentat în Figura 3.8 b., din care,<br />

pentru generarea automată a codului este folo<strong>si</strong>t doar mo<strong>de</strong>lul controllerului.<br />

Blocul pentru citirea turaţiei s-a bazat pe metoda <strong>de</strong>zvoltată în capitolul 2.3,<br />

metoda <strong>de</strong> implementare aleasă fiind ca funcţie <strong>de</strong> tip S-inlined.<br />

14<br />

vi<strong>teza</strong> <strong>de</strong> rotatie <strong>si</strong>mulata<br />

vi<strong>teza</strong> <strong>de</strong> rotatie masurata<br />

b.


Capitolul 4<br />

4. Dezvoltarea mediilor <strong>de</strong> testare ale <strong>si</strong>stemelor<br />

embed<strong>de</strong>d <strong>de</strong> control automate în industria auto<br />

Meto<strong>de</strong>le cele mai utilizate în testarea software-ului sunt „Hardware in<br />

the Loop” (HiL) şi „Software in the Loop” (SiL). Prin metoda <strong>de</strong> testare HiL<br />

software-ul rulează pe hardware-ul ţintă în timp ce pentru restul <strong>si</strong>stemului<br />

este creat un mediu <strong>si</strong>mulativ. Pentru metoda <strong>de</strong> testare SiL i<strong>de</strong>ea este aceeaşi,<br />

excepţie făcând faptul că software-ul rulează la rândul său pe un hardware<br />

emulat.<br />

În ve<strong>de</strong>rea reducerii costurilor legate <strong>de</strong> procesul <strong>de</strong> testare, precum şi a<br />

îmbunătăţii testării prin implementarea unor tehnici <strong>de</strong> De<strong>si</strong>gn For Testability<br />

– DFT, s-a urmărit <strong>de</strong>zvoltarea unui mediu <strong>de</strong> testare SiL pentru software-ul<br />

<strong>si</strong>stemelor embed<strong>de</strong>d din electronica auto. Scopul principal constă în validarea<br />

timpurie a componentelor software care urmează a fi integrate. Ca şi mediu <strong>de</strong><br />

<strong>de</strong>zvoltare s-a ales Matlab/SIMULINK. Codul supus testării nu suferă nici o<br />

modificare, el fiind compilat într-o funcţie <strong>de</strong> tip S, inclusă mai apoi în bucla <strong>de</strong><br />

testare. Deoarece <strong>de</strong>zvoltarea software-ului <strong>si</strong>stemelor embed<strong>de</strong>d se face<br />

pentru <strong>si</strong>steme <strong>de</strong> operare în timp real, s-a urmărit emularea <strong>si</strong>stemului <strong>de</strong><br />

operare, în cazul nostru OSEK/VDX şi inclu<strong>de</strong>rea lui ca şi parte integrantă a<br />

mediului <strong>de</strong> testare SiL. Pentru accesul la valorile variabilelor codului supus<br />

testării, s-a folo<strong>si</strong>t implementarea <strong>de</strong> bază a protocolul XCP (Universal<br />

Measurement and Calibration) având ca nivel transport TCP/IP (Transmis<strong>si</strong>on<br />

Control Protocol/Internet Protocol) via Ethernet. S-a păstrat astfel protocolul<br />

<strong>de</strong> măsurare şi calibrare din majoritatea unităţilor <strong>de</strong> control electronice din<br />

industria auto, avantajul constând în capabilitatea refolo<strong>si</strong>rii vectorilor <strong>de</strong> test<br />

în fazele superioare ale <strong>de</strong>zvoltării <strong>si</strong>stemului şi po<strong>si</strong>bilitatea folo<strong>si</strong>rii aceloraşi<br />

tool-uri ca şi pentru testele <strong>de</strong> tip HiL sau testele <strong>de</strong> drum. Protocolul XCP a<br />

fost <strong>de</strong> asemenea înglobat în funcţia S. Pentru <strong>si</strong>mularea unui mediu <strong>de</strong><br />

testare cât mai apropiat <strong>de</strong> realitate, s-au implementat mo<strong>de</strong>le pentru diferite<br />

părţi electronice ale <strong>si</strong>stemului embed<strong>de</strong>d: porturi <strong>de</strong> intrare/ieşire,<br />

convertoare ADC/DAC, memorii EEPROM, drivere PWM, comunicaţii CAN,<br />

senzori <strong>de</strong> temperatură, pre<strong>si</strong>une etc. S-a implementat <strong>de</strong> asemenea o interfaţă<br />

grafică pentru teste manuale, accesul la variabilele interne ale <strong>si</strong>stemului<br />

embed<strong>de</strong>d făcându-se cu ajutorul interfeţei XCP. În final s-a obţinut un mediu<br />

<strong>de</strong> testare SiL pentru un <strong>si</strong>stem embed<strong>de</strong>d <strong>de</strong> control automat pentru turaţia<br />

unui motor <strong>de</strong> curent continuu.<br />

4.1. Mo<strong>de</strong>lul V multiplu<br />

Testarea <strong>si</strong>stemelor embed<strong>de</strong>d nu înseamnă numai testarea codului<br />

executabil. Sistemul este <strong>de</strong> obicei <strong>de</strong>zvoltat într-o secvenţă “fază <strong>de</strong> produse”,<br />

<strong>de</strong>venind din ce în ce mai real. Prima dată este <strong>de</strong>zvoltat un mo<strong>de</strong>l care<br />

<strong>si</strong>mulează comportamentul <strong>si</strong>stemului cerut. Când mo<strong>de</strong>lul <strong>de</strong>zvoltat se<br />

dove<strong>de</strong>şte a fi corect, pe baza lui se <strong>de</strong>zvoltă prototipul. Hardware-ul<br />

15


experimental este treptat înlocuit <strong>de</strong> cel real, până când <strong>si</strong>stemul ajunge la<br />

forma lui finală, ce va fi folo<strong>si</strong>tă pentru producţia <strong>de</strong> masă. Motivul <strong>de</strong>rulării<br />

acestor faze intermediare în elaborarea <strong>si</strong>stemului, constă în faptul că este mai<br />

ieftin şi mai rapid <strong>de</strong> modificat software-ul şi hardware-ul la nivelul<br />

prototipului, <strong>de</strong>cât modificarea produsul final. Pentru un efort minim şi costuri<br />

reduse ar fi i<strong>de</strong>al ca aceste modificări să fie făcute la nivelul mo<strong>de</strong>lului.<br />

Mo<strong>de</strong>lul V multiplu, bazat pe cunoscutul mo<strong>de</strong>l V (Spillner, 2000), este<br />

un mo<strong>de</strong>l <strong>de</strong> <strong>de</strong>zvoltare care ia în con<strong>si</strong><strong>de</strong>rare fenomenul <strong>de</strong>scris anterior. În<br />

principiu, fiecare fază <strong>de</strong> proiectare (mo<strong>de</strong>lare, prototip, produs final) urmează<br />

un ciclu complet <strong>de</strong> <strong>de</strong>zvoltare V, incluzând proiectare, <strong>de</strong>zvoltare şi testare.<br />

Pe <strong>de</strong> altă parte, anumite <strong>de</strong>talii tehnice nu pot fi testate foarte bine pe<br />

mo<strong>de</strong>l şi trebuie testate pe prototip. De aceea, există relaţii clare între mo<strong>de</strong>lul<br />

V multiplu şi diferitele meto<strong>de</strong> <strong>de</strong> test. Mo<strong>de</strong>lele <strong>de</strong>zvoltate în faza <strong>de</strong> mo<strong>de</strong>lare<br />

sunt testate folo<strong>si</strong>nd „testele mo<strong>de</strong>lului” (MT) şi „Mo<strong>de</strong>l-in-the-Loop” (MiL). În<br />

faza <strong>de</strong> <strong>de</strong>zvoltare a prototipului meto<strong>de</strong>le <strong>de</strong> testare sunt HiL şi SiL. Testarea<br />

SiL presupune testarea software-ului real incluzând toate restricţiile legate <strong>de</strong><br />

resurse (<strong>de</strong> exemplu, operaţii întregi pe 8 sau 16 biţi) într-un mediu complet<br />

<strong>si</strong>mulat.<br />

Faza <strong>de</strong><br />

mo<strong>de</strong>lare<br />

MT = mo<strong>de</strong>l test<br />

MiL = mo<strong>de</strong>l-in-the-loop<br />

RP = rapid protoyping<br />

SiL = software-in-the-loop<br />

HiL = hardware-in-the-loop<br />

ST = system test<br />

MT/Mil<br />

RP SiL<br />

Figura 4.1 Procese <strong>de</strong> testare ce arata tranziţia <strong>de</strong> la mo<strong>de</strong>lare la produsul final.<br />

4.2. Testarea în faza <strong>de</strong> <strong>de</strong>zvoltare a prototipurilor<br />

Testarea în faza <strong>de</strong> implementare a prototipului are ca şi scopuri:<br />

• Validarea mo<strong>de</strong>lelor obţinute pin <strong>si</strong>mulare (obţinute în faza anterioară -<br />

cea <strong>de</strong> mo<strong>de</strong>lare).<br />

• Verificarea caracteristicilor <strong>si</strong>stemului cu cele din cerințe.<br />

• Implementarea unei unităţi pentru pre-producție.<br />

16<br />

HiL<br />

ST<br />

Faza <strong>de</strong><br />

prototip<br />

Faza <strong>de</strong><br />

pre-producţie


4.3. Conceptul arhitecturii mediului <strong>de</strong> testate SiL<br />

împlementat în Matlab/SIMULINK<br />

Arhitectura mediului <strong>de</strong> testare SiL este prezentată în Figura 4.2,<br />

scopul fiind implementarea ei ca şi mo<strong>de</strong>l Matlab/SIMULINK. S-a urmărit<br />

obţinerea unui mediu <strong>de</strong> testare virtual, cu costuri reduse şi performanţe<br />

ridicate. Arhitectura implementată este un concept nou, dar tool-urile folo<strong>si</strong>te<br />

pe procesul testării fiind standard. În acest fel, datele obţinute corespund<br />

standardului ASAM, putând fi corelate cu cele obţinute prin testare HiL sau<br />

testele <strong>de</strong> drum.<br />

S-a urmărit compilarea codului <strong>si</strong>stemului embed<strong>de</strong>d <strong>de</strong> la nivelul<br />

Aplicației într-o funcție S care să emuleze <strong>si</strong>stemul <strong>de</strong> operare, partea <strong>de</strong> LLD<br />

(Low Level Driver) și protocolul XCP. Una din constrângerile esențiale este<br />

păstrarea nemodificată a codului supus testelor.<br />

Figura 4.2 Arhitectura mediului <strong>de</strong> testare SiL.<br />

Emularea software-ului în funcția <strong>de</strong> tip S face po<strong>si</strong>bilă integrarea ei<br />

într-un mo<strong>de</strong>l Simulink, alături <strong>de</strong> proces, <strong>de</strong>zvoltând astfel un mediu <strong>de</strong><br />

testare SiL. Suplimentar, conform conceptului, avem nevoie <strong>de</strong> implementarea<br />

unei interfețe grafice pentru efectuarea testelor manuale și un tool <strong>de</strong> testare<br />

pentru măsurarea și calibrarea variabilelor software-ului <strong>si</strong>stemului embed<strong>de</strong>d.<br />

17


4.3.1. Implementarea XCP<br />

XCP este o interfaţă standard pentru măsurarea şi calibrarea unităţilor<br />

<strong>de</strong> control (ECU) din electronica auto. Termenul <strong>de</strong> calibrare este unul generic<br />

ce acoperă cerinţe legate <strong>de</strong> măsurare, ajustarea valorilor şi programarea<br />

flash-urilor ECU-rilor.<br />

Testarea <strong>si</strong>stemelor embed<strong>de</strong>d din electronica auto se bazează pe accesul<br />

la valorile interne ale ECU folo<strong>si</strong>nd protocolul XCP prin intermediul unui tool<br />

<strong>de</strong> măsurare şi calibrare (ex. CANApe). Pentru implementarea nivelului<br />

transport pentru mediul <strong>de</strong> testare SiL s-a ales TCP/IP via Ethernet, o soluţie<br />

performantă şi fiabilă. Diagrama bloc a implementării standardului XCP pe<br />

Ethernet via TCP/IP este prezentată în Figura 4.3.<br />

Figura 4.3 Arhitectura protocolului XCP pe Ethernet via TCP/IP.<br />

În <strong>de</strong>zvoltarea mediului <strong>de</strong> testare SiL, pentru interfaţa XCP, master-ul<br />

este con<strong>si</strong><strong>de</strong>rat ca fiind tool-ul folo<strong>si</strong>t în testare (în cazul nostru CANApe), iar<br />

slave-ul este partea echivalentă a standardului XCP implementată în funcția S<br />

din mo<strong>de</strong>lul Simulink al mediului <strong>de</strong> testare SiL<br />

Deoarece <strong>si</strong>mularea nu este în timp real, este nevoie <strong>de</strong> o corelare între<br />

timpul <strong>de</strong> achiziţie al masterului şi al slave-ului.<br />

4.3.2. Implementare scheduler OS (Operating System)<br />

Sistemul <strong>de</strong> operare folo<strong>si</strong>t pentru <strong>de</strong>zvoltarea aplicaţiei este<br />

OSEK/VDX. Modul <strong>de</strong> implementare a <strong>si</strong>stemului <strong>de</strong> operare OSEK/VDX este<br />

prezentat în Figura 4.4. S-a urmărit menţinerea codului original pentru<br />

implementarea task-urilor aplicaţiei, părțile emulate fiind scheduler-ul<br />

<strong>si</strong>stemului <strong>de</strong> operare şi accesul la periferice.<br />

Figura 4.4 Arhitectura <strong>si</strong>stemului <strong>de</strong> operare OSEK/VDX.<br />

18


Scheduler-ul <strong>si</strong>stemului <strong>de</strong> operare a fost mo<strong>de</strong>lat ca şi în diagrama bloc<br />

din Figura 4.5, ca parte integrantă a meto<strong>de</strong>i mdlOutputs<br />

Figura 4.5 Emularea <strong>si</strong>stemului <strong>de</strong> operare.<br />

Schedulerul este implementat doar pentru cazul în care taskurile sunt<br />

<strong>de</strong>finite ca non-preemtive (un task nu poate fi întrerupt <strong>de</strong> un alt task,<br />

indiferent <strong>de</strong> prioritatea acestuia) şi astfel alese, încât ele să nu se întrerupă<br />

reciproc, fiind chemate la intervale diferite <strong>de</strong> timp. Oricum, chiar şi o<br />

implementare <strong>de</strong> tip preemtive a taskurilor (taskurile se pot întrerupe unul pe<br />

celălalt în funcție <strong>de</strong> priorități) nu ar fi o problemă pentru mediul <strong>de</strong> testare<br />

SiL, modul <strong>de</strong> execuţie al codului funcţiei S fiind <strong>de</strong> o asemenea manieră<br />

conceput, încât toate funcţiile se execută la fiecare chemare, <strong>de</strong>zavantajul<br />

constând în creşterea timpului <strong>de</strong> <strong>si</strong>mulare.<br />

4.3.3. Emularea perifericelor <strong>si</strong>stemului embed<strong>de</strong>d<br />

Emularea perifericelor s-a făcut în interiorul meto<strong>de</strong>i mdlOutputs().<br />

Metoda mdlOutputs() este apelată <strong>de</strong> către motorul <strong>de</strong> <strong>si</strong>mulare Simulink la<br />

fiecare pas al <strong>si</strong>mulării. Interfaţa dintre funcţia S şi restul mo<strong>de</strong>lului Simulink<br />

se face prin vectorii <strong>de</strong> intrare şi ieşire ai funcţiei S, vectori acce<strong>si</strong>bili<br />

utilizatorului din interiorul meto<strong>de</strong>i mdlOutputs(). Aceşti vectori sunt<br />

actualizaţi la fiecare pas <strong>de</strong> <strong>si</strong>mulare cu valorile dorite: vectorii <strong>de</strong> intrare cu<br />

valorile corespunzătoare furnizate <strong>de</strong> la celelalte sub<strong>si</strong>steme ce interacţionează<br />

cu funcţia S, iar vectorii <strong>de</strong> ieşire cu valorile rezultate în interiorul meto<strong>de</strong>i din<br />

rularea codului utilizatorului (în cazul nostru software-ul <strong>si</strong>stemului<br />

embed<strong>de</strong>d). Pentru a avea acces la aceste valori folo<strong>si</strong>nd funcţiile modificate <strong>de</strong><br />

la nivelul LLD-ului, s-au creat buffere <strong>de</strong> intrare şi ieşire, buffere ce <strong>si</strong>mulează<br />

funcţionarea hardware a perifericelor. Aceste buffere au fost implementate ca<br />

şi structuri, numărul <strong>de</strong> câmpuri fiind egal cu numărul <strong>de</strong> intrări/ieşiri<br />

implementate pentru fiecare periferic. S-au implementat buffere pentru<br />

următorele periferice: ADC, DI, PEC, CAN ca şi întrări, respectiv DO, PWM,<br />

CAN ca şi ieşiri.<br />

19


Figura 4.6 Emularea perifericelor <strong>si</strong>stemului embed<strong>de</strong>d.<br />

4.3.4. Compilarea şi linkeditarea automată a funcţiei S<br />

Procesul <strong>de</strong> obţinere a funcţiei S a fost <strong>de</strong>zvoltat ca un proces automat,<br />

un<strong>de</strong> orice componentă poate fi adăugată doar prin <strong>de</strong>finirea ei în fişierul cu<br />

componentele ce trebuie compilate. Scriptul a fost implementat în programul<br />

Perl, iar ca şi compilator s-a folo<strong>si</strong>t Microsoft Visual Studio 6. Diagrama<br />

procesului automat <strong>de</strong> obţinere a funcţiei S este exemplificat în Figura 4.7.<br />

Figura 4.7 Procesul <strong>de</strong> generare a funcţiei S.<br />

4.3.5. Facilităţi <strong>de</strong> rulare pas cu pas a codului funcţiei S<br />

Pentru a putea face <strong>de</strong>bugging pentru funcţia S generată, aceasta<br />

trebuie să aibă <strong>si</strong>mbolurile <strong>de</strong> <strong>de</strong>bugging incluse în executabilul *.mexw32.<br />

Pentru acest lucru, ea trebuie compilată având opţiunea –d activată în fişierul<br />

ce conţine opţiunile <strong>de</strong> compilare ale funcţiei S. Executabilul astfel obţinut se<br />

încarcă în Microsoft Development Environment, un<strong>de</strong> i se asociază ca şi<br />

program <strong>de</strong> execuţie Matlab.<br />

4.3.6. Implementarea interfeţei grafice pentru testele manuale (GUI)<br />

Implementarea interfeţei grafice s-a făcut folo<strong>si</strong>nd tool-ul Gui<strong>de</strong> din<br />

Matlab/SIMULINK. Orice modificare a parametrilor <strong>de</strong> control din interfaţa<br />

grafică modifică parametrii corespunzători din mo<strong>de</strong>lul Simulink on-the-fly,<br />

20


folo<strong>si</strong>nd metoda CallBack. Parametrii ce trebuie măsuraţi sunt afișați în<br />

interfaţa grafică prin asocierea unui listener pentru fiecare eveniment generat<br />

în momentul updatării blocului în Simulink (Display sau Scope) ce<br />

monitorizează valoarea respectivă. Listener-ul este un fişier <strong>de</strong> tip *.m care<br />

execută anumite operaţii, în cazul nostru actualizarea parametrilor din GUI.<br />

4.4. Generarea testelor automate<br />

Generarea automată a vectorilor <strong>de</strong> test se face folo<strong>si</strong>nd scripturi<br />

implementate în Phython, vectori care se pot folo<strong>si</strong> mai <strong>de</strong>parte pentru testele<br />

funcționale în circuit. Fiecare script implementat rulează <strong>si</strong>mularea, rulează<br />

CANApe, setează vectorii <strong>de</strong> test la intrare, citeşte datele şi le compară cu cele<br />

vali<strong>de</strong>, rezultatul fiind un fişier raport. Avantajul constă în uşurinţa cu care se<br />

generează testele <strong>de</strong> integrare şi regre<strong>si</strong>e, pornind <strong>de</strong> la fiecare test individual,<br />

conceput în timul <strong>de</strong>zvoltării software-ului. În procesul <strong>de</strong> testare automată<br />

Phython este masterul, mediul <strong>de</strong> testare SiL şi CANApe fiind slav-ul. De<br />

reţinut faptul că din punct <strong>de</strong> ve<strong>de</strong>re al protocolului XCP implementat,<br />

CANApe este con<strong>si</strong><strong>de</strong>rat slave, iniţializarea programelor <strong>de</strong> către Phython<br />

trebuie făcută în următoarea ordine: Simulink (mediul <strong>de</strong> testare SiL) şi<br />

CANape.<br />

4.5. Mediul <strong>de</strong> testare SiL – Rezultate experimentale<br />

Mediul <strong>de</strong> testare SIL implementat s-a făcut pentru un <strong>si</strong>stem<br />

embed<strong>de</strong>d <strong>de</strong> control al turaţiei unui motor <strong>de</strong> curent continuu, al cărui<br />

hardware a fost <strong>de</strong>zvoltat în jurul microcontroller-ului C167CR [14]. Aplicaţia<br />

<strong>de</strong> control a fost <strong>de</strong>zvoltată pentru <strong>si</strong>stemul <strong>de</strong> operare OSEK/VDX, <strong>si</strong>stem <strong>de</strong><br />

operare care rulează pe microcontroller. Sistemul <strong>de</strong> operare folosește doar<br />

două taskuri din cele implementate: cel <strong>de</strong> 5ms, în care se calculează vi<strong>teza</strong> <strong>de</strong><br />

rotaţie a motorului şi cel <strong>de</strong> 10ms, pentru algoritmul <strong>de</strong> control şi transmiterea<br />

mesajelor pe CAN. Algoritmul <strong>de</strong> control implementat este <strong>de</strong> tipul PID.<br />

Mediul <strong>de</strong> testare SiL, implementat în Simulink, este prezentat în Figura 4.8.<br />

Folo<strong>si</strong>nd mediul <strong>de</strong> testare se pot <strong>de</strong>termina cu ușurință performanțele<br />

algoritmului PID, atunci când peste semnalul util se suprapune zgomot.<br />

Figura 4.8 Mediul <strong>de</strong> testare SIL.<br />

S-au implementat mo<strong>de</strong>le suplimentare pentru driverul PWM, senzorul<br />

<strong>de</strong> turaţie, driverul CAN <strong>de</strong> intrare/ieşire.<br />

21


Datele <strong>de</strong> ieşire, obţinute în urma <strong>si</strong>mulării, pot fi vizualizate fie prin<br />

urmărirea lor directă în Simulink, fie în interfaţa grafică. Accesul la<br />

variabilele locale ale ECU se poate face doar folo<strong>si</strong>nd CANApe. Ca şi exemplu,<br />

am luat spre verificare variabila <strong>de</strong> intrare, ce are ca rezultat turaţia<br />

motorului obţinută în urma emulării PEC-ului şi variabila <strong>de</strong> ieşire, ce<br />

furnizează informaţia legată <strong>de</strong> factorul <strong>de</strong> umplere a semnalului PWM.<br />

Eroarea dintre datele obţinute în CANApe (Figura 4.9 c), obţinute în Simulink<br />

(Figura 4.9 b) și cu cele obținute în interfața grafică (Figura 4.9 a) este 0.<br />

a.<br />

c.<br />

Figura 4.9 a. Datele <strong>de</strong> ieşire vizualizate cu interfaţa grafică; b. Datele <strong>de</strong> ieşire<br />

vizualizate direct in Simulink; c. Datele <strong>de</strong> ieşire vizualizate direct cu CANApe.<br />

22<br />

b.


Capitolul 5<br />

5. Concluzii finale și contribuții personale<br />

Evoluţia dinamică a pieţei echipamentelor electronice din industria auto,<br />

precum și nevoia implementării <strong>de</strong> funcții din ce în ce mai complexe în<br />

interiorul ECU, conduc la nece<strong>si</strong>tatea folo<strong>si</strong>rii <strong>de</strong> microcontrolere din ce în ce<br />

mai performante. Acest lucru face ca pon<strong>de</strong>rea software-ului <strong>si</strong>stemului<br />

embed<strong>de</strong>d <strong>de</strong>zvoltat să fie din ce în ce mai mare, existența unor medii <strong>de</strong><br />

proiectare și testare capabile să satisfacă complexitățile cerute, <strong>de</strong>venind din ce<br />

în ce mai necesară.<br />

Prin <strong>de</strong>zvoltarea acestei teze s-au urmărit reducerea costurilor <strong>de</strong><br />

<strong>de</strong>zvoltare și testare a <strong>si</strong>stemelor embe<strong>de</strong>d <strong>de</strong> control automate, urmând trei<br />

direcţii principale:<br />

• reducerea costurilor <strong>de</strong> producţie prin folo<strong>si</strong>rea <strong>de</strong> soluţii ieftine şi<br />

fiabile, prin optimizarea algoritmilor și implementarea lor pe µC<br />

cu resurse reduse;<br />

• reducerea timpului și costurilor <strong>de</strong>zvoltării codului, prin folo<strong>si</strong>rea<br />

generatoarelor <strong>de</strong> cod automate;<br />

• reducerea timpului și costurilor testării, prin <strong>de</strong>zvoltarea unor<br />

medii integrate <strong>de</strong> testare cu cost redus <strong>de</strong> tip SiL.<br />

În capitolul 2 s-a urmărit <strong>de</strong>terminarea şi implementarea unei meto<strong>de</strong><br />

<strong>de</strong> măsurare a frecvenţei pentru un domeniu <strong>de</strong> intrare cuprins între 1Hz şi<br />

10000Hz, cu o precizie mai mare <strong>de</strong> 1Hz pe întreg domeniu. S-au studiat trei<br />

meto<strong>de</strong> <strong>de</strong> măsură pentru care s-au evaluat performanțele legate <strong>de</strong> acuratețe<br />

și domeniu <strong>de</strong> măsură. Ele au fost testate experimental pe un <strong>si</strong>stem <strong>de</strong>zvoltat<br />

în jurul µC C167CR, <strong>de</strong>terminându-se frecvența maximă și timpii <strong>de</strong> ocupare ai<br />

microcontrollerului în cazul măsurării <strong>si</strong>multane a trei intrări. În scopul<br />

<strong>de</strong>terminării performanțelor legate <strong>de</strong> timpii <strong>de</strong> ocupare s-a implementat un<br />

program <strong>de</strong> monitorizare <strong>de</strong> tip profiler.<br />

Dintre meto<strong>de</strong>le studiate, raportându-ne la domeniul <strong>de</strong> măsură,<br />

rezultatele cele mai puțin satisfăcătoare sunt date <strong>de</strong> metoda II, nefiind<br />

recomandabilă implementarea acesteia în <strong>si</strong>stemele embed<strong>de</strong>d. Nici una din<br />

meto<strong>de</strong>le studiate nu poate fi implementată pentru măsurarea unei frecvențe<br />

cu acuratețea dorită pe întreg domeniul specificat.<br />

Performanțele meto<strong>de</strong>lor studiate sunt:<br />

• Metoda I – domeniul <strong>de</strong> măsură este limitat, el începând <strong>de</strong> la<br />

o frecvență <strong>de</strong> este între 38,1476Hz având o eroare absolută <strong>de</strong><br />

40Hz la frecvența <strong>de</strong> 10000Hz.<br />

• Metoda II îmbunătățită – domeniul <strong>de</strong> măsură este cel dorit,<br />

eroarea absolută la frecvența <strong>de</strong> 10000 Hz fiind <strong>de</strong> 40Hz.<br />

• Metoda III îmbunătățită – domeniul <strong>de</strong> măsură începe la 200<br />

Hz, eroarea absolută fiind <strong>de</strong> 0,8Hz la frecvența <strong>de</strong> 10000 Hz.<br />

Analizând datele furnizate <strong>de</strong> către profiler, din punct <strong>de</strong> ve<strong>de</strong>re a<br />

timpului optim <strong>de</strong> execuție, metoda nou propusă produce cea mai mică<br />

încărcare pe întreg domeniul (mai mică <strong>de</strong> 14,53%), <strong>de</strong>și timpul <strong>de</strong> execuție al<br />

23


utinelor este mai mare. Acest lucru se datorează unității PEC, care realizează<br />

transferuri între unitatea CAPCOM și vectorul <strong>de</strong> memorie fără ajutorul CPU.<br />

Deși implementarea meto<strong>de</strong>i noi este strâns corelată <strong>de</strong> µC C167CR și<br />

perifericele acestuia, ea poate fi transpusă și pentru alte tipuri <strong>de</strong><br />

microcontrollere.<br />

În capitolul 3 s-a urmărit <strong>de</strong>zvoltarea unei meto<strong>de</strong> prin care codul<br />

<strong>si</strong>stemului embed<strong>de</strong>d <strong>de</strong> control să fie generat automat din mo<strong>de</strong>lul Simulink<br />

folo<strong>si</strong>t în stadiul <strong>de</strong> mo<strong>de</strong>lare. De asemenea, s-a obținut o metodă validă prin<br />

care algoritmului <strong>de</strong> control cu parametrii acordați prin mo<strong>de</strong>lare este<br />

funcțional și la implementarea lui pe un <strong>si</strong>stem embed<strong>de</strong>d <strong>de</strong> control, prin<br />

generarea automată a codului din mo<strong>de</strong>l.<br />

Avantajul folo<strong>si</strong>rii mo<strong>de</strong>lelor în acordarea algoritmilor <strong>de</strong> reglaj constă<br />

în:<br />

• calitatea ne<strong>de</strong>structivă a testelor, potențialele riscuri și probleme<br />

ce pot apărea în lumea reală putând fi anticipate;<br />

• optimizarea costurilor prin reducerea timpilor <strong>de</strong> <strong>de</strong>zvoltare a<br />

software-ului <strong>si</strong>stemelor embed<strong>de</strong>d;<br />

• îmbunătățirea calității produselor.<br />

Generarea automată a codului direct din mo<strong>de</strong>lul Simulink este un<br />

proces <strong>de</strong>pen<strong>de</strong>nt <strong>de</strong> modul <strong>de</strong> implementare al mo<strong>de</strong>lului. Aceeași<br />

funcționalitate poate fi implementată în moduri diferite, codul rezultat prin<br />

generare automată fiind diferit. De aceea mo<strong>de</strong>lul trebuie implementat <strong>de</strong> o<br />

asemenea manieră încât codul obținut prin generare automată să fie optim.<br />

Acest aspect se poate obține prin două meto<strong>de</strong>:<br />

• un proces redundant care implică la fiecare pas modificarea<br />

mo<strong>de</strong>lului, generarea codului și compararea cu rezultatele<br />

anterioare. Deși obținea codului optim este un proces consumator<br />

<strong>de</strong> timp, obținerea în final a unui mo<strong>de</strong>l optim cu po<strong>si</strong>bilitatea<br />

folo<strong>si</strong>rii lui ca și referință în proiectele următoare duce la o<br />

scă<strong>de</strong>re a costurilor;<br />

• folo<strong>si</strong>rea codului <strong>de</strong>ja implementat și con<strong>si</strong><strong>de</strong>rat ca optim pentru<br />

anumite funcționalități ca și sursă pentru generatorul automat<br />

<strong>de</strong> cod.<br />

De obicei, procesul <strong>de</strong> generarea automată a codului este o combinație<br />

între cele două meto<strong>de</strong>.<br />

Meto<strong>de</strong>le folo<strong>si</strong>te pentru generarea automată a codului, precum și<br />

îmbunătățirile aduse, sunt exemplificate prin implementarea unui <strong>si</strong>stem<br />

embed<strong>de</strong>d <strong>de</strong> control a turației unui motor <strong>de</strong> curent continuu. Pentru<br />

implementarea mo<strong>de</strong>lului Simulink a acestui <strong>si</strong>stem, s-au <strong>de</strong>terminat pe cale<br />

empirică parametrii motorului <strong>de</strong> curent continuu. Parametrii obținuți folo<strong>si</strong>nd<br />

diferite meto<strong>de</strong> <strong>de</strong> măsură au o acuratețe bună, ei fiind folo<strong>si</strong>ți în mo<strong>de</strong>larea<br />

<strong>si</strong>stemului și în testarea funcțională prin mo<strong>de</strong>lare a algoritmului <strong>de</strong> control<br />

implementat. Pentru mo<strong>de</strong>larea <strong>si</strong>stemului în Simulink s-au implementat<br />

următoarele mo<strong>de</strong>le: mo<strong>de</strong>lul motorului <strong>de</strong> curent continuu, mo<strong>de</strong>lul driverului,<br />

mo<strong>de</strong>lul senzorului și mo<strong>de</strong>lul asociat algoritmului <strong>de</strong> control <strong>de</strong> tip PID.<br />

Pentru algoritmul <strong>de</strong> control s-au testat două implementări: folo<strong>si</strong>nd blocurile<br />

existente în Simulink și încapsularea codului algoritmului <strong>de</strong> control într-o<br />

funcție S. Validarea parametrilor măsurați s-a făcut prin:<br />

24


• compararea curbelor <strong>de</strong> funcţionare ale motorului obţinute prin<br />

<strong>si</strong>mularea mo<strong>de</strong>lului cu parametrii măsuraţi în Simulink cu cele<br />

oferite <strong>de</strong> producător;<br />

• compararea răspunsurilor la un semnal <strong>de</strong> tip treaptă pentru<br />

mo<strong>de</strong>lul <strong>si</strong>mulat și motorul <strong>de</strong> curent continuu real.<br />

Meto<strong>de</strong>le folo<strong>si</strong>te în acordarea algoritmilor <strong>de</strong> control pentru <strong>si</strong>steme<br />

embed<strong>de</strong>d au fost validate prin compararea rezultatelor experimentale cu cele<br />

practice. Probleme apărute sunt legate <strong>de</strong> metoda <strong>de</strong> discretizare aleasă pentru<br />

mo<strong>de</strong>lele motorului și complexitatea mo<strong>de</strong>lelor <strong>si</strong>mulate pentru senzor și driver.<br />

De asemenea, pentru mo<strong>de</strong>lul algoritmului <strong>de</strong> control pasul <strong>si</strong>mulării trebuie<br />

să fie i<strong>de</strong>ntic cu perioada <strong>de</strong> eșantionare a <strong>si</strong>stemului embed<strong>de</strong>d real.<br />

În scopul optimizării codului generat automat, precum și a po<strong>si</strong>bilității<br />

<strong>de</strong> integrare a codului <strong>de</strong>zvoltat <strong>de</strong> programator în software-ul final, s-au<br />

implementat cu succes funcții <strong>de</strong> tip S-inlined. Codul obținut în urma<br />

procesului <strong>de</strong> generare automată a fost implementat și testat pe un <strong>si</strong>stem<br />

embed<strong>de</strong>d <strong>de</strong>zvoltat în jurul microcontrollerului C167CR.<br />

În capitolul 4 s-a urmărit <strong>de</strong>zvoltarea unui mediu <strong>de</strong> testare SiL<br />

implementat în Matlab/Simulink, în scopul reducerii costurilor <strong>de</strong>stinate<br />

testării. Arhitectura propusă pentru implementare este un concept nou,<br />

urmărindu-se obținerea compatibilității cu tool-urile standard folo<strong>si</strong>te pentru<br />

testare în producție.<br />

Costul <strong>de</strong>zvoltării software-ului <strong>si</strong>stemelor embed<strong>de</strong>d nu este <strong>de</strong>pen<strong>de</strong>nt<br />

numai <strong>de</strong> efortul <strong>de</strong> implementare, ci și <strong>de</strong> calitatea lui. Calitatea software-ului<br />

<strong>si</strong>stemelor embed<strong>de</strong>d este a<strong>si</strong>gurată prin testarea acestuia. Îmbunătățirea<br />

calității testării corelată cu reducerea efortului alocat proiectării acestuia, duce<br />

la optimizarea costurilor <strong>de</strong>zvoltării <strong>si</strong>stemelor embed<strong>de</strong>d. Gă<strong>si</strong>rea <strong>de</strong>fectelor<br />

încă din faza <strong>de</strong> mo<strong>de</strong>lare, prin folo<strong>si</strong>rea meto<strong>de</strong>lor <strong>de</strong> testare <strong>de</strong> tip SiL și HiL,<br />

reduce costurile necesare reparării sau mascării <strong>de</strong>fectelor produselor finale.<br />

Pentru <strong>de</strong>zvoltarea conceptului mediului <strong>de</strong> testare SiL și validarea<br />

acestuia, s-a ales implementarea lui pentru un <strong>si</strong>stem embed<strong>de</strong>d <strong>de</strong> control<br />

automat pentru un motor <strong>de</strong> curent continuu. Software-ul <strong>si</strong>stemului<br />

embed<strong>de</strong>d supus testării este <strong>de</strong>zvoltat pentru microcontrollerul C167CR,<br />

rulând la nivelul Aplicație pentru <strong>si</strong>stemul <strong>de</strong> operare în timp real OSEK/VDX.<br />

Mediul <strong>de</strong> testare SiL a fost implementat în Simulink. Pentru aceasta s-a<br />

implementat o funcție S, în care este emulat scheduler-ul <strong>si</strong>stemului <strong>de</strong> operare<br />

și partea <strong>de</strong> LLD, în condițiile în care codul <strong>de</strong> la nivelul aplicație este menținut<br />

nemodificat. De asemenea, au fost implementate funcțiile ce fac transferul<br />

între vectorii <strong>de</strong> intrare/ieșire ai funcției S și variabilele <strong>de</strong> intrare/ieșire <strong>de</strong> la<br />

nivelul LLD. Codul <strong>de</strong> la nivelul LLD a fost modificat în scopul mascării<br />

erorilor generate <strong>de</strong> accesul memorie microcontrollerului. Procesul <strong>de</strong> generare<br />

al funcției S este <strong>de</strong>zvoltat folo<strong>si</strong>nd un script automat, integrarea noilor module<br />

făcându-se cu ușurință, prin <strong>de</strong>finirea lor în fișierele <strong>de</strong> compilare. S-a<br />

implementat, <strong>de</strong> asemenea, o interfață grafică pentru testarea manuală,<br />

comunicaţia între interfaţă şi mo<strong>de</strong>lul Simulink făcându-se folo<strong>si</strong>nd funcţii<br />

callback şi listener-uri asociate evenimentelor PostOutputs la nivelul<br />

blocurilor din Simulink.<br />

25


A<strong>si</strong>gurarea compatibilității vectorilor <strong>de</strong> test cu <strong>si</strong>stemele <strong>de</strong> testarea<br />

folo<strong>si</strong>te în etapele <strong>de</strong> <strong>de</strong>zvoltare ulterioare s-a făcut prin implementarea<br />

protocolului XCP, folo<strong>si</strong>nd ca nivel transport TCP/IP via Ethernet.<br />

Mediul <strong>de</strong> testare SiL astfel implementat este complet funcțional, având<br />

po<strong>si</strong>bilitatea rulării testelor în două moduri:<br />

• manual, prin folo<strong>si</strong>rea interfeței grafice implementate;<br />

• automat, folo<strong>si</strong>nd scripturi implementate în Phython.<br />

Dezvoltarea modului <strong>de</strong> testare automat reduce din timpul testării prin<br />

execuția rapidă a testelor <strong>de</strong> integrare și regre<strong>si</strong>e la fiecare adăugare a unei<br />

componente sau modificarea unei componente existente.<br />

Avantajele mediului <strong>de</strong> testare SiL, implementat în Simulink sunt:<br />

• a<strong>si</strong>gurarea unei meto<strong>de</strong> <strong>de</strong> testare non-distructive și low cost,<br />

toate aplicațiile putând rula pe același PC. Mai mult, mai multe<br />

medii <strong>de</strong> testare, pentru diferite <strong>si</strong>steme embed<strong>de</strong>d, pot rula pe<br />

același calculator (avantaj major față <strong>de</strong> HiL un<strong>de</strong> se folosește un<br />

mediul <strong>de</strong> testare pentru fiecare <strong>si</strong>stem embed<strong>de</strong>d);<br />

• implementarea protocolului XCP facilitează folo<strong>si</strong>rea acelorași<br />

tool-uri <strong>de</strong>-a lungul întregului proces <strong>de</strong> testare;<br />

• <strong>de</strong>terminarea erorilor ce apar între mo<strong>de</strong>lele algoritmilor <strong>de</strong><br />

control <strong>si</strong>mulate și cele implementate pentru <strong>si</strong>stemele embed<strong>de</strong>d<br />

din cauza erorilor <strong>de</strong> precizie datorate reprezentărilor diferite ale<br />

datelor (virgula mobilă pentru <strong>si</strong>mulatoare și virgulă fixă pentru<br />

<strong>si</strong>stemul embed<strong>de</strong>d).<br />

Dezavantajele mediului <strong>de</strong> testare SiL sunt în principal legate <strong>de</strong><br />

incapacitatea i<strong>de</strong>ntificării <strong>de</strong>fectelor generate <strong>de</strong> implementările hardware și<br />

impo<strong>si</strong>bilitatea <strong>de</strong>terminării timpilor <strong>de</strong> execuție a codului.<br />

Avantajele folo<strong>si</strong>rii aceloraşi tool-uri , atât pentru testele în faza <strong>de</strong><br />

mo<strong>de</strong>lare, cât și pentru testele <strong>de</strong> drum constau în:<br />

• po<strong>si</strong>bilitatea comparării rezultatelor obţinute în urma testărilor<br />

făcute cu diferite medii <strong>de</strong> testare (SiL, HiL sau reale);<br />

• reducerea costurilor <strong>de</strong> testare (nefiind nevoie <strong>de</strong> adaptarea<br />

vectorilor <strong>de</strong> test la alte tool-uri);<br />

• po<strong>si</strong>bilitatea implementării vectorilor <strong>de</strong> test încă din stadiile<br />

incipiente ale <strong>de</strong>zvoltării software.<br />

Pe tot parcursul tezei s-a urmărit o continuare în abordare pornind <strong>de</strong> la<br />

nivelul fizic, reprezentat <strong>de</strong> optimizarea performanțelor meto<strong>de</strong>lor <strong>de</strong> măsură și<br />

înglobarea lor ca și blocuri în generatoarele automate <strong>de</strong> cod, la nivel<br />

conceptual, reprezentat prin <strong>de</strong>zvoltarea conceptelor legate <strong>de</strong> generarea<br />

automată a codului și implementarea mediului <strong>de</strong> testare SiL.<br />

Prin elaborarea acestei teze <strong>de</strong> doctorat, autorul con<strong>si</strong><strong>de</strong>ră că s-au adus<br />

câteva contribuţii, <strong>si</strong>ntetizate după cum urmează:<br />

În capitolul 2 contribuțiile personale sunt legate <strong>de</strong> îmbunătățirea<br />

performanțelor meto<strong>de</strong>lor <strong>de</strong> măsură și constau în:<br />

• Determinarea prin <strong>si</strong>mulare și experimentață a performanțelor<br />

meto<strong>de</strong>lor <strong>de</strong> măsurare a frecvenței. În acest scop s-au <strong>de</strong>zvoltat<br />

aplicații Matlab pentru partea <strong>de</strong> <strong>si</strong>mulare și s-au implementat<br />

programe software pentru partea experimentală;<br />

26


• Propunerea unei meto<strong>de</strong> <strong>de</strong> măsurare a frecvenței care să a<strong>si</strong>gure<br />

performanțele cerute;<br />

• Evaluarea performanțelor meto<strong>de</strong>i implementate prin <strong>si</strong>mulare;<br />

• Implementare program pentru <strong>de</strong>terminarea experimentală a<br />

performanțelor meto<strong>de</strong>i implementate;<br />

• Implementare concept profiler pentru evaluarea timpului <strong>de</strong><br />

execuție a codului și a încărcării microcontrollerului;<br />

• Implementare cod profiler;<br />

• Implementare cod MATLAb pentru analiza datelor furnizate <strong>de</strong> către<br />

profiler.<br />

Contribuțiile legate <strong>de</strong> mo<strong>de</strong>larea <strong>si</strong>stemelor embed<strong>de</strong>d <strong>de</strong> control automate și<br />

generarea automată a codului folo<strong>si</strong>nd aceste mo<strong>de</strong>le sunt prezentate în<br />

capitolul 3, ele fiind:<br />

• Validarea mo<strong>de</strong>lului motorului <strong>de</strong> curent continuu cu parametri<br />

<strong>de</strong>terminați experimental prin două meto<strong>de</strong>;<br />

• Implementarea numerică a algoritmului <strong>de</strong> control PID într-o funcție<br />

<strong>de</strong> tip S, cu scopul folo<strong>si</strong>rii în mo<strong>de</strong>larea <strong>si</strong>stemului <strong>de</strong> control;<br />

• Analiza diferitor tipuri <strong>de</strong> implementări Simulink pentru mo<strong>de</strong>lul<br />

<strong>si</strong>stemului <strong>de</strong> control;<br />

• Implementarea <strong>de</strong> programe Matlab pentru prelucrarea datelor<br />

furnizate <strong>de</strong> xPC Target;<br />

• Implementarea funcțiilor <strong>de</strong> tip S-inlined pentru generarea automată<br />

a codului personalizat;<br />

• Dezvoltarea conceptului <strong>de</strong> generare automată a codului.<br />

Contribuțiile personale prezentate în capitolul 4 sunt legate <strong>de</strong> <strong>de</strong>zvoltarea<br />

mediului <strong>de</strong> testare SiL, ele fiind:<br />

• Dezvoltarea conceptului și a arhitecturii mediului <strong>de</strong> testare SiL în<br />

Matlab/Simulink;<br />

• Emularea <strong>si</strong>stemului <strong>de</strong> operare OSEK;<br />

• Implementarea protocolului <strong>de</strong> comunicare XCP ca parte integrată a<br />

mediului <strong>de</strong> <strong>de</strong>zvoltare SiL;<br />

• Implementarea conceptului <strong>de</strong> emulare a părții <strong>de</strong> LLD;<br />

• Implementare conceptului <strong>de</strong> testare automată pentru a facilita<br />

testele <strong>de</strong> integrare și regre<strong>si</strong>e;<br />

• Implementare interfeței grafice în Matlab pentru efectuarea testelor<br />

automate;<br />

• Implementarea conceptului <strong>de</strong> compilare și linkeditare automată a<br />

funcției <strong>de</strong> tip S;<br />

• Implementarea mediului <strong>de</strong> testare SiL în Matlab/Simulink pentru<br />

software-ul <strong>si</strong>stemului embed<strong>de</strong>d <strong>de</strong> control al turației unui motor <strong>de</strong><br />

curent continuu.<br />

Rezultatele obținute au fost validate în contractele <strong>de</strong> cercetare cu firma<br />

Continental GmbH, Germania, precum și în 12 articole publicate la conferințe<br />

internaționale.<br />

27


5.1. Perspective <strong>de</strong> <strong>de</strong>zvoltare<br />

Nece<strong>si</strong>tatea implementării unui număr din ce în ce mai mare <strong>de</strong> funcții<br />

într-un <strong>si</strong>stem embed<strong>de</strong>d din ce în ce mai compact, impune migrarea lor<br />

dinspre partea <strong>de</strong> hardware spre partea <strong>de</strong> software. Dezvoltarea manuală a<br />

codului <strong>si</strong>stemelor embed<strong>de</strong>d precum și testarea lor este un proces lent,<br />

generator <strong>de</strong> costuri suplimentare, care duc la scă<strong>de</strong>rea competitivității<br />

producătorilor. Soluția menținerii competitivității pe o piață din ce în ce mai<br />

dinamică, constă în reducerea timpilor <strong>de</strong> proiectare și îmbunătățirea calității<br />

produselor prin migrarea proiectării înspre partea <strong>de</strong> generarea automată a<br />

codului și testarea automată a lui.<br />

În scopul generării automate a codului, ca și perspective <strong>de</strong> <strong>de</strong>zvoltare la<br />

soluțiile propuse în această teză, se pot implementa funcții S-inlined pentru<br />

alte periferice sau blocuri funcționale ce pot fi implementate în microcontroller.<br />

De asemenea, se pot aduce îmbunătățiri și altor meto<strong>de</strong> <strong>de</strong> măsură specifice<br />

<strong>si</strong>stemelor embed<strong>de</strong>d și implementarea unor noi blocuri care să conțină codul<br />

sursă al noilor protocoale <strong>de</strong> comunicație standardizate în industria auto (<strong>de</strong><br />

exemplu protocolul SENT – Single Edge Nibble Trasmis<strong>si</strong>on). Acest lucru<br />

poate conduce în final la implementarea unui nou toolbox Simulink. Blocurile<br />

incluse în toolbox pot fi transpuse cu ușurință, cu scopul folo<strong>si</strong>i lor pentru<br />

generarea codului specific altor tipuri <strong>de</strong> microcontrollere.<br />

Ca și direcții <strong>de</strong> continuare a cercetării în domeniul testării automate,<br />

sunt i<strong>de</strong>ntificate următoarele:<br />

• emularea altor funcții hardware (<strong>de</strong> exemplu memorii, circuite <strong>de</strong> tip<br />

watchdog, etc.) și integrarea lor în mediul <strong>de</strong> testarea SiL existent;<br />

• <strong>de</strong>zvoltarea unui concept pentru implementarea duală într-un <strong>si</strong>ngur<br />

mo<strong>de</strong>l a mediilor <strong>de</strong> testare SiL și HiL, prin care alegerea <strong>si</strong>stemului<br />

<strong>de</strong> <strong>si</strong>mulare să se facă cu ușurință.<br />

• <strong>de</strong>zvoltarea unor concepte <strong>de</strong> îmbunătățire a timpilor <strong>de</strong> <strong>si</strong>mulare ale<br />

mediului <strong>de</strong> testarea SiL, prin optimizarea mo<strong>de</strong>lelor folo<strong>si</strong>te,<br />

folo<strong>si</strong>rea <strong>de</strong> diferiți pași <strong>de</strong> <strong>si</strong>mulare pentru mo<strong>de</strong>le diferite, în funcție<br />

<strong>de</strong> acuratețea obținută pentru fiecare mo<strong>de</strong>l.<br />

• <strong>de</strong>zvoltarea mediului <strong>de</strong> testare SiL pentru satisfacerea noilor cerințe<br />

impuse prin standardul AUTOSAR;<br />

• adaptarea arhitecturii SiL la arhitecturi la standar<strong>de</strong>le <strong>de</strong> testare ce<br />

vor fi impuse în viitor.<br />

5.2. Premii obținute<br />

SIITME2004 – Excellent presentation award for a young scientiest – Optimal<br />

placing of the <strong>de</strong>coupling capacitors on a PCB board<br />

ISSE 2006 – Excellent Poster Award for Young Scientists – OrCAD Link Tool<br />

for Automated Optical Inspection of Assembled Boards<br />

5.3. Publicații citate în teză<br />

1. Marius Muresan, Dan Pitica, Gabriel Chindris, " Performances<br />

Evaluation of Frequency Measurement Techniques in Automotive<br />

28


Industry", ISSE 2007, Cluj-Napoca, Romania, Pag: 187 - 191, DOI:<br />

10.1109/ISSE.2007.4432845<br />

2. Muresan Marius, Gabriel Chindris, Embed<strong>de</strong>d Bluetooth data<br />

acqui<strong>si</strong>tion system, SITTME2005, Cluj-Napoca, Romania, pg. 260-263,<br />

ISBN 973-713-063-4<br />

3. Muresan M., Pitica D., Simulating embed<strong>de</strong>d targets for efficient co<strong>de</strong><br />

implementation, Electronics Technology, 2009. ISSE 2009. 32nd<br />

International Spring Seminar, DOI: Digital Object I<strong>de</strong>ntifier:<br />

10.1109/ISSE.2009.5206997 , Pag: 1 – 4ă<br />

4. Chindris G., Muresan M., Deploying Simulink Mo<strong>de</strong>ls into System-On-<br />

Chip Structures Electronics Technology, 2006. ISSE '06. 29th<br />

International Spring Seminar, DOI: 10.1109/ISSE.2006.365120, Pag:<br />

313 - 317<br />

5. Chindris G., Pitica, D., Muresan M., Intelligent power control u<strong>si</strong>ng<br />

System-On-Chip <strong>de</strong>vices, Electronics Systemintegration Technology<br />

Conference, 2008. ESTC 2008. 2nd 1-4 Sept. 2008 Page(s):571 - 576<br />

Digital Object I<strong>de</strong>ntifier 10.1109/ESTC.2008.4684413 - IEEEXPLORE<br />

6. Muresan M., Pitica D., Chindris G., Calibration parameters principles<br />

for MATLAB S-functions u<strong>si</strong>ng CANApe, Electronics Technology, 2008.<br />

ISSE '08. 31st International Spring Seminar on<br />

DOI: 10.1109/ISSE.2008.5276436, Pag: 105 – 110<br />

7. Muresan M., Pitica D., Chindris G., U<strong>si</strong>ng Matlab xPC Target for<br />

Testing and Developing of Embed<strong>de</strong>d Control Systems U<strong>si</strong>ng Hardware<br />

in the Loop, Smart Applications & Tecnologies for Electronic<br />

Engineering, September 9-11, 2010, Alba Iulia, Romania, ISBN: 987-<br />

973-1890-27-2, Pag:87-88<br />

8. Chindris G., Muresan M., System Mo<strong>de</strong>lling for Advanced PWM Control,<br />

Smart Applications & Tecnologies for Electronic Engineering,<br />

September 9-11, 2010, Alba Iulia, Romania, ISBN: 987-973-1890-27-2,<br />

Pag:75-76<br />

9. Chindris G., Suciu A., Muresan M., High-entropy random number<br />

generators u<strong>si</strong>ng system on chip <strong>de</strong>vices, Electronics Technology, 2008.<br />

ISSE '08. 31st International Spring Seminar on 7-11 May 2008<br />

Page(s):280 – 283, Digital Object I<strong>de</strong>ntifier 10.1109/ISSE.2008.5276652<br />

10. Chindris G., Muresan M., Bipolar Junction Effects for High Entropy<br />

Data Harvesters, Symbolic and Numeric Algorithms for Scientific<br />

Computing, 2008. SYNASC '08. 10th International Sympo<strong>si</strong>um on 26-29<br />

Sept. 2008 Page(s):449 – 452 Digital Object I<strong>de</strong>ntifier<br />

0.1109/SYNASC.2008.90 – IEEEXPLORE<br />

11. Chindris G., Pitica D., Muresan M., Dynamic Re-Configuration Mo<strong>de</strong>l<br />

for System-On-Chip De<strong>si</strong>gn for Test and Testability, Electronics<br />

Systemintegration Technology Conference, 2006. 1stVolume 2, 5-7 Sept.<br />

2006 Page(s):1236 - 1241 Digital Object I<strong>de</strong>ntifier<br />

10.1109/ESTC.2006.280168 – IEEEXPLORE<br />

12. Muresan M., Pitica D., In Circuit Test Tool for FPGA boards u<strong>si</strong>ng IEEE<br />

1149.1, SIITME2006, Ia<strong>si</strong>, Romania, , ISBN 978-973-8961-23-4<br />

29


5.4. Publicații din domenii adiacente subiectului tezei<br />

1. Muresan M., Pitica D., Chindris G., OrCAD Link Tool for Automated<br />

Optical Inspection of Assembled Boards, Electronics Technology, 2006.<br />

ISSE '06. 29th International Spring Seminar on May 2006 Page(s):304<br />

308 Digital Object I<strong>de</strong>ntifier 10.1109/ISSE.2006.365118 –<br />

IEEEXPLORE<br />

2. Muresan M., Chindris G., PSoC dual sensor for pressure and<br />

temperature u<strong>si</strong>ng bipolar junction effects, Electronics Technology:<br />

Meeting the Challenges of Electronics Technology Progress, 2005. 28th<br />

International Spring Seminar on 0-0 0 Page(s):62 - 66 Digital Object<br />

I<strong>de</strong>ntifier 10.1109/ISSE.2005.1491000 - IEEEXPLORE<br />

3. Muresan M., Dan P., Gabriel C., Automated Optical Inspection tool<br />

u<strong>si</strong>ng the LPKF PCB mechanical prototyping machine, Electronics<br />

Systemintegration Technology Conference, 2008. ESTC 2008. 2nd 1-4<br />

Sept. 2008 Page(s):1359 - 1362 Digital Object I<strong>de</strong>ntifier<br />

10.1109/ESTC.2008.4684553 - IEEEXPLORE<br />

4. Marius M., Serban L., Ovidiu P., Mo<strong>de</strong>rn education methods in<br />

extracting power factor preregulator's parameters, Electronics<br />

Technology: Meeting the Challenges of Electronics Technology Progress,<br />

2004. 27th nternational Spring Seminar on Volume 3, 13-16 May 2004<br />

Page(s):393 - 397 vol.3<br />

5. Muresan Marius, Dan Pitica, Optimal placing of the <strong>de</strong>coupling<br />

capacitors on a PCB board, SIITME2004, Bucharest, Romania, pg. 30-34,<br />

ISBN 973-9463-83-5<br />

6. Chindris Gabriel, Horia He<strong>de</strong><strong>si</strong>u, Muresan Marius, Remote Access for<br />

Power Systems Quality Supervi<strong>si</strong>on - SIITME2005, Cluj-Napoca,<br />

Romania, ISBN 973-713-063-4, pg.117-121<br />

30

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!