Zobrazují se příspěvky se štítkemměniče a zdroje. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemměniče a zdroje. Zobrazit všechny příspěvky

pátek 14. února 2020

230V Powerbanka

Varování: Příspěvek není návodem ale inspirací pro možný návrh podobného zařízení kvalifikovanou osobou případně pod dozorem jako školní projekt. Obsahuje části pod napětím životu nebezpečným. Autor nenese odpovědnost za újmy na zdraví nebo majetku vzniklé v souvislosti s následujícím příspěvkem. Autor si vyhrazuje právo příspěvek kdykoli změnit.

Před rokem dokončený měnič jsem si zvykl používat tak, že baterky nabíjím skoro každý týden a jelikož je vybavený regulací výstupního napětí, používám ho jako bezdrátovou triakovku k pumpě. Vnější mechanická konstrukce do univerzální krabičky se sice vzhledově moc nepovedla, ale vnitřek myslím ano.
Jedná se o sinusový měnič 12V/230V doplněný o nabíjecí snižující měnič a balancéry pro tříčlánkovou baterii z 18650. Řízení všech měničů obstarává stará dobrá STM32F103C8T6.
Silový měnič je moje oblíbená topologie DC/DC s pevným převodem bez tlumivky na sekundární straně zde na malém výkonu buzená jen jako push-pull s MOSFETy s malým odporem v propustném směru. Střídač je H-můstek z IGBT s bipolární modulací pracující do dvojité tlumivky. IGBT tranzistory jsou buzeny drivery s desaturační ochranou IR2127, díky tomu je střídač zkratuvzdorný.
Protože DC/DC má pevný převod, běží trvale se střídou blízkou 50% vyjma běhu naprázdno. Akumulátory mají ale malý rozdíl napětí v nabitém a vybitém stavu, takže napětí stačí regulovat střídačem, hloubkou modulace.
Nabíjecí měnič jsem zvolil synchronní snižovací, aby bylo možno ho připojit např. na soláry. Synchronní typ se dá použít i pro odběr výkonu z akumulátorů, ale napětí může být jen stejné nebo vyšší. Váhal jsem nad použítím zvyšovacího měniče, ten by pak zároveň uměl dodávat 0 až 12V výstup, ale jako nabíjecí by pracoval s velkými proudy. Balancéry jsou z vyskládané z běžných součástek s referencí TL431.
Zajímavostí konstrukce je vyhnutí se použití elektrolytických kondenzátorů, pracovní kondenzátory jsou 12,5uF svitky. Pro snížení spotřeby naprázdno byl použit kompatibilní třísvorkový DC/DC místo 7805.
Zapojení obsahuje HW ochranu proti přebíjení akumulátorů. Proud akumulátorů je měřen obousměrně bočníkem na záporném konci.

Schema: (stáhnout pro plné rozlišení)


Obrázky:

 Všechno vyšlo na jednu oboustrannou desku
 Po osazení, na tomhle výkonu tranzistory netopí, výkonovým omezením jsou hlavně trafa
Bodování propojovacích pásků vystříhnutých do tvaru nožek
 Navíjení transformátoru a tlumivky
 Nakonec se tam jádro vejde, kostra je zaplněná až moc
Hotový transformátor a tlumivka na shodném jádru (z PC zdrojů)
 Zabudování do krabičky. Lepší je opačný postup - vybrat krabičku a do ní navrhnout desku.
Sériové rozhraní jsem použil jen na ladění programu, zřejmě nemuselo být vyvedeno ven, tlačítko má sloužit pro ovládání FSM, tedy výběr co má po zapnutí měnič dělat, ovšem stejně používám je jeden režim a připojení nabíječky rozpozná MCU sám, tedy tam také nemuselo být.

Řídící SW generuje PWM pro tři měniče, celkem 8 kanálů. Spínací frekvence zvolená nízko 32kHz, nabíjecí měnič 64kHz. Modulace pro střídač je vytvořena pomocí DDS s nastavitelnou amplitudou. Po zapnutí vypínače baterek jsou všechny měniče vypnuty a MCU čeká buď na připojení napětí z nabíječky, kdy zahájí nabíjení konstantním proudem do baterek, anebo na zmačknutí tlačítka, potom spustí DC/DC měnič a střídač s aplitudou nastavenou potenciometrem. Dalším zmáčknutím ho vypne.
MCU signalizuje stav nabití akumulátorů a zajišťuje vypnutí při vybití nebo nadproudu.
Nabíjení konstantním proudem, cílové napětí je drženo po stanovenou dobu a pak sníženo, aby zbytečně netopily balancéry, kdyby se nechala nabíječka v zásuvce. Jako  nabíječku používám 15V 1A adaptér, nabíjecí proud nastavený 800mA.
Výkon DC/AC měniče je 130W, trafa by se daly navinout licnou a zvednout spínací frekvenci pro dosažení větší hustoty výkonu. Kapacita akumulátorů je vzhledem k výkonu nedostatečná 30Wh, chtělo by to osadit minimálně 6 článků sérioparalelně. Nicméně měnič funguje a za ten cca rok jsem si zvykl ho používat. Plánuju osazení další desky a zabudování jiným způsobem protože i kdyby člověk desku jen zatáhnul do smršťovačky, objem by byl asi poloviční, než je teď v krabičce.
 
Literatura:
Billings K., Morey, T.: Switchmode power supply handbook. New York: McGraw-Hill 2011


středa 29. srpna 2018

Měnič 48/230V THT diagonální SPWM

Varování: Příspěvek není návodem ale inspirací pro možný návrh podobného zařízení kvalifikovanou osobou případně pod dozorem jako školní projekt. Obsahuje části pod napětím životu nebezpečným. Autor nenese odpovědnost za újmy na zdraví nebo majetku vzniklé v souvislosti s následujícím příspěvkem. Autor si vyhrazuje právo příspěvek kdykoli změnit.

Měnič není dokonalý z hlediska kontrukce ani vlastností, ale je navržen za účelem splnit několik netypických vlastností:
Cíle mechanických vlastností:
1) Jednodesková THT konstrukce na jednostranné DPS
2) Co nejméně rozdílných součástek
3) Trafo a tlumivka, které jdou navinout v ruce. 

Cíle elektrických vlastností:
1) Minimální možný příkon naprázdno za každou cenu
2) Zkratuvzdornost
3) Sinusová modulace

Nevýhody:
1) Nízká hustota výkonu
2) Nevhodné umístění výkonových prvků uprostřed desky
3) Zkreslení výstupního napětí závislé na zátěži

Modulace střídačů
Je několik možností sinusové modulace H-mostu střídače, zde uvádím některé z nich.
1) Nejběžnější je bipolární modulace. Vyžaduje dvě tlumivky, které mohou být na společném jádru. Nutností je dále vkládání deadtime, který z závislosti na spínací frekvenci snižuje možný index modulace.
2) V případě unipolární modulace jedné fáze, kde se druhá fáze pouze přepíná 50Hz stačí jedna tlumivka, ale meziobvod střídače je zatížen velkým du/dt, proud se pak uzavírá přes kapacitou trafa DC/DC měniče. Nicméně spínací ztráty jsou poloviční oproti bipolární modulaci, tranzistory ve fázi B mohou být pomalé.
3) Zlepšit filtraci unipolární modulace je možno pomocí dvou tlumivek a spínáním obou polomostů tak, že je vždy jeden dolní tranzistor po dobu půlperiody sepnutý trvale a druhý polomost spíná, pak se vymnění. Tlumivky však nemůžou být na stejném jádru, protože polomosty neběží synchronně.
4)V případě diagonálního propojení tranzistorů a spínání střídavě obou diagonál s nízkým deadtime dostaneme opět bipolární modulaci. Pokud ale deadtime zvýšíme až na 1/2 periody spínací frekvence, dojde k tomu, že po celou dobu jedné půlvlny se spíná pouze jedna diagonála. Abychom kompenzovali snížení výstupního napětí vynásobíme referenční průběh dvěma. Protože spínáme stále vždy jen jednu diagonálu, deadtime není potřeba, nedochází ke komutaci tranzistor-tranzistor.



Výhodou diagonální modulace je zanedbatelný příkon naprázdno srovnatelný s obdélníkovým řízením. Nevýhodou je neschopnost měniče uzavírat přes meziobvod cestu jalovému proudu a tedy udržet nezkreslenou sinusovku do kapacitní nebo induktivní zátěže. Výsledkem je, že efektivní hodnota napětí neodpovídá té na vstupu modulátoru, je tedy potřeba zpětná vazba a regulátor. Ten sice nedodrží tvar, ale aspoň velikost efektivní hodnoty napětí ano.
Tím, že dochází ke komutaci dioda-tranzistor, když jsou tranzistory zavřené, chová se můstek jako usměrňovač proti napětí meziobvodu, nikoli proti nule, musíme upravit tvar referenčního sinu.
 

Díky tomu na rozdíl od TDS2285 v zátěži nepadá napětí.
Zapojení je přímo odvozeno z předchozí verze 12/230V. Zachoval jsem push-pull na primáru DC/DC měniče s cílem snížit počet součástek. Nevýhodou je nutnost použití 200V MOSFETů např. IRFP90N20D. DC/DC je řízen pomocí SG3525 posíleného drivery s desaturační ochranou IR2125. Pomalé nabíjení kapacity meziobvodu při startu zajištěno velkým kondenzátorem na pinu CSOFT.
Střídač je z IGBT tranistorů SGH80N60 buzených opět IR2125.
Řízení střídače, podpěťovou ochranu baterky a vypnutí při nadproudu obstarává zde místo TDS2285 MCU, který je naprogramován tak, aby pinově fungoval identicky. Důvod je ten, že TDS2285 ač funguje pěkně, tak vnitřní regulátor nedovoluje ovládat amplitudu střídače v dostatečném rozsahu při diagonálním propojení tranzistů H-mostu. MCU do daného rozložení nohou vyjde mnoho, já jsem zvolil moderní (2008) ATTINY44-20PU, což nebylo úplně šťastné, protože ta šílenost nemá ani násobičku. Ale aspoň se člověk naučí, jak se to dělalo, žejo.

Schema:


Průběhy napětí z první verze SW
 Naprázdno, Uef = 230V

Elkový zes, žhavení 20W

Odporová zátěž 500W

Deska, rozměry 228x156mm

Osazovací plán
SW
V assembleru. Mezi diagonálním a bipolárním řízením střídače lze přejít snadno zmenšením deadtimu z 0x80 na 0x04, odmazáním násobení (lsl r16) a výměnou tabulky za sinovou. Zkreslení sinusovky zmizí, příkon naprázdno vzroste z asi 2W na 12W.

Závěr
Další snižování příkonu naprázdno možné snížením sycení trafa DC/DC měniče. Při 7z. zbytečně hřeje jádro, ovšem více závitů znamená menší výkon.

 __________________________________________________________________________________
.nolist
.include "tn44def.inc"
.list

.org 0x0000
rjmp nastaveni ;reset
.org 0x0008
rjmp timer     ;timer1 overflow
.org 0x0100    ;zarovnani tabulky sinu kvuli DDS
sine:
.db 0x7F, 0x93, 0x9B, 0xA2, 0xA7, 0xAC, 0xB0, 0xB4, 0xB7, 0xBB, 0xBE, 0xC1, 0xC4, 0xC7, 0xC9, 0xCC,
.db 0xCE, 0xD0, 0xD3, 0xD5, 0xD7, 0xD9, 0xDB, 0xDC, 0xDE, 0xE0, 0xE2, 0xE3, 0xE5, 0xE6, 0xE8, 0xE9,
.db 0xEA, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF8, 0xF9,
.db 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC, 0xFD, 0xFD, 0xFD, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
.db 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFD, 0xFD, 0xFD, 0xFC, 0xFC, 0xFC, 0xFB, 0xFB, 0xFA,
.db 0xF9, 0xF9, 0xF8, 0xF7, 0xF6, 0xF6, 0xF5, 0xF4, 0xF3, 0xF2, 0xF1, 0xF0, 0xEF, 0xEE, 0xEC, 0xEB,
.db 0xEA, 0xE8, 0xE7, 0xE5, 0xE4, 0xE2, 0xE1, 0xDF, 0xDD, 0xDC, 0xDA, 0xD8, 0xD6, 0xD4, 0xD1, 0xCF,
.db 0xCD, 0xCA, 0xC8, 0xC5, 0xC2, 0xBF, 0xBC, 0xB9, 0xB6, 0xB2, 0xAE, 0xA9, 0xA4, 0x9F, 0x98, 0x8D,
.db 0x71, 0x66, 0x5F, 0x5A, 0x55, 0x50, 0x4C, 0x48, 0x45, 0x42, 0x3F, 0x3C, 0x39, 0x36, 0x34, 0x31,
.db 0x2F, 0x2D, 0x2A, 0x28, 0x26, 0x24, 0x22, 0x21, 0x1F, 0x1D, 0x1C, 0x1A, 0x19, 0x17, 0x16, 0x14,
.db 0x13, 0x12, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x08, 0x07, 0x06, 0x05, 0x05,
.db 0x04, 0x03, 0x03, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03, 0x04, 0x04,
.db 0x05, 0x06, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x14,
.db 0x15, 0x16, 0x18, 0x19, 0x1B, 0x1C, 0x1E, 0x20, 0x22, 0x23, 0x25, 0x27, 0x29, 0x2B, 0x2E, 0x30,   
.db 0x32, 0x35, 0x37, 0x3A, 0x3D, 0x40, 0x43, 0x47, 0x4A, 0x4E, 0x52, 0x57, 0x5C, 0x63, 0x6B, 0x7F

nastaveni:  ;po resetu
wdr
cli
ldi r16, 0b10000000 ;povoleni zmeny hodin
out CLKPR,r16
ldi r16, 0b00000001 ;clock division 2
out CLKPR,r16
ldi r16, 0b00100000 ;Clear WDRF in MCUSR
out MCUSR, r16
in r16, WDTCSR ;Keep old prescaler setting to prevent unintentional Watchdog Reset
ori r16, 0b00011000 ;Write logical one to WDCE and WDE
out WDTCSR, r16
ldi r16, 0x00 ;Turn off WDT
out WDTCSR, r16
sbi DDRB,PB2 ;PB2, LED
sbi DDRA,PA5 ;PA5 jako vystup
sbi DDRA,PA6 ;PA6 jako vystup
sbi DDRA,PA7 ;PA7 jako vystup
ldi r16,0b00100001 ; OC0B out positive PWM
out TCCR0A,r16
ldi r16,0b00110001 ; OC1B out negative PWM
out TCCR1A,r16
ldi r16,0b00000001 ; timer start no prescale
out TCCR0B,r16
out TCCR1B,r16     ;spustim oba timery
ldi r16,0x7F ;127  ;strida 50%
out OCR0B,r16
ldi r16,0x7F ;127
out OCR1BL,r16
ldi r16,0b00000001 ;int enable compare A, overflow
out TIMSK1,r16
ldi r16,0b00000110 ;ADC prescaler 64 -> 156kHz
out ADCSRA,r16
ldi r16,0b00010000 ;hornich 8bit v hornim registru vystupu
out ADCSRB,r16
ldi r31,high(sine<<1 br="">ldi r30,low(sine<<1 23:16="" akumulator="" br="">ldi r29,0x00 ;akumulator 15:8
ldi r28,0x00 ;akumulator 7:0
ldi r27,0x00 ;DDS add 23:16
ldi r26,0xA7 ;add 15:8
ldi r25,0x1E ;add 7:0
ldi r19,0xFF ;amplituda sinu
ldi r18,0x00 ;suma PS regulatoru
ldi r20,0xFF ;casovani ADC
sei
sleep

timer:     ;spousteni 20kHz
cli
sbic PINA,PA2  ;vypinaci vstup
rjmp mereni    ;vystup povolen
clr r16
out TCCR0A,r16 ;odpoj piny
out TCCR1A,r16
out TCCR0B,r16 ;timer stop
out TCCR1B,r16   
sei
sleep

mereni:
brtc dds         ;T flag kdyz byl spusten AD prevodnik
sbic ADCSRA,ADSC ;ADC dokoncil prevod
rjmp dds
clt              ;smazu T flag
sbic ADMUX,MUX0  ;je kanal nastaven na ADC0 ?
rjmp regulator
in r16,ADCL
in r16,ADCH      ;napeti baterie
cbi ADCSRA,ADEN  ;vypnu AD prevodnik
cpi r16,0x43 ;1.3V
brpl stop    ;kdyz je vetsi
cpi r16,0x24 ;0.9V
brmi stop    ;kdyz je  mensi
cpi r16,0x30 ;1.1V
brmi dds     ;kdyz je mensi
sbi DDRA,PA1   ;DCC start
sbi PORTB,PB2  ;rozsvitim LED
rjmp dds
stop:
cbi DDRA,PA1   ;DCC stop
cbi PORTB,PB2  ;zhasnu LED
rjmp dds

regulator:  ;spousteni 40Hz
in r16,ADCL
in r16,ADCH     ;napeti vystupu
cbi ADCSRA,ADEN ;vypnu AD prevodnik
mov r19,r18     ;Vystup = Suma
subi r16,0x80   ;Err = vystupni napeti - 2.5V
brmi mensi
lsr r16       ;Err/2
sub r19,r16   ;Vystup = Suma + Err
brcc suma     ;vetsi
ldi r19,0x00  ;dolni doraz amplitudy
suma:
lsr r16       ;Err/4
lsr r16       ;Err/8
sub r18,r16
brcc dds
ldi r18,0x00  ;dolni doraz sumy
rjmp dds
mensi:        ;Err < 0
neg r16
lsr r16
add r19,r16   ;Vystup=Suma+Err
brcc suma_n
ldi r19,0xFF  ;horni doraz amplitudy
suma_n:
lsr r16
lsr r16
add r18,r16   ;Suma=Suma+Err
brcc dds
ldi r18,0xFF  ;horni doraz sumy

dds:
add r28,r25   ;akumulator + add
adc r29,r26
adc r30,r27
lpm r22,Z     ;vezmu hodnotu z tabulky
subi r22,0x80 ;odectu stredni hodnotu
brmi zaporne
ldi r21,0x00  ;vycisteni registru
ldi r16,0x00
ldi r17,0x00
mov r23,r19   ;ulozeni amplitudy
clc
ror r23       ;prvni posuv
brcc posuv
scitani:
add r17,r22   ;dolni bajt vysledku
adc r16,r21   ;horni bajt vysledku
posuv:
rol r22
rol r21
clc
ror r23       ;posuv
brcs scitani  ;byla tam jednicka
brne posuv    ;dokud jsou tam jeste jednicky
rjmp kladne   ;kdyz nejsou
zaporne:      ;nasobeni zapornych
neg r22
ldi r21,0x00  ;vycisteni
ldi r16,0x00
ldi r17,0x00
mov r23,r19   ;ulozeni amplitudy
clc
ror r23
brcc posuv_n
scitani_n:
add r17,r22 ;dolni bajt vysledku
adc r16,r21 ;horni bajt vysledku
posuv_n: 
rol r22
rol r21
clc
ror r23
brcs scitani_n
brne posuv_n
neg r16
kladne:      ;PWM modulator
ldi r17,0x80 ;stredni hodnota
add r16,r17  ;prictu stredni hodnotu  
mov r17,r16  ;nasobeni hotovo rozmnozim horni bajt
ldi r23,0x80 ;DEADTIME     
add r16,r23  ;prictu deadtime
brcc faze_A
ldi r16,0xFF
faze_A:
lsl r16       ;NASOBENI DVEMA
out OCR1BL,r16
subi r17,0x80 ;DEADTIME
brcc faze_B
ldi r17,0x00
faze_B:
lsl r17       ;NASOBENI DVEMA
out OCR0B,r17
inc r20         ;casovani adc
brvc spat
set             ;nastavim T flag cekani na ADC
ldi r24, 0xD8
sbi ADCSRA,ADEN ;zapnuti AD prevodniku
sbic ADMUX,MUX0 ;je kanal nastaven na ADC0 ?
rjmp kanal
ldi r16,0b00000011 ;nastaveni ADC na Vcc ref, ADC3 in
out ADMUX,r16
sbi ADCSRA,ADSC ;start ADC
rjmp spat
kanal:
clr r16 ;nastaveni ADC na Vcc ref, ADC0 in
out ADMUX,r16
sbi ADCSRA,ADSC ;start ADC
spat:
sei
sleep
_________________________________________________________________________________
sinová tabulka:
.db 0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae
.db 0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8
.db 0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf5
.db 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff
.db 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7
.db 0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc
.db 0xda,0xd8,0xd5,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb3
.db 0xb0,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x98,0x95,0x92,0x8f,0x8c,0x89,0x86,0x83
.db 0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x63,0x60,0x5d,0x5a,0x57,0x54,0x51
.db 0x4f,0x4c,0x49,0x46,0x43,0x40,0x3e,0x3b,0x38,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27
.db 0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x12,0x10,0x0f,0x0d,0x0c,0x0a
.db 0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00
.db 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08
.db 0x09,0x0a,0x0c,0x0d,0x0f,0x10,0x12,0x13,0x15,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x23
.db 0x25,0x27,0x2a,0x2c,0x2e,0x31,0x33,0x36,0x38,0x3b,0x3e,0x40,0x43,0x46,0x49,0x4c
.db 0x4f,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x67,0x6a,0x6d,0x70,0x73,0x76,0x79,0x7c

čtvrtek 14. června 2018

Měnič 12/230V s diagonální SPWM modulací

Varování: Příspěvek není návodem ale inspirací pro možný návrh podobného zařízení kvalifikovanou osobou případně pod dozorem jako školní projekt. Obsahuje části pod napětím životu nebezpečným. Autor nenese odpovědnost za újmy na zdraví nebo majetku vzniklé v souvislosti s následujícím příspěvkem. Autor si vyhrazuje právo příspěvek kdykoli změnit.

Úvod
Návrh začal tak, že se mi do ruky dostal klasický malý měnič 12/230V s obdelníkovým řízením z 90. let označovaný za velmi spolehlivou a ověřenou konstrukci. Ta věc bere naprázdno jen 75mA a z toho 35mA bere řídící SG3525. A to přestože je postavená z dobových součástek s deskou roztahanou stylem jak to zrovna vyšlo a s tranzistory střídače na dlouhých drátech.
Zlobilo mě, že dneska nemůžu postavit sinusový měnič z moderních součástek, který by se byť řádově přiblížil spotřebou naprázdno. Jedná se především o spínací ztráty. Rozdíl mezi přepínáním dvakrát za periodu 50Hz a 20kHz sinusovou PWM modulací se zdánlivě nedal obejít.
Dalším problémem byla zkratuvzdornost. Střídač musí být schopen se vypořádat s připojením zátěže stylu spínaného zdroje bez softstartovacího odporu.

Popis funkce
Uspokojivým řešením zkratuvzdornosti byly až teprve drivery s desaturační ochranou každého jednotlivého tranzistoru, které zajistí jeho vypnutí při pokusu o sepnutí do zkratu během 1us od sepnutí a pokus opakují až další spínací periodu. Tím se výrazně omezí střída, ale měnič dál jede stanovenou dobu jednotek vteřin, než se trvale vypne. Tím je umožněn právě start zátěží, co odebírají při zapnutí proudovou špičku a není možné, aby pokaždé měnič úplně vypadl.
Jednou z možností, jak radikálně snížit spínací ztráty střídače je diagonální unipolární modulace. PWM modulací spínáme tak vždy pouze dva tranzistory v jedné diagonále po dobu jedné půlperiody sinusového signálu, v druhé půlvlně spínáme pouze opačnou diagonálu.
Takto řízený měnič neumí dodávat jalový výkon.
Pokud je zátěž kapacitní, průběh na výstupu je obdélníkový, protože kondenzátor se nabije na plné napětí a měnič ho nedokáže na snížit, ale pouze v následující půlperiodě opět přebít na opačnou polaritu.
V případě induktivní zátěže dochází k tomu, že indukčnost zátěže drží proud a při vypnutí tranzistorů střídače ho tlačí zpětnými diodami zpět do kondenzátoru meziobvodu. Najednou nespínáme PWM mezi nulou a napětím meziobvodu např. +350V ale mezi -350V a +350V. Pro čistě induktivní zátěž by tedy měnič nedodával žádný činný výkon a střední hodnota napětí na výstupu by byla nula.
Nicméně za tuhle cenu máme měnič, který má naprázdno spínací ztráty starého obdelníkového měniče, ale jakmile připojíme zátěž, nenutí jí tvrdý obdelníkový průběh napětí.
Při spínání konstantní hloubkou modulace tedy efektivní hodnota napětí výstupu závisí na charakteru zátěže. Pokud je vykompenzováno, napětí je správné. Kapacitní zátěž napětí zvyšuje, induktivní snižuje.
Řešením je zapojit na výstup baterii svitkových kondenzátorů tako velkou, aby dodala potřebný maximální jalový výkon očekávané zátěže a v případě, kdy není potřeba, tak regulovat na žádanou efektivní hodnotu napětí.

Popis zapojení
Zde navržené zapojení malého měniče 12/230V je řízeno obvodem TDS2285, což je SPWM modulátor pro obsluhu střídače se zpětnou vazbou napětí, měřením napětí baterie a pomocným výstupem na odpojení DC/DC měniče. K dostání na aliexpressu jako THT obdoba EG8010. Pokud se pro DC/DC měnič použije SG3525 není potřeba žádný další řídící obvod.
Vstup Vbat obsahuje hysterezi, spíná při napětí větším než 1,1V, vypíná při menším než 0,9V, vypne dále při napětí nad 1,35V.
Vstup VAC, zpětná vazba napětí výstupu střídače má referenci 2,5V, regulátor je pomalý a pouze v malém rozsahu hloubky modulace.
Vstup SD je pouze logický, při log.0 se obvod vypne a zapne až po restartu napájení.
Pomocný výstup DCC má log.1 při vypnuté SPWM.
Výstupy SPWM_P a N poskytují vzájemně fázově posunutý sinus 50Hz modulovaný 20kHz. Vždy spíná pouze jeden, druhý je vypnutý a v druhé půlvlně opačně. Výstupy jsou zamýšleny pro přivedení do jednotlivých polomostů na horní tranzistor přímo, na dolní invertovaně.
Jako drivery střídače jsem zvolil starší IR2125, což je horní driver v zapojení s desaturační ochranou. Existuje ještě verze IR2121 jako dolní driver, anebo IR2127 jako horní driver ovšem s menším výstupním proudem. Všechny tři pinově kompatibilní. U IR2127 možno vynechat 1n kapacity od pinu 3, které u IR2125 slouží k zablokování falešných pulzů, které shazují driver jen kvůli velkému du/dt. IR2121 se pochopitelně dají použít pouze na místě IC5 a IC7.

Schema
 (Pro plné rozlišení nutno stáhnout)
Řešení
Deska je navržena pro běžné transformátorky ze starších AT a ATX zdrojů, na stejné kostře je i tlumivka, potřebnou mezeru zajistí oddálení druhé poloviny jádra o cca 0,32mm. Trafo má primární vinutí bifilárně 6z. každé vinutí dvojicí vodičů průměru 1mm, sekundárních 170z. se vešlo pouze 0,4mm, lépe použít vyšší kostru, stejného rozložení nohou, kam se vejde víc mědi a vinout primár 1,5mm a sekundár 0,5mm.
Tlumivka má na sobě dvě izolované sekce po 112 závitech průměrem 0,5mm. vinout prostě tak, aby vinutí vyšlo na celé vrstvy a druhá sekce měla přesně stejný počet závitů. Potřebná indukčnost cca 2,5mH.
Napětí meziobvodu je při tomto nastavení děliče R4,6,10 cca 360V. Cílem není držet ho konstantní, ale držet střídu blízkou 50% protože DC/DC měnič bez výstupní tlumivky neumí regulovat v zátěži, pouze naprázdno. (Zaregulování na nízkou střídu v zátěži topí tranzistory, tlumivka to sice řeší ale přidá problémy s přepětím na diodách usměrňovače, které nejde snadno odstranit)
Zapojení je očesáno na naprosté minimum součástek, co lze. Deska navržena s propojkami pouze na signálových spojích s možností osazení nulových odporů, tedy bez propojek.
Zpětná vazba získána usměrněním výstupů proti zemi není korektní, přičítá se k ní polovina napětí meziobvodu. měnič se tedy chová jako s kladnou vazbou, při poklesu napětí meziobvodu mírně vzroste napětí výstupu. To ale vyřeší snížení zesílení regulátoru.
Vypnutí při vybavení ochran je řešeno tak, že když zmizí napětí výstupu, začne se nabíjet C19 a až se nabije, log.1 na pinu SD shodí řízení a vypne i DC/DC měnič až do restartu napájení.
Dělič na Vbat hlídá napětí baterie 12V.
LED signalizuje chod (svítí) a poruchu (bliká různě dle příčinny viz datasheet)

Použití
Měnič je zamýšlen pro použití na světelný okruh napájený ze solárů, kde by trvale běžel s napětím na výstupu při minimálním příkonu z baterií připraven napájet např. síťové LED žárovky. Ověřeno s dvěma typy s měničem i bez měniče.

Poznámky
TDS2285 je zřejmě předprogramovaný, přeznačený MCU, pinout sedí např. na ATTINY44-20PU, dala by se tam bez jakýchkoli úprav osadit a napsat vlastní SW, což asi udělám. Při zachování jednoduché THT konstrukce bude možno měnič uřídit ve větším rozsahu než dovoluje SW v TDS2285, který má omezený rozsah hloubky modulace.

Foto
 Kompletní jednodesková konstrukce

TDS2285 je zřejmě přetřený a přetypovaný MCU, nicméně s bezproblému fungujícím SW
Deska ze strany spojů, rozměr 124 x 120 mm
Osazovací plán, chladič vyjde s žebrováním celkové hloubky 10mm, ale stačí plech/úhelník, diody na dlouhé nohy kvůli chlazení.
Video

Edit:
Upraven návrh desky pro připojení programovacích pinů MCU.
48V verze ve stavu navržené desky.

Reference:
TDS2285 datasheet
IR2125 datasheet
SG3525 datasheet
Infineon AN-1014

sobota 6. srpna 2016

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

Varování: Příspěvek není návodem ale inspirací pro možný návrh podobného zařízení kvalifikovanou osobou případně pod dozorem jako školní projekt. Obsahuje části pod napětím životu nebezpečným. Autor nenese odpovědnost za újmy na zdraví nebo majetku vzniklé v souvislosti s následujícím příspěvkem. Autor si vyhrazuje právo příspěvek kdykoli změnit. 

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

Varování: Příspěvek není návodem ale inspirací pro možný návrh podobného zařízení kvalifikovanou osobou případně pod dozorem jako školní projekt. Obsahuje části pod napětím životu nebezpečným. Autor nenese odpovědnost za újmy na zdraví nebo majetku vzniklé v souvislosti s následujícím příspěvkem. Autor si vyhrazuje právo příspěvek kdykoli změnit. 

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.

neděle 7. února 2016

Měnič 48V / 230V

Varování: Příspěvek není návodem ale inspirací pro možný návrh podobného zařízení kvalifikovanou osobou případně pod dozorem jako školní projekt. Obsahuje části pod napětím životu nebezpečným. Autor nenese odpovědnost za újmy na zdraví nebo majetku vzniklé v souvislosti s následujícím příspěvkem. Autor si vyhrazuje právo příspěvek kdykoli změnit. 

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.

MPPT pro 48V 500W systém

V rámci školní zakázky se mi podařilo nechat vyrobit desku pro navržený MPPT pro 48V 500W systém.
Jedná se o synchronní buck - boost topologii s jednou tlumivkou. Měnič tedy umožňuje jak snižování, tak zvyšování napětí z panelů.
Řízení obstarává procesor ARM Cortex M3 - STM32F103C8T6
Byl navržen pro nabíjení akumulátorů, základními vstupy jsou napětí akumulátorů a jejich nabíjecí proud. Obsahuje dva regulátory, regulátor žádaného napětí na panelech a jemu nadřazený regulátor napětí akumulátorů. Pokud napětí akumulátorů dosáhne žádané hodnoty 55,7V, regulátor zvyšuje žádané napětí panelů, které tak díky VA charakteristice dávají menší proud. Regulátor tak udržuje dané napětí akumulátorů.
Pokud akumulátory nejsou nabité, regulátor dosazuje jako žádanou hodnotu napětí na panelech napětí vycházející z MPPT algoritmu.
MPPT algoritmus je klasický typ, který hledá bod maximálního výkonu, zde prostě maximální nabíjecí proud tak, že zkouší zvyšovat nebo snižovat žádané napětí panelů a podle změny nabíjecího proudu pokračuje ve snižování resp. zvyšování, nebo obrátí směr, pokud je naměřený proud již menší, než předchozí.
Klíčová je zde především frekvence výpočtu. Při snižování napětí se vybíjí vstupní kapacity měniče a ten tak vždy naměří větší proud, při zvyšování naopak. Je tedy třeba výpočet zpomalit, aby měřil skutečnou změnu danou VA char. panelů. Naopak příliš pomalý výpočet není schopen reagovat na reálné změny jasno/mrak a ustalování by trvalo například až několik minut.
Zvolil jsem synchronní topologii kvůli minimalizaci ztrát. Ovšem její nevýhodou se ukázala absence výstupní diody, která by přirozeně zabránila toku energie z akumulátorů do panelů. Správná funkce je tak závislá právě na SW. Měnič je symetrický z obou stran posazený mezi dva relativně výkonné zdroje resp. spotřebiče a při nevhodném řízení je schopen např. posílat energii z akumulátorů do panelů místo opačně a nebo zkratovat natvrdo jeden nebo druhý vstup.
Zapojení obsahuje jedinou HW ochranu a to proti přebíjení. Při vzrůstu napětí akumulátorů přes 59V se klopným obvodem vypnou oba drivery a měnič bez zásahu procesoru vypne všechny výkonové tranzistory v můstku. Opětovný start je možný jedině restartem napájení z panelů. Buď vypínačem ručmo, nebo automaticky "druhý den ráno".
Napájení driverů a procesoru je řešeno pomocným spínaným zdrojem se starým obvodem 5H0365R, jehož předností je velká úspora součástek, velký vstupní rozsah napětí a velmi malá klidová spotřeba. Přestože se jedná o síťový zdroj, bezproblému pracuje od 15V. Pomocný zdroj dává 5V a 15V.

Schema:

Pár fotek:
 Osazená deska

 Zimní den. Při malém proudu přepne a drží nulový rozdíl napětí, protože algoritmus by již kvůli nedostatečnému rozlišení při malých proudech nemohl fungovat. Při nulovém rozdílu jsou navíc nejmenší ztráty.

 Start s částečně zasněženými panely, které dávaly jen poloviční napětí přes bypass diody, algoritmus naskočil úspěšně za 15 vteřin.

 Pokud hodinu měří nulový proud, vypne můstek a tím i napájení procesoru. Nastartuje znovu další den ráno. (A nebo bohužel hned za pár vteřin pokud ještě není dostatečná tma)

Závěr:
Uvedl jsem zde jedno z mnoha možných řešení MPPT nabíjecího měniče. Článek slouží spíš pro inspiraci nemá být návodem. Můstek je možno řídit mnoha typy procesorů, stejnětak jako SW v něm je čistě na fantazii každého.

Příloha:
/* MPPT algoritmus */
        if(mppt)
//flag
        {
            if(I_aku_avg < I_aku_predchozi)
            {
                add = ~add + 1;
            }
            I_aku_predchozi = I_aku_avg;
            panely_mppt = panely_mppt + add*200;
//0,4V za vterinu
            if(panely_mppt < 32000)
            {
                panely_mppt = 32000;
//dolni limit 32V
                add = ~add + 1;
            }
            if(panely_mppt > 65000)
            {
                panely_mppt = 65000;
//horni limit 65V
                add = ~add + 1;
            }
            mppt = 0;
        }

/* Regulator napeti na akumulatorech */
            Err_aku = U_aku - 55650;
//Max napeti akumulatoru pri nabijeni
            Out_aku = Sum_aku + Err_aku/10;
      
          
 /* Omezovac zadaneho napeti na panelech */
            if(Out_aku > 80000)
            {
                panely_ref = 80000;
            }
            else
            {
                if(Out_aku < panely_min)
                {
                    panely_ref = panely_min;
                }
                else
                {
                    panely_ref = Out_aku;
                }
            }
            Exc_aku = panely_ref - Out_aku;
            Sum_aku = Sum_aku + Err_aku/20 + Exc_aku/20;
      
          
 /* Regulator napeti na panelech */
            Err = U_panely - panely_ref;
            Out = Sum + Err/5;
      
            /* Omezovac stridy */
            if(Out > 30000)
//abychom netopili zelezoprachem tlumivky
            {
                strida = 30000;
//boost
            }
            else
            {
                if(Out < -30000)
                {
                    strida = -30000;
//buck
                }
                else
                {
                    strida = Out;
                }
            }
            Exc = strida - Out;
            Sum = Sum + Err/10 + Exc/10;
          
            
/* Vlozeni stridy do komparacnich jednotek */
            if(strida >= 0)
            {
                TIM1->CCR1 = 775 - strida/100;
//boost menic
                TIM1->CCR2 = 775;
//97,4%
            }
            else
            {
                TIM1->CCR1 = 775;
                TIM1->CCR2 = 775 - ~(strida/100) + 1;
//buck menic
            }