Sari la conținut

Flopi

Members
  • Număr conținut

    53
  • Înregistrat

  • Ultima Vizită

  • Zile Câștigate

    3

Orice postat de Flopi

  1. Pe arduino nu am lucrat... eu m-am jucat cu uC-uri Atmel in C si asm folosind CVAVR. Trebuie sa fie ceva prin documentatia arduino dar nu am timp de sa ma apuc (si) de asta.Vad ca ai scri codul in C, daca gasesti cum se definesc intreruperile pentru arduino sau pentru compilatorul pe care il folosesti, te pot ajuta...
  2. Pentru a creste viteza (substantial) recomand ca citirea analogica si calculul legat de MPPT sa le faci folosind intreruperi (de exemplu poti initia conversia ADC printr-o intrerupere de ceas, succesiv pe fiecare canal, iar calculul sa il faci in intreruperea ADC...). In programul principal te poti ocupa relaxat de afisare, de comanda PWM, etc.
  3. Daca vrei sa faci limitare puls cu puls ai putea sa folosesti un traf de curent cu doua primare, unul pentru fiecare ramura, cu sensuri contrare. Taful de curent va functiona tot in regim push-pull, deci iti trebuie redresare dublu alternanta la iesirea lui. Nu am experienta cu invertoare comerciale dar cred ca ar merge...
  4. Nu prea inteleg calculul tau... oricum 12V ar trebui sa fie 13.8V - cat are un acumulator cu Pb proaspat luat de la incarcat (asta daca nu vrei sa il conectezi la masina cu motorul pornit unde ai 14.5V). Frecventa driverului de 25Khz e cam mica si rezulta un Ton max =1/F=40us (presupun factor de umplere 100%). Pentru un miez cu 2.5cmp, 12V, 25Khz si 2 spire rezulta B=0.96T... Deci nu stiu cum ai calculat... Tabelele fabricantilor sunt foarte utile pentru alegerea lui B. In ele sunt stabilite desitatile campului in functie de frecventa astfel incat pierderile in cupru sa fie comparabile cu pierderile in miez. Pentru un miez necunoscut e ok sa alegi 0.24T iar la frecventa poti sa mergi fara frica pana pe la 40-50Khz (eu am facut unul pe un tor de la chinezii la 80Khz). Singurul risc ar fi pierderile in miez, care cresc cu frecventa, dar nu cred ca e cazul... Deci pentru miezul tau cu 2.5cmp, la 13.8V si 40Khz(driver) ar rezulta cam 6 spire (pt. B=0.23T).
  5. E vorba despre alegerea densitatii maxime a campului magnetic (B) impreuna cu estimarea corecta a tensiunii maxime la care va fi alimentat si a T_on_max, in calculul numarului de spire: N=U*Tmax/(S*B). Saturatia miezului e data de atingerea densitatii maxime a campului magnetic suportata de miez (in jur de 0.35T pentru ferita). Dimensiunea miezului nu conteaza atat cat incape bobinajul si poate disipa pierderile.
  6. Saturarea nu apare la forward din cauza ca trafurile nu sunt indentice. Atat cat este bine calculat numarul de spire si sunt luate marje generoase nu ar trebui sa apara probleme. Micile diferente se transforma in caldura (pierderi) - se va incalzi unul mai mult decat celalalt. Majoritatea invertoarelor folosesc trafuri cu primarele in paralel (cu mosfeti si condensatoare pentru fiecare dar comanda comuna). Cele mai multe nu au bobina de iesire. Inductanta de scapari e destul... Iti spun din experienta ca e mai bine asa.
  7. Nu e vorba despre protectia datelor, asta se poate realiza activand un fusebit. Bootloader-ul este un soft care practic pune uC-ul sa se autoprogrameze folosind un canal de comunicatii implementat (USB, COM, ETHERNET, etc.). De asemena poate ajuta la debug-ul unui program. Bootloaderul ruleaza doar in uC si de obicei vine cu platforma de dezvoltare (ex. Arduino). Dupa teste, programul se pune direct in controler folosind un programator extern, asta pentru ca bootloaderul ocupa si el memorie si introduce unele intarzieri in pornirea softului propriuzis.
  8. Masurarea analogica nu pune probleme. Se poate face in afara intreruperii. Provocarea este la ajustarea prin calcule a timpilor din tabel, mai ales ca nu poti sa reduci timpii astia sub durata intreruperii, iar calculele lungesc intreruperea.. deci iata problema... Nu zic ca nu se poate, dar trebuie facut un compromis intre calitatea semnalului, numarul de trepte de reglaja a amplitudinii, viteza buclei etc. Cu alte cuvinte multe experimente si simulari... Cam toate uC din gama 16F sunt cam lente pentru aplicatia asta, desi cred ca se poate... dar fara bucla de control. Cel de la ST, sugerat de tine, nu il cunosc dar pare destul de puternic. Totusi, sugestia mea ar fi sa mergi pe unul care are un sistem PWM mai avansat. Eu am experimentat cu 18F14k22. E tot ieftin si are un PWM destul de ok. Pentru treburi serioase merita sa incerci un dsPIC, de exemplu 30F1010/2020 - cu asta poti sa faci ce reactie vrei... In matlab nu folosesc un toolbox anume. Am scris efectiv un program (destul de stufos) care face calculele. Puteam sa il scriu la fel de bine si in C, dar sunt foarte multe facilitati "la gata" in matlab si in plus am ceva experienta cu el din facultate. Refacerea semnalului prin filtrare am facut-o tot cu matlab-ul (analitic) - acelasi program care genereaza timpii simuleaza si refacerea semnalului.
  9. Asta asa e. Eu nu am incercat cu IGBT pana acum dar mosfetii (IRFP460) stau la mine reci si la 200W. Vezi sa nu fie de la fusebitul CKOPT...
  10. @nel65 Asta e fisierul atmega8_sin_12M_20K_94_1u-DT_NETESTAT.hex.zip NU am testat nimic asa ca NU baga 5KW din prima.... @cristi7521 Pot sa iti dau tabelul (cu putina maiestrie il poti extrage singur din hex) dar nu cred ca te ajuta prea mult. In tabel intarzierile sunt date in numarul de perioade de tact la 12Mhz. Relevant ar fi tabel cu intarzieri in us sau ceva asemanator. Daca esti interesat, am sa modific programul sa iti generez un tabel personalizat. Am nevoie de frecventa SINPWM pe care ti-o propui si eventual cum vrei sa implementezi asta (si pe ce). Daca nu exista interes aici poti sa o faci pe privat... dar poate mai sunt si altii interesati... Referitor la PWM-ul controlerului, sunt mai multe motive. Unul l-am descris intr-un post anterior... sinusul ar trebui generat in trepte (intervale in care PWM-ul are aceilasi factor de umplere). De aici probleme cu armonici nedorite, etc. Un alt motiv este faptul ca aceste controlere nu suporta iesiri (PWM) complementare cu dead time. Asa ca am ales sa generez manual toate 4 iesirile, iar factorul de umplere se modifica la fiecare impuls. Pentru a intelege foarte bine mecanismul de refacere prin filtrare a semnalului util, ai nevoie de ceva notiuni de teoria semnaleor (sau ce denumire o avea acum prin facultati)...
  11. La ultima varianta, cea de 12Mhz, dead time-ul este undeva in jur de 600ns. Eu zic ca e suficient pentru orice IGBT, dar daca vrei il modific...
  12. Esantioane nu e corect spus (mai degraba impulsuri). Metoda e descrisa destul de detaliat pe net. Sinusoida (o semiperioada) se intersecteaza cu un semnal dinte de fierastrau . Frecventa acestuia este egala cu frecventa dorita pentru semnalul SIN-PWM. De aici rezulta duratele impulsurilor on, respectiv off pentru semnal. Calcularea valorilor o fac cu o implementare proprie in matlab. Astea se trec intr-un tabel si se folosesc in programul din controler pentru generarea intarzierilor (eu merg pe intreruperea TMR0... dar nu e relevant). NU folosesc functiile PWM ale controlerului, generarea se face puls cu puls. Pentru iesire generez pe o latura a puntii H impulsuri complementare cu dead time (pentru asta folosesc NOP-uri) si pe cealalta impulsuri de 50 Hz (tot cu dead time). Cam asta e in linii mari... Implementarea asta (pe uC-uri ATMEL/PIC slabute) nu e pentru incepatori in ale uC-urilor si in ale programarii. Trebuie sa cunoasteti si sa intelegeti destul de profund arhitectura microcontrolerului deoarece timpii sunt critici. Eu am folosit un mix de C si asm. Ofer cu placere sprijin pentru entuziasti, in limita timpului disponibil, dar NU am sa ofer niciodata surse... SUCCES !
  13. Eu zic sa analizezi mai bine treaba cu driverul... Traful in cazul asta nu se prea aplica iar driverul discret e o provocare (mai ales partea flotanta). Cat despre "cumulul de valori medii" sunt de acord cu tine. Totul tine de cerintele pe care le impui invertorului. Daca se pune accent pe distorsiuni armonice mici si eficienta maxima, atunci nu ai ce cauta cu trepte (rare), Explicatia, in mare, este ca treptele introduc o armonica la f=50hz * nr. de trepte, care cu cat e mai aproape de 50 Hz e mai greu de filtrat (si ineficient economic). Primul meu proiect de invertor sinus a fost cu PIC16F84, in vreo 80 trepte Ulterior, cautand o solutie cat mai ieftina si eficienta am ajuns la Attiny si atmega8. Aici am implementat un SINPWM pe 3 nivele .(vezi https://www.wpi.edu/Pubs/E-project/Available/E-project-042711-190851/unrestricted/PWM_Techniques_final.pdf) Cele mai avansate invertoare folosest DSP-uri in care este implementata o bucla PID ( sau mai multe ) pentru a compara in timp real iesirea cu un semnal sinusoidal de referinta. (http://ww1.microchip.com/downloads/en/AppNotes/01279B.pdf)
  14. @andreigradu - nu stiu cum ai obtinut oscilograma aia... in poze nu vad nici o punte H, driver, etc. In softul asta variatia PWM se face discret ( de la puls la puls) si nu in trepte (https://en.wikipedia.org/wiki/Pulse-width_modulation) Am programat mai multe versiuni, pentru frecvente diferite, de dragul stiintei si pentru ca la un moment dat nu aveam quart de o anumita frecventa...
  15. E vorba de CKOPT la Atmega8 - trebuie activat. Conform datasheetului acesta creste amplitudinea oscilatorului si cupleaza condensatori interni pentru quart. Trebuie folosit pentru frecvente mai mari de 8Mhz si pentru medii zgomotoase (ca un invertor ...). Valoarea quartului ESTE CRITICA. Am programat variante pentru 12 si 20Mhz. Nel65 - poti sa postezi si ultima varianta pe 12Mhz daca ai verificat-o si e ok.
  16. Ambele se programeaza similar. Daca ai un port COM (nativ nu USB) poti folosi ceva de genul: http://diy4fun.blogspot.ro/2009/01/simple-serial-programmer-for-avr.html http://www.lancos.com/siprogsch.html Simplu si foarte eficient...
  17. Incearca sa pui un NTC de 10ohmi pe iesire (sau 2 in serie). Ar trebui sa preia curentii mari tranzitorii la conectarea unei sarcini...
  18. Daca e vorba de uC, nu e o mare complicatie... dar se pare ca nu e atat de practica precum credeam la inceput. E nevoie in continuuare de un curent minim, altfel driverul (partea flotanta) nu functioneaza. In concluzie am sa renunt la metoda asta. In loc, am sa folosesc senzorul de curent pentru o protectie la curent invers - controlerul are comparator integrat care actioneaza direct si asincron pe iesiri. Momentan sunt in stadiu de sursa digitala de tensiune, reglabila si cu limitare de curent - poate functiona ca generator de curent. Cand o perfectionez, o sa o postez separat - cred ca se preteaza ca sursa de laborator.
  19. @matache La eoliana e ceva mai complicat. Trebuie luata in calcul si inertia mecanica, iar maximul de putere depinde de mai multe variabile. Aici trebuie sa ma mai punct cu teoria. Oricum maximul la panou solar e mult mai usor de obtinut si mentinut indiferent de ilumunare. Puterea la o iluminare data, functie de curentul extras, e o parabola (corectati daca gresec). Deci in orice directie ma deplasez, pe axa curentului, puterea creste in directia maximului si scade invers. Asta vreu sa folosec in soft, iar cautarea sa fie permanenta. Cred ca se poate folosi si la eoliene, plecand de la o turatie minima in sus si cu o constanta de timp mare astfel incat sa se stabilizeze mecanic elicea...
  20. Este evident ca regimul MPPT nu se poate mentine pentru oricare din modurile ideale de incarcare ale acumulatorilor. NU se poate face MPPT decat daca energia data de panouri la un moment dat este mai mica decat cea "inghitita" de acumulatori in acel moment (indiferent de regimul de incarcare). In plus graficul ala de incarcare ideala nu este posibil decat daca energia data de panouri este MAI MARE decat cea absorbita de acumulatori. Deci totul este un compromis. Trecand peste asta, dupa mine, cautarea maximului in programul de mai sus poate fi imbunatatita. Programul cauta regimul optim al panoului parcurgand umplerea de min la max, mentine respectiva valoare un timp si apoi cauta iar in acelasi fel. La fiecare cautare se pierde energie. Eu as parcurge de la min la MPPT +1, apoi in jos pana la MPPT -1 si tot asa permanet. In felul asta sistemul se "invarte" constant in jurul MPPT. E usor sa gasesti nod im papura... Poate ma apuc de o implementare de la 0 cand o sa am timp... Alta problema ar fi partea de putere. Pentru 60A, cu siguranta trebuie aleasa alta arhitectura mai eficienta. Ma gandesc la un buck sincron - mosfeti N, un IR2110 sau similar, si uC. Aici vreu sa fac apel la experienta lui Smilex. Eu am gandit ca buck-ul sa treaca de la sincron la clasic (folosind dioda din mosfetul dinspre masa) in functie de curentul de incarcare, pentru a evita scurtcircuitarea acumulatorului de catre mosfetul dinspre masa. Toata treaba asta o poate face uC-ul dar nu stiu daca driverul flotant poate functiona in regimul asta...
  21. Eu unul as merge pe ir2153, uC si buck. Cred ca iese mult mai simplu/ieftin decat ce ai in schema aia. Daca tot e vorba de productie de serie eu as schimba si procesorul. De exemplu PIC18F14K22, este de vreo 3 ori mai ieftin, si e mult mai potent pe partea de PWM. Cu el poti sa faci un buck sincron (cu un ir2110 ca driver), pentru ca stie de PWM half bridge cu dead time si la mai mult de 100Khz... Daca are prea putin pini poti comanda serial display-ul (cu un 74HC595 de exemplu) sau sa treci la fratele lui mai mare 18f43k20. E putin de "investit" in soft dar cred ca merita. Cat despre spike-urile uriase, nu cred ca nu se poate rezolva... (am o banuiala ca e din soft)... Spor !
  22. Nici eu nu am experimentat. Schema interna simplificata difera in pdf-uri. In asta e mai completa...sg3525.pdf
  23. Legat de modificarea soft-start, cred ca merge si fara. Conform pdf-ului comada SD actioneza si asupra logicii de la iesire, concomitent cu descarcarea (lenta) condensatorui de softstart. Deci, dupa cum spune producatorul, ar trebui sa opreasca instantaneu iesirile pana la urmatoarea tranzitie (pulse by pulse).
×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.