Úvod
Olovené akumulátory patria v dnešnej dobe k najrozšírenejším elektrochemickým zdrojom energie. Pre zabezpečenie ich správnej funkčnosti a predĺženie životnosti je dôležité klásť dôraz na ich správne nabíjanie, ale i vybíjanie. Ako riešenie sa vyvrhuje využitie nabíjačky s možnosťou regulácie nabíjacieho prúdu.
Funkcie nabíjačky
- nabíjačka umožňuje nabíjať konštantným prúdom nastaveným odporovým trimrom v rozsahu 0-10A
- po dosiahnutí napätia U=14,4V automaticky prejde do režimu nabíjania konštantným napätím
Praktická realizácia
Pre konštrukciu nabíjačky som sa rozhodol využiť počítačový zdroj typu ATX, čím sa získa vyššia účinnosť premeny elektrickej energie ako i nižšia hmotnosť celého zariadenia ako keby bol využitý klasický sieťový transformátor. Bloková schéma PC zdroja je na obrázku 3.1.
obr. 3.1 Bloková schéma zapojenia PC zdroja
V nabíjačke je využítá výkonová časť zdroja teda vstupný filter s usmeňovačom, dvojčinný menič i výstupný filter s usmerňovačom. Riadiacu časť zdroja tvorenú obvodom TL494 som nahradil mikropočítačom MC56F8006, pričom som využil tú možnosť, že umožňuje vytvárať PWM signály pre spínanie budiacich tranzistorov a má v sebe zabudované AD prevodníky, ktorými možno merať napätie a takisto úbytkom napätia na meracom rezistore prúd.
Postup vytvorenia riadiacej časti
Program pre riadenie činnosti nabíjačky je napísaný v jazyku C v prostredí CodeWarrior, pričom hodnoty premenných možno meniť v programe Freemaster. Najskôr bolo potrebné vytvoriť PWM signály pre spínanie pomocných tranzistorov zabudovaných v zdroji. Zmenou striedy PWM impulzov dochádza k zmene výstupného napätia, preto bolo toto nutné stabilizovať. Vykonal som to tak, že cez AD prevodník sa meria výstupné napätie a toto sa porovnáva so žiadanou hodnotou pomocou naprogramovaného PI regulátora. V prípade poklesu napätia teda regulátor dokáže toto napätie upraviť na žiadanú hodnotu. Tento režim využíva nabíjačka pri nabíjaní konštantným napätím. V ďalšom kroku bolo potrebné vytvoriť meranie a reguláciu prúdu. Prúd sa meria tak, že úbytok napätia na meracom rezistore sa privádza na vstup operačného zosilňovača, kde sa zosilní a z výstupu ide na vstup AD prevodníka, pričom v programe sa veľkosť napätia predelí veľkosťou odporu, čím získame prúd. Hodnota žiadaného prúdu sa zadáva veľkosťou úbytku napätia na odporovom trimri a po prerátaní tohto úbytku na veľkosť prúdu sa porovnáva so skutočným prúdom a ďalší PI regulátor ho vyreguluje na požadovanú hodnotu. Tento režim využíva nabíjačka pri nabíjaní konštantným prúdom. Nabíjačka je umiestnená v pôvodnej krabici PC zdroja do ktorej je umiestnený aj plošný spoj s mikropočítačom.
Výpis programu pre riadenie nabíjačky:
#include "qs.h" #include "freemaster.h" #include "sys.h" #include "cop.h" #include "wintc.h" #include "gpio.h" #include "pwm.h" #include "adc.h" #include "mclib.h" #include "occs.h" #include "sci.h" pwm_sComplementaryValues comp; int a=30500,control=0; volatile UInt16 adca_napatie=0, adca_prud=0; MC_PiParams PIparams, PIparams2; Frac16 desiredValue, PIoutput,aa=FRAC16(0.05); Frac16 ziadany_prud, PIoutput_I, Prud_trimer, nap=FRAC16(0.944); int zmena=0, prepnutie=2, prep2=1; int main(void) { ioctl(SYS, SYS_INIT, NULL); ioctl(COP, COP_INIT, NULL); ioctl(GPIO_A, GPIO_INIT_ALL, NULL); ioctl(GPIO_B, GPIO_INIT_ALL, NULL); ioctl(GPIO_C, GPIO_INIT_ALL, NULL); ioctl(GPIO_E, GPIO_INIT_ALL, NULL); ioctl(SCI, SCI_INIT, NULL); FMSTR_Init(); ioctl(ADC0, ADC_INIT, NULL); ioctl(ADC1, ADC_INIT, NULL); ioctl(PWM, PWM_INIT, NULL); ioctl(PWM, PWM_DEVICE, PWM_ENABLE); ioctl( PWM, PWM_OUTPUT_PAD, PWM_ENABLE ); ioctl(WINTC, WINTC_INIT, NULL); archEnableInt(); PIparams.propGain = FRAC16(0.5); PIparams.propGainSc = 0; PIparams.integGainSc = 10; PIparams.integGain = FRAC16(0.5); PIparams.negPiLimit = FRAC16(0.005); PIparams.posPiLimit = FRAC16(0.2); PIparams.integPartK_1= 0; desiredValue = FRAC16(0.8964); PIparams2.propGain = FRAC16(0.5); PIparams2.propGainSc = -2; PIparams2.integGainSc = 5; PIparams2.integGain = FRAC16(0.5); PIparams2.negPiLimit = FRAC16(0.005); PIparams2.posPiLimit = FRAC16(0.28); PIparams2.integPartK_1= 0; ziadany_prud = FRAC16(0.2); while(1) { ioctl(COP, COP_CLEAR_COUNTER, NULL); } } /********************************************************************/ #pragma interrupt on void pwm_reload_isr(void) { ioctl(ADC0, ADC_SET_INPUT_CHANNEL_A, ADC_AD7); ioctl(ADC1, ADC_SET_INPUT_CHANNEL_A, ADC_AD4); ioctl(ADC1, ADC_SET_INPUT_CHANNEL_B, ADC_AD8); comp.pwmChannel_0_Value = a; comp.pwmChannel_2_Value = 32767-a; comp.pwmChannel_4_Value = 0x4000; ioctl(PWM, PWM_UPDATE_VALUE_REGS_COMPL, &comp); ioctl(PWM, PWM_CLEAR_RELOAD_FLAG, NULL); } #pragma interrupt off /********************************************************************/ #pragma interrupt on void adc_isr(void) { ioctl( GPIO_A, GPIO_TOGGLE_PIN, BIT_4); if (ioctl(ADC0, ADC_TEST_CONVERSION_COMPLETE_A, NULL)) { adca_napatie=ioctl(ADC0, ADC_READ_SAMPLE_A, NULL); } if (control==2) { PIoutput = MCLIB_ControllerPI (desiredValue,adca_napatie, &PIparams); } if (control==0) { PIoutput=aa; } a=sub(FRAC16(1.0),PIoutput); FMSTR_Poll(); FMSTR_Recorder(); ioctl( GPIO_A, GPIO_TOGGLE_PIN, BIT_4); } #pragma interrupt off /********************************************************************/ #pragma interrupt on void adc2_isr(void) { ioctl( GPIO_A, GPIO_TOGGLE_PIN, BIT_5); if (ioctl(ADC1, ADC_TEST_CONVERSION_COMPLETE_A, NULL)) { if (zmena==0) { adca_prud=ioctl(ADC1, ADC_READ_SAMPLE_A, NULL); zmena=1; ioctl(ADC1, ADC_SET_INPUT_CHANNEL_A, ADC_AD8); } else { Prud_trimer=ioctl(ADC1, ADC_READ_SAMPLE_A, NULL); zmena=0; } } if (ioctl(ADC1, ADC_TEST_CONVERSION_COMPLETE_B, NULL)) { Prud_trimer=ioctl(ADC1, ADC_READ_SAMPLE_B, NULL); } if (control==1) { PIoutput = MCLIB_ControllerPI (Prud_trimer,adca_prud, &PIparams2); } if (adca_napatie>=nap) { control=prepnutie; } else { control=prep2; } } #pragma interrupt off
Záver
Článok opisuje postup skonštruovania nabíjačky olovených akumulátorov s možnosťou nabíjania konštantným prúdom a napätím. Na takto vytvorenej nabíjačke boli vykonané merania na overenie jej správnej činnosti, čiže po pripojení akumulátoru k nabíjačke sa tento nabíja požadovaným prúdom a po dosiahnutí napätia U=14,4V sa nabíja konštantným napätím, na ktoré môže byť batéria pripojená neobmedzene dlho.
Poďakovanie
Tento príspevok vznikol za podpory spoločnosti Freescale Semiconductor, Inc. a Žilinskej univerzity v Žiline, ktorým ďakujem za podporu pri realizácii projektu v rámci Freescale Technology Day 2010.
Odkazy
- Domovská stránka Freescale Semiconductor, Inc - http://www.freescale.cz
- Domovská stránka Freescale Technology Day v Žilině - http://www.ftd.uniza.sk/FTD/
- Domovská stránka Katedry výkonových elektronických systémů (KVES) Žilina - http://www.kves.uniza.sk
- Domovská stránka Žilinské univerzity - http://www.uniza.sk
- Domovská stránka Československé sekce IEEE - http://www.ieee.cz/
- Domovská stránka IEEE Industry Applications Society - http://ewh.ieee.org/soc/ias/
- Domovská stránka IEEE Industrial Electronics Society - http://ieee-ies.org/