Sisteme Rapide de Prototipare

12
Sisteme rapide de prototipare, pentru controlul convertoarelor electronice de putere

description

Utilizarea microcontrollerului Arduino, ca și generator de tensiune P.W.M. în timp real folosind Matlab Simulink...

Transcript of Sisteme Rapide de Prototipare

Sisteme rapide de prototipare, pentru controlul convertoarelor electronice de putere

Coordonator: Dr. Ing. l. Teodosescu PetreAutori: Pintilie Lucian NicolaeRapolti Laszlo

1. Introducere: n ce const conceptul de prototipare rapid? ntr-un sistem de testare n timp real, reprogramabil utilizat pentru simularea unor regimuri de funcionare n condiii de laborator. (ex. generarea unor forme de und cu frecvene variabile, i factor de umplere variabil).Prin nsui faptul c este reprogramabil, el poate fi adaptat n funcie de cerin la orice tip de aplicaie electronic (chiar i alta dect convertorul electronic ex. comanda unui motor pas la pas), aceast idee ne sugereaz o flexibilitate remarcabil dar util n testarea i generarea de prototipuri rapide. (Adic: respectivul ansamblu de: procesoare de semnal, convertoare analog digitale, i digital analogice, senzori i traductoare, microprocesoare, memorii i magistrale de comunicare, poate ndeplini mai multe funcii la un moment dat: exemplu: variator de frecven, sistem de condiionare al semnalului, discretizor digital, osciloscop sau plac de achiziie, interfaare ntre calculator i elementul de execuie, sistem de urmrire i detecie de semnal)Sistemul deci se compune din: parte fizic (hardware), i parte logic (software). De la nceput precizm c, lucrul cu semnalele de comand se face la nivel numeric (discret sau digital) i n mic parte se achiziioneaz semnale analogice (ex. de la un traductor analogic, o mrime fizico electric).Partea fizic se compune (n cazul de fa) din dou microcontrollere de tip Arduino (varianta Sainsmart Uno, i Due). Acestea ndeplinesc rolul de sisteme programabile (regulatoare programabile), dar i de comunicare n mod serial (ceea ce le face s interacioneze cu computerul n timp real). Compunerea acestor dou plci se face din: Procesor ATmega sau ATmel, intrri analogice, intrri digitale, ieiri digitale i PWM, i n cazul variantei Due, ieire digital - analog (DAC i CAN), cristal de quartz ca i generator de tact de ceas, i alte protecii la scurtcitcuit, filtre i componente de condiionare.Partea logic (software) se constituie din rutinele deja ncrcate n memoriile microcontrollerelor, plus un soft specializat de programare orientat la nivel grafic (ex. Matlab Simulink). Interfaarea ntre aplicaia dat i computerul personal (sau programul scris i rulat n Matlab Simulink, se face cu ajutorul interfeei serial a dispozitivului Arduino (COMx n sistemele de operare Microsoft Windows, i /dev/tty. n sistemele pe baz de UNIX). Matlab Simulink permite o analiz i simulare n timp real pe baza modelelor matematice (de aici numele de Math + Laboratory), astfel nct se pot obine regimuri speciale de funcionare (ex. simularea regimului de scurt circuit trifazat la bornele unui transformator cobortor). De asemenea comunicarea serial n timp real poate fi utilizat la achiziionarea de date pe un termen scurt, (deoarece pe un termen ndelungat se prefer stocarea datelor n prealabil ntr-o memorie, i recitirea lor la un moment dat), util n msurare, sau reglare a unui proces.Rutina ncrcat n memoria microcontrollerului, este un soft la nivel mai inferior n ce privete rangul de acces intrare / ieire nspre procesor (adic este aproape de codul main, dar tradus din sintaxa n clar scris n ArduinoIDE, limbajul dedicat Arduino), care coordoneaz ntreag plac ce s fac i ce nu, ce s fac dac primete semnalul X etc... Aceste rutine de program sunt similare cu cele ale productorului unui sistem electronic programabil, adic firmware. Noi scriem firmware-ul n plac, iar plac execut NUMAI lista de comenzi prescrise n firmware. Prin aceasta deci se impun regulile de bun funcionare ale aparatului i tot aici se contureaz funciile pe care le are de ndeplinit placa.Logica prescris n Simulink, sau programul scris n Simulink are ca scop coordonarea sistemului n ansablu. Aici se configureaz tot aparatul (cele dou module Arduino), i se reglementeaz parametrii de comunicare ntre cele dou. De aici (din Simulink) pe baza blocurilor din diferite bibleoteci (libraries) se d rolul funcional al platformei de prototipare. Adic ce se construiete n Simulink, este executat de plcile Arduino.

2. Ce am construit noi? Am construit un astfel de sistem pe baza celor dou microcontrollere Arduino (varinta SainSmart Uno i Arduino Due).3. De ce am folosit dou plci Arduino?Am folosit dou deoarece, rutina de nalt frecven nu poate fi ntrerupt pentru eliberarea procesorului de sarcini n cazul achiziiei de date sau comunicrii serial (ceea ce face ca, m momentul rulrii programului achiziia s sar peste numrul de eantioane impuse, sau unda P.W.M. s aib stare de HIGH sau LOW continuu). Un alt motiv mai este pentru c, nc nu s-a dezvoltat un pachet COMPLET de interfaare a plcii Arduino Due cu Matlab Simulink doar parial; Sperm ca pe viitor s se poat obine un bloc de control al convertorului analogic digital i celorlalte funcii specifice lui Due. Un alt motiv l poate constitui i faptul c Arduino Due este capabil de achiziie de date pe port serial n timp real, ca i predefinit, sau funcie nativ. i cel mai plauzibil motiv pentru care am ales Arduino Due ca plac de interfaare, este pentru c are n componena sa un convertor Digital la Analogic, ce poate genera tensiuni cu forme de und diferit (ceea ce aveam nevoie la controlul factorului de umplere al PWM-ului generat de Arduino Uno, mai exact l-am folosit (pe Arduino Due) pe post de poteniometru comandat din calculator)4. Ce aplicaie am urmrit s obinem? Controlul unui convertor DC-DC din calculator mai precis din Matlab Simulink. Pe baza generrii unei tensiuni P.W.M. (Pulse Width Modulation, sau Modulare n durata de impuls sau n factor de umplere), am dat comand unui tranzistor din componena unui convertor Buck. Prin varierea factorului de umplere din calculator, vom obine un curent / tensiune mai mic / mai mare, totul pe cale digital. Frecvena de 100 kHz a undei PWM, a fost generat de Arduino SainSmart Uno, cu ajutorul unei bibleoteci denumit PWM.h, dezvoltat n cadrul comunitii Open-Source (comunitatea fondatoare a dispozitivelor Arduino). Funcia FastPWM apelat din bibleoteca PWM.h, controleaz multiplicatoarele divizoarele de frecven ale cristalului cu quartz, astfel nct se obin frecvene de ordinul kiloHerilor, zecilor de kiloHeri, sutelor de kiloHeri. Dezavantajul major este atenuare impus de reactanele parazite, dar i de limita rspunsului amplificatoarelor din componena circuitelor de condiionare ale PWM.Factorul de umplere al PWM-ului este variabil, impus de ctre valoarea numeric generat la aplicare unei tensiuni de la 0 V la 5 V la intrarea analogic, ceea ce duce la activarea comparatoarelor din componena unui convertor pe 10 bii (0 1023), bit cu bit n funcie de nivelele de tensiune i rezoluia convertorului analogic digital. Numrul de bii comand valoarea factorului de umplere prin rutina scris n memoria controllerului pe cale matematic cu preluare n variabil...Arduino Due n schimb, are rolul de preluare de la calculator, prin portul serial al comenzii din Matlab Simulink. Are ncrcat n memoria sa un program de rutin, care implementeaz comunicarea serial a calculatorului cu convertorul Digital la Anolog. Spre deosebire de convertorul Analog la Digital, acesta, primete din Matlab Simulink, pe conexiune serial, un cadru de bii. Acesta este tradus n valori de la 0 la 1024 prin intermediul unui convertor de date (binar la ntreg pe 10 bii frr semn sau Unsigned 10 bit integger). n rutina de control, mai este implementat funcia de Serial Receive astfel dar, se poate obine prin portul serial comanda numeric a convertorului Digital la Analog. Numrul este stocat ntr-o variabil, iar apoi comand convertorul Digital la Analog la fiecare tact de ceas, bit cu bit, pn la valoarea stabilit de tensiune.Programul logic de comand din Matlab Simulink are n componena lui un bloc de comunicare de tip Serial Transmit, ceea ce permite interconexiunea ntre funcia apelat n rutina din memoria Arduino Due (Serial Receive) i calculatorul personal. De asemenea n componena lui mai apare i un poteniometru virtual de tip Slider Gain, care funcioneaz dup modelul discretizrii numerice matematice. Acesta transmite nspre Serial, valori discrete de la 0 la 255. Ceea ce este important de notat este c: fraciile zecimale trebuie convertite n ntreg pe 8 bii fr semn (uint8) pentru compatibilitate cu portul Serial, pentru asta folosim blocul data type conversion; De asemenea pentru comanda n Arduino numrul trebuie dus pn la valoarea 1024, ceea ce impune o formul de calcul mai special n rutina de program scris n memoria Arduino Due. (ex. * ).Ceea ce rezult n urma acestor operaii, este un reglaj n bucl deschis a factorului de umplere al unei tensiuni P.W.M. la frecvena de 100 kHz.

Concluzie: Sistemele microprogramabile pot nlocui n mare parte elementele de electronic analogic doar prin modificarea unor parametrii de soft. Avnd la baz Matlab Simulink, putem construi modelele matematice ale aparatelor necesare, astfel nct platforma de prototipare s poat ndeplini funcia descris de blocurile funcionale.

...sintaxa n clar scris nArduinoIDE, limbajul dedicat Arduino...

...programul scrisi rulat n Matlab Simulink...

...Pe baza generriiunei tensiuni P.W.M....

...comand convertorulDigital la Analog la fiecare tact de ceas,bit cu bit, pn la valoarea stabilit de tensiune...

...ceea ce duce la activareaComparatoarelor din componena unui convertorpe 10 bii (0 1023), bit cu bit n funcie de nivelele detensiune i rezoluia convertorului analogic digital...