pátek 7. dubna 2017

Jednočinný zesilovač s EBL21

Po mnoha letech jsem se rozhodl postavit ještě jeden elektronkový zesilovač. Už mi přišlo dlouho, koukat na EBL21 jen ve vitríně, protože nemám žádné šasi na ně v provozu.
Celé roky jsem používal OTL s EL34 anebo tranzistorový Ge zesilovač vyjímečně. Chtěl jsem postavit něco malého, co se vejde na stůl, úsporného aby se to dalo provozovat běžně jako zesilovač k PC a aby to výkonově překonalo OTL.
Poslední podmínka je složitější než se zdá, OTL má RMS výkon sice 250mW ale poslechově odpovídá asi 4W zesilovači díky specifickému chování elektronek v limitaci.
Přemýšlel jsem nad mnoha variantami, i nad použitím jiných elektronek, ale nakonec jsem se rozhodl postavit s EBL21 a EF22 nebo ECH21 (kdyby nestačilo zesílení) úplně klasický jednočinný koncový stupeň.
Začal jsem vybíráním výstupních transformátorů, chtěl jsem využít hotové, výkonově budou vyhovovat. Hledal jsem druhé do páru k některým co mám, anebo rovnou dva stejné. Nakonec jsem pobral dvojici Phillips PW30362.
Síťové trafo z radia výkonově vyhovuje, dlouho jsem váhal u řešení usměrňovače, AZ1, plynové diody, selen, historický můstek anebo křemíkové diody. AZ1 by bohužel zvýšila příkon asi o 1/3 a byla by zřejmě nejslabší částí zesilovače. Můstek 250V/75mA z radia by šel, ale nakonec jsem zvolil průmyslové KYY85.
Elektrolyty jsem dal šroubové TC519, po pár hodinách formování sníženým napětím fungují perfektně a zesilovač nebručí.
Konstrukce je na pájecích lištách, odpory se podařilo najít shodného typu ze začátku 50. let.
Zesilovač hrál na první zapnutí, hodnoty součástek nebylo třeba ladit. Větší problém byl s výběrem dvou přibližně shodných EBL21, nakonec jsem musel dát do vitríny jinou protože tam byla jedna z mála dobře fungujících.
Nejvíce mě překvapila výkonová rezerva zesilovače oproti OTL, ale na odlišnou frekvenční charakteristiku a hlavně malý výstupní odpor si budu zvykat asi hodně dlouho. Silně uvažuju o zavedení některého typu zpětné vazby, např záporné proudové, aby se zvuk přiblížil právě OTL, na které jsem zvyklý.
Zajímavé bylo zkoumání výstupních transformátorů. primár se jeví jako vinutí s odbočkou na 10% impedance, tedy se moc nehodí na ultralineární zapojení. Spíš mi přijde, že bylo použito jako tlumivka pro napájecí zdroj, případně pro zpětnou vazbu, chtělo by to dohledat, kde byly osazeny.
První varianta byla tedy zapojit mřížku g2 na odbočku 90% (0% se uvažuje jako napájení, 100% jako anoda). Z principu ultralineárního zapojení se odbočkou mění charakteristika elektronky z čistě pentodové na odbočce 0% na čistě triodovou na odbočce 100% (viz. kniha Věrný Zvuk).
Protože cílem bylo přiblížit se OTL, aby změna pro poslech nebyla tak velká, volil jsem spíš triodovou charakteristiku.
Nakonec to vedlo k experimentu s přepínáním mezi pentodovým a triodovým zapojením a opakovanému poslechu. Z toho vyšlo trochu zvláštní řešení zapojit g2 až za anodu a tedy na odbočku 110%. Poslechově se mi to jeví zatím nejpříjemnější ale zřejmě ještě dojde ke změnám.

 Schema jednoho kanálu a zdroje

 Rozmístění na šasi je trochu nelogicky obráceně než cesta signálu, ale je to hlavně kvůli tomu, aby EBL21 neohřívali elektrolitické kondenzátory. EF22 jsou za chodu vlažné protože mají velkou plochu skla vzhledem k malému proudu žhavení jen 0,2A.

 Podařilo se ještě najít odpory ALWAYS a TESLA "always" z konce 40. let.

Na vnitřní stěně anody EBL21 jsou vidět proužky kam dopadají elektrony skrz stínící mřížku.

Tak mi tak dlouho vrtalo hlavou proč to hraje tolik jinak oproti OTL až jsem se rozhodl zlepšit přenosovou charakteristiku zpětnou vazbou.
Vazbu jsem zavedl celkovou prostě z výstupu do katody vstupní elky. Aby byla záporná, musí být výstupní napětí ve fázi se vstupním, proto jsem do schématu označil začátky vinutí výstupního trafa. trafo jsem vrátil do triodového zapojení, odbočka 90%.
 Schéma se zpětnou vazbou pomocí R12

 Naměřené charakteristiky. Červená je ze stavu, kdy R6 nekonečno a R12 2K0. Žlutá pro R6 = 3K2 a R12 = 12K. Samozřejmě silnější vazba snižuje zesílení, které už takhle není příliš vysoké pouze u dvou stupňů.

sobota 6. srpna 2016

Analogový měnič 48/230V s plechovým transformátorem

Byl jsem požádán o návrh měniče 48/230V s plechovým transformátorem, robustní řešení, pokud možno bez procesoru.
Po úvodních nezdarech a několika otestovaných řešení, pokusů o co nejúspornější řešení z pohledu počtu součástek a bohužel i několika proražených můstcích a driverů jsem dospěl k jednomu dostatečně bytelnému řešení.

Analogový generátor sinusovky
Byl nápad použít generátor XR2206, ovšem ten jsem zavrhl především kvůli vysoké ceně a potom také kvůli divnému chování a to ujíždění střední hodnoty při změně amplitudy. Nicméně do výsledného zapojení se bezproblému dá přivést signál z libovolného generátoru, pouze nutmo myslet na to, že jeho amplituda je referencí pro výstupní napětí.
Nakonec jsem zůstal opět u Wienova můstku. Na něm je stále co vylepšovat, ovšem cílem byla jednoduchost a jedním nekompromisním způsobem, jak získat kvalitní sinusovku z mála součástek se ukázalo použití germaniových diod jako stabilizátoru amplitudy. Germaniový přechod má mírně odlišnou charakteristiku od křemíkového.
Vzhledem k teplotní závislosti Ge přechodu je vhodnější použít Schottku např. BAT48. Napětí výstupu pak neujíždí při změnách teploty na desce a sinusovka je stejně dobrá. Jde o to, aby úbytek na nelineárním prvku byl malý vzhledem k amplitudě výstupního napětí, pak tento úbytek způsobuje jen malé zkreslení.
Přičinnou nestability nebyly jen Ge diody ale především mnohaotáčkový trimr. Doplněn o paralelní odpor potlačující vliv trimru a napětí drží.

Driver H mostu
Nejprve jsme hledal jeden IO pro celý H můstek. Byl tu velmi hezký nápad použít IRS2453, což je vlastně čtyřkanálová obdoba IR2153. Nápad spočíval v tom řídit ho v režimu sigma-delta modulace injektáží proudu do časovacího kondenzátoru. To sice funguje velmi pěkně, ale pokud se injektáž provádí napětím přes odpor, pak není výstupní střída lineární s přiváděným napětím. Prakticky to má za následek obtížné využití rozsahu modulace, můstek dává malý rozkmit napětí. Takové zapojení si nicméně vystačí pouze s IRS2453 a jedním OZ jako zdrojem sinusovky. Schemata pro zajímavost na konci.

Další volbou byl HIP4080. Obsahuje na rozdíl od HIP4081 komparátor, který opět ušetří počet součástek. Zjistil jsem ale, že dodaný je přeznačený HIP4081, takže jsem komparátory musel dát externí. Zapojení fungovalo, výhodou je interní generátor deadtimu. Nicméně jsem při zapnutí zdánlivě bezdůvodně několikrát přišel o můstek zřejmě absencí obvodu pomalého náběhu nebo proudového omezení. Obvod také docela topí při buzení výkonnějších tranzistorů.

Cílem bylo nakonec budit i páry IRFP4110 např. takže jsem zvolil výkonnější drivery a to IRS21864, což je 14 nohá verze IRS2186, větší pouzdro má povolenou větší výkonovou ztrátu, proud 4A. Zapojení se tedy rozšířilo o externí obvod deadtimu z CMOS 4093, Schmitt NAND.

DC-offset
Plechové trafo, ale vlastně síť obecně, protože tam vždy nějaké jádro je, potřebuje nulovou stejnosměrnou složku. U procesorového řízení je to samozřejmost a nemusí se vůbec řešit, protože přesnost délky pulzů je daná pouze přesností driverů. U analogového řešení to vůbec samozřejmé není.
DC-servo je perfektní zapojení pro zesilovače, ale zde vzniká problém s velkou časovou konstantou RC článků nutných pro správnou funkci, někdy se musí nabít a musí se nabít signálem přímo z běžícího můstku pokud hrozí že deadtime nebude shodný na všech kanálech. Trafo se ale nedá s offsetem spustit, za můstkem by muselo být silové relé a čekat na ustálení DC serva.

Trimr na manuální ladění nemá smysl, vždy se nakonec začně přesycovat. To se nejlépe pozná podle zvuku z trafa a narůstajícího klidového proudu.

Řešením se ukázalo především nahradit LM324 vhodnějším a rychlejším LF347, který má symetrický koncový stupeň. Generátor trojúhelníku s ním tedy má střední hodnotu v polovině napájecího napětí, jako Wienův můstek. To u LM324 nenastane.

Nicméně na odstranění případného offsetu se zde podílí hlavně PI regulátor, výhoda oproti DC servu je rychlost správného nastavení.

Unipolární vs. Bipolární modulace
Jedná se o dva odlišné způsoby modulování PWM H můstku. Bipolární je prosté vzájemné invertování obou polomůstků. Pravý horní je buzen stejným signálem jako levý dolní atd..
Podle literatury je ale pro můstek se sinusovou modulací vhodnější unipolární řízení, kdy se invertuje nikoli PWM, ale vstupní analogový signál. Produkuje méně harmonických. Při kladné půlvlně např. se přepíná podle PWM pouze pravý můstek zatímco levý má sepnutý dolní trvale. Při záporné půlvlně je pravý horní sepnutý a PWM se pustí do levého polomůstku, ovšem inverzně.

Dalším vylepšením je myšlenka, že by se jeden polomůstek mohl spínat obdelníky 50Hz a sinusovku by dotvářel druhý můstek. Výsledkem je výrazné omezení spínacích ztrát, protože spínací frekvence PWM je obvykle minimálně o dva řády větší než síťová.

Zde je nutno si uvědomit, že při přepnutí můstku buzeného pouze 50Hz obdelníky je třeba na druhé straně ihned invertovat PWM, aby transformátor viděl příslušnou půlvlnu správného tvaru.
Jednoduchým řešením je prostě posouvat trojúhelníkový signál o výšku amplitudy tak, jak je na snímku osciloskopu dole.

Posun se zde ve schematu realizuje děličem R12, R13. Jejich poměr musí odpovídat poměru R5 a R9. Nicméně PI regulátor to dorovná i při odlišných hodnotách.

Proudové omezení je velmi primitivní a slouží především k bezpečnému startu měniče. Jinak nemá praktický význam protože jiný než odporový spotřebič by při snížení napětí vzal ještě větší proud.

Napětí 13,5V je jednoduše získáno lineárním stabilizátorem s proudovým omezením na 300mA, který zachrání drivery při průrazu můstku.

Tlumivky
Pokud se staví měnič z 12V, tak rozptylová indukčnost transformátoru obvykle stačí na dostatečné vyhlazení proudu. Pokud se stejné zapojení aplikuje na 48V zjistíme, že plechovým trafem prochází až příliš ochotně přímo PWM a přidání vyhlazovacího kondenzátoru na výstup způsobí překvapivé velmi rychlé přehřívání primáru 300VA trafa naprázdno prostě jalovým proudem vysoké frekvence.
Vyhlazovací tlumivky jsou nutnost, rozptylová indukčnost trafa nestačí. Jako jádra vyhoví železoprachové toroidy např z PC zdrojů.
Zde se uplatní výhoda unipolární modulace a to v tom, že zvlnění proudu na spínací frekvenci vyjde pro stejnou tlumivku poloviční než při bipolární, protože druhá polovina můstku drží, nepřipíná opačnou polaritu, tlumivka vidí poloviční VF napětí.

Schema

 Finální konstrukce v šasi

Porovnání s měničem s feritovými trafy

 Běh s 300VA 220/24V transformátorem na tenkých M plechách

 Posuv trojúhelníkového signálu na komparátoru

 Výstupní sinusovka měřená přímo na sekundáru trafa.

 Ladění s malým toroidem 230/30V

Provizorní chladič, testování v zátěži 300W
Video v zátěži

Závěr
První vývojové verze díky deformovanému průběhu, nebo přesycování trafa způsobovaly poměrně něpříjemný hluk z trafa to, že měnič funguje správně se pozná tak, že trafo ztichne takřka úplně. V sestaveném prototypu vznikají zatím největší ztráty na železoprachových tlumivkách. Ztráty na polovodičích jsou menší než u měniče s feritovými trafy, který jsem stavěl předtím hlavně díky absenci vysokonapěťového střídače.
Řešení zpětné vazby z primáru trafa přináší kompaktní provedení, deska má pouze 4 dráty, vstup a výstup, ale nutností je tvrdé trafo. Je počítáno s toroidem.
Stabilizace amplitudy Wienova článku se dá řešit jinak a lépe, ale zde nabízí hezké uplatnění předností germaniových polovodičů.
Literatura:

Pro zajímavost nebo inspiraci přikládám i schemata z předchozích nepříliš úspěšných vývojových variant.




pondělí 25. července 2016

Měnič 48 / 230V verze 2

Jedná se o druhou, finální verzi tohoto: http://arambajk.blogspot.cz/2016/02/menic-48v-230v.html
Na stejnou desku jsem osadil odlišné výkonové součástky. Mosfety IRFP4568 a do střídače IGBT IRGP4068, pro přesnější měření Rail to rail OZ AD8656.

Dále jsem navinul tlumivku o trojnásobné indukčnosti, což umožnilo provoz střídače na 32kHz a výrazně snížilo ztráty na IGBT i úbytek napětí vlivem deadtimu.

Měnič se chová lépe, a tak jsem dokončil šasi a z pototypu udělal hotové zařízení.

Aktuálním problémem je fakt, že se jedná o zdroj velmi tvrdé sítě hlavně díky dvojité tlumivce na jediném jádru, takže připojení spotřebičů se spínaným zdrojem bez softstartu, které se bohužel občas vyskytují není možné. Je třeba udělat tlumivky oddělené, protože je počítáno s tím, že síť vždy nějakou minimální indukčnost má.

Do následující verze také plánuji galavanické oddělení vstupu od řízení a řízení od výstupu, což omezí možný vznik zemních smyček.








Závěr:
Dalším zlepšením bude galvanické oddělení řídící části od silové a také oddělení baterek od výstupního napětí. Vyhlazovací kondenzátory výstupního napětí bude možno připojit až za bočník, tedy bude lépe fungovat měření proudu výstupním můstkem, tam je také vhodné dodat zesilovač.

3kW verze s galvanickým oddělením je ve stádiu návrhu.

čtvrtek 18. února 2016

DTC - Přímé řízení momentu asynchronního motoru

DTC – Direct Torque Control, přímé řízení momentu. Jedná se o hysterezní metodu řízení toku a momentu určenou především pro asynchronní motory s kotvou nakrátko. Verze popsaná zde vychází z U1 – I modelu.
Schema
 Obr. 1: Blokové schema

1) Měření proudu

Prostorový vektor:



Platí:







Složky proudu získáme měřením ve dvou fázích pomocí transformace Clarkové:



 , kde K volíme 2/3, dále pro vinutí bez vyvedeného středu platí




Výsledné výpočty obsažené v bloku transformace potom:





2) Měření napětí

Složky napětí získáme podle aktuální kombinace sepnutí obdobným způsobem jako složky proudu z napětí meziobvodu UM:





3) Výpočet toků:

Bloky realizují integraci napětí v čase.





Velikost toku je potom:



4) Výpočet momentu:

Bloky násobiček a sčítačka dají výsledný moment, který je třeba korigovat konstantou inverzní k té, co byla zanesena v bloku výpočtu složek proudů.
 
, kde pp je počet pólpárů.


5) Přepínací tabulka

Její výstupy přímo řídí konfiguraci sepnutí tranzistorů v třífázovém můstku. Na vstupech má hysterezní regulátory toku a momentu.
 
Obr. 2: Přepínací tabulka

Hysterezní regulátor toku rozhoduje o tom, kdy se má přepnout na následující prostorový vektor.
 



Pro menší žádaný tok se přepíná dříve a prostorový vektor se tedy pohybuje po menším šeštiúhelníku. Pro větší naopak. Cyklickým přepínáním pracovních oblastí je dosaženo točivého magnetického pole. Tokové vektory působí kolmo k cívkám statoru.

Hysterezní regulátor momentu potom rozhoduje o tom, jestli budou tranzistory sepnuté do aktivního stavu 1 až 6 nebo do konfigurace nulového fázového napětí, tedy stavu 0 nebo 7 podle toho, který je dosažen jediným přepnutím. Tímto řízením je v rámci hystereze dosažen konstantní, kruhový průběh momentu.

Výstupem přepínací tabulky jsou potom tři logické signály každý pro jednu fázi rozhodující o tom, jestli je sepnutý horní nebo dolní tranzistor v dané fázi.

6) Třífázový můstek

Tranzistory, nejčastěji IGBT, zajišťují rozstřídání stejnosměrného napětí meziobvodu podle signálů z přepínací tabulky na jednotlivé fáze asynchronního motoru. Uvedené schema je velmi zjednodušené, pouze pro definování polarity řídících signálů, chybí např. generování deadtimu.

Obr. 3: zjednodušené schema třífázového můstku
Závěr:
Z principu je patrné, že tranzistory nejsou řízeny PWM s fixní spínací frekvencí. Jak často dochází k přepínání je dáno především nastavením hystereze regulátoru momentu, který opakovaně spíná a vypíná aktivní a pasivní stav v oblasti, kde se dle přepínací tabulky zrovna nachází prostorový vektor a tím se snaží udržet žádaný moment motoru.

Šestiúhelník je možno zvětšovat až do maximálního omezeného napětím meziobvodu. Dále pak motor při vyšších otáčkách samovolně přechází do režimu odbuzování, tedy klesá moment.

Realizace v MCU
Chtěl jsem ze zvědavosti zkusit realizovat výpočet uvedený výše, který je vlastně přepisem odevzdávaného protokolu, v MCU na prototypové desce s 3f můstkem, který jsem do té doby používal se skalární regulací. Zde je schema, pár fotek a videa, jak to zatím vypadá. V příloze pak kousek upraveného kódu.




S namontovaným chladičem

Úvodní video ze začátků ladění, aneb když to konečně začalo nějak fungovat



Příloha:
Z průbehu vypočteného toku je vidět, že algoritmus nefungoval úplně koretně ještě a vnášel tam jistý offset. (vykresleno přímo z dat přenesených z MCU)

Příloha:
/* Transformace */
        I_alpha = I_a;
        I_beta = (I_a + 2*I_b);
        I_beta = I_beta*57735/100000;
 
/* Stanoveni fazovych napeti */
        switch(vektor)
        {
            case 0:
            {
                U_alpha = 0;
                U_beta = 0;
            }
            break;
            case 1:
            {
                U_alpha = U_m;
                U_beta = 0;
            }
            break;
            case 2:
            {
                U_alpha = U_m/2;
                U_beta = U_m*86603/100000;
            }
            break;
            case 3:
            {
                U_alpha = -U_m/2;
                U_beta = U_m*86603/100000;                
            }
            break;
            case 4:
            {
                U_alpha = -U_m;
                U_beta = 0;
            }
            break;
            case 5:
            {
                U_alpha = -U_m/2;
                U_beta = -U_m*86603/100000;
            }
            break;
            case 6:
            {
                U_alpha = U_m/2;
                U_beta = -U_m*86603/100000;
            }
            break;
            case 7:
            {
                U_alpha = 0;
                U_beta = 0;
            }
            break;
        }
        
    /* Vypocet slozek toku    */    
    psi_alpha = psi_alpha + U_alpha - I_alpha/Gs;
    psi_beta = psi_beta + U_beta - I_beta/Gs;     
    
    /* Vypocet toku    */
    psi_druha = psi_alpha*psi_alpha + psi_beta*psi_beta; //druha mocnina psi
    
    /* Vypocet druhe odmocniny */
    psi_b = 1 << (32-2);
  psi = 0;
  while (psi_b != 0)
    {
    if (psi_druha >= psi + psi_b)
        {
      psi_druha -= psi + psi_b;
      psi += psi_b << 1;
    }
    psi >>= 1;
        psi_b >>= 2;
  }
    
    /* Vypocet momentu */
    moment = (psi_alpha*I_beta/154 - psi_beta*I_alpha/154)*3/2; //130*154=20kHz => mNm
    
    /* Vyber sektoru */
    switch(sektor)
    {
        case 0:
        {
            if(psi_beta*1732 > psi_alpha*1000)
            {
                sektor = 1;
                otacky++;
            }
            if(-psi_beta*1732 > psi_alpha*1000)
            {
                sektor = 5;
                otacky--;
            }
        }
        break;
        case 1:
        {
            if(psi_alpha < 0)
            {
                sektor = 2;
                otacky++;
            }
            if(psi_beta*1732 < psi_alpha*1000)
            {
                sektor = 0;
                otacky--;
            }
        }
        break;
        case 2:
        {
            if(psi_beta*1732 < -psi_alpha*1000)
            {
                sektor = 3;
                otacky++;
            }
            if(psi_alpha > 0)
            {
                sektor = 1;
                otacky--;
            }
        }
        break;
        case 3:
        {
            if(psi_beta*1732 < psi_alpha*1000)
            {
                sektor = 4;
                otacky++;
            }
            if(psi_beta*1732 > -psi_alpha*1000)
            {
                sektor = 2;
                otacky--;
            }
        }
        break;
        case 4:
        {
            if(psi_alpha > 0)
            {
                sektor = 5;
                otacky++;
            }
            if(psi_beta*1732 > psi_alpha*1000)
            {
                sektor = 3;
                otacky--;
            }
        }
        break;
        case 5:
        {
            if(-psi_beta*1732 < psi_alpha*1000)
            {
                sektor = 0;
                otacky++;
            }
            if(psi_alpha < 0)
            {
                sektor = 4;
                otacky--;
            }
        }
        break;
    }
    
    /* Regulator toku */
    psi_delta = psi_zadane - psi;
    if(psi_delta > psi_epsilon)
    {
        psi_hystereze = 1; //tok nahoru
    }
    if(psi_delta < -psi_epsilon)
    {    
        psi_hystereze = 0; //tok dolu
    }
    
    /* Regulator momentu */
    moment_delta = moment_zadany - moment;
    switch(psi_stav)
    {
        case 0:
        {
            if(moment_delta > moment_epsilon)
            {
                psi_stav = 1;
            }
            if(moment_delta < -moment_epsilon)
            {
                psi_stav = 2;
            }
            moment_hystereze = 0;
        }
        break;
        case 1:
        {
            if(moment_delta <= 0)
            {
                psi_stav = 0;
            }
            moment_hystereze = 1; //moment nahoru
        }
        break;
        case 2:
        {
            if(moment_delta >= 0)
            {
                psi_stav = 0;
            }
            moment_hystereze = -1; //moment dolu, nemame kam rekuperovat
        }
        break;
    }
    
    /* Prepinaci tabulka */
    if(psi_hystereze) //tok nahoru
    {
        if(moment_hystereze == 0)
        {
            vektor = 0; //lichy do nul, sudy do jednicek
        }
        if(moment_hystereze == 1)
        {
            vektor = 1 + (6 + sektor + 1)%6; //dopredu ven
        }
        if(moment_hystereze == -1)
        {
            vektor = 1 + (6 + sektor - 1)%6; //zpet ven
        }
    }
    else
    {
        if(moment_hystereze == 0)
        {
            vektor = 0;
        }
        if(moment_hystereze == 1)
        {
            vektor = 1 + (6 + sektor + 2)%6; //dopredu dovnitr
        }
        if(moment_hystereze == -1)
        {
            vektor = 1 + (6 + sektor - 2)%6; //zpet dovnitr
        }
    }
    
    /* Zapis do komparacnich jednotek 3f mustku */
        switch(vektor)
        {
            case 0:
            {
                TIM1->CCR1 = 0;
                TIM1->CCR2 = 0;
                TIM1->CCR3 = 0;
            }
            break;
            case 1:
            {
                TIM1->CCR1 = 4200;
                TIM1->CCR2 = 0;
                TIM1->CCR3 = 0;
            }
            break;
            case 2:
            {
                TIM1->CCR1 = 4200;
                TIM1->CCR2 = 4200;
                TIM1->CCR3 = 0;
            }
            break;
            case 3:
            {
                TIM1->CCR1 = 0;
                TIM1->CCR2 = 4200;
                TIM1->CCR3 = 0;
            }
            break;
            case 4:
            {
                TIM1->CCR1 = 0;
                TIM1->CCR2 = 4200;
                TIM1->CCR3 = 4200;
            }
            break;
            case 5:
            {
                TIM1->CCR1 = 0;
                TIM1->CCR2 = 0;
                TIM1->CCR3 = 4200;
            }
            break;
            case 6:
            {
                TIM1->CCR1 = 4200;
                TIM1->CCR2 = 0;
                TIM1->CCR3 = 4200;
            }
            break;
            case 7:
            {
                TIM1->CCR1 = 4200;
                TIM1->CCR2 = 4200;
                TIM1->CCR3 = 4200;
            }
            break;
        }
    }


neděle 7. února 2016

Měnič 48V / 230V

Jedná se o prototypovou konstrukci měniče z akumulátorů 48V na síťové napětí 230V.
Cílem bylo postavit tichý měnič s pasivním chlazením o výkonu 500W až 1kW.
Základní topologie na následujím schematu:

Vyhlazovací tlumivku v napěťovém meziobvodu jsem zatím vypustil kvůli překmitům na diodách. Výstupní tlumivka je pro jednoduchost konstrukce vinutá na jediném jádru. V tom případě je třeba dát pozor na nutnost invertovaného PWM řízení jednoho z koncových polomůstků při takovéto oriantaci vinutí.
Řízení obou můstků obstarává procesor ARM Cortex M3 - STM32F103C8T6
Jako zpětná vazba je bráno napětí z meziobvodu, což se ukázalo jako nedostatečné vzhledem k úbytkům vznikajícím na výstupním můstku a tlumivce. Bylo by lépe měřit přímo výstupní střídavé napětí.
Dále jsou měřeny proudy obou můstků bočníky v sourcech dolních mosfetů a IGBT.
Napájení driverů a procesoru obstarává pomocný zdroj se starým obvodem 5H0365R, dává 5V a 15V.
Schema řízení:

Pár fotek:
 Desky z DirtyPCB's přišly na Vánoce a vypadají velmi nadějně
 První prototyp osazen
Montáž na provizorní šasi

 Pohled na transformátor a tlumivku. Diody se na desku rozměru 10x10cm také nevešly, takže jsou vpravo nahoře pospojovány dráty.
Ladění
Výstupní sinusovka na zátěži 100W.

Závěr:
Osazená deska úspěšně funguje na první pokus bez úprav až na drobné změny hodnot součástek. Ovšem s laděním SW to bylo úplně naopak. Velmi nemile mě překvapily mosfety IRFP2907. Oproti IRFP4568 se kterými jsem pracoval předtím a šlapaly naprosto parádně i na 40kHz s minimálním deadtimem 30ns prakticky studené a příčný proud v řádu mA. Tak IRFP2907 ačkoli, to z datasheetu při porovnání s předchozími přímo neplyne, tak jsou velmi, velmi pomalé. Nakonec jsem se musel spokojit s frekvencí 32kHz a deadtimem šílených 300ns a přesto tam teče příčný proud a můstek trochu hřeje i při malé zátěži. Do příští verze už mám opět připraveny IRFP4568.
Obdobný problém byl s výstupními IGBT. Na použitou tlumivku se už prostě nevešlo víc závitů, indukčnost kvůli pevné mezeře nebylo možno ani experimentálně zvětšit, a tak jsem musel zvýšit frekvenci až na 80kHz. IGBT potřebují cca 300ns deadtime, aby byly ztráty naprázdno při tomto napětí rozumné, což je ovšem už 10% periody. Příliš mnoho. Díky tomu jsem musel zvednout napětí meziobvodu na 350V abych dostal aspoň 220V střídavých v zátěži na výstupu. Frekvence je ale příliš vysoká a výstupní můstek docela topí. Celkové ztráty měniče naprázdno jsou 15W. Ale už mám také připraveny lepší polovodiče a navinu větší tlumivku.