Masterproef Bidirectionele Boost Converter
|
|
|
- Geert Smit
- 10 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Masterproef Bidirectionele Boost Converter Studiegebied Industriële wetenschappen en technologie Opleiding Master in de industriële wetenschappen: Elektronica-ICT Afstudeerrichting Elektronica-ICT Academiejaar Dries Vromman Howest departement Graaf Karel de Goedelaan 5, 8500 Kortrijk
2
3 Masterproef Bidirectionele Boost Converter Studiegebied Industriële wetenschappen en technologie Opleiding Master in de industriële wetenschappen: Elektronica-ICT Afstudeerrichting Elektronica-ICT Academiejaar Dries Vromman
4 Voorwoord Op het einde van het derde jaar kiezen alle studenten een onderwerp voor hun masterproef. Wij hebben de laatste vier jaar op regelmatige basis samengewerkt voor verschillende labo s en vonden het ook fijn om samen onze masterproef uit te werken. Toen er in de lijst met onderwerpen een onderwerp stond dat zich in het domein van de vermogenelektronica afspeelde twijfelden we niet lang om onze tanden in dit onderwerp te zetten. De masterproef is een project dat ons als student het hele vierde jaar bezighoudt. Dit document is een technisch verslag dat een duidelijk beeld van de realisatie van de masterproef moet schetsen. Een voorwoord dient ook om een aantal mensen te bedanken. Bij deze willen wij onze families, vriendinnen, vrienden en medestudenten bedanken voor de hulp, steun en een luisterend oor tijdens de moeilijke momenten. Daarnaast zouden we ook het docentenkorps in het algemeen en onze copromotoren in het bijzonder willen bedanken voor hun bijdrage tot deze masterproef. Tot slot, en daarom zeker en vast niet minder belangrijk, willen we nog twee mensen in het bijzonder bedanken voor hun onvoorwaardelijke bijdrage tot dit project. Want zonder de tomeloze inzet van onze promotor ir. Marc Windels en zonder de technische ondersteuning van Xavier Vanhoutte was de realisatie van deze masterproef waarschijnlijk veel moeizamer verlopen. Dries Vromman 6 mei 2010 Dries Vromman I
5 Abstract Many systems have a requirement to ride through short voltage interruptions. This paper describes the design of a bidirectional boost converter which is connected to a capacitor bank. The converter stores the energy in this bank at a high voltage because the energy in a capacitor is quadratic with the voltage. During a dropout, the converter transfers the energy from the storage bank to the bus. A special configuration with three MOSFET s and a diode is used for the converter topology. This topology is more robust for the inrush current problem than a traditional boost converter. The converter has an efficiency of 83% in boostmode and 93% in buckmode. The capacitor bank, used as energy buffer, has a total capacity of 33mF and can be loaded to 100V. This allows us to have 40W of power during 4 seconds. A control system based on a dspic 30F2020 Digital Signal Controller measures all the necessary signals, provides security and controls the Pulse Width Modulation (PWM) switching pattern of the MOSFET s. Dries Vromman II
6 Inhoudsopgave Voorwoord... I Abstract... II Inhoudsopgave... III Lijst afkortingen... VII Lijst figuren en tabellen... VIII Inleiding... 1 Hoofdstuk 1: BIDIRECTIONELE BOOST CONVERTER ALS ENERGIEOPSLAGSYSTEEM Inleiding Converter configuratie Configuratie Opbouw Werking boostmode Werking buckmode Nadelen configuratie Configuratie Opbouw Werking boostmode Werking buckmode Besluit Opstelling Hoofdstuk 2: HARDWARE Inleiding Vermogenprint Inleiding Bidirectionele boost converter Elektrisch schema Printontwerp Stuklijst Rendement converter dspic Wat is een dspic Dries Vromman III
7 2.3.2 dspic30f Software Gebruikte modules MOSFET s Inleiding V DSS R DS,ON Total Gate Charge Q TG Figure Of Merit (FOM) Diodes Spoel Current monitor Inleiding Principe Werking Praktisch Belangrijke specificaties Probleem FET Driver Probleem Elektrisch schema Printontwerp Stuklijst Meting Vermogen in functie van de schakelfrequentie Condensatorbank Inleiding Elektrisch schema Stuklijst Printontwerp Veiligheid Inleiding Ogenblikkelijk vermogen Dries Vromman IV
8 4.5.3 Thermisch model Condensatorbank praktisch ontladen Hoofdstuk 3: DIGITALE REGELKRING Inleiding Slope compensation Inleiding Probleem: Subharmonische oscillaties Peak Current Mode Control Subharmonische oscillaties Slope compensation Digitale slope compensatie Digitale current controller Discreet regelalgoritme Stabiliteitscontrole Software Toestanden Boostmode Buckmode Sleepmode Code Hoofdprogramma Initialisatie Interrupt ADC ADC-PAIR ADC-PAIR ADC-PAIR ADC-PAIR Interrupt Compare Boost- en buckalgoritme in DSP Besluit De vermogenprint Condensatorbank Software Dries Vromman V
9 Literatuurlijst... I Bijlagen... I 1. Schema vermogenprint... I 2. Schema FET-Driver... V 3. Schema condensatorbank... VI 4. Analytische analyse slope compensation... VII 5. MATLAB script stabiliteitscontrole... IX 6. Onderzoek convergentie recursieformule... X 7. Blokschema van de dspic30f XIV 8. Software... XV Dries Vromman VI
10 Lijst afkortingen ACMC ADC DAC DPWM DSP CMRR FET FOM HVES I/O IC LED MCLR MOSFET PCB PCMC PID PSRR SAR SMPS TTM VMC Average Current Mode Control Analoog Digitaal Converter Digitaal Analoog Converter Digital Pulse Width Modulator Digitale pulsbreedtemodulator Digital Signal Processor Digitale signaal processor Common Mode Rejection Ratio Field Effect Transistor Figure Of Merit High Voltage Energy Storage Input/Output Integrated Circuit Geïntegreerde schakeling Light Emitting Diode Master Clear Metal-Oxide-Semiconductor Field-Effect Transistor Printed Circuit Board Printplaat Peak Current Mode Control Proportioneel, Integrerende en Differentiërende regelaar Power Supply Rejection Ratio Successive Approximation Register Switch Mode Power Supply Geschakelde voeding Time To Market Voltage Mode Control Dries Vromman VII
11 Lijst figuren en tabellen Figuur 1: Principe opstartstroom... 2 Figuur 2: Energieopslag onder de vorm van een condensatorbank... 2 Figuur 3: Energieopslag in een condensatorbank d.m.v. een bidirectionele boost converter... 4 Figuur 4: Configuratie 1 bidirectionele boost converter... 5 Figuur 5: Boostmode configuratie 1 - Fase Figuur 6: Boostmode configuratie 1 - Fase Figuur 7: Samenvatting spoelstroom tijdens boostmode (configuratie 1)... 7 Figuur 8: Buckmode configuratie 1 - Fase Figuur 9: Buckmode configuratie 1 - Fase Figuur 10: Samenvatting spoelstroom tijdens buckmode (configuratie 1)... 9 Figuur 11: Configuratie 2 bidirectionele boost converter Figuur 12: Boostmode configuratie 2 - Fase Figuur 13: Boostmode configuratie 2 - Fase Figuur 14: Samenvatting spoelstroom tijdens boostmode (configuratie 2) Figuur 15: Buckmode configuratie 2 - Fase Figuur 16: Buckmode configuratie 2 - Fase Figuur 17: Samenvatting spoelstroom tijdens buckmode (configuratie 2) Figuur 18: Praktische opstelling Figuur 19: Vermogenprint Figuur 20: MPLAB IDE project manager Figuur 21: Verwerkingstijd buck-algoritme met gewone instructies Figuur 22: Verwerkingstijd buck-algoritme met DSP-instructies Figuur 23: Blokschema ADC-module Figuur 24: Trigger-event op ½ T on Figuur 25: Edge-Aligned PWM en blokschema primaire time base Figuur 26: Blokschema comparator Figuur 27: Symbool MOSFET Figuur 28: R DS,ON in functie van de junctietemperatuur T C Figuur 29: Gate charge van een FDP Figuur 30: Configuratie 2 met extra diodes Figuur 31: Principe INA Dries Vromman VIII
12 Figuur 32: Opstelling buckmode met current monitor resistief belast Figuur 33: Simulatie current monitor - belast met weerstand 9K Figuur 34: Meting current monitor - belast met weerstand 9K Figuur 35: Meting current monitor - hoog impedant belast met ingang ADC Figuur 36: Meting current monitor - uitgang niet belast Figuur 37: Meting current monitor - uitgang belast met 200Ω Figuur 38: High side probleem Figuur 39: Afstand tussen de twee connectoren Figuur 40: FET driver Figuur 41: Uitgang FET driver bij een duty cycle van 50% Figuur 42: Delay FET driver Figuur 43: Stroom I in functie van de frequentie (praktisch) Figuur 44: Blokschema FET driver Figuur 45: Stroom I in functie van de frequentie (theoretisch) Figuur 46: Condensatorbank Figuur 47: Condensatoren parallel Figuur 48: Condensatoren parallel met gelijke afstand tot ingang Figuur 49: Principeschema condensatorbank Figuur 50: Ontladen condensatorbank Figuur 51: Ogenblikkelijk vermogen p(t) gedissipeerd in weerstand van de condensatorbank Figuur 52: De Wirewound heatsink mounted serie van ARCOL Figuur 53: Voorstelling weerstand voor thermisch model Figuur 54: Equivalent thermisch model weerstand Figuur 55: Simulatie van het equivalent thermisch model Figuur 56: Praktisch ontladen condensatorbank Figuur 57: Principefiguur subharmonische oscillaties Figuur 58: Spoelstroom zonder slope compensatie Figuur 59: Subharmonische oscillaties Figuur 60: Slope compensation Figuur 61: Digitale Current Controller Figuur 62: Digitale slope compensation Figuur 63: Slope compensation grafisch Figuur 64: Controle van de stabiliteit voor R=0, Dries Vromman IX
13 Figuur 65: Controle van de stabiliteit voor R=1, Figuur 66: Toestandsdiagram Figuur 67: Principeschema regelkring boostmode ACMC Figuur 68: Principeschema regelkring VMC buckmode Figuur 69: Blokschema hoofdprogramma Figuur 70: Blokschema initialisatie Figuur 71: Algemeen blokschema van een ADC-interrupt Figuur 72: Blokschema PAIR Figuur 73: Blokschema PAIR Figuur 74: Blokschema PAIR Figuur 75: Blokschema PAIR Figuur 76: Blokschema compare interrupt Figuur 77: Blokschema algoritme Tabel 1: Stuklijst vermogenprint Tabel 2: Verschil tussen dspic30f2020 en dspic33fj16gs Tabel 3: FOM voor een aantal MOSFET s met een V DS van 150V Tabel 4: Stuklijst FET driver Tabel 5: Stuklijst condensatorbank Tabel 6: Verband thermische en elektrische capaciteit Tabel 7: Specifieke warmtes voor thermisch model weerstand Tabel 8: Thermische weerstanden voor thermisch model weerstand Tabel 9: Voorwaarden bij toestandsdiagram Dries Vromman X
14 Inleiding Deze masterproef is uitgevoerd aan de Hogeschool West-Vlaanderen te Kortrijk. Het is een interne masterproef die zich bevindt in het domein van de vermogenelektronica, meer bepaald in het gebied van de schakelende voedingen. Een meer universele naam die uit de Engelse taal ontleend is, is SMPS (Switch Mode Power Supply). Het is de bedoeling om één bepaalde topologie uit te werken en die dan te koppelen aan een energievat zodat het mogelijk wordt een energieopslagsysteem te bouwen. Ten eerste wordt de gebruikte converter gekenmerkt door twee energiestromen. Enerzijds van de bus, waar de belasting en de bron aan gekoppeld zijn, naar het energievat en anderzijds van het energievat naar de bus. De gebruikte topologie zal dus bidirectioneel moeten zijn. Ten tweede zal de energieopslag op een hogere spanning gebeuren omdat de opgeslagen energie in het energievat kwadratisch verloopt met de spanning. Dit alles in acht genomen betekent dat er nood is aan een bidirectionele boost converter. De toepassing wordt net als de gebruikte topologie toegelicht in hoofdstuk 1. Verder kan deze masterproef opgesplitst worden in twee grote blokken. Enerzijds is er het hardwareontwerp en anderzijds is er de ontwikkeling van de benodigde software. Het hardwaregedeelte is op zijn beurt opgedeeld in verschillende deelproblemen. Zo is er in eerste instantie een FET driver ontworpen om de MOSFET s aan te sturen die zich op de vermogenprint bevinden. Op de vermogenprint is de bidirectionele boost converter geïmplementeerd die aangestuurd wordt door een dspic. Tot slot is er nog een condensatorbank ontworpen die dienst doet als energievat. Het hardwaregedeelte wordt dieper uitgewerkt in hoofdstuk 2. Naast het hardwaregedeelte is er ook nog een softwaregedeelte. De hardware is opgebouwd rond een dspic30f2020 van Microchip. Deze microcontroller is volledig geprogrammeerd in assembler. In de geschreven software is de regelkring voorzien van een boost- (opladen energievat) en een buckmode (ontladen energievat). Daarnaast is er in de software ook de benodigde beveiliging voorzien naast de beveiliging die uitgevoerd is in hardware. Dit alles wordt omschreven in hoofdstuk 3. Dries Vromman 1
15 Hoofdstuk 1: BIDIRECTIONELE BOOST CONVERTER ALS ENER- GIEOPSLAGSYSTEEM 1. Inleiding Sommige belastingen vereisen een overbrugging van spanningsdips of spanningsfluctuaties, andere hebben op bepaalde momenten een extra stroomvraag. Een voorbeeld van een extra stroomvraag kan een belasting zijn die tijdens het opstarten meer stroom trekt. Dit voorbeeld wordt hieronder principieel weergegeven in figuur 1. Een belasting die een stroomverloop in functie van de tijd i Load (t) heeft, is aan een bus gekoppeld. Deze bus voorziet de belasting van een spanning V BUS. Figuur 1: Principe opstartstroom Als bovenstaande situatie zich in de praktijk voordoet dan zal de bron (hier V BUS ) gedimensioneerd moeten worden volgens de piekstroom I P. Dit leidt meestal tot een meerkost. Om hiervoor (en ook tegen spanningsdips) een oplossing te bieden kan een extra energiebuffer aangewend worden. Dit energievat kan geïmplementeerd worden onder de vorm van een condensatorbank die door middel van een tweedraadsverbinding verbonden is met de bus zoals weergegeven in figuur 2.[1] Figuur 2: Energieopslag onder de vorm van een condensatorbank Dries Vromman 2
16 De beschikbare energie in een dergelijke configuratie is te schrijven als: E = 1 2 C V 1 2 V 2 2 (1) Met E = de beschikbare energie in Joule (J) Met C = de capaciteit van de condensatorbank in Farad (F) Met V 1 = startspanning, de spanning over de condensatorbank voor het ontladen in Volt (V) Met V 2 = eindspanning, de spanning over de condensatorbank na het ontladen in Volt (V) Uit bovenstaande formule kan besloten worden dat, voor eenzelfde beschikbare energie E, de capaciteit groter zal moeten worden als het spanningsverschil tussen V 1 en V 2 kleiner wordt. Dit is nu ook het probleem bij een configuratie zoals weergegeven in figuur 2. Van de spanning op de bus wordt meestal verwacht dat die vrij stabiel is. Dit wil zeggen dat de spanningsverandering V 1 V 2 zo klein mogelijk moet zijn bij het opvangen van een spanningsdip en/of een extra stroomaanvraag. Om de spanningsverandering zo klein mogelijk te houden, voor eenzelfde beschikbare energieinhoud, moet de totale capaciteit van de condensatorbank zo groot mogelijk zijn. Dit betekent dat er relatief veel capaciteit (dus veel condensatoren en dus een grotere kost) nodig zal zijn, wat meteen een groot nadeel is van deze methode. Ten tweede kan uit bovenstaande formule ook geconcludeerd worden dat, voor eenzelfde capaciteit, er meer energie kan opgeslagen worden bij een hogere spanning. De opgeslagen energie in een condensator verloopt immers kwadratisch met de spanning. Een andere manier om de eerder beschreven problemen op te lossen is High-Voltage-Energy Storage (HVES) [1]. Bij HVES wordt de energie in de condensatoren opgeslagen op een hogere spanning waardoor het spanningsverschil tussen de startspanning (V 1 ) en de eindspanning (V 2 ) groter kan worden. Bij een dergelijke manier van werken is er wel een extra stuk hardware nodig dat ten eerste in staat moet zijn energie van de bus naar de condensatorbank te brengen, maar ook omgekeerd, en ten tweede moet de condensatorbank opgeladen worden tot op een hogere spanning. Om bovenstaande te realiseren wordt in deze masterproef gebruik gemaakt van een bidirectionele boost converter. Het algemeen blokschema is weergegeven in figuur 3. De ingang van de bidirectionele boost converter, de kant die met de bus verbonden is, wordt de lage spanningskant genoemd en de uitgang, de kant die met de condensatorbank verbonden is, wordt de hoge spanningskant genoemd. Dries Vromman 3
17 Figuur 3: Energieopslag in een condensatorbank d.m.v. een bidirectionele boost converter In de normale werking van de bidirectionele boost converter zijn er twee modes te onderscheiden: 1) Boostmode: Deze fase wordt gekenmerkt door een energiestroom van de bus naar de condensatorbank. 2) Buckmode: In deze fase wordt er energie van de condensatorbank terug naar de bus gevoerd omdat de voeding van de bus om een of andere reden niet genoeg in energie kan voorzien. De vraag die nu nog gesteld moet worden is wat de inhoud is van het blokje dat in figuur 3 als bidirectionele boost converter is omschreven. Het antwoord op die vraag wordt hieronder stap voor stap uitgewerkt. Dries Vromman 4
18 2. Converter configuratie 2.1 Configuratie Opbouw In zijn eenvoudigste vorm zou een bidirectionele boost converter opgebouwd kunnen worden zoals weergegeven in figuur 4 [1-4]. Deze configuratie lijkt bijzonder goed op de configuratie van een traditionele boost converter. Het enige verschil is dat er een tweede MOSFET (FET2) gebruikt wordt in plaats van een diode. Dit is nodig om de energie van uit de condensatorbank terug te kunnen sturen naar de bus in de buckmode. Bus met belasting Bidirectionele Boost Converter Configuratie 1 Condensatorbank Figuur 4: Configuratie 1 bidirectionele boost converter Om de werking te beschrijven van de configuratie die weergegeven is in figuur 4 wordt er zoals eerder gezegd een onderscheid gemaakt tussen boostmode en buckmode. Voor de werking die hieronder volgt, wordt uitgegaan van ideale componenten en van het feit dat de spanningen (V BUS en v C ) tijdens een bepaalde schakelperiode ongeveer constant zijn. Dries Vromman 5
19 2.1.2 Werking boostmode De boostmode valt uiteen in twee fases. De eerste fase doet zich voor gedurende een tijd T ON. De tweede fase volgt onmiddellijk na de eerste fase en duurt een tijd T OFF. De som van de twee tijden wordt gedefinieerd als een schakelperiode T. De verhouding van T ON en de schakelperiode T wordt de duty cycle D genoemd. T = T ON + T OFF (2) D = T ON T (3) Tijdens de eerste fase is FET1 een gesloten en FET2 een open schakelaar. Deze situatie is schematisch weergegeven in figuur 5 en duurt zoals eerder gezegd een zekere tijd T ON. Over de spoel staat nu de volledige busspanning V BUS. v L = L di L dt (4) Volgens bovenstaande vergelijking zal de stroom door de spoel nu lineair stijgen met helling: di L dt = V BUS L v L v L V bus i L v C V bus i L v C Figuur 5: Boostmode configuratie 1 - Fase 1 Figuur 6: Boostmode configuratie 1 - Fase 2 Tijdens de tweede fase zijn FET1 en FET2 open schakelaars, de inwendige diode van FET2 komt in geleiding. Over FET1 en FET2 is een extra ultra-fast diode geplaatst. Deze wordt nu, voor de eenvoud, nog even buiten beschouwing gelaten. De situatie gedurende de tijd T OFF is schematisch weergegeven in figuur 6. De spanning die nu over de spoel komt te staan is te schrijven als: v L = V BUS v C Dit wil zeggen dat de helling van de stroom nu als volgt te schrijven is: di L dt = V BUS v C L Dries Vromman 6
20 Met bovenstaande formule zijn er nu drie mogelijkheden: V BUS > v C : De condensatorbank is nog niet opgeladen tot boven de busspanning. De spoelstroom zal, zelfs in de tweede fase, blijven stijgen omdat het verschil tussen de busspanning en de condensatorspanning positief is. Er moet opgemerkt worden dat deze stijgende helling van de spoelstroom kleiner zal zijn dan de stijgende helling van de stroom tijdens de periode T ON. Dit omdat het verschil V BUS v C steeds kleiner is dan V BUS. V BUS = v C : De condensatorbank is opgeladen tot de busspanning. Dit is eigenlijk een puur hypothetisch geval omdat de kans dat dit geval exact optreedt uiterst klein is. Mocht het toch voorkomen dat beide spanningen even groot zijn, dan zal de spoelstroom constant blijven. V BUS < v C : De condensatorbank is opgeladen tot boven de busspanning. De spoelstroom zal dalen omdat het verschil tussen de busspanning en de condensatorspanning negatief is. In onderstaande figuur zijn bovenstaande mogelijkheden voor de spoelstroom in een algemeen geval getekend bij een constante duty cycle. De helling van de stijgende spoelstroom is steeds constant, de dalende helling is afhankelijk van de spanning over de condensatorbank (v C ). Figuur 7: Samenvatting spoelstroom tijdens boostmode (configuratie 1) Door de duty cycle te wijzigen is het mogelijk om de stroom op een bepaald niveau te dwingen. Dit is dan eigenlijk niets anders dan het regelen van de spoelstroom. Dit wordt verder in de tekst meer uitgewerkt. Tot slot moet er opgemerkt worden dat het ten allen tijde vermeden moet worden dat beide FET s op hetzelfde moment gesloten zijn. Dit zou er immers voor zorgen dat de condensator(-bank) kortgesloten wordt. Dit fenomeen wordt ook wel shoot-through genoemd. Dries Vromman 7
21 2.1.3 Werking buckmode In de buckmode wordt er energie van de condensatorbank terug naar de bus gevoerd omdat de voeding van de bus om een of andere reden niet genoeg in energie kan voorzien. Opnieuw kan de buckmode opgesplitst worden in twee fases. v L v L V bus i L v C V bus i L v C Figuur 8: Buckmode configuratie 1 - Fase 1 Figuur 9: Buckmode configuratie 1 - Fase 2 Tijdens de eerste fase is FET1 een open schakelaar en FET2 een gesloten schakelaar. Deze situatie is schematisch weergegeven in figuur 8 en duurt een zekere tijd T ON. De spanning die nu over de spoel komt te staan is te schrijven als: v L = v C V BUS De helling van de spoelstroom is volgens vergelijking 4 te schrijven als: di L dt = v C V BUS L Aan de hand van bovenstaande formule zijn er nu drie mogelijkheden af te leiden: V BUS > v C : De busspanning is groter dan de spanning over de condensatorbank. De spoelstroom zal dalen omdat het verschil tussen de condensatorspanning en de busspanning negatief is. Er moet opgemerkt worden dat dit geval in de praktijk niet zal voorkomen. Er zal steeds gezorgd worden dat de condensatorbank voldoende opgeladen is. V BUS = v C : De condensatorbank is opgeladen tot de busspanning. Dit is opnieuw een puur hypothetisch geval omdat de kans dat dit geval exact voorkomt uiterst klein is. Mocht het toch voorkomen dat beide spanningen even groot zijn, dan zal de spoelstroom constant blijven. V BUS < v C : De condensatorbank is opgeladen tot boven de busspanning. De spoelstroom zal stijgen omdat het verschil tussen de busspanning en de condensatorspanning positief is. Tijdens de tweede fase zijn FET1 en FET2 open schakelaars. De interne diode van FET1 komt nu in geleiding. Zoals eerder gezegd staat er over deze MOSFET nog een extra diode die in geleiding zal komen, maar voor de eenvoud wordt ze nog even buiten beschouwing gelaten. Deze situatie is schematisch weergegeven in figuur 9 en duurt een zekere tijd T OFF. Over de spoel staat nu minus de busspanning. Opnieuw is de helling van de spoelstroom volgens vergelijking 4 te schrijven als: Dries Vromman 8
22 di L dt = V BUS L In onderstaande figuur is de spoelstroom in een algemeen geval getekend. De gevallen waarbij de spoelstroom constant blijft of zelf daalt, zijn niet opgenomen in de figuur omdat het niet de bedoeling is dat deze voorkomen tijdens de normale werking. De stijgende helling is afhankelijk van de spanning van de condensatorbank. De dalende helling is steeds constant, in de veronderstelling dat de busspanning constant is. Figuur 10: Samenvatting spoelstroom tijdens buckmode (configuratie 1) Opnieuw moet er opgemerkt worden dat het ten allen tijde vermeden moet worden dat beide FET s op hetzelfde moment gesloten zijn. Dit zou er immers voor zorgen dat de totale capaciteit kortgesloten is Nadelen configuratie 1 Een belangrijk nadeel van deze configuratie is weergegeven in figuur 7. Tijdens de boostmode en als de condensatorbank nog onvoldoende is opgeladen (V BUS > v C ), zal de spoelstroom blijven stijgen. Op deze manier kan de spoelstroom bij het opstarten zodanig ongecontroleerd oplopen dat er componenten beschadigd kunnen worden. Een ander probleem kan zich voordoen wanneer de bus en de converter om een of andere reden (bijvoorbeeld door een slechte kabel) plots van elkaar gescheiden worden als er nog een stroom door de spoel vloeide. De stroom vindt nu geen geleidingsweg meer en de spoel zal daardoor een zeer grote spanning over zijn klemmen generen waardoor er ernstige schade aangericht kan worden aan de componenten. Een derde probleem bij deze configuratie is dat er geen enkele ingreep kan gebeuren als de hoge spanningszijde, de kant van de condensatorbank, wordt kortgesloten. De inwendige diode van FET2 zal in geleiding komen en de volledige busspanning komt over de spoel te staan. De kortsluitstroom is niet te onderbreken, ook niet door alle FET s uit te schakelen. Bovenstaande problemen zijn niet onmiddellijk op te lossen binnen deze configuratie zonder het toevoegen van extra functionaliteit. Hieronder zal in een tweede configuratie een oplossing gezocht worden voor bovenstaande problemen. Dries Vromman 9
23 2.2 Configuratie Opbouw Om de beschreven nadelen van de eerste configuratie op te lossen, wordt er extra functionaliteit toegevoegd aan die eerste configuratie. Dit omvat een diode (D1) en een extra MOSFET (FET3). De nieuwe configuratie is hieronder weergegeven in figuur 11. Bus met belasting Bidirectionele Boost Converter Configuratie 2 Condensatorbank Figuur 11: Configuratie 2 bidirectionele boost converter Om de werking te beschrijven van de verbeterde configuratie wordt er opnieuw een onderscheid gemaakt tussen boostmode en buckmode. In theorie is deze terminologie niet meer helemaal correct omdat er niet meer gewerkt wordt met een zuivere boost en buck converter. Toch worden deze termen verder gebruikt in deze tekst om de eenvoud en de begrijpbaarheid van de tekst te behouden. Voor de werking die hieronder volgt, wordt uitgegaan van ideale componenten en van het feit dat de spanningen (V BUS en v C ) tijdens een bepaalde schakelperiode ongeveer constant blijven. Dries Vromman 10
24 2.2.2 Werking boostmode De boostmode valt opnieuw uiteen in twee fases. Tijdens de eerste fase zijn FET1 en FET3 gesloten, FET2 is een open schakelaar. Deze situatie is schematisch weergegeven in figuur 12 en is geldig gedurende een zekere tijd T ON. Over de spoel staat nu de volledige busspanning V BUS. v L v L V bus i L v C V bus i L v C Figuur 12: Boostmode configuratie 2 - Fase 1 Figuur 13: Boostmode configuratie 2 - Fase 2 Volgens vergelijking 4 zal de stroom door de spoel nu lineair stijgen met helling: di L dt = V BUS L Gedurende de tweede fase komt de inwendige diode van FET2 en ook de extra diode die over deze MOSFET staat in geleiding, FET1 en FET3 zijn open schakelaars. Deze situatie is schematisch weergegeven in figuur 13 en duurt een zekere tijd T OFF. Over de spoel staat nu minus de spanning van de condensatorbank. De helling van de spoelstroom kan volgens vergelijking 4 geschreven worden als: di L dt = v C L Dit betekent concreet dat de spoelstroom gedurende deze fase zeker zal dalen. Hiermee is dus het eerste probleem dat in punt besproken werd opgelost. Er moet wel opgemerkt worden dat de spoelstroom constant blijft indien de spanning van de condensatorbank 0V bedraagt. Dit geval zal in de normale werking nooit exact voorkomen. Hieronder is een algemeen geval weergegeven van het verloop van de spoelstroom. Het geval waarbij de spoelstroom constant blijft is niet opgenomen in dit beeld. Onderstaande grafiek is opgesteld met een vaste duty cycle. De stijgende spoelstroom is steeds constant terwijl de dalende helling afhankelijk is van de grootte van de spanning over de condensatorbank. Naarmate deze spanning groter wordt zal de dalende helling groter worden. Dries Vromman 11
25 Figuur 14: Samenvatting spoelstroom tijdens boostmode (configuratie 2) Door de grootte van de duty cycle te regelen kan de stroom op een bepaald niveau gedwongen worden. Op die manier kan de condensatorbank opgeladen worden met een constante stroom. Meer hierover staat verder in de tekst. Dries Vromman 12
26 2.2.3 Werking buckmode In de eerste fase van de buckmode, afgebeeld in figuur 15, zijn FET2 en FET3 gesloten. FET1 is een open schakelaar. De eerste fase duurt een zekere tijd T ON en de spoelspanning gedurende deze periode is gelijk aan v C V BUS. Hiermee kan de helling van de spoelstroom berekend worden. di L dt = v C V BUS L De spanning van de condensatorbank zal steeds hoger gehouden worden dan de spanning van de bus. Uit bovenstaande formule kan geconcludeerd worden dat de spoelstroom steeds stijgt. v L v L V bus i L v C V bus i L v C Figuur 15: Buckmode configuratie 2 - Fase 1 Figuur 16: Buckmode configuratie 2 - Fase 2 In de tweede fase, die een tijd T OFF duurt, zijn FET1 en FET2 open schakelaars en is FET3 gesloten. De inwendige diode van FET1 komt in geleiding. Deze situatie is weergegeven in figuur 16. De spoelspanning is makkelijk uit de figuur af te leiden als minus de busspanning. Hiermee kan de helling van de spoelstroom geschreven worden als: di L dt = V BUS L De spoelstroom zal nu dus dalen aangezien de waarde V BUS steeds groter dan 0V beschouwd wordt. Het verloop van de spoelstroom wordt hieronder in een samenvattende figuur weergegeven bij een constante duty cycle. De dalende helling wordt als constant beschouwd (V BUS = constante), de stijgende helling is afhankelijk van de spanning van de condensatorbank. Hoe meer die ontladen wordt tijdens de buckmode, hoe lager de spanning wordt, hoe kleiner de dalende helling. Figuur 17: Samenvatting spoelstroom tijdens buckmode (configuratie 2) Dries Vromman 13
27 Tot slot moet nog vermeld worden dat ook het tweede probleem, dat in punt besproken werd, opgelost is met deze configuratie. Zowel in boost- als in buckmode kan de spoelstroom een geleidingsweg vinden als de condensatorbank om een of andere reden losgekoppeld wordt. Het derde probleem waarbij er niet kan opgetreden worden bij een kortsluiting aan de hoge spanningszijde is ook opgelost. Indien een te hoge spoelstroom gedetecteerd wordt, kan FET3 geopend worden waardoor het kortsluitpad onderbroken is Besluit Deze verbeterde configuratie biedt dus wel degelijk een oplossing voor de genoemde nadelen in punt Daarom zal deze configuratie gebruikt worden om de bidirectionele boost converter in de praktijk te realiseren. 3. Opstelling In de onderstaande figuur is de praktische opstelling te zien Figuur 18: Praktische opstelling In bovenstaande opstelling zijn de grootste blokken van de opstelling aangeduid. Om te beginnen is er op de bus (2) een bron (1) aangesloten die een bepaalde busspanning V BUS levert. Hier zal er gewerkt worden met een busspanning van 24V. Ten tweede is er op de bus een belasting (7) aangesloten. Deze belasting wordt hier voorgesteld als een lamp (24V/40W). Vervolgens is de ingang van de bidirectionele boost converter (3) via een tweedraadsverbinding ook aangesloten op deze bus. De uitgang van deze vermogenprint (3) is verbonden met de condensatorbank (4) waarin zich de nodige gebufferde energie bevindt. De vermogenprint wordt volledig aangestuurd door een dspic30f2020. Om deze te programmeren of te debuggen is gebruik gemaakt van de MPLAB ICD2 module van Microchip (5). Deze module wordt op zijn beurt aangesloten aan een computer waarop de assembler code geschreven is. Dries Vromman 14
28 Hoofdstuk 2: HARDWARE 1. Inleiding Het eerste deel van de masterproef bestond erin de nodigde hardware te ontwerpen voor de bidirectionele boost converter die besproken werd in hoofdstuk 1. Uit praktische overwegingen is het gehele project opgedeeld in aparte (kleinere) stukken. Hieronder worden deze delen opgesomd: Vermogenprint FET driver Condensatorbank Bovengenoemde onderdelen worden hieronder uitgewerkt. De schema s zijn opgenomen als bijlage. 2. Vermogenprint 2.1 Inleiding De kerntaak van deze masterproef is de bouw van een bidirectionele boost converter. Het principe van de schakeling is hierboven al uitgelegd. Nu wordt meer benadrukt hoe de converter in de praktijk is opgebouwd op de PCB. De converter is opgebouwd rond een microcontroller van Microchip. 2.2 Bidirectionele boost converter Elektrisch schema Voeding De dspic30f2020 heeft een voedingsspanning nodig van +5V. Daarnaast is er ook voor gezorgd dat alle andere componenten (FET-driver, current monitors ) van de vermogenprint die een voeding nodig hebben kunnen werken op +5V. Om die voedingsspanning te realiseren is gebruik gemaakt van een transformator die de netspanning omzet naar een lagere spanning, een gelijkrichter die de omlaag getransformeerde spanning gelijkricht, een afvlakcondensator om de gelijkgerichte spanning af te vlakken en een stabilisator om een gestabiliseerd 5V signaal af te leveren. De voeding is voorzien van een LED om de goede werking van de voeding te visualiseren. De microcontroller voorziet twee pinnen (A VDD en A VSS ) om een referentiespanning aan te sluiten. Deze referentie wordt gebruikt door de ADC s die aanwezig zijn. Het is ook mogelijk om deze pinnen gewoon te verbinden met de voedingsspanning. Echter zal de digitalisering dan minder nauwkeurig verlopen. Daarom is er hier geopteerd om een referentiespanning aan te sluiten op deze pinnen. Het referentiesignaal wordt aangemaakt door een REF02BP +5V precision voltage reference van Texas Instruments. Naast de voeding voor de componenten op de vermogenprint is nog een ingangsconnector voorzien om de vermogenvoeding aan te sluiten. Deze vermogenvoeding is eigenlijk de busspanning waarvan sprake is in figuur 3. Dries Vromman 15
29 dspic De volledige print wordt aangestuurd door middel van een dspic30f2020. Deze is ontkoppeld door middel van keramische condensatoren. Ten tweede is er bij de microcontroller een resetcircuit voorzien. Het is mogelijk om te resetten door de resetknop te bedienen of door de microcontroller te verbinden met de MPLAB ICD2 (In Circuit Debugger). Indien de drukknop bediend wordt, komt de MCLR (Master CLeaR) pin van de microcontroller laag te staan waardoor deze gereset wordt. De microcontroller wordt geprogrammeerd door middel van de MPLAB ICD2. Deze maakt het mogelijk serieel te programmeren zonder de microcontroller uit de schakeling te moeten halen. Om de debugger aan te kunnen sluiten op de vermogenprint is een RJ-11 voorzien (zie figuur 19). Hierbij zijn drie signalen van deze connector met de microcontroller verbonden. Deze zijn: PGD: Programming Data PGC: Programming Clock MCLR: Master Clear Verder zijn de PWM kanalen verbonden met de FET-drivers. Meer over deze drivers volgt verder in de tekst. Vervolgens zijn er vier ADC ingangen van de dspic gebruikt om de ingangsspanning, de uitgangsspanning en de stroom tijdens de buck- en boostmode op te meten. De spanningen worden opgemeten door middel van spanningsdelingen, de stromen worden opgemeten door middel van een sense-weerstand en een current monitor. Meer over deze laatste volgt verder in de tekst. De gedigitaliseerde waarden worden gebruikt in de regelkringen en ter beveiliging. Naast de hierboven genoemde ADC ingangen is er ook nog een ADC ingang verbonden met een regelbare weerstand. In het definitieve programma zal de spanning van de condensatorbank door middel van deze weerstand ingesteld kunnen worden. Om de veiligheid te garanderen is er een veiligheidsmechanisme ingebouwd bij de condensatorbank (zie pagina 48: veiligheid). Naast de hardwarebeveiliging (normaal gesloten contact relais) is er ook een softwarebeveiliging. Om de microcontroller duidelijk te maken dat de condensatorbank verbonden is, wordt de controlelus ingelezen door middel van een I/O-pin (Input/Output-pin). Om de microcontroller nu ook gepast te laten reageren, stuurt hij via een andere I/O-pin het relais aan op de condensatorbank. Tot slot is er ook nog een I/O-pin verbonden met een jumper. Met deze jumper kan er gekozen worden om een indicatie LED of een externe indicatie (vb. zoemer) aan te sturen. Deze indicatie is gebruikt om het programma tijdens de ontwikkelfase te testen en wordt in het definitieve programma gebruikt om aan te duiden dat er een te hoge spanning of stroom is opgetreden. Dries Vromman 16
30 Vermogengedeelte Om te beginnen is aan de ingang en aan de uitgang van de converter een spanningsdeling voorzien. Deze deling is noodzakelijk om de ingangs- en uitgangsspanning te kunnen inlezen in de dspic. De spanning aan de ingangsklemmen van de microcontroller mag immers niet groter zijn dan de voedingspanning van +5V. Aan de ingang is een capaciteit voorzien die tijdens de buckmode dienst doet als afvlakcondensator voor de belasting. Aan de uitgang van de boost converter is één van de vijftien condensatoren geplaatst. Voor elke MOSFET zijn er twee connectoren voorzien om de FET-driver in vast te klikken. Meer over de specificaties van de MOSFET s volgt hieronder. In serie met de spoel is een sense-weerstand geplaatst die nodig is om de stroom te kunnen opmeten met de current monitors. Door middel van een connector wordt de uitgang van de converter verbonden met de condensatorbank. Deze connector is bestand tegen een voldoende grote stroom. Er is een potentiometer voorzien waarmee de wenswaarde voor de spanning van de condensatorbank kan ingesteld worden. Het volledige schema is opgenomen als bijlage Printontwerp Bij het ontwerpen van de PCB van de vermogenprint zijn een aantal regels in acht genomen. Deze zijn hieronder kort samengevat: Bij de transformator van de voeding is er op gelet dat de primaire en de secondaire zo veel mogelijk gescheiden worden van elkaar. Bij de dspic30f2020 en de andere IC s is ervoor gezorgd dat de ontkoppelcondensatoren zo dicht mogelijk bij de voedingspinnen geplaatst zijn. De afstand tussen de uitgang van de FET-driver en de gate van de FET is zo kort mogelijk gehouden. Dit om ervoor te zorgen dat printsporen zich niet al te inductief gaan gedragen. De current monitors zijn zo dicht mogelijk bij de sense-weerstand geplaatst. Ook de afstand tussen de uitgang van de current monitor en de ingang van de microcontroller is beperkt gehouden. De verbindingen tussen de MOSFET s, de diodes, de spoel, de sense-weerstand en alle andere componenten in de vermogenkring zijn zo kort mogelijk gehouden om parasitaire inducties te beperken. De sporen van de vermogenkring zijn voldoende dik ontworpen om een voldoende grote stroom te kunnen geleiden. Er zijn meetpinnen voorzien om de voedingsspanning te controleren en om de stromen op te meten. De massa van de stuurkring en de vermogenkring komen samen in één massapunt, gelegen aan de source van FET1 (zie figuur 11). Dries Vromman 17
31 Hieronder is een foto weergegeven van de vermogenprint. Uitgangsconnector naar condensatorbank Connector busspanning FET-drivers RJ11-connector Figuur 19: Vermogenprint Stuklijst De gebruikte componenten zijn hieronder in een lijst weergegeven. Tabel 1: Stuklijst vermogenprint stukkenlijst waarde beschrijving aantal B1 2KBP gelijkrichter 1 C1 4,7mF condensator 1 C2 330nF condensator 1 C3, C5, C7, C10-C12, C18-C20 100nF condensator 9 C4 470µF condensator 1 C6 330µF condensator 1 C8 100nF condensator SMD 1 C9 2,2mF condensator 1 C13-C17 10nF condensator 5 D1 1N4004 diode 1 D2-D4 BYV42E-150 ultra fast diode 3 F1 SH22,4A zekering 1 F1 zekeringhouder 1 F1 zekeringkap 1 IC1 78S05 spanningsstabilisator 1 IC2 REF02 5V voltage reference 1 IC3, IC5 INA194 current sense monitor 2 IC7 DSPIC30F2020 microcontroller 1 IC7 DIP28 IC-voet 1 J1, J2 L printkroonsteen 2 Dries Vromman 18
32 J3 RJ11 1 JP1-JP6 1X3 connector 6 JP7 jumper 1 KK1-KK7 koelplaat 7 L1 77µH spoel 1 LED1 groen led 1 LED2 rood led 1 PL1 Molex connector 1 Q1-Q3 FDP2532 MOSFET 3 R1 2,2Ω weerstand 1 R2, R21, R16, R17 470Ω weerstand 4 R3 15mΩ shuntweerstand 1 R4, R5, R11 3,3k weerstand 3 R6, R7, R10 15Ω weerstand 3 R8 200k weerstand 1 R9 22M weerstand 1 R12, R14 20k weerstand 2 R13, R15 330k weerstand 2 R18 4,7k weerstand 1 R k regelbare weerstand 1 R20, R22 11k weerstand 2 RESET drukknop 1 T1 BC547 transistor 1 TRANSFO FL24-9 transformator Rendement converter Algemeen kan het rendement uitgedrukt worden als de nuttig gebruikte energie gedeeld door de toegevoerde energie. Dit wordt nu even toegepast om het rendement van de converter te berekenen. Boostconverter Indien de converter in boostmode werkt, wordt er energie van de bus naar de condensatorbank gebracht. De condensatorbank wordt dus opgeladen. Het rendement van de converter in boostmode is bepaald door de hoge spanningszijde te belasten en deze af te regelen op een constante spanning bij een busspanning van 24V. Hierbij zijn de ingangs- en uitgangsstroom gemeten om het toegevoerde en het nuttige vermogen te bepalen. η boost = P nuttig P toegevoerd = V c I out V bus I in (5) Volgens vergelijking 5 wordt het rendement van de boost converter 83%. η boost = 92,3V 0,53A 24V 2,45A = 48,91W 58,8W = 83,18% Dries Vromman 19
33 Buckconverter Als de converter in buckmode werkt, wordt er energie van de condensatorbank naar de bus gebracht. De toegevoerde energie is dus de energie die van de condensatorbank afkomstig is. De energie die nuttig gebruikt wordt is de energie die in de belasting wordt omgezet. Hier is de belasting een lamp van 40W. Deze kan 3,5 seconden blijven werken indien de condensatorbank (33mF) van 100V tot 30V wordt ontladen. η buck = E nuttig = P lamp t E toegevoerd 1 2 C V V 2 (6) Volgens vergelijking 6 wordt het rendement voor de buckmode dan 93%. 40W 3,5s η buck = mF 100V2 30V 2 = 140J 150,15J = 93,24% 2.3 dspic Wat is een dspic De gehele vermogenschakeling wordt in deze masterproef aangestuurd door middel van een dspic. Maar wat is een dspic nu eigenlijk? Een dspic is niets anders dan een microcontroller met een DSP-core (Digital Signal Processor) aan boord. Een DSP is een processor die een geoptimaliseerde architectuur heeft voor het verwerken van digitale signalen. Zo wordt iedere DSP-instructie in één tijdscyclus uitgevoerd. Naast deze DSP-core heeft de dspic -familie ook nog enkele andere modules aan boord om gegevens makkelijker in te lezen en uit te sturen. De belangrijkste die voor deze masterproef van toepassing zijn: ADC-modules output compare modules PWM-modules I/O-modules Deze modules worden verder in de tekst dieper uitgewerkt. Dries Vromman 20
34 2.3.2 dspic30f2020 In het assortiment dspic is er heel wat keuze. Zo heeft chipfabrikant Microchip 2 families dspic, namelijk dspic30f en dspic33f. Het grootste verschil tussen beide is snelheid. De microcontrollers die voor deze masterproef in aanmerking komen zijn de dspic30f2020 en de dspic33fj16gs502. In tabel 2 zijn de belangrijkste verschillen tussen beide weergegeven. Tabel 2: Verschil tussen dspic30f2020 en dspic33fj16gs502 dspic30f2020 dspic33fj16gs502 Werkspanning 3V 5.5V 3V 3.6V Data SRAM 512 bytes 2048 bytes Program memory 12 Kbytes 16 Kbytes Aantal comparators 4 4 Maximum ingangsspanning comparator 2.5V 1.65V SMPS DAC-spanning Geen externe PIN Wel een externe PIN CPU snelheid 30 MIPS 40 MIPS ADC snelheid 2 Msps 4 Msps PWM resolutie - Duty cycle - Dead-time - Phase-shift - Frequency 1.1ns 4.2ns 4.2ns 8.4ns 1.04ns 1.04ns 1.04ns 1.04ns Uit bovenstaande tabel kan dus besloten worden dat de specificaties van de dspic33fj16gs502 beter zijn dan die van de dspic30f2020. Jammer genoeg was deze dspic niet beschikbaar en moest de toepassing gebruik maken van de dspic30f Software Om de dspic bepaalde taken te laten uitvoeren moet een programma geschreven worden dat door de microcontroller uitgevoerd kan worden. Dit programma kan in heel wat talen geschreven worden. De voornaamste talen zijn assembler en C-taal. Assembler is een lager gelegen programmeerniveau die dichter bij de hardware staat dan de C-taal. Dit heeft als voordeel dat er geen overbodige code gegenereerd wordt en dat de gegevens zo sneller kunnen worden verwerkt. De C-taal heeft op zijn beurt het voordeel dat er gemakkelijker complexe programma s gemaakt kunnen worden. In deze masterproef wordt de microcontroller geprogrammeerd in assembler met de reden dat er zo dichter bij de hardware geprogrammeerd kan worden. Hiervoor wordt het programma MPLAB IDE van Microchip gebruikt. Dit programma zet de geschreven code om naar objectcode. Naast de assemblercode zijn er ook nog de library s van de dspic zelf. Deze zijn nodig om de verwijzingen in de assemblercode uitvoerbaar te maken in de microcontroller. Een laatste component die nodig is om software in de dspic te programmeren is de MPLAB ICD 2. Dit is een In-Circuit Debugger en programmer die ervoor zorgt dat de geschreven software, die omgezet is naar objectcode, in de microcontroller geprogrammeerd kan worden. Dries Vromman 21
35 Figuur 20: MPLAB IDE project manager Gebruikte modules De dspic30f2020 is een 16-bit microcontroller die een 16-bit brede geheugen- en databus heeft en een 24-bit brede instructiebus.[5, 6] Verder bevat de dspic30f2020 verschillende modules die gebruikt kunnen worden. Het volledige blokschema van deze microcontroller is terug te vinden in bijlage 7. Hieronder worden de modules die gebruikt zijn in het kader van deze masterproef besproken. DSP Een eerste opvallend gegeven bij een dspic30f is dat het RAM-geheugen opgesplitst is in twee delen. Dit is nodig voor het gebruik van de DSP-module in de microcontroller. Deze module is belangrijk om snelle berekeningen uit te voeren. Zo duurt iedere DSP-instructie slechts één cyclus terwijl een gewone microcontroller instructie meerdere cycli kan duren.[7] Door gebruik te maken van die DSPmodule kan een vermenigvuldiging van twee 17-bit getallen merkelijk sneller uitgevoerd worden. In figuur 21 (met gewone instructies) en figuur 22 (met DSP-instructies) is de verwerkingstijd te zien van het buck-algoritme (zie hoofdstuk 3). Het buck-algoritme berekend de duty cycle voor de volgende periode. Het gele signaal is de PWM-uitsturing en het groene signaal de tijd die het algoritme nodig heeft om tot een resultaat te komen. 5µs +5V Berekeningstijd 0V +5V PWM-uitsturing 0V Figuur 21: Verwerkingstijd buck-algoritme met gewone instructies Dries Vromman 22
36 1,5µs Inschakelen MOSFET s +5V Berekeningstijd 0V +5V PWM-uitsturing 0V Figuur 22: Verwerkingstijd buck-algoritme met DSP-instructies Uit bovenstaande beelden kan onmiddellijk besloten worden dat de microcontroller hetzelfde algoritme sneller kan verwerken indien er DSP-instructies gebruikt worden. Met DSP-instructies is de verwerkingstijd iets meer dan drie keer sneller. Op bovenstaand scoopbeeld is ook een spike te zien. Deze is afkomstig van het inschakelen van de MOSFET s. ADC Een volgende belangrijke module die nodig is voor deze masterproef, is de Analog-to-Digital-module (ADC-module). Deze zorgt ervoor dat een analoge spanning omgevormd wordt naar een digitale waarde. Het resultaat van deze digitalisering is een 10-bit woord dat in de microcontroller kan gebruikt worden in bijvoorbeeld de berekeningen. In figuur 23 is het blokschema weergegeven van de ADC-module in de dspic30f2020. In dit blokschema is te zien dat ADC-ingangspinnen AN0, AN2, AN4 en AN6 een eigen sample en hold circuit hebben. Dit wil zeggen dat deze ingangspinnen simultaan gesampled kunnen worden. Verder zijn er ook nog gedeelde ingangspinnen (AN8, AN10, en de pinnen met oneven nummers) die maar over één sample en hold circuit beschikken. Deze moeten dan om beurt afgelopen worden. Het digitaliseren van een analoog signaal gebeurd door middel van een Successive Approximation Register of kortweg SAR-register. Als de conversie begint wordt er in het SAR-register de waarde 200 hex geplaatst. Deze digitale waarde wordt, rekening houdend met de referentiespanning AV DD, analoog gemaakt door de DAC. Als deze conversie voltooid is, wordt deze vergelijkingsspanning vergeleken met de gesamplede waarde. Op basis van het resultaat van deze vergelijking wordt de waarde in het SAR-register aangepast en opnieuw een vergelijkingsspanning bekomen die men terug vergelijkt. Dit blijft duren tot alle bits doorlopen zijn. Eenmaal dit gebeurd is, wordt de digitale waarde in het juiste dataformaat omgezet en geplaatst in het 16-bit register van deze ADC.[8] Dries Vromman 23
37 Figuur 23: Blokschema ADC-module Wanneer er nu een conversie moet gebeuren is afhankelijk van de ingestelde triggering. Zo kan er getriggerd worden op een tijd die synchroon loopt met de PWM-kanalen, op een timer of op een moment dat zelf bepaald is. Er moet opgemerkt worden dat de microcontroller per paar getriggerd wordt. Dus als er een triggering gebeurt, dan wordt een even en een oneven ingangspin gesampled en gedigitaliseerd. Figuur 24: Trigger-event op ½ T on In deze masterproef is het de bedoeling om de condensatorbank met een constante spoelstroom op te laden. Hiervoor zal de gemiddelde spoelstroom dus gecontroleerd moeten worden. Bij analoge controle methodes wordt de spoelstroom door middel van filters uitgemiddeld.[9] Hier wordt de stroom elke schakelperiode één keer gesampled. Door nu dat samplemoment juist te kiezen kan Dries Vromman 24
38 telkens de gemiddelde spoelstroom ingelezen worden.[10] In bovenstaande figuur is het duidelijk dat de gemiddelde spoelstroom gesampled kan worden na ½ T ON. PWM In de dspic30f2020 zitten vier PWM generatoren. Dit betekent dat er vier verschillende PWMsignalen op een verschillende frequentie opgewekt kunnen worden. Er is ook de mogelijkheid om de vier PWM generatoren synchroon te laten werken. Dit laatste zal hier gebruikt worden. Vervolgens bestaan er verschillende modes om de PWM-kanalen aan te sturen. Deze zijn terug te vinden in de datasheet van de microcontroller.[5] Omdat er in deze masterproef maar gewerkt wordt met één vaste frequentie van 50kHz wordt de Standard Edge-Aligned PWM mode gebruikt. Figuur 25: Edge-Aligned PWM en blokschema primaire time base De werking van de PWM modules wordt uitgelegd aan de hand van bovenstaande figuren. Bij iedere klokpuls wordt de counter (PTMR) verhoogd en vergeleken (Equality Comparator) met de ingestelde periode en de ingestelde duty cycle. Bij een nieuwe periode wordt het PWMH-kanaal hoog geplaatst. Als de teller de ingestelde waarde van de duty cycle bereikt, wordt het kanaal laag gezet. Indien de teller de ingestelde waarde van de periode bereikt, wordt er een signaal gegeven dat de periode eindigt. De teller wordt nu gereset en het PWMH-kanaal wordt opnieuw hoog geplaatst. Output compare Een volgende module die in deze masterproef gebruikt wordt is de output compare. Deze dient om de uitgangsspanning continu te controleren zodat deze niet boven een maximale spanning kan komen. De werking van deze module is opnieuw gebaseerd op een comparator die het ingangssignaal vergelijkt met een ingestelde compare-spanning (CMREF). Eenmaal het ingelezen signaal de ingestelde waarde bereikt, wordt er een signaal afgevuurd dat gebruikt wordt om de PWM-modules uit te schakelen. Het glitch filter die in het blokschema van de comparator hieronder te zien is, dient om signalen weg te filteren die minder dan 66ns duren. Dries Vromman 25
39 Figuur 26: Blokschema comparator Input/Output Een laatste module die gebruikt wordt is de I/O-module. Met deze module is het mogelijk pinnen van de microcontroller hoog of laag te plaatsen. Daarnaast is het ook mogelijk om te detecteren of een pin hoog of laag geplaatst is. Een pin wordt als hoog beschouwd als de spanning aan de pin hoger is dan voedingsspanning minus 0,7V. Een pin wordt als laag beschouwd al de spanning lager is dan 0,6V. Deze module wordt binnen het kader van deze masterproef gebruikt voor de volgende toepassingen: het aansturen van de error-led het aansturen van het relais op de condensatorbank de controle of de condensatorbank is aangesloten Dries Vromman 26
40 2.4 MOSFET s Inleiding Zoals hierboven gezegd, wordt voor de drie schakelende elementen gebruik gemaakt van MOSFET s. Bij het kiezen van de MOSFET s moet er rekening gehouden worden met een aantal parameters. Deze parameters worden hieronder kort aangehaald en tenslotte wordt uitgelegd hoe de keuze van de MOSFET s is verlopen. De bespreking van de parameters is gebaseerd op een FDP2532 MOSFET geproduceerd door Fairchild Semiconductor.[11] D Drain G Gate S Source Figuur 27: Symbool MOSFET V DSS Een eerste parameter waarmee rekening moet gehouden worden tijdens de keuze van de MOSFET s is de maximaal toelaatbare spanning tussen drain en source. Voor de applicatie die hier gebouwd wordt, wordt er rekening gehouden met een V DSS van 150V. Deze spanning kan bereikt worden als de condensatoren voldoende opgeladen worden. Deze parameter wordt veelal opgegeven bij een temperatuur van 25 C R DS,ON Vervolgens worden de MOSFET s in deze toepassing gebruikt als schakelaars. Ideaal gezien heeft een open schakelaar een oneindige weerstand en een gesloten schakelaar geen weerstand. Een MOSFET heeft echter een zekere weerstand tussen drain en source (R DS,ON ) wanneer hij volledig ingeschakeld is. Om zo weinig mogelijk verlies te hebben moet deze weerstand zo klein mogelijk zijn. Voor een FDP2532 MOSFET is R DS,ON gelijk aan 14mΩ. Er moet wel opgemerkt worden dat deze waarde opgegeven is bij specifieke omstandigheden. Deze zijn: T C = temperatuur case = 25 C I D = drainstroom = 33A V GS = gate-source spanning = 10V Tot slot moet nog opgemerkt worden dat de waarde van R DS,ON sterk temperatuursafhankelijk is (figuur 28). Bij een junctie temperatuur van 120 C is R DS,ON dubbel zo groot als van R DS,ON bij 25 C. Dries Vromman 27
41 Figuur 28: R DS,ON in functie van de junctietemperatuur T C Total Gate Charge Q TG Normaal heeft een ideale schakelaar geen enkel stuurvermogen nodig, er is enkel een zekere stuurspanning nodig. Bij een MOSFET, een niet ideale schakelaar dus, gaat die regel niet helemaal op. De ingang (gate) van een MOSFET gedraagt zich als een capaciteit. Om de MOSFET volledig in te schakelen moet die capaciteit, tussen gate en source, opgeladen worden (V GS =10V). De lading die nodig is om de ingangscapaciteit van een MOSFET op te laden tot 10V, en dus ook de lading nodig om de MOSFET volledig in te schakelen, wordt als de total gate charge (Q TG ) gedefinieerd. Figuur 29: Gate charge van een FDP2532 Indien de MOSFET op een hoge schakelfrequentie werkt, dan zal het stuurvermogen lineair evenredig zijn met de schakelfrequentie. P = f V GS Q TG (7) De aansturing van de MOSFET s gebeurt door speciaal ontworpen drivers die hieronder in punt 3 uitgewerkt worden. Dries Vromman 28
42 2.4.5 Figure Of Merit (FOM) Voor een gegeven technologie zijn de parameters R DS,ON en Q TG omgekeerd evenredig met elkaar. Zo heeft een MOSFET met een lage R DS,ON een hoge Q TG en omgekeerd. Om nu verschillende MOSFET s met elkaar te vergelijken, moeten beide parameters in rekening gebracht worden. Daarom wordt voor de verschillende MOSFET s het product van R DS,ON en Q TG berekend. Dit product wordt ook wel de Figure Of Merit (FOM) genoemd. [12] FOM = R DS,ON Q TG (8) In tabel 3 is voor een aantal verschillende MOSFET s de FOM uitgerekend. Als op basis van deze tabel een keuze moet gemaakt worden, dan is het duidelijk dat de MOSFET met als typenummer FDP2532 de bovenhand haalt. Deze heeft immers de laagste FOM. Tabel 3: FOM voor een aantal MOSFET s met een V DS van 150V Fabrikant Typenummer Rdson (Ω) Gate charge (nc) FOM I DS (A) Fairchild Semiconductor FDP2532 0, , Fuji Electric 2SK , , International Rectifier IRF3315PBF 0, ,65 27 International Rectifier IRF3415PBF 0, , Diodes In het principeschema van de gebruikte configuratie (figuur 11) is er één diode D1 te zien. Daarnaast is er over FET1 en FET2 een extra diode geplaatst bovenop de inwendige diode van de MOSFET. Deze diodes zijn hieronder in figuur 30 weergegeven als D2 en D3. Bij de keuze van de diodes is er ten eerste vooral gelet op de reverse recovery time (t RR ) van de diodes. Deze is het best zo klein mogelijk zodat de diode snel kan overgaan van geleiden naar sperren. Ten tweede is er op gelet dat de diode een voldoende grote inverse spanning (reverse voltage) aankan. Hier is de keuze gevallen op de BYV42E-150 diodes, deze hebben een ultra-fast recovery time van 26ns en kunnen een inverse spanning tot 150V aan. Figuur 30: Configuratie 2 met extra diodes Dries Vromman 29
43 2.6 Spoel In de vermogenkring is de spoel opgenomen als energieoverdrager. Hier is een spoel gebruikt uit de DMT serie van Coilcraft die specifiek ontworpen is om gebruikt te worden in geschakelde voedingen. De gekozen spoel heeft een inductie van 77µH. 2.7 Current monitor Inleiding De stroom die door de spoel vloeit heeft een typische vorm zoals afgebeeld in figuur 17. Door het bidirectionele karakter van de boost converter kan de stroom door de spoel in twee richtingen vloeien. Dit is nodig om zowel energie van de lage spanningskant naar de hoge spanningskant en omgekeerd te verplaatsen. Het opmeten van de stroom kan op een aantal manieren gebeuren. In deze masterproef is geopteerd om gebruik te maken van één current monitor voor elke mode (boost- en buckmode). Eerst wordt het meetprincipe uitgelegd. Vervolgens wordt de principiële werking kort verklaard en wordt uitgelegd hoe de meting praktisch is aangepakt. Tot slot worden de specificaties die de keuze van de current monitor beïnvloed hebben toegelicht Principe In serie met de spoel wordt een sense-weerstand R S geplaatst. Deze weerstand zet de te meten spoelstroom I S om in een evenredige spanning V S. De spanning over de sense-weerstand wordt door een current monitor ingelezen en beïnvloedt daarbij de vermogenschakeling zo weinig mogelijk. Het uitgangssignaal is evenredig met de ingelezen verschilspanning. Het principe is weergegeven in figuur 31 en figuur 32.[13] Figuur 31: Principe INA194 Dries Vromman 30
44 2.7.3 Werking De klemmen V IN- en V IN+ worden door middel van zo kort mogelijke verbindingen met de senseweerstand R S verbonden. De voeding van de INA194 (V + ) mag kleiner zijn dan de common mode spanning aan de klemmen V IN- en V IN+. Hier bedraagt de voedingsspanning +5V. Intern werkt de INA194 met twee opamps om een goeie werking te garanderen bij het volledige bereik van de common mode spanning. Wanneer de common mode spanning positief is, is opamp A2 actief. De spanningsval wordt omgezet in een evenredige stroom. Door middel van een weerstand R L wordt deze stroom opnieuw omgezet in een spanning. Als de common mode spanning negatief is, is opamp A1 actief. De spanningsval over de sense-weerstand wordt opnieuw omgezet in een evenredige stroom. Door middel van een stroomspiegel wordt deze stroom gedupliceerd en door middel van weerstand R L terug omgezet in een spanning. In het overgangsgebied, wanneer A1 en A2 actief zijn, garandeert de fabrikant een goede werking door een architectuur die gepatenteerd is en dus niet wordt vrijgegeven. De gebruikte current monitor heeft een versterking van 50V/V. Dit betekent dat de uitgangsspanning van de current monitor aan volgend verband voldoet indien de sense-weerstand een waarde van 15mΩ heeft. v il = i L R S 50 (9) Praktisch Omdat de stroom in twee richtingen kan vloeien, kan de spanning over de sense-weerstand R S positief of negatief zijn. De current monitor zal hier dus moeten op voorzien zijn. Een eerste mogelijkheid zou kunnen zijn om gebruik te maken van één bidirectionele current monitor. Deze oplossing heeft als voordeel dat alles kan opgemeten worden met slechts één IC. Dit heeft echter als consequentie dat de meetnauwkeurigheid kleiner zal zijn omdat het volledige stroombereik (-8A tot +8A) ingelezen moet worden door één ADC. Daarenboven moet gewerkt worden met een offset om 0A voor te stellen. Een tweede mogelijkheid is om de positieve spoelstroom en de negatieve spoelstroom elk apart op te meten met een eigen current monitor. Deze oplossing heeft de omgekeerde voor- en nadelen als de eerste methode. Hier is het nadeel dat er twee monitors gebruikt moeten worden. Aan de andere kant zal de meetnauwkeurigheid groter zijn gezien het stroombereik in twee delen wordt opgesplitst. Het negatieve stroombereik (-8A tot 0A) en het positieve stroombereik (0A tot +8A) wordt apart opgemeten door 2 ADC s. In dit project is er voor deze methode geopteerd omdat het gebruik van twee current monitors geen belemmering is. De gekozen INA194 is geleverd in een SOT23-5 behuizing. Dries Vromman 31
45 2.7.5 Belangrijke specificaties Bij de keuze van de current monitor is gelet op een aantal specificaties. Om te beginnen moest de current monitor een voldoende grote bandbreedte hebben. De INA194 die hier gekozen werd heeft een bandbreedte van 500kHz. Een tweede eigenschap waarmee rekening gehouden is bij de keuze is de grootte van de common mode spanning, de zogenaamde common mode input voltage range. De common mode spanning is hier bij benadering gelijk aan de spanning V IN+ omdat de spanningsval over de sense-weerstand toch voldoende klein is. In boostmode varieert V IN+ tussen -0,7V en +24V (zie figuur 12 en figuur 13) en in buckmode blijft deze spanning constant op +24V (zie figuur 15 en figuur 16). De gekozen current monitor is bestemd voor common mode spanningen tussen -16V en +80V. Nu is het de bedoeling dat de current monitor het verschilsignaal of het differentieel signaal versterkt en niet het common mode signaal. Ideaal gezien zou het common mode signaal niet mogen versterkt worden. Praktisch is dit echter niet mogelijk. De specificatie die weergeeft in welke mate het differentieel signaal versterkt wordt en het common mode signaal onderdrukt, is de Common Mode Rejection Ratio (CMRR). De CMRR wordt meestal uitgedrukt in db door middel van vergelijking 10. Hierbij is A DM de versterking van het differentiële signaal en A CM de versterking van het common mode signaal. Hier bedraagt de CMRR 120dB. Tot slot moet er nog opgemerkt worden dat de CMRR frequentieafhankelijk is. CMRR db = 20 log A DM A CM (10) Een andere eigenschap die nauw samenhangt met de CMRR is de Power Supply Rejection Ratio (PSRR). Deze laatste geeft weer hoe groot de verandering van de uitgangsspanning is bij een verandering van de voedingsspanning. Met andere woorden hoe sterk de rimpel van de voedingsspanning onderdrukt wordt in het uitgangssignaal. Ideaal gezien zou er geen enkele invloed mogen zijn, maar praktisch is dit echter niet zo. Hier is de PSRR 105dB. Tot slot is er ook nog de versterking. In de INA familie zijn er een aantal versterkingen mogelijk (20V/V, 50V/V en 100V/V). De gekozen current monitor heeft een versterking van 50V/V. De keuze is zo gemaakt dat het maximale uitgangsignaal zo dicht mogelijk bij de maximaal in te lezen spanning van de ADC (+5V) aanligt maar ook niet erover. Dries Vromman 32
46 Cload 330u Rload 14,4 R1 9,1k Probleem Tijdens de eerste testfases werd al snel een probleem opgemerkt met de gebruikte current monitors. Het probleem wordt hieronder uitgelegd tijdens de buckmode, maar hetzelfde probleem doet zich ook voor tijdens de boostmode. Veronderstel de opstelling die weergegeven is in figuur 32. Dit is de situatie die zich voordoet tijdens de buckmode. Hierbij is FET3 continu gesloten, schakelt FET2 en is FET1 continu open. Diode D2 komt afhankelijk van de schakeltoestand in geleiding. Diode D1 komt in deze situatie normaal niet in geleiding. Bij onderstaande simulaties is voor de FET s rekening gehouden met hun R DS,ON van 16mΩ. De spanning langs de hoge spanningszijde, waar normaal de condensatorbank aangesloten is, wordt hier gevoed door een constante spanningsbron V c van 60V. De schakelfrequentie bedraagt 50kHz en de duty cycle is op een vaste waarde van 40% ingesteld zodat de busspanning V BUS na het uitsterven van de overgangsverschijnselen 24V bedraagt. GND ViL Ron_FET3 16m Out INA194 Vin- Vin+ Rs 15m V+ L 77u V 5 FET2 Ron 16m il + - V_duty_cycle Vbus Vc 60 D1 D2 Figuur 32: Opstelling buckmode met current monitor resistief belast Om de current monitor te simuleren is gebruik gemaakt van het Spice model dat door Texas Instruments ter beschikking gesteld wordt. Bovenstaande opstelling zal bij verschillende belastingen aan de uitgang gesimuleerd worden, maar wordt ook opgemeten in de praktijk. Hierbij worden volgende signalen opgemeten: De uitsturing, dit is het PWM-kanaal van de microcontroller De spoelstroom i L, deze is opgemeten met een Tektronix stroomprobe Het signaal V il na de current monitor Dries Vromman 33
47 Output Eerst wordt bovenstaande situatie gesimuleerd. Onderstaand resultaat wordt bekomen: T 5.00 V_duty_cycle 4.00 il +3,6A 3.00 ViL 2,65V m 1.02m 1.05m 1.07m 1.10m Time (s) 0V Figuur 33: Simulatie current monitor - belast met weerstand 9K1 In bovenstaande simulatie is te zien dat de current monitor het stroomverloop goed volgt. Er treedt bijna geen faseverschuiving op, de vorm is met een zeer goede benadering gelijk en de theoretische versterking van de current monitor wordt door middel van onderstaande berekening aangetoond. Veronderstel dat de controle wordt uitgevoerd wanneer de spoelstroom zijn maximum bereikt. Dan vloeit er een stroom van 3,6A door de sense-weerstand. De spanning over die weerstand wordt nu door de current monitor versterkt met een factor 50. v il = i L R S 50 = 3,6A 15mΩ 50 = 2,7V De berekende waarde van 2,7V komt goed overeen met de gesimuleerde waarde van 2,65V. Indien een analoge situatie in de praktijk opgemeten wordt, dan worden de volgende signalen opgemeten. V IL +2,3V +0,5V 2A I L 1A 0A +5V Uitsturing 0V Figuur 34: Meting current monitor - belast met weerstand 9K1 Dries Vromman 34
48 In bovenstaande scoopbeeld is het paarse signaal de uitgang van de current monitor (V IL ), het groene signaal de stroom opgemeten met de stroomprobe en het gele signaal de uitsturing van FET2 gemeten aan de microcontroller. Voor het groene signaal komt één divisie overeen met 1A. Uit de praktisch opgemeten signalen blijkt dat de vorm van het signaal van de current monitor niet in fase verschoven is. De vorm van het uitgangssignaal van de current monitor komt absoluut niet overeen met het werkelijke stroomverloop. Het verschil in vorm is te verklaren door de beperkte bandbreedte van de current monitor. Deze bandbreedte bedraagt zoals eerder gezegd 500kHz. Daarnaast is ook de grootte van het uitgestuurde signaal van de current monitor niet correct. Veronderstel dat opnieuw een controle wordt uitgevoerd bij de maximum spoelstroom (2A): v il = i L R S 50 = 2A 15mΩ 50 = 1,5V Deze berekende waarde komt absoluut niet overeen met de praktisch opgemeten waarde van 2,3V. Tot slot zijn in bovenstaande scoopbeeld spanningspieken te zien op het signaal dat uitgestuurd wordt door de current monitor. Deze spanningspieken zijn het gevolg van het inschakelen van FET2. Deze pieken zijn ook overal terug te vinden in de scoopbeelden die opgenomen zijn in dit verslag. Vervolgens is een tweede opstelling gemaakt waarbij de current monitor enkel belast wordt door de ingang van de microcontroller. Deze pin heeft een hoge impedantie gezien het de ingang van de ADC betreft. De resultaten van deze meting zijn hieronder weergegeven in figuur 35. V IL +2,2V +0,6V 2A I L 1A 0A +5V Uitsturing 0V Figuur 35: Meting current monitor - hoog impedant belast met ingang ADC Bovenstaande signalen zijn praktisch identiek aan de signalen die opgemeten zijn met een zuiver ohmse belasting van 9K1 (zie figuur 34). Er treedt geen faseverschuiving op, maar de vorm lijkt nog niet helemaal te kloppen. Dries Vromman 35
49 Om nu nog uit te sluiten dat de current monitor niet in de war wordt gestuurd door de ADC is een vierde opstelling gemaakt waarbij de uitgang van de current monitor gewoon opengelaten is. Dit is hieronder weergegeven: V IL +2,2V +0,7V 2A I L 1A 0A +5V Uitsturing 0V Figuur 36: Meting current monitor - uitgang niet belast De uitgang openlaten blijkt opnieuw geen succes te zijn. Er is geen faseverschuiving, maar de vorm van het signaal blijkt nog steeds verre van optimaal. De grootte van het signaal blijkt dan weer wel te kloppen. Ditmaal wordt de minimale (1A) stroom even gecontroleerd: v il = i L R S 50 = 1A 15mΩ 50 = 0,75V Deze berekende waarde komt goed overeen met wat is opgemeten. Tot slot is er nog een vijfde opstelling gemaakt waarbij de uitgang van de current monitor meer belast wordt. In onderstaande meting is de current monitor belast met een weerstand van 200Ω. V IL +2V +0,6V 2A I L 1A 0A +5V Uitsturing 0V Figuur 37: Meting current monitor - uitgang belast met 200Ω Dries Vromman 36
50 In bovenstaand beeld is te zien dat het signaal na de current monitor er goed uit ziet wat de vorm betreft. Er is geen faseverschuiving. De grootte van het signaal blijkt wel niet te kloppen. v il = i L R S 50 = 2A 15mΩ 50 = 1,5V Uit verdere testen is ook gebleken dat het uitgangssignaal van de current monitor satureert bij een belasting van 200Ω. Een verklaring hiervoor kan gevonden worden in het feit dat de uitgangsstroom van de monitor begrensd is. Uiteindelijk is besloten om de current monitor te belasten met een weerstand van 470Ω. Immers werden de beste resultaten verkregen met een relatief lage weerstand. Met een dergelijke belasting is er ook geen saturatie vastgesteld. Dries Vromman 37
51 3. FET Driver 3.1 Probleem De FET s kunnen onmogelijk rechtstreeks aangestuurd worden door de dspic. De piekstroom die een uitgang kan leveren en de uitgangsspanning zijn onvoldoende hoog om een FET uit te sturen. Dit is dus een eerste reden waarom een driver zal gebruikt worden. Een tweede probleem dat zich voordoet is het high side probleem. Veronderstel het principeschema van het vermogengedeelte in figuur 38. Wanneer FET1 is ingeschakeld en FET2 uitgeschakeld, dan staat de drain van FET1 en dus ook de source van FET2 op 0V. Wanneer FET2 is ingeschakeld en FET1 is uitgeschakeld, staat de drain van FET1 en dus ook de source van FET2 op V C. Figuur 38: High side probleem Het high side probleem zou kunnen opgelost worden door gebruik te maken van een high side FET driver. Een dergelijke driver is echter niet toe te passen op de derde FET die mogelijk laagfrequent schakelt. Daarom is uiteindelijk besloten om zelf een driver te bouwen die gebruikt wordt om de drie FET s aan te sturen. De drivers kunnen op de moederprint geplugd worden. Indien nodig kunnen de drivers later nog in andere projecten gebruikt worden. Hieronder wordt de driver verder uitgewerkt. 3.2 Elektrisch schema Het schema dat gebruikt wordt voor de drivers is ontworpen door ir. Marc Windels en is al gebruikt in eerdere masterproeven. Het volledige schema van de driver is in bijlage 2 te vinden. Er zijn echter een aantal wijzigingen aangebracht ten opzichte van het oorspronkelijke schema. Er is onder meer geopteerd om alles te voeden op +5V. Daarnaast is het vermogen van de DC-DC converter anders gedimensioneerd. Er is gekozen voor een converter met een vermogen van 2 Watt. Dries Vromman 38
52 Deze keuze heeft zo zijn voordelen. Zo heeft de converter nu kleinere afmetingen en is de kostprijs lager. Het is ook de bedoeling dat deze drivers later gebruikt zullen worden in het labo vermogenelektronica. Op het schema zijn twee connectoren voorzien: Een ingangsconnector waarop de massa, de voedingsspanning (+5V) en het stuursignaal afkomstig van de dspic aangesloten worden. De uitgangsconnector voor het gate- en het sourcesignaal. Merk ook op dat de afstand tussen de twee connectoren gelijk is aan 1300 mil zoals hieronder weergegeven in figuur 39. Door de mechanische eigenschappen van de connectoren is het niet mogelijk om de printjes verkeerd in te pluggen op de moederprint. Figuur 39: Afstand tussen de twee connectoren Door middel van een DC-DC converter wordt uit de voedingsspanning een spanning van +15V gemaakt. Deze spanning is nu gescheiden van de +5V die aangeboden wordt van de moederprint. Een zenerdiode na de converter zorgt voor een spanning van +5V die gebruikt zal worden voor de aansturing van de optocoupler HCPL7721. Op de spanning van +5V is er ook een LED voorzien die weergeeft of er spanning aanwezig is. Een andere zenerdiode zorgt voor een spanning van +3,3V. Deze spanning wordt verbonden met de source van de FET. Zodoende ligt de spanning van de gate 3,3V lager dan de source en is de FET zeker niet in geleiding. Wanneer de FET nu ingeschakeld wordt, dan wordt er een spanning van +15V aangeboden aan de gate van de FET. De gate van de FET staat nu ongeveer +12V hoger dan de source. Dries Vromman 39
53 3.3 Printontwerp Voor het PCB ontwerp is ervoor gekozen om gebruik te maken van SMD componenten. De gebruikte behuizing is Dit zorgt ervoor dat de print klein kan gehouden worden zodat ze later makkelijk op de moederprint kan geplugd worden. Hieronder is een foto weergegeven van de FET driver. Ingangsconnector Uitgangsconnector Figuur 40: FET driver 3.4 Stuklijst De lijst met gebruikte componenten is hieronder weergegeven. Tabel 4: Stuklijst FET driver stukkenlijst waarde beschrijving aantal C1-C5 100nF condensator 5 C6 220nF condensator 1 CP1 10µF condensator 1 IC1 TMH0515S DC/DC-converter 1 IC2 HCPL7721 optocoupler 1 IC3 TC4422 fet-driver 1 IC3 DIL8 Socket IC 1 JP1, JP2 1X3 connector 2 LED1 rood LED 1 R1, R3, R4 1KΩ weerstand 3 R2 470Ω weerstand 1 Z1 5V1 zenerdiode 1 Z2 3V3 zenerdiode 1 Dries Vromman 40
54 3.5 Meting In eerste instantie is de driver apart getest van het vermogenbord. Om de driver toch te belasten is gebruik gemaakt van een capaciteit. Uit de datasheet van de MOSFET s kan de total gate charge Q TG afgeleid worden. Stel Q TG gelijk aan 100nC, dan volgt uit onderstaande formule de equivalente gate capaciteit C: C = Q TG = 100nC V GS 10V = 10nF Voor de rest van de metingen is uitgegaan van een capacitieve belasting van 10nF. Hieronder is een scoopbeeld te zien van de uitgang (groen) en de ingang (geel) van de FET driver bij een duty cycle van 50% en een schakelfrequentie van 50kHz. De uitgang varieert tussen -3V en +12V. Ingangssignaal +5V 0V +12V Uitgangssignaal 0V -3V Figuur 41: Uitgang FET driver bij een duty cycle van 50% De optocoupler en de driver bezitten elk een eigen vertraging die samen ongeveer 90ns bedraagt. Deze vertraging is duidelijk waar te nemen in figuur 42. Het gele signaal is het ingangssignaal en het groene signaal de uitgang. +5V Ingangssignaal 0V +12V Uitgangssignaal 0V -3V Figuur 42: Delay FET driver Dries Vromman 41
55 Stroom I(mA) 3.6 Vermogen in functie van de schakelfrequentie Tot slot is er ook eens bekeken hoe de voedingsstroom van de driver varieert in functie van de frequentie van het ingangssignaal. Dit vertelt immers wat het vermogen is van de driver bij een bepaalde frequentie. Hieronder volgt eerst de meting die in de praktijk gebeurd is, daarna wordt ook theoretisch het verband gecontroleerd. Onderstaande grafiek toont de praktisch opgemeten waarden. Merk op dat de stroom is uitgezet in ma en de frequentie in khz. Stroom I in in functie van de frequentie f I in = 0,6599 f + 166,6 R² = 0, I = f(f) Lineair (I = f(f)) Frequente f (in khz) Figuur 43: Stroom I in functie van de frequentie (praktisch) Er is een lineair verband waar te nemen tussen de voedingsstroom en de frequentie f. De best passende rechte en de vergelijking van die rechte zijn weergegeven in figuur 43. Nu zal dit verband theoretisch verklaard worden. De theoretische afleiding gebeurt op basis van een vermogenbalans. Onderstaande figuur geeft het blokschema weer waarop geredeneerd is voor het opstellen van de vermogenbalans. +5V P in P out P Stuurschakeling P gate V Gate 0V I in V in DC/DC Rendement = η V out Stuurschakeling V Source Ingangsconnector V PMW (f) Figuur 44: Blokschema FET driver Uitgangsconnector Dries Vromman 42
56 Het ingaande vermogen is gelijk aan: P in = V in I in (11) Het uitgaande vermogen bestaat uit het vermogen om de gatecapaciteit van de FET op te laden en het vermogen verbruikt in de stuurschakeling. Het vermogen van de stuurschakeling bestaat hoofdzakelijk uit het vermogen verbruikt in de weerstanden en de zenerdiodes om 3,3V en 5,1V te maken. Dit wordt verondersteld een constante waarde te zijn. P out = P gate + P stuursc akeling (12) 2 P out = f C V out + V out I stuursc akeling (13) De stroom die de stuurschakeling onttrekt aan de converter wordt geschat op 40mA. De gatecapaciteit is hierboven in 3.5 al berekend als 10nF. De verhouding tussen het uitgaande vermogen en het ingaande vermogen is het rendement van de converter. η = P out P in = f C V 2 out + V out I stuursc akeling (14) V in I in Bovenstaande vergelijking wordt nu herschikt tot: I in = f C V 2 out + V out I stuursc akeling V in η I in = C V 2 out V in η f + V out I stuursc akeling V in η Het rendement van de converter is volgens de datasheet gelijk aan 80%: I in = 10nF (15V)² 15V 40mA f + 5V 0,8 5V 0,8 I in = 562, f + 0,150 Als bovenstaande geplot wordt in dezelfde grafiek met de meetpunten (zie figuur 45), dan komen beide grafieken niet echt overeen. Het rendement van de converter is duidelijk te hoog ingeschat. Indien bovenstaande vergelijking nogmaals wordt uitgerekend met een rendement van 70%, dan blijken de twee grafieken beter overeen te komen. I in = 10nF (15V)² 15V 40mA f + 5V 0,7 5V 0,7 I in = 642, f + 171,43 Merk op dat de frequentie f in bovenstaande formules in Hertz is uitgedrukt, de stroom in ma. De frequentie in de grafieken is daarentegen uitgedrukt in khz en de stroom eveneens in ma. Dries Vromman 43
57 Stroom I(mA) 350 Stroom I in functie van de frequentie f y = 0,6599 f + 166,6 Frequente f (in khz) R² = 0,9996 I gemeten(ma) Iberekend(mA) - η=0,80 y = 0,6429 f + 171,43 Iberekend(mA) - η=0,70 Lineair (I gemeten(ma)) y = 0,5625 f Lineair (Iberekend(mA) - η=0,80) Lineair (Iberekend(mA) - η=0,70) Figuur 45: Stroom I in functie van de frequentie (theoretisch) Dries Vromman 44
58 4. Condensatorbank 4.1 Inleiding Langs de hoge spanningskant wordt de energie opgeslagen in een condensator. De energie in een condensator C, opgeladen tot een spanning V, kan als volgt geschreven worden: E C = 1 2 CV2 (15) Uit bovenstaande formule blijkt dat de energie in een condensator: Kwadratisch evenredig is met de spanning V over de condensator Recht evenredig is met de capaciteit C van de condensator Om er nu voor te zorgen dat er voldoende energie kan opgeslagen worden aan de hoge spanningskant worden een aantal condensatoren met een voldoende grote werkspanning parallel geplaatst. Immers is de totale capaciteit C T van n identieke parallel geschakelde condensatoren met elk een capaciteit C te schrijven als: C T = n C (16) In deze masterproef zijn er 15 condensatoren met elk een capaciteit van 2200µF parallel geplaatst. Er is een aparte PCB ontwikkeld waarop deze condensatoren geplaatst zijn. Er is echter ook een condensator dicht bij de MOSFET s geplaatst op de vermogenprint. Door het toepassen van formule 16 kan de totale capaciteit van 33mF berekend worden. De totale energie die in al deze condensatoren kan opgeslagen worden indien ze opgeladen zijn tot 150V is volgens formule 15 gelijk aan 371 Joule. Ter vergelijking, een lamp van 40 Watt (24V) moet ongeveer 9 seconden branden om deze energie te consumeren. Figuur 46: Condensatorbank Dries Vromman 45
59 4.2 Elektrisch schema Het elektrisch schema bevat naast de 15 elektrolytische condensatoren voor de energieopslag ook nog een aantal andere componenten: Relais om de condensatorbank te ontladen, zie veiligheid hieronder Zekering als veiligheid voor te hoge op- of ontlaadstromen Sense-weerstanden om spanning over de condensatoren en de op- en ontlaadstroom op te meten Analoge stroom- en spanningsmeter Connector om de condensatorbank te kunnen loskoppelen zodat hij later ook nog kan gebruikt worden voor andere opstellingen. De connector betreft een Mini-Fit Jr. geproduceerd door Molex. Het volledige elektrische schema is opgenomen in bijlage 3. Zoals op de foto hierboven te zien is, is de condensatorbank ingebouwd in een plexiglazen kast. Op die manier is er meteen een zekere aanraakbeveiliging ingebouwd. 4.3 Stuklijst De gebruikte componenten voor de condensatorbank zijn hieronder opgenomen in een tabel. Tabel 5: Stuklijst condensatorbank stukkenlijst waarde beschrijving aantal C1-C µF condensator 16 PL1 Molex connector 1 F1 SH32-7A zekering 1 K1 Tyco - T9AS5D22-5 relais 1 R1 30mΩ weerstand 1 R2 1,5MΩ weerstand 1 R3 33Ω weerstand 1 VIA1, VIA µA paneelmeter 1 VIA3, VIA µA paneelmeter 1 Dries Vromman 46
60 4.4 Printontwerp De 14 condensatoren op de condensatorbank staan allemaal parallel met elkaar. Nu kunnen deze fysiek op verschillende manieren parallel geschakeld worden. Zo kunnen de condensatoren allemaal na elkaar tussen twee lange spanningsdraden geschakeld worden zoals weergegeven in figuur 47. Echter heeft dit ontwerp het nadeel dat de condensator helemaal achteraan de rij (C 14 ) een grotere weerstand ziet ten opzichte van de ingang dan de condensator die het dichtste bij de ingang zit (C 1 ). De laatste condensator zal dan ook nooit optimaal gebruikt worden. Ingang Figuur 47: Condensatoren parallel Om bovenstaande op te lossen is ervoor gezorgd dat de condensatoren allen ongeveer even ver staan van de ingang. Dit is gebeurd door de condensatoren te rangschikken zoals in figuur 48. Nu zit de ingangsconnector voor iedere condensator ongeveer even ver. Ingang Figuur 48: Condensatoren parallel met gelijke afstand tot ingang Daarnaast zijn de onderlinge verbindingen tussen de condensatoren en de verbinding tussen de vermogenprint en de condensatorbank zo kort mogelijk gehouden om parasitaire inducties tegen te gaan. Dries Vromman 47
61 4.5 Veiligheid Inleiding Indien de condensatorbank volledig opgeladen is tot zijn maximale werkspanning dan vormt die condensatorbank een zeker veiligheidsrisico. Zeker als een opgeladen condensatorbank onbeheerd achter gelaten wordt. Een onwetend persoon zou immers onterecht kunnen veronderstellen dat de bank ontladen is terwijl hij nog steeds opgeladen is. Om dergelijke situaties te voorkomen en ook om te kunnen ingrijpen mocht er tijdens de testfase iets fout lopen, is er een mechanisme ingebouwd dat de condensatorbank kan ontladen in maximum 5 seconden. Dit mechanisme is opgebouwd rond het normaal gesloten contact van een relais (figuur 49). Dit relais wordt aangestuurd door de microcontroller. Veronderstel dat een opgeladen condensatorbank losgekoppeld wordt van de vermogenprint. De microcontroller zal via de controlelus te weten komen dat de bank ontkoppeld is en kan zo gepast de vermogenkring aansturen. Door het loskoppelen van de bank wordt het relais niet meer aangestuurd en sluit het normaal gesloten contact. De condensatorbank ontlaadt nu over de weerstand R. Figuur 49: Principeschema condensatorbank Indien er een fout (overspanning condensatorbank, ongecontroleerde op-/ontlaadstroom ) optreedt terwijl de condensatorbank nog verbonden is met de vermogenprint, dan kan de microcontroller ook nog beslissen het opladen te staken en de bank te ontladen. Het probleem dat zich hier nu stelt is de vraag wat het vermogen moet zijn van de ontlaadweerstand. Om nu op een gegronde manier dit vermogen te bepalen is een thermisch model van de weerstand opgesteld. Dit onderzoek zal in twee stappen gebeuren. In een eerste stap wordt het ogenblikkelijk vermogen bepaald en vervolgens wordt in een tweede stap het thermisch model opgesteld en geëvalueerd voor het bepaalde vermogen. Dries Vromman 48
62 4.5.2 Ogenblikkelijk vermogen Eerst wordt het ogenblikkelijk vermogen bepaald dat door de weerstand gedissipeerd zal moeten worden. De uitwerking die hieronder volgt is een worst-case situatie waarbij de totale capaciteit ontladen wordt in 5 seconden. In het slechtste geval moeten 15 condensatoren van 2200µF, opgeladen tot 150V, ontladen worden over een weerstand R. Onderstaande figuur geeft het RC netwerk weer waarop verder geredeneerd is. Figuur 50: Ontladen condensatorbank We weten dat een condensator na 5τ volledig ontladen is. Hieruit kan de grootte van de weerstand berekend worden: τ = RC T = RnC t = 5τ = 5RC T = 5RnC = 5s R = t 5nC = 5s µF = 30,3Ω R = 33Ω De ogenblikkelijke stroom i(t) die door de weerstand vloeit is te schrijven als: i t = i(0) e t τ (17) i t = v C T (0) e t τ = 150V R 33Ω e t 1,089 = 4,545 e t 1,089 Met bovenstaande betrekking kan gemakkelijk het ogenblikkelijke vermogen dat in de weerstand R gedissipeerd wordt berekend worden. p t = Ri(t) 2 = R v C T (0) R 2 e 2t τ = 33Ω 150V 33Ω 2 e 2t 1,089 = 682W e 2t 1,089 Het ogenblikkelijk vermogen in functie van de tijd is hieronder uitgezet in figuur 51. Op deze figuur is te zien dat de eerste seconde de meest kritische zal zijn omdat het vermogen daar het grootst is. In de daarop volgende tijd is het vermogen merkelijk kleiner. Dries Vromman 49
63 Ogenblikkelijk vermogen p(t) in Watt Ogenblikkelijk vermogen p(t) p(t) Tijd t in seconden Figuur 51: Ogenblikkelijk vermogen p(t) gedissipeerd in weerstand van de condensatorbank Thermisch model Om nu te bepalen wat het vermogen moet zijn van de ontlaadweerstand is een thermisch model [14] opgesteld van een weerstand. De studie is gebaseerd op een weerstandenreeks (zie figuur 52) die gefabriceerd wordt door ARCOL. Figuur 52: De Wirewound heatsink mounted serie van ARCOL In het model dat hier gebruikt wordt, wordt een weerstand in zijn eenvoudigste vorm voorgesteld (figuur 53) als een aantal wikkelingen die omgeven zijn door een behuizing. Als er een grote stroom vloeit door de wikkelingen dan zal er in die wikkelingen warmte ontwikkeld worden. Het materiaal waaruit de wikkelingen zijn opgebouwd heeft een zekere specifieke warmte c. Om een bepaalde Dries Vromman 50
64 massa van die windingen 1 C te laten stijgen in temperatuur zal er een warmte van m c nodig zijn. Deze grootheid wordt de thermische capaciteit C genoemd van die bepaalde massa. C = m c (18) Met m = de massa van een bepaalde materiaal in gram Met c = de specifieke warmte van een bepaald materiaal in Joule per gram per graad Celsius Met C = de thermische capaciteit van een bepaald materiaal in Joule per graad Celcius T O Omgeving T C T W Windingen Case Figuur 53: Voorstelling weerstand voor thermisch model Naarmate de temperatuur van de windingen meer stijgt zal er een warmtetransport ontstaan van de windingen naar de behuizing. Immers zal er tussen twee punten op een verschillende temperatuur een warmtetransport zijn die evenredig is met het temperatuursverschil en omgekeerd evenredig met de thermische weerstand. Deze thermische weerstand is afhankelijk van de afstand tussen de twee punten en de aard van de geleidingsweg. Thermische weerstand wordt uitgedrukt in graden Celsius per Watt. Thermische capaciteit C t en thermische weerstand R t hebben elk hun elektrisch equivalent. Dit equivalent maakt het makkelijk om thermische modellen te simuleren in elektrische simulatiepakketten. Een thermische capaciteit komt overeen met een elektrische capaciteit en een thermische weerstand komt overeen met een elektrische weerstand. Onderstaande tabel geeft het verband weer. Hierbij stelt p de warmtestroom voor in Joule per seconde. Tabel 6: Verband thermische en elektrische capaciteit Weerstand Condensator Thermisch p = T R t dt p = C t dt Elektrisch I = V R I = C dv dt Het vraagstuk is uitgewerkt aan de hand van gegevens die opgevraagd zijn bij de technische dienst van ARCOL. Uit de specifieke warmte van de gebruikte materialen (tabel 7) kunnen de thermische capaciteiten berekend worden. In onderstaande tabel zijn de gebruikte gegevens weergegeven van Dries Vromman 51
65 Cw 474m Cc 52,2 een weerstand van 33Ω en een vermogen van 100Watt. De waarden voor de thermische weerstanden (tabel 8) zijn terug te vinden in de datasheet van de desbetreffende weerstand. Tabel 7: Specifieke warmtes voor thermisch model weerstand HS100 33R Gewicht m (g) Specifieke Warmte c J g C Windingen 1,2 0,395 Case 58 0,9 Aan de hand van de gegevens in tabel 7 zijn de thermische capaciteiten te berekenen. C W = m W c W = 1,2g 0,395 J g C = 0,474 J C C C = m C c C = 58g 0,9 J g C = 52,2 J C Tabel 8: Thermische weerstanden voor thermisch model weerstand HS100 33R Windingen Case R WC 1,03 C W Case - Omgeving R CO 0,070 C W Nu het volledige thermische model bepaald is, kan het geëvalueerd worden. Dit gebeurt aan de hand van het equivalent thermisch model dat weergegeven wordt in figuur 54. In dit schema wordt de omgevingstemperatuur V o als constant (25 C) beschouwd. De ogenblikkelijke warmtestroom p(t) is de exponentiële curve die afgebeeld wordt in figuur 51. Tw Rw c 1,03 Tc Rco 70m p(t) Vo 25 Figuur 54: Equivalent thermisch model weerstand Het resultaat van de simulatie is hieronder weergegeven in figuur 55. Het valt onmiddellijk op dat de windingen het het zwaarst te verduren krijgen. Na een halve seconde heeft de temperatuur van de windingen zijn maximum van 300 C bereikt. Daarna daalt de temperatuur terug omdat de warmtestroom verder sterk afneemt. Volgens de gegevens van de fabrikant mag de temperatuur van de windingen maximaal 450 C bedragen. Door te kiezen voor een weerstand van 100 Watt is er nog een zekere veiligheidsmarge ingebouwd. Dries Vromman 52
66 T Tc Tw p(t) Time (s) Figuur 55: Simulatie van het equivalent thermisch model Condensatorbank praktisch ontladen Formule 17 geeft de ogenblikkelijke stroom i(t) die door de weerstand vloeit als de condensatorbank ontlaadt over de ontlaadweerstand. Het exponentiële verloop van de ogenblikkelijke spanning over de condensator en over de ontlaadweerstand kan geschreven worden als: v CT t = v CT (0) e t τ (19) In onderstaande scoopbeeld is het verloop te zien van de spanning over de condensatorbank (paars) bij het ontladen vanaf een spanning van 90V. Het gele signaal is het stuursignaal voor het relais en is enkel opgenomen om een goede triggering te voorzien. +90V 0V +5V 0V Figuur 56: Praktisch ontladen condensatorbank Dries Vromman 53
67 Hoofdstuk 3: DIGITALE REGELKRING 1. Inleiding Vroeger werden in power converters veelal analoge controlemethoden gebruikt. Dit had zo zijn redenen. Een eerste reden is de kostprijs. Componenten zoals microcontrollers, analoog naar digitaal converters (ADC s), digitaal naar analoog converters (DAC s) die nodig zijn voor een digitale implementatie waren vrij duur. [15] Een andere reden waarom digitale controle methoden minder populair waren, was performantie. Tegenwoordig is de situatie helemaal veranderd. De hedendaagse technologie levert digitale signaal processors (DSP s), ADC s en DAC s tegen een lagere prijs en met verbeterde eigenschappen zoals snelheid en functionaliteit. [15] Het gebruik van een digitale controller heeft een aantal voordelen maar ook een aantal consequenties: Voordelen [16, 17]: - Flexibiliteit: aangezien er met een microcontroller gewerkt wordt, is deze programmeerbaar en dus ook aanpasbaar. - Storingsongevoeliger: geen componentenwaarden die veranderen ten gevolge van omgevingsvariaties. - Korte time-to-market (TTM). - Makkelijker om te communiceren met andere digitale systemen. Consequenties: - Bij hoge schakelsnelheden is er minder tijd om veel te sampelen. - ADC s moeten voldoende snel zijn zodat de digitale waarde snel beschikbaar is. Het is dan ook meer dan normaal dat er tegenwoordig meer en meer onderzoek gedaan wordt naar digitale controle van schakelende voedingen. [15-21] 2. Slope compensation 2.1 Inleiding Bij de aanvang van dit project was één van de problemen die op tafel werd gelegd de slope compensation. Daarom werd er in het eerste semester een onderzoek gedaan naar mogelijke oplossingen voor dit probleem. Door nieuwe inzichten tijdens de ontwikkeling van de software bleek een dergelijke compensatie niet meer nodig te zijn. De theoretische studie omtrent dit probleem is hieronder opgenomen omdat de studie toch heel wat tijd in beslag genomen heeft en omdat ze nuttig kan zijn voor toekomstige projecten binnen dit vakdomein. Dries Vromman 54
68 2.2 Probleem: Subharmonische oscillaties Peak Current Mode Control Het fenomeen van subharmonische oscillaties (ook wel chaos genoemd) is welbekend voor converters met een stroomcontrole die werken met een vaste schakelfrequentie en een duty cycle groter dan 50%.[20] Veronderstel onderstaande figuur van een boost converter om de problematiek te schetsen. Figuur 57: Principefiguur subharmonische oscillaties Om te beginnen is in bovenstaande figuur een boost converter te zien waarvan het schakelende element (bijvoorbeeld een MOSFET) aangestuurd wordt door een simpele regelkring bestaande uit een flip-flop en een comparator. De klok zorgt ervoor dat de flip-flop op regelmatige tijdstippen geset wordt waardoor de MOSFET inschakelt. Deze klok stelt dus de schakelfrequentie (f s ) in. Als de schakelaar dicht is staat de volledige bronspanning over de spoel. Volgens vergelijking 4 zal de stroom door de spoel nu lineair stijgen. Deze stijgende spoelstroom wordt door de comparator vergeleken met een ingestelde referentiestroom (I REF ). Als de werkelijke spoelstroom (i L ) groter wordt dan de ingestelde referentiestroom zal de comparator de flip-flop resetten. Door het resetten van de flip-flop wordt de MOSFET uitgeschakeld en begint de stroom door de spoel te dalen aangezien deze nu een negatieve spanning over haar klemmen heeft staan. Het hierboven beschreven stroomverloop is weergegeven in figuur 57. Er moet opgemerkt worden dat dit stroomverloop afhankelijk zal zijn van de grootte van de duty cycle zoals in de figuur te zien is. Hieronder wordt het probleem verder uitgewerkt en er wordt verklaard waarom er een verschil is tussen een grote en een kleine duty cycle. Een dergelijke methode om de stroom in een DC-DC converter te controleren wordt ook wel Peak Current Mode Control (PCMC) genoemd Subharmonische oscillaties Voor het bovenstaande geval kan aangetoond worden dat het systeem stabiel is voor een duty cycle kleiner dan 50%. Dit wordt nu eerst even onderzocht aan de hand van onderstaande figuur. Er is een Dries Vromman 55
69 periode van de spoelstroom getekend in regime (blauw) en een periode waarbij een initiële uitwijking i 0 wordt gegeven (rood) aan de spoelstroom. Figuur 58: Spoelstroom zonder slope compensatie Uit bovenstaande figuur kunnen onderstaande vergelijkingen makkelijk afgeleid worden voor de stijgende en dalende spoelstroom. i 0 + m 1 D d T = m 1 DT m 2 D + d T = m 2 DT i 1 Bovenstaande vergelijkingen kunnen herleid worden tot: i 0 = m 1 dt i 1 = m 2 dt Nu verhouden beide vergelijkingen zich tot elkaar als: i 1 = m 2dT i 0 m 1 dt = m 2 m 1 Merk op dat het minteken in bovenstaande vergelijking wijst op het feit dat de uitwijking van de n de periode een andere zin heeft dan de uitwijking van de periode n+1. Algemeen kan nu voor de uitwijking van de n de periode geschreven worden: i n = m 2 m 1 n i 0 Indien de spoelstroom zich stabiliseert, zal de limiet voor n gaande naar oneindig gelijk worden aan 0. lim i n = lim m 2 n n m 1 n i 0 = 0 Om aan bovenstaande te voldoen moet de verhouding van de dalende helling (m 2 ) op de stijgende helling (m 1 ) voldoen aan onderstaande betrekking. Dries Vromman 56
70 m 2 m 1 < 1 Uit het regimegeval kan afgeleid worden dat de stijging van de spoelstroom gelijk is aan de daling van de spoelstroom. Dm 1 T = 1 D m 2 T m 2 = D m 1 1 D Zo wordt de voorwaarde gevonden voor een stabiele spoelstroom zonder slope compensatie. D 1 D < 1 D < 0,5 Bovenstaande voorwaarde wordt ook gevonden in [20, 21]. Indien de duty cycle toch groter wordt dan 50%, zal het stroomverloop chaotisch zijn. Er wordt gezegd dat er subharmonische oscillaties optreden. Figuur 59: Subharmonische oscillaties In figuur 59 is de spoelstroom weergegeven tijdens een subharmonische oscillatie. Subharmonische oscillaties resulteren in instabiliteit en zorgen voor een grotere rimpel op de uitgangsspanning en de spoelstroom [19]. Om ervoor te zorgen dat de oscillaties niet voorkomen, kan de duty cycle kleiner dan 50% gehouden worden. Het werkingsgebied van de converter is dan wel zeer beperkt. Een oplossing om dergelijke oscillaties te vermijden bij grotere waarden van de duty cycle dringt zich dus op Slope compensation Om de subharmonische oscillaties tegen te gaan bestaat er een (analoge) techniek: slope compensation. De techniek brengt een supplementaire helling (m c ) in rekening. Er zijn twee mogelijkheden. Dries Vromman 57
71 De eerste mogelijkheid is om de ramp op te tellen bij de spoelstroom en deze te vergelijken met een referentie. Bij de tweede mogelijkheid wordt de helling afgetrokken van de regelspanning. In figuur 60 wordt de situatie weergegeven indien de helling afgetrokken wordt van de wenswaarde. [18, 20] Figuur 60: Slope compensation Eerst wordt de principiële werking van peak current mode control met slope compensation toegelicht aan de hand van figuur 60. In het begin van iedere periode stijgt de spoelstroom. De spoelstroom stijgt tot hij de rampwaarde bereikt heeft en begint daarna te dalen. Vervolgens wordt grafisch bekeken of de stabiliteit inderdaad verbeterd is met een dergelijke compensatie. Om dit te controleren wordt aan de spoelstroom een uitwijking I 0 gegeven en moet bekeken worden hoe deze uitwijking zich verder propageert. Uit figuur 60 blijkt dat de uitwijking na een aantal perioden inderdaad verdwenen is. Tenslotte wordt ook analytisch even bekeken of de spoelstroom stabiliseert. Volgens [18, 20, 21] geldt de volgende betrekking: i 1 i 0 = m 2 m c m 1 + m c Merk op dat het minteken voor de breukstreep er opnieuw op wijst dat de zin van de opeenvolgende uitwijkingen tegenovergesteld is. Indien de helling van de slope (m c ) gelijk gesteld wordt aan nul (geen slope compensation) dan wordt inderdaad de betrekking gevonden die afgeleid werd in Uit het bovenstaande volgt dan ook de voorwaarde voor stabiliteit: m c > 1 1 2D m 2 Om volledige stabiliteit te garanderen bij alle duty cycles is de voorwaarde: m c > m 2 2 De helling van de slope wordt het best groter genomen dan de minimum opgelegde waarde. Immers zou de kleinste parameterverandering voor instabiliteit kunnen zorgen. Dries Vromman 58
72 Vervolgens moet ook opgemerkt worden dat de uitwijking in één periode weggewerkt zal worden indien m c gelijk wordt gekozen aan m 2. Een belangrijk nadeel hiervan is dat de gemiddelde geregelde stroom meer zal afwijken van de gewenste stroom (I REF ). Voor de volledige uitwerking van bovenstaande formules wordt verwezen naar bijlage Digitale slope compensatie Omdat in dit eindwerk het geheel aangestuurd wordt door middel van een microcontroller is er een onderzoek gebeurd om de eerder beschreven slope compensatie in een digitale vorm te gieten. Hieronder worden eerst een aantal mogelijkheden opgesomd, daarna wordt een digitale slope compensatie dieper uitgespit. In [16] is een techniek ontwikkeld voor converters die met een variabele frequentie werken op basis van Peak Current Mode Control (PCMC). De spoelstroom en de uitgangsspanning worden er vergeleken met twee analoge waarden die door middel van twee DAC s worden aangemaakt. Het gehele algoritme is ontwikkeld in VHDL en wordt gebruikt om een multiphase converter aan te sturen. Vervolgens wordt in [17, 19] een algoritme ontwikkeld voor converters die werken in average current mode (ACMC). Het ontwikkelde algoritme is vrij complex en veronderstelt dat de hellingen van de spoelstroom gekend zijn. Deze hellingen kunnen als constanten worden beschouwd of telkens opnieuw worden berekend. Het eerste voorstel is nadelig voor de flexibiliteit, het tweede idee zal dan weer meer rekenkracht vragen. Ten slotte is er in [15] een techniek ontwikkeld om de spoelstroom te controleren met een algoritme dat zeer weinig rekenkracht vergt. Bovendien wordt de spoelstroom maar één keer per periode gesampled. Met deze techniek kan de stroom geregeld worden met PCMC of met ACMC. Een nadeel van deze techniek is dat de current controller een vertraging met zich mee brengt van één periode. Er is geopteerd om gebruik te maken van de techniek die omschreven is in [15]. Deze techniek biedt zoals eerder gezegd het voordeel dat ze weinig belastend is voor controller. Dries Vromman 59
73 2.3.1 Digitale current controller Zoals hierboven gezegd moet er een compensatie gebeuren op de gewenste referentiestroom door middel van een helling. Die compensatie wordt geïmplementeerd in de digitale current controller. Figuur 61: Digitale Current Controller Het algemene blokschema van een digitale current controller is weergegeven in figuur 61. Een essentieel onderdeel hiervan is een teller (count up) en een comparator. De teller telt op het ritme van de aangelegde klok met een periode T S en is verbonden met de comparator. De andere ingang van de comparator is verbonden met een register dat de waarde 1 d[n] bevat. Telkens als de teller volgelopen is, dus na één periode, wordt een interrupt gegenereerd. Bij een dergelijke interrupt wordt de uitgang laag gezet en het register geladen met de volgende waarde Discreet regelalgoritme In [15] staat beschreven hoe digitale slope compensation wordt toegepast voor average current mode control. Hetzelfde principe kan ook toegepast worden voor peak current mode control en wordt hieronder uitgewerkt. Eerst en vooral moet gedefinieerd worden wat een controle cyclus is. Een controle cyclus duurt even lang als een schakelperiode en start met het dalen van de spoelstroom. De spoelstroom daalt gedurende 1 d T. Na deze tijd stijgt de spoelstroom tot het einde van de controle cyclus en dus ook tot het eind van de periode. De spoelstroom wordt maar één keer per periode gesampled. Er wordt een sample genomen als de spoelstroom zijn maximum bereikt. Aan de hand van deze sample wordt de duty cycle berekend voor de volgende periode. Dries Vromman 60
74 Figuur 62: Digitale slope compensation De gesamplede waarde van de n de periode kan geschreven worden als: i LS = I REF m c dt De duty cycle kan nu geschreven worden als: d = I REF i LS m c T De discrete duty cycle voor de periode n-1 kan geschreven worden als: x[n 1] = I REF i LS [n 1] m c T In bovenstaande formule wordt de spoelstroom gesampled op het einde van de vorige controle cyclus. De controller berekent de uitkomst van de vergelijking als x n 1. Deze berekening zal een zekere (eindige) tijd innemen die mogelijk meer kan zijn dan 1 x n 1 T. Hierdoor kan er mogelijks een niet correcte waarde gebruikt worden voor de periode n-1. Om geen risico te lopen zal de berekende duty cycle x n 1 maar in de volgende controle cyclus gebruikt worden als duty cycle d n. d[n] = I REF i LS [n 1] m c T Door het algoritme zo toe te passen, wordt een zekere delay ingevoerd waardoor er wat meer instabiliteit zal worden geïntroduceerd. Dries Vromman 61
75 2.3.3 Stabiliteitscontrole Vervolgens wordt bekeken of het systeem wel degelijk stabiel is en aan welke vereisten de helling moet voldoen. In figuur 63 is het verloop van de spoelstroom weergegeven. De eerste twee perioden geven het steady state regime weer. Vervolgens is er een uitwijking I 1 gegeven aan de spoelstroom en wordt er bekeken hoe deze uitwijking zich voortplant gedurende de volgende periodes Figuur 63: Slope compensation grafisch Toestand in regime: Eerst wordt de toestand bekeken in steady state. I LS = I REF m c dt In regime is de stijging van de spoelstroom gelijk aan de daling van de spoelstroom. m 1 dt = m 2 1 d T m 1 = m 2 1 d d m 2 = m 1 + m 2 d Toestand eerste cyclus: Na de eerste cyclus is de uitwijking nog steeds even groot aan zijn oorspronkelijke uitwijking I 1. Dit komt omdat er in de eerste controlecyclus nog steeds gewerkt wordt met de duty cycle van de vorige controlecyclus. Dit is de duty cycle in regime. Het is pas in de tweede controlecyclus dat de duty cycle zich aanpast. I 1 I 1 = 1 Toestand tweede cyclus: De sample genomen in het begin van de eerste controlecyclus kan geschreven worden als: I LS1 = I LS + I 1 I LS1 = I REF m c d 1 T Dries Vromman 62
76 Uit de analyse van de toestand in regime is geweten dat: I LS = I REF m c dt Daaruit volgt: I 1 = I LS1 I LS = m c d d 1 T d d 1 = I 1 m c T Vervolgens is de uitwijking op het einde van de tweede controlecyclus te schrijven als: I 2 = I 1 m 2 1 d 1 T + m 1 d 1 T I 2 1 = 1 m I 2 1 d 1 T m 1 d 1 T 1 I 1 Hierboven werd al uitgerekend dat m 1 = m 2 1 d d I 2 = 1 m I 2 d 1 d 1 1 d T m 2 1 d d d 1 1T I 1 I 2 = 1 m 2dT m 2 dd 1 T m 2 d 1 T + m 2 dd 1 T I 1 d I 2 = 1 m 2dT m 2 d 1 T I 1 d I 1 I 2 = 1 m 2 d d 1 T I 1 d I 1 Nu is d d 1 T I 1 = 1 m c I 2 I 1 = 1 m 2 m c d Hierbij is m 2 d I 2 I 1 = 1 m 1 + m 2 m c 1 I 1 = m 1 + m 2 waardoor het volgende verkregen wordt: Deze verhouding wordt omgevormd tot een meer algemene vorm zodat het makkelijker wordt om een verband te zien tussen de verschillende termen. I 2 I 1 = I 1 I 1 m 1 + m 2 m c I 0 I 1 Waarbij I 0 = I 1, want de gegeven uitwijking wordt niet onmiddellijk verbeterd in de eerste controlecyclus. Dries Vromman 63
77 Toestand derde cyclus: De sample genomen in het begin van de tweede controlecyclus kan geschreven worden als: I LS1 = I LS + I 1 I LS1 = I REF m c d 1 T Uit de analyse van de toestand in regime is geweten dat: I LS = I REF m c dt Daaruit volgt: I 1 = m c d d 1 T => d d 1 = I 1 m c T Vervolgens is de uitwijking op het einde van de derde controlecyclus te schrijven als: I 3 = I 2 m 2 1 d 1 T + m 1 d 1 T Met m 1 = m 2 1 d d I 3 = I 2 m 2 d 1 d 1 d 1 d T m 2 d d 1T I 3 = I 2 m 2dT m 2 dd 1 T m 2 d 1 T + m 2 dd 1 T d I 3 = I 2 m 2(d d 1 )T d Met d d 1 = I 1 m c T I 3 = I 2 m 2T I 1 m c dt I 3 I 1 = I 2 I 1 m 2 m c d Nu is m 2 d = m 1 + m 2 I 3 I 1 = I 2 I 1 m 1 + m 2 m c Bovenstaande formule wordt in een meer algemene vorm geschreven zodat straks sneller het verband kan gevonden worden. I 3 I 1 = I 2 I 1 m 1 + m 2 m c I 1 I 1 Dries Vromman 64
78 Toestand vierde cyclus: De sample genomen in het begin van de derde controlecyclus kan geschreven worden als: I LS2 = I LS + I 2 I LS2 = I REF m c d 2 T Uit de analyse van de toestand in regime is geweten dat: I LS = I REF m c dt Hieruit volgt: I 2 = m c (d d 2 )T d d 2 = I 2 m c T De uitwijking op het einde van de vierde cyclus kan geschreven worden als: I 4 = I 3 m 2 1 d 2 T + m 1 d 2 T Met m 1 = m 2 1 d d I 4 = I 3 m 2 d 1 d 2 d 1 d T m 2 d d 2T I 4 = I 3 m 2dT m 2 dd 2 T m 2 d 2 T + m 2 dd 2 T d I 4 = I 3 m 2(d d 2 )T d Met d d 2 = I 2 m c T I 4 = I 3 m 2T I 2 m c dt Nu is m 2 d = m 1 + m 2 I 4 = I 3 (m 1 + m 2 ) I 2 m c Algemeen kan opnieuw geschreven worden: I 4 I 1 = I 3 I 1 m 1 + m 2 m c I 2 I 1 Dries Vromman 65
79 Algemene recursievergelijking: Aan de hand van de betrekkingen die hierboven afgeleid zijn voor de verschillende cycli kan nu de algemene formule afgeleid worden voor de n de cycli. Controlecyclus 1: I 1 = I 0 m 1+m 2 I 1 met I I 1 I 1 m c I 1 = 0 1 Controlecyclus 2: Controlecyclus 3: Controlecyclus 4: I 2 I 1 = I 1 I 1 m 1+m 2 m c I 0 I 1 I 3 I 1 = I 2 I 1 m 1+m 2 m c I 1 I 1 I 4 I 1 = I 3 I 1 m 1+m 2 m c I 2 I 1 met I 0 = I 1 = originele uitwijking Controlecyclus n: I n = I n 1 m 1+m 2 I n 2 voor n 1 I 1 I 1 m c I 1 In de bekomen recursieformule wordt R = m 1+m 2 m c gedefinieerd. Dan is: I n = I n 1 R I n 2 Om de convergentie van deze reeks grafisch te controleren is er in MATLAB een script geschreven. Het script is bijgevoegd in bijlage 5. Na enkele tests blijkt dat de reeks convergeert voor R<1. In figuur 64 en figuur 65 is de output te zien van het script met R respectievelijk gelijk aan 0,7 en 1,1. 1 I n / I 1 in functie van het aantal Cycli n I n / I Aantal Cycli n Figuur 64: Controle van de stabiliteit voor R=0,7 Dries Vromman 66
80 I n / I 1 in functie van het aantal Cycli n I n / I Aantal Cycli n Figuur 65: Controle van de stabiliteit voor R=1,1 De convergentie van deze reeks kan ook analytisch aangetoond worden. Hiertoe wordt de recursieformule opgelost door middel van een techniek die men in de wiskunde differentievergelijkingen noemt. De volledige uitwerking hiervan is te zien in bijlage 6. Ook bij de wiskundige afleiding is de uitkomst dat de reeks slechts convergeert voor R kleiner dan 1. Dries Vromman 67
81 3. Software 3.1 Toestanden Om de software te ontwikkelen is uitgegaan van de verschillende toestanden waarin de converter zich kan bevinden. Deze toestanden zijn in figuur 66 weergegeven in een toestandsdiagram. In de bijhorende tabel zijn de voorwaarden gegeven waarbij de converter van de ene toestand naar de andere toestand kan overgaan. Het voordeel van een dergelijke manier van werken is dat alle toestanden grafisch kunnen weergegeven worden wat de overzichtelijkheid ten goed komt. Daarnaast is het systeem makkelijk uit te breiden met extra toestanden mocht dat later nodig blijken. Een machine die zich in verschillende toestanden kan bevinden noemt men ook wel een state machine. In de code wordt de toestand bijgehouden door middel van een 16-bit getal. In de code die hieronder volgt zijn de subroutines te zien die gebruikt worden om te wisselen tussen de verschillende toestanden of modes. MODE1: Boostmode wordt voorgesteld door 0x0000 h MODE2: Buckmode wordt voorgesteld door 0x0001 h MODE3: Sleepmode wordt voorgesteld door 0x0002 h WIJZIG_MODE_NAAR_MODE1: ;wijzig de mode naar de boostmode mov #0x0000, w0 mov w0, MODE_SELECTED bra ADC_EXIT WIJZIG_MODE_NAAR_MODE2: ;wijzig de mode naar de buckmode mov #0x0001, w0 mov w0, MODE_SELECTED bra ADC_EXIT WIJZIG_MODE_NAAR_MODE3: ;wijzig de mode naar de sleepmode mov #0x0002, w0 mov w0, MODE_SELECTED bra ADC_EXIT Het gebruik van modebits heeft ook een nadeel. Hier worden de verschillende modes bijgehouden door middel van een 16-bit getal. Veronderstel nu dat er tijdens de uitvoering van het programma één van die bits wijzigt waardoor de microcontroller in een ongekende mode terechtkomt. De microcontroller weet nu niet meer welke mode hij moet uitvoeren. Deze fout kan leiden tot ernstige schade aan bijvoorbeeld de hardware. Daarom moet de state machine fault-tolerant gemaakt worden. Dit wil zeggen dat de machine automatisch terug in een gekende toestand moet kunnen komen. Hier komt de mode automatisch in de sleepmode bij het optreden van een fout in de mode bits. Als er in onderstaande tabel meerdere voorwaarden opgesomd zijn bij een overgang, betekent dit dat deze allen moeten gelden (= AND-functie). Indien er expliciet een of vermeld wordt tussen de voorwaarden betekent dit dat het voldoende is dat aan één van de voorwaarden voldaan is om over te gaan naar de volgende toestand (= OF-functie). Hieronder zullen deze voorwaarden kort worden toegelicht. Dries Vromman 68
82 Bij de start van het programma wordt er gecontroleerd of de condensatorbank aangesloten is (1). Indien hij aangesloten is, gaat de converter in de toestand boostmode. Indien de condensatorbank niet aangesloten is, wordt het programma beëindigd (9) doordat de converter in de toestand fout gaat. Hierbij worden alle PWM kanalen onmiddellijk uitgeschakeld. De toestand fout wordt visueel kenbaar gemaakt door een rode LED te laten oplichten. Tot slot wordt er bij de start ook nog gecontroleerd of de spanning van de condensatorbank niet groter is dan de maximum toegelaten spanning (9). In principe is deze laatste controle gedurende de hele uitvoering van het programma aanwezig. Indien de comparator een te hoge condensatorspanning detecteert, gaat het programma onmiddellijk naar de toestand fout. De PWM kanalen worden onmiddellijk uitgeschakeld en de condensatorbank ontlaadt door de voorziene ontlaadweerstand. Dit om te vermijden dat de condensatoren tot een te hoge spanning worden opgeladen. Als de converter in de toestand boostmode komt, wordt de condensatorbank opgeladen met een constante spoelstroom. Indien de gesamplede spoelstroom I L,BOOST niet groter wordt dan de maximaal ingestelde spoelstroom en de gesamplede condensatorspanning v c onder de gewenste spanning blijft, wordt de toestand boostmode behouden (2). Als de condensatorbank echter volgeladen is en de spoelstroom ligt lager dan de maximaal ingestelde spoelstroom, dan gaat de converter naar de toestand sleep (3). Als tijdens het laden van de condensatorbank de stroom te hoog zou oplopen of de spanning van de condensatorbank hoger zou worden dan de maximale condensatorspanning (10), gaat de converter naar de toestand fout. De converter komt in de toestand sleep als hij niet in boost- of in buckmode staat. De converter blijft in de mode sleep als de busspanning op pijl blijft en als de gesamplede condensatorspanning binnen de range blijft van de gewenste condensatorspanning ± 3V. De gewenste condensatorspanning kan door middel van een potentiometer ingesteld worden. Indien deze wenswaarde kleiner wordt dan de gesamplede waarde of de busspanning onder de minimum tolereerbare busspanning daalt(5), dan gaat de converter over naar de buckmode zodat de spanning van de condensatorbank daalt tot de gewenste spanning. Op deze manier wordt de busspanning terug op peil gebracht. Mocht de converter zich lang in de mode sleep bevinden, is het mogelijk dat de condensatorbank ontlaadt door de spanningsdeling aan de uitgang en door parasitaire weerstand. Om de condensatorspanning toch op peil te houden tijdens dergelijke momenten gaat de converter opnieuw naar de boostmode als de condensatorspanning lager wordt dan de gewenste spanning 3V (8). Ook hier worden alle PWM kanalen uitgeschakeld en de condensatorbank ontladen indien de comparator een te hoge spanning detecteert (11). Tot slot is er ook nog een toestand buckmode. Tijdens deze mode wordt er energie van de condensatorbank naar de bus gebracht. Hierbij wordt door middel van een regelkring de spanning op de bus constant gehouden. Tijdens de normale werking blijft de converter in deze toestand indien de spoelstroom I L,BUCK niet te hoog oploopt, de busspanning niet groter wordt dan de maximaal toelaatbare busspanning (begrenzing) en de condensatorbank nog voldoende opgeladen is (6). Indien de busspanning niet meer kan opgehaald worden omdat de condensatorbank niet meer voldoende is opgeladen gaat de converter terug naar de sleepmode waar hij wacht om de condensatorbank terug op te laden (7). Indien er tijdens de buckmode een fout optreedt, wordt het programma beëindigd. Zo kan de spoelstroom I L,BUCK te hoog oplopen, de busspanning groter worden dan maximaal Dries Vromman 69
83 toelaatbaar of de comparator kan een condensatorspanning detecteren die groter is dan de maximaal toelaatbare waarde (12). Figuur 66: Toestandsdiagram Tabel 9: Voorwaarden bij toestandsdiagram Toestandsdiagram nr. Voorwaarden nr. Voorwaarden 1) - condensatorbank aangesloten 7) - gesamplede I L,BUCK < maximale I L - gesamplede V BUS < maximale V 2) - gesamplede I BUS L,BOOST < maximale I L - gesamplede V C < minimale V - gesamplede V C C < gewenste V C 8) - gesamplede V C < gewenste V C 3V 3) - gesamplede I L,BOOST < maximale I L - gesamplede V C gewenste V C 4) - gesamplede V BUS minimale V BUS - gesamplede V C gewenste V C + 3V - gesamplede V C gewenste V C 3V 5) - gesamplede V BUS < minimale V BUS of - gesamplede V C > gewenste V C + 3V 6) - gesamplede I L,BUCK < maximale I L - gesamplede V BUS < maximale V BUS - gesamplede V C minimale V C 9) - gecompareerde V C maximale V C of - condensatorbank niet aangesloten 10) - gecompareerde V C maximale V C of - gesamplede I L,BOOST maximale I L 11) - gecompareerde V C maximale V C 12) - gecompareerde V C maximale V C of - gesamplede I L,BUCK maximale I L of - gesamplede V BUS maximale V BUS Dries Vromman 70
84 3.2 Boostmode Hierboven werd gesproken over de verschillende modes waarin de converter zich kan bevinden. Één van die modes is de boostmode. Tijdens de boostmode wordt de condensatorbank geladen met een constante gemiddelde spoelstroom. Om dit mogelijk te maken wordt gebruik gemaakt van een digitale regelkring. In wetenschappelijke kringen wordt dit Average Current Mode Control (ACMC) genoemd. De microcontroller neemt iedere periode een sample van de spoelstroom. In figuur 24 is uitgelegd dat het mogelijk is om de gemiddelde spoelstroom in te lezen door het samplemoment juist te kiezen. Met de genomen sample wordt dan in de microcontroller een fout e[n] berekend. e n = I REF I L,BOOST n (20) Figuur 67: Principeschema regelkring boostmode ACMC Dries Vromman 71
85 De spoelstroom wordt constant gehouden door middel van een digitale PID-regelaar. Volgens [22] is de transferfunctie van een digitale PID-regelaar van de vorm: G PID (z) = d e = C 1 z 2 + C 2 z + C 3 z 2 z (21) Indien deze regelaar omgevormd wordt naar een bruikbaar algoritme dat door de microcontroller uitgevoerd kan worden, wordt onderstaande bekomen [22-25]: d n = d n 1 + A 1 e n + B 1 e n 1 + C 1 e n 2 (22) Dit algoritme wordt ook blokschematisch weergegeven figuur 67. Hierbij is de waarde e[n] berekend zoals weergegeven in vergelijking 20. De werking van bovenstaande formule is intuïtief makkelijk aan te voelen. Veronderstel de eerste klokcycli in het begin van de boostmode. De duty cycle wordt initieel ingesteld op 5% (=d[n]). De volgende klokcyclus wordt d[n] doorgeschoven naar d[n-1] en wordt e[n] berekend zoals aangegeven in vergelijking 20. In het begin zal de gesamplede spoelstroom I L [n] merkelijk kleiner zijn dan I REF. De berekende fout e[n] zal dus een relatief grote en positieve waarde zijn. Dit wil dus zeggen dat de duty cycle zal toenemen omdat er telkens een positieve waarde bij de oorspronkelijke duty cycle wordt geteld. Indien de duty cycle al een tijdje is toegenomen, zal de spoelstroom gelijk en/of groter worden dan de ingestelde referentiestroom. Veronderstel dat de spoelstroom groter is dan de referentiestroom. De fout e[n] komt nu negatief. Hierdoor zal de duty cycle opnieuw beginnen dalen omdat er een negatieve waarde wordt opgeteld bij de oorspronkelijke duty cycle. Op deze manier wordt de duty cycle op een dusdanige manier berekend dat de gemiddelde spoelstroom de referentiestroom benadert. Na de berekening van de duty cycle d[n] is er nog een begrenzing voorzien. Deze zorgt ervoor dat de berekende duty cycles tussen een onder- en bovengrens liggen. Op het einde van de boostmode treedt er nog een ander verschijnsel op. Dan is de condensatorbank al tot op een bepaald niveau opgeladen dat merkelijk hoger is dan de busspanning. Volgens vergelijking 4 kan de helling van de dalende en stijgende spoelstroom berekend worden aan de hand van de busspanning en de condensatorspanning. Als de condensatorspanning voldoende opgeladen is, zal de dalende helling vrij groot zijn. Om nu in regime te blijven, dit wil zeggen dat de spoelstroom even veel stijgt als daalt, zal de duty cycle moeten toenemen. Echter is de duty cycle begrensd op 80%. Hierdoor kan het voorkomen dat op het einde van de boostmode de gemiddelde spoelstroom terug afneemt. Dries Vromman 72
86 3.3 Buckmode Tijdens de buckmode wordt er energie uit de condensatorbank naar de bus gestuurd. Hierbij wordt de spanning op de bus constant gehouden door middel van een digitale regelkring. Dit wordt ook wel Voltage Mode Control (VMC) genoemd. De microcontroller neemt iedere periode een sample van de busspanning. Met de genomen sample wordt dan in de microcontroller een fout e[n] berekend zoals hieronder weergegeven in de vergelijking. e n = V REF V BUS n (23) Figuur 68: Principeschema regelkring VMC buckmode Dries Vromman 73
87 De busspanning wordt constant gehouden door middel van een digitale PID-regelaar. De transferfunctie van deze regelaar is weergegeven in vergelijking 21. Indien deze regelaar omgevormd wordt naar een bruikbaar algoritme dat door de microcontroller uitgevoerd kan worden, wordt onderstaande bekomen [22-25]: d n = d n 1 + A 2 e n + B 2 e n 1 + C 2 e n 2 (24) Dit algoritme wordt ook blokschematisch weergegeven figuur 68. Hierbij is de waarde e[n] berekend zoals weergegeven in vergelijking 23. Er moet wel opgemerkt worden dat de coëfficiënten A, B en C verschillend zijn van deze die weergegeven worden in vergelijking 22. De werking van bovenstaande formule is opnieuw intuïtief makkelijk aan te voelen. Veronderstel de eerste klokcycli in het begin van de buckmode. De busspanning is dan al een aantal Volt onder de referentiespanning gedaald. De duty cycle wordt initieel ingesteld op 25% (=d[n]). De volgende klokcyclus wordt d[n] doorgeschoven naar d[n-1] en wordt e[n] berekend zoals aangegeven in vergelijking 23. In het begin zal de gesamplede busspanning V BUS [n] kleiner zijn dan V REF. De berekende fout e[n] zal dus een positieve waarde zijn. Dit wil dus zeggen dat de duty cycle zal toenemen omdat er telkens een positieve waarde bij de oorspronkelijke duty cycle wordt geteld. Indien de duty cycle al een tijdje is toegenomen, zal de busspanning stijgen, gelijk en groter worden dan de ingestelde referentiespanning. Veronderstel dat de busspanning groter geworden is dan de referentiespanning. De fout e[n] komt nu negatief. Hierdoor zal de duty cycle opnieuw beginnen dalen omdat er een negatieve waarde wordt opgeteld bij de oorspronkelijke duty cycle. Doordat de duty cycle daalt, zal de busspanning ook dalen. Op deze manier wordt de duty cycle op een dusdanige manier berekend dat de busspanning de referentiespanning benadert. Na de berekening van de duty cycle d[n] is er nog een begrenzing voorzien. Deze zorgt ervoor dat de berekende duty cycles tussen een onder- en bovengrens liggen. 3.4 Sleepmode Tot slot is er nog een derde mode of toestand waarin de converter zich kan bevinden: de sleepmode. In deze mode staat de converter eigenlijk te wachten op een signaal dat aangeeft dat hij naar de boost- of buckmode mag. De voorwaarden voor deze wijziging van mode werden hierboven al besproken. Dries Vromman 74
88 4. Code 4.1 Hoofdprogramma Het blokschema van het hoofdprogramma is te zien in figuur 69. Het hoofdprogramma wordt gestart wanneer de microcontroller gevoed wordt met +5V of wanneer de microcontroller gereset is na een druk op de MCLR. Eenmaal gevoed en de oscillator stabiel is, kan de initialisatie beginnen (zie 4.2 hieronder). In deze initialisatie worden de CPU, DSP en alle andere modules (ADC, PWM, CMP, I/O) ingesteld voor het hoofdprogramma. Daarna kan het werkelijke programma beginnen. Hierbij wordt telkens eerst gecontroleerd of de condensatorbank aangesloten is. Als dit niet het geval is, wordt het programma beëindigd. Alle PWM worden gestopt en er gaat een indicatie LED branden zodat het visueel zichtbaar is dat er een fout opgetreden is. Figuur 69: Blokschema hoofdprogramma Als de condensatorbank wel aangesloten is, wordt de boostmode ingesteld. Deze mode wordt bij de opstart van het programma steeds uitgevoerd omdat de condensatorbank eerst moet opgeladen zijn vooraleer een buckactie gestart kan worden. Zoals eerder gezegd zijn de PWM kanalen tijdens de boostmode zo ingesteld dat er 2 FET s (FET1 en FET3) schakelen en dat er 1 FET (FET2) constant open is. Initieel wordt de waarde van de duty cycle op het minimum ingesteld (5%) en worden de Dries Vromman 75
89 foutwaardes (e[n], e[n-1] en e[n-2]) voor het regelalgoritme op nul gezet. Hierna kan de code bestemd voor boostmode effectief uitgevoerd worden. Het programma loopt nu continu in een lus. In deze lus wordt er onder andere ook telkens gecontroleerd of de mode niet veranderd is door een eventuele ADC-interrupt. Mocht dit het geval zijn, dan springt het programma uit deze lus en wordt de sleepmode ingesteld. Hierbij worden alle FET s open schakelaars. Als het programma in de sleepmode is ingesteld, loopt het programma terug in een lus. In deze lus wordt er opnieuw gecontroleerd of de mode gewijzigd is. Deze wijziging kan het gevolg zijn van een ADC-interrupt. Afhankelijk van de opgemeten spanningen en stromen kan de sleepmode opgevolgd worden door zowel de boost- als de buckmode. Veronderstel dat de volgende mode de buckmode is, dan worden de PWM kanalen ingesteld voor de buckmode. Dit betekent dat FET2 schakelt, FET3 constant dicht is en FET1 een open schakelaar is. Vooraleer het regelalgoritme begint, wordt de waarde van de duty cycle minimaal gezet (25%) en worden alle foutwaardes (e[n], e[n-1] en e[n-2]) voor het regelalgoritme gereset. Daarna komt het programma terug in een lus. In deze lus wordt er onder andere gecontroleerd of de mode niet gewijzigd is. Als dit het geval is, dan worden de PWM kanalen terug ingesteld voor sleepmode. Het kan dus nooit voorkomen dat de mode wijzigt van buckmode naar boostmode of omgekeerd. Dit om te voorkomen dat de buckstroom (I L,BUCK ) of booststroom (I L,BOOST ) nog vloeit als er overgeschakeld wordt. 4.2 Initialisatie Zoals hierboven gezegd, wordt alles eerst geïnitialiseerd wanneer het programma gestart wordt. Het volledige blokschema van de initialisatie is hieronder terug te vinden in figuur 70. Eerst wordt de stackpointer ingesteld. Dit is niets anders dan het begin en het einde van de stack toewijzen. Hierna wordt de DSP module ingesteld. Deze module wordt gebruikt bij het uitrekenen van het boost- en buckalgoritme. Zo moet er vastgelegd worden dat er met integers wordt gewerkt. Vervolgens wordt het volledig toegewezen RAM-geheugen gecleard zodat er zich geen oude waarden meer bevinden in dit geheugen. De volgende stappen zijn het initialiseren van de verschillende modules. Eerst komt de ADC module aan bod. Hierbij wordt het basisadres ingesteld waarnaar het programma moet gaan wanneer er een ADC-interrupt voorkomt. Ook worden de ingangspinnen van de ADC s analoog gemaakt zodat deze uitgelezen kunnen worden. Vervolgens wordt er ingesteld wanneer de ADC moet beginnen samplen en dat er een interrupt aanvraag kan gebeuren. Het moment wanneer de ADC moet sampelen wordt ingesteld door middel van een event dat afkomstig is van de PWM module. Tenslotte worden alle wachtende ADC interrupts gecleard en kan de ADC geactiveerd worden. Momenteel kan er nog niet gesampled worden omdat de PWM module nog niet geïnitialiseerd is. De ADC module moet immers events krijgen van de PWM module. Daarom wordt na de ADC de PWM module geïnitialiseerd. Hierbij wordt de periode, de duty cycle en het event waarbij er gesampled moet worden ingesteld. Er moet opgemerkt worden dat er twee soorten duty cycles zijn. Een master duty cycle die voor alle PWM kanalen geldt en een individuele duty cycle per PWM kanaal. Bij deze Dries Vromman 76
90 laatste mogelijkheid moet er dan per PWM kanaal ingesteld worden wat de duty cycle moet zijn. In deze masterproef wordt de individuele duty cycle zo ingesteld dat de FET ofwel een continu open schakelaar of een continu gesloten schakelaar is. De master duty cycle wordt dan gebruikt voor de FET( s) die moet(en) schakelen. Als laatste PWM configuratie wordt vastgelegd of de uitgangen actief hoog of actief laag moeten zijn. Ten slotte wordt de PWM module geactiveerd. De laatste module die moet worden geïnitialiseerd is de output compare. Zoals eerder gezegd dient deze comparator ervoor om te zorgen dat de condensatorspanning niet te hoog oploopt. Daarom moet bij deze module de maximum te vergelijken spanning geprogrammeerd worden. Om deze in te stellen moet er ook nog een referentiespanning vastgelegd worden die de range teruggeeft waarin de DAC werkt. De DAC maakt de digitaal ingestelde waarde analoog. Het is die analoge spanning die vergeleken wordt met het ingangssignaal aan de pin van de output compare. Vervolgens wordt de interrupt aanvraag geactiveerd en wordt de interrupt vlag gecleard. Ten slotte wordt ook de output compare ingeschakeld. Een laatste onderdeel bij het initialiseren van het programma zijn de overige instellingen. Dit zijn alle parameters en coëfficiënten die kunnen worden ingesteld. Zo is het volgende mogelijk: de periode de minimale en maximale duty cycle de coëfficiënten voor het boost- en buckalgoritme de gemiddelde spoelstroom (I L,BOOST ) in boostmode de gemiddelde busspanning (V BUS ) in buckmode de minimale en maximale condensatorspanning (v c ) de minimum busspanning om over te schakelen naar buckmode Eens de volledig initialisatie gebeurd is, kan het boost-buck-sleep-programma beginnen. 4.3 Interrupt ADC Van zodra de ADC ingesteld en geactiveerd is kan er een interrupt optreden. De algemene ADCinterrupt afhandeling is terug te vinden in figuur 71. Er treedt een ADC-interrupt op wanneer een analoge waarde gedigitaliseerd is. Deze gedigitaliseerde waarde zit dan in een ADC-buffer die uitgelezen kan worden. Figuur 70: Blokschema initialisatie Als er een ADC-interrupt optreedt, wordt de program counter verplaatst, zodat de ADC-interrupt code uitgevoerd kan worden. Bij een dergelijke interrupt moeten de huidige registerwaarden en de waarde van de program counter behouden blijven. Daarom worden alle waarden eerst in de stack geplaatst (push on stack). Vervolgens wordt de interrupt gecleard zodat dezelfde interrupt niet Dries Vromman 77
91 onmiddellijk terug wordt opgeroepen na het afronden van de interruptroutine. Vervolgens wordt bekeken welke waarde gedigitaliseerd is. Het digitaliseren van waarden gebeurt telkens per twee. Zo is ADC PAIR0 de eerste (AN0) en de tweede (AN1) ingangspin van de ADC. Vervolgens wordt er verdergegaan met het pair dat de ADC-interrupt afvuurde (zie punt 4.3.1, 4.3.2, en 4.3.4). Hierbij wordt de gedigitaliseerde waarde uitgelezen en kan deze waarde gebruikt worden in berekeningen. Als de interrupt afgerond is, moet ervoor gezorgd worden dat eerst alle huidige registers teruggeplaatst worden (pop of stack). Daarna kan er opnieuw verdergegaan worden met het oorspronkelijke programma. Figuur 71: Algemeen blokschema van een ADC-interrupt Dries Vromman 78
92 4.3.1 ADC-PAIR0 Zoals hierboven uitgelegd gebeurt het digitaliseren van de analoge waarden per pair. Nu zal er per pair gekeken worden hoe de interruptafhandeling gebeurd. Bij het eerste ADC-PAIR wordt enkel de eerste ADC-pin gebruikt. Dit omdat de tweede pin gedeeld wordt met andere ADC-PAIRS. De eerste ADC-pin digitaliseert de buckstroom (I L,BUCK ). Deze stroom wordt opgemeten via de current monitor. De gedigitaliseerde waarde wordt gebruikt om de stroom te controleren tijdens de buckmode, wanneer er gewerkt wordt in VMC. Indien er een te hoge stroom optreedt, wordt het programma beëindigd zodat er geen componenten beschadigd kunnen worden. In deze interrupt wordt er eerst gecontroleerd of de modebits wel degelijk in buckmode staan. Als dit niet het geval is, wordt de interrupt beëindigd. Wordt er toch in de buckmode gewerkt, dan moet er gecontroleerd worden of de stroom (I L,BUCK ) niet hoger komt dan de maximum toegelaten stroom. In normale werking komt deze stroom niet hoger, maar mocht dit toch het geval zijn, dan moet er gestopt worden. Dit betekent dat alle PWM kanalen uitgeschakeld worden en dat de LED die fouten indiceert aangestuurd wordt. Figuur 72: Blokschema PAIR0 Dries Vromman 79
93 4.3.2 ADC-PAIR1 Figuur 73: Blokschema PAIR1 Bij het volgende ADC-PAIR wordt opnieuw maar één ADC-pin gebruikt. Deze wordt gebruikt om de booststroom (I L,BOOST ) in te lezen. Het is dan ook logisch dat bij een interrupt van dit ADC-pair eerst gecontroleerd wordt of de modebits in de boostmode staan. Als dit niet het geval is, dan mag deze interrupt onmiddellijk gestopt worden. Als er toch in de boostmode gewerkt wordt dan moeten er nog enkele andere voorwaarde gelden voordat het boostalgoritme gebruikt kan worden. Een eerste belangrijke voorwaarde is dat de gedigitaliseerde booststroom (I L,BOOST ) niet te hoog oploopt. In de normale werking is dit niet het geval omdat de stroom geregeld wordt via het boostalgoritme, maar mocht dit toch voorkomen, worden alle PWM kanalen uitgeschakeld en brandt er een LED. Als de stroom niet te hoog is, wordt de condensatorspanning gecontroleerd. De waarde wordt vergeleken met de gewenste condensatorspanning. Als de condensatorspanning al de gewenste spanning bereikt heeft, wordt er overgeschakeld naar de sleepmode. Als de condensatorspanning nog niet bereikt is, wordt de busspanning gecontroleerd. Is deze lager dan +5V dan moet er geen boostalgoritme uitgevoerd worden en wordt er ook overgeschakeld naar sleepmode. Als de busspanning gelijk is of hoger dan +5V dan wordt het boostalgoritme uitgerekend zodat er een nieuwe duty cycle verkregen wordt voor de volgende periode. Dries Vromman 80
94 4.3.3 ADC-PAIR2 Figuur 74: Blokschema PAIR2 Een derde ADC-PAIR meet de busspanning. Deze spanning moet in normale werking continu op +24V gehouden worden. Als de condensatorbank opgeladen is, wordt er geschakeld van boostmode naar sleepmode. Nu zijn er twee mogelijkheden: Ofwel daalt de busspanning tot onder de minimum busspanning, zodoende moet er overgeschakeld worden naar de buckmode om energie te leveren aan de bus. Ofwel daalt de condensatorspanning tot onder v C 3V, zodoende moet er overgeschakeld worden naar de boostmode. Op deze manier wordt de condensatorspanning op pijl gehouden. Bij een interrupt van ADC-PAIR2 wordt er eerst gecontroleerd of de modebits zijn ingesteld voor sleepmode. Als de converter zich in de sleepmode bevindt en de busspanning kleiner is dan de minimum gewenste busspanning, wordt er overgeschakeld van sleepmode naar buckmode. De converter zal nu energie terugvoeren naar de bus. Als de busspanning echter toch hoog genoeg is en de converter in sleepmode staat, dan mag deze interrupt zonder meer afgerond worden. Als de converter zich niet in de sleepmode bevindt, wordt er gecontroleerd of er in de buckmode gewerkt wordt. Vervolgens wordt de gesamplede busspanning gecontroleerd. Deze controle is een Dries Vromman 81
95 veiligheid die ervoor zorgt dat de busspanning niet te hoog oploopt. Mocht de busspanning, ondanks de regelkring, toch te veel oplopen, worden alle PWM kanalen uitgeschakeld en brandt er een LED. Indien de busspanning niet te hoog is, wordt er gecontroleerd of de minimale condensatorspanning door het ontladen tijdens de buckmode nog niet bereikt is. Mocht de minimale waarde bereikt zijn, moet er overgeschakeld worden naar de sleepmode. Het is namelijk niet gewenst dat de buck converter blijft werken als de condensatorspanning lager is dan de gewenste busspanning. Als de condensatorspanning (v C ) de minimale v C nog niet bereikt heeft, mag de buckmode behouden blijven. Hierbij wordt dan het buckalgoritme berekend. Op die manier zorgt de regelkring er voor dat de juiste duty cycle berekend wordt om de busspanning op +24V te houden ADC-PAIR3 Een laatste ADC-PAIR die gebruikt wordt is ADC-PAIR3. Dit paar digitaliseert twee analoge waarden, namelijk de condensatorspanning (v C ) en de maximum gewenste condensatorspanning (V REF ) die ingesteld kan worden door middel van de regelbare weerstand. Wanneer deze interrupt wordt uitgevoerd, wordt V REF gecontroleerd. Indien een gebruiker de gewenste condensatorspanning te laag of te hoog wilt leggen, dan wordt deze begrensd op een minimum waarde van 45V of een maximum waarde die softwarematig ingesteld kan worden. Eenmaal V REF correct ingesteld is, wordt er gecontroleerd of de sleepmode actief is. Indien dit zo is, moet er gecontroleerd worden of er moet overgeschakeld worden naar boost- of buckmode. Deze beslissing wordt genomen aan de hand van de gesamplede condensatorspanning en de gewenste condensatorspanning. Indien de condensatorspanning hoger ligt dan V REF +3V dan wordt de mode gewijzigd naar de buckmode. De condensatorbank is op dat moment meer geladen dan gewenst dus moet de bank ontladen worden. Dit geval komt voor wanneer iemand een gewenste condensatorspanning instelt (V REF ) die kleiner is dan huidige condensatorspanning (v C ). Indien de condensatorspanning lager is dan V REF 3V dan wordt er overgeschakeld naar de boostmode om de condensatorbank bij te laden of om op spanning te houden. Als de spanning v C zich tussen V REF +3V en V REF 3V bevindt, dan gebeurt er niets en blijft het programma in sleepmode werken. Figuur 75: Blokschema PAIR3 Dries Vromman 82
96 4.4 Interrupt Compare Tijdens de uitvoer van het programma kan er ook een interrupt optreden van de comparator die de condensatorspanning bewaakt. Deze interrupt heeft een hogere prioriteit dan interrupts die veroorzaakt worden door de ADC s. Deze hogere prioriteit zorgt ervoor dat een interrupt die veroorzaakt wordt door een te hoge condensatorspanning onmiddellijk verwerkt wordt. Een compare interrupt plaatst, zoals alle andere interrupts, alle huidige waarden van de registers in de stack (push on stack) en cleart de interrupt vlag die gezet werd. Vervolgens wordt de LED aangestuurd, worden alle PWM kanalen uitgeschakeld en wordt ervoor gezorgd dat het relais niet meer aangestuurd wordt. Doordat het relais niet meer aangestuurd wordt, ontlaadt de condensatorbank over de voorziene ontlaadweerstand. Tenslotte worden de vorige registerwaarden teruggeplaatst (pop of stack) en wordt de interrupt beëindigd. Figuur 76: Blokschema compare interrupt Dries Vromman 83
97 4.5 Boost- en buckalgoritme in DSP Een laatste blokschema dat besproken kan worden is het boost- en buckalgoritme. Als alle voorwaarden die hierboven al beschreven werden voldaan zijn en één van deze algoritmes uitgevoerd wordt, dan pas wordt dit blokschema doorlopen. Voor het boostalgoritme moet het programma zich in de boostmode bevinden en moet er een ADC-PAIR1 interrupt zijn die de booststroom (I L,BOOST ) digitaliseert. Het boostalgoritme wordt in deze interrupt verwerkt omdat de booststroom nodig is voor de berekening ervan. Voor het buckalgoritme moet het programma zich in de buckmode bevinden en moet er een ADC-PAIR2 interrupt zijn die de busspanning (V BUS ) digitaliseert. Dit algoritme bevindt zich in deze interrupt omdat de busspanning nodig is voor de berekening ervan. Zowel het boost- als het buckalgoritme maken gebruik van DSP-instructies. Dit omdat het algoritme op deze manier zeer snel verwerkt wordt. Het resultaat van het algoritme is een berekende duty cycle. Deze berekende duty cycle wordt dan gecontroleerd: Als de berekende waarde te hoog is, wordt de duty cycle begrensd op 80%. Als de berekende waarde te klein is, wordt de duty cycle begrensd op 5% Ligt de berekende waarde tussen de 5% en 80%, dan wordt de berekende duty cycle gebruikt. Deze nieuwe Figuur 77: Blokschema algoritme duty cycle wordt dan opnieuw ingesteld in de PWM module zodat er in de volgende periode met de nieuwe duty cycle gewerkt wordt. Als laatste wordt de waarde van de duty cycle nog gedeeld door twee. Het resultaat van deze deling bepaalt dan wanneer het nieuwe event plaatsvindt van de ADC. Dit om ervoor te zorgen dat de gemiddelde waarde van de spoelstroom gesampled wordt in de volgende periode (zie figuur 24). Dries Vromman 84
98 Besluit Deze masterproef had als doelstelling een bidirectionele boost converter realiseren en die dan te koppelen aan een energievat. Op die manier ontstond een systeem dat spanningsdips kan opvangen en kan voldoen aan extra stroomvraag van de belasting. De vermogenprint Om deze opdracht te realiseren is een bidirectionele boost converter gerealiseerd die het energievat kan opladen tot 100V bij een busspanning van 24V. De spanning van de bus is hier uit praktische overwegingen 24V gekozen. Het is echter ook mogelijk een andere busspanning te kiezen. De spanning aan de hoge spanningszijde wordt momenteel beperkt tot 100V omdat de MOSFET s een maximale werkspanning van 150V hebben. In de toekomst kan dezelfde converter eventueel met MOSFET s gebouwd worden die een hogere werkspanning hebben. Hierdoor zou er merkelijk meer energie kunnen opgeslagen worden in de condensatorbank. De gerealiseerde converter heeft een rendement van 83% tijdens de boostmode en 93% tijdens de buckmode. Op de vermogenprint wordt de spoelstroom gemeten door middel van sense-weerstand. De spanning over de sense-weerstand wordt dan versterkt door middel van een current monitor. Deze monitors waren een grote zorg binnen het project. Het uitgangssignaal van de current monitor was afhankelijk van de belasting van de uitgang. Proefondervindelijk is dan de beste uitgangsweerstand bepaald waarbij er geen saturatie waarneembaar was. Bij het ontwerp van de vermogenprint, waarop de converter gebouwd is, werd rekening gehouden met een aantal ontwerpregels. Zo werd er voldoende ontkoppeling voorzien, is de afstand tussen de FET-driver en de gate van de MOSFET zo kort mogelijk gehouden om parasitaire inducties te vermijden Vervolgens is tijdens de test- en de ontwikkelingsfase van de software gebleken dat er enkele meetpinnen ontbraken om snel eenvoudige controles uit te voeren. Een les die hieruit kan getrokken worden is dat er voldoende meetpinnen moeten voorzien zijn bij het ontwerp van een dergelijk demobord. De voeding van de stuurkring wordt momenteel onttrokken aan het net. Een verbetering die in de toekomst geïmplementeerd kan worden is dat de energie voor de stuurkring onttrokken wordt aan het energievat of aan de bus. Dit zou kunnen via een DC/DC converter. Op die manier valt de externe netvoeding weg. Verder kan er in de toekomst ook een inverter gebouwd worden rond de huidige opstelling die de gelijkspanning omzet in een wisselspanning. Op die manier kan het geheel aan het net gekoppeld worden. Dries Vromman 85
99 Condensatorbank Naast de converter is er ook een energievat gebouwd. Dit energievat bestaat uit 14 elektrolytische condensatoren die parallel geschakeld zijn. Naast de 14 condensatoren op de condensatorbank, is er ook nog een condensator die op de vermogenprint geplaatst is dicht bij de converter. Alles samen heeft het energievat een capaciteit van 33mF. In de huidige opstelling wordt de condensatorbank opgeladen tot 100V en ontladen tot 30V. Op die manier kan het energievat voldoende energie voorzien om een lamp van 40W ongeveer 4 seconden te laten branden zonder enige tussenkomst van de bron. Bij het ontwerp van de condensatorbank is er uit veiligheidsoverwegingen een relais voorzien met een normaal gesloten contact en een ontlaadweerstand. Door dit mechanisme is de condensatorbank zeker uitgeschakeld als hij losgekoppeld is van de vermogenprint en kan de microcontroller de bank ook ontladen als hij een fout detecteert. Software Tot slot is er ook software ontwikkeld voor de dspic30f2020 die de gehele vermogenprint aanstuurt. De volledige code in assembler is geschreven in MPLAB IDE van Microchip. Door middel van een ICD2 programmer is de microcontroller geprogrammeerd. Voor bepaalde specifieke instructies wordt hierbij gebruik gemaakt van de DSP instructies. Met deze instructie is een snelle uitvoering van het regelalgoritme mogelijk. De software is verder zodanig opgedeeld dat er drie modes ontstaan: Boostmode: de condensatorbank wordt bijgeladen Buckmode: de condensatorbank wordt ontladen en de bus wordt van energie voorzien Sleepmode: de converter wacht tot er een toestandsverandering kan plaatsvinden Voor de boostmode en de buckmode is een regelkring geïmplementeerd die zorgt voor een constante gemiddelde spoelstroom in het geval van boostmode en een constante busspanning in buckmode. Dit wil zeggen dat er in boostmode met Average Current Mode Control (ACMC) wordt gewerkt en in buckmode met Voltage Mode Control (VMC). Bij het ontwikkelen van de code voor de microcontroller is er ook rekening gehouden met de veiligheid. Zo worden de kritische signalen elke periode gesampled en wordt de uitvoer van het programma gestopt indien één van die signalen wijst op een fout. Dries Vromman 86
100 Literatuurlijst [1] J. Picard, "High-Voltage Energy Storage: The Key to Efficient Holdup," in Power Supply Design Seminar, ed: Texas Instruments, [2] T. L. Cleveland, "Bi-directional power system for laptop computers," in Applied Power Electronics Conference and Exposition, APEC Twentieth Annual IEEE, 2005, pp Vol. 1. [3] M. K. Kazimierczuk, Pulse-width Modulated DC-DC Power Converters: WILEY, [4] A. M. McLandrich, "Sensorless Control of a Bidirectional Boost Converter for a Fuel Cell Energy Management System," Master of Engineering, Electrical and Computer Engineering, Faculty of the Virginia Polytechnic Institute and State University, Blacksburg, VA, [5] M. T. Inc., "dspic30f1010/202x - Data Sheet," ed, 2006, p [6] V. Peter, "Digital Power," Industriële wetenschappen en technologie, HOWEST, Kortrijk, [7] R. Fulchiero and M. T. Inc., "dspic30f/33f Programmer s Reference Manual," M. T. Inc., Ed., ed: Microchip Technology Inc., 2005, p [8] M. Windels. ( ), Cursus digitale techniek. Bachelor in de industriële wetenschappen: Elektronica-ICT. [9] W. Tang, et al., "Small-signal modeling of average current-mode control," in Applied Power Electronics Conference and Exposition, APEC '92. Conference Proceedings 1992., Seventh Annual, 1992, pp [10] J.-W. Shin, et al. Digital Average Current Mode Control of Boost Converter Using Diode Current Sensing Technique. 3. Available: [11] "Datasheet FDP N-Channel PowerTrench MOSFET," ed: Fairchild Semiconductor. [12] J. Ejury. (2003), How to Compare the Figure Of Merit (FOM) of MOSFETs. 5. [13] "Datasheet CURRENT SHUNT MONITOR - INA194," ed: Texas Instruments. [14] M. Windels. ( ), Cursus Vermogenelektronica 1. Bachelor in de industriële wetenschappen: Elektronica ICT-ELA. [15] Chattopadhyay, et al., "A Digital Current-Mode Control Technique for DC DC Converters," Power Electronics, IEEE Transactions on: Accepted for future publication, vol. 21, pp , [16] S. Saggini, et al., "An innovative digital control architecture for low-voltage, high-current DC- DC converters with tight voltage regulation," Power Electronics, IEEE Transactions on, vol. 19, pp , [17] G. Zhou and J. Xu, "Digital Average Current Controlled Switching DC-DC Converters With Single-Edge Modulation," Power Electronics, IEEE Transactions on: Accepted for future publication, vol. PP, pp. 1-1, [18] I. Zafrany and S. Ben-Yaakov, "A chaos model of subharmonic oscillations in current mode PWM boost converters," in Electrical and Electronics Engineers in Israel, 1995., Eighteenth Convention of, 1995, pp / /5. [19] G. Zhou, et al., "Elimination of Subharmonic Oscillation of Digital Average Current Controlled Switching DC-DC Converters," Industrial Electronics, IEEE Transaction on: Accepted for future publication, vol. PP, pp. 1-1, [20] K. Wing-Hung, "Analysis of subharmonic oscillation of fixed-frequency current-programming switch mode power converters," Circuits and Systems I: Fundamental Theory and Applications, IEEE Transactions on, vol. 45, pp , [21] T. Grote, et al., "Adaptive Digital Slope Compensation for Peak Current Mode Control," Adaptive Digital Slope Compensation for Peak Current Mode Control, p. 7, [22] K. F. Chong, et al. (2008), Digital Power Management Hardware Realization Using FPGA. 4. Dries Vromman Literatuurlijst I
101 [23] A. Prodid and D. Maksimovid, "Design of a Digital PID Regulator Based on Look-Up Tables for Control of High-Frequency DC-DC Converters," ed. Colorado: Colorado Power Electronics Center Department of Electrical and Computer Engineering University of Colorado at Boulder, p. 5. [24] A. Syed, et al. (2004), Digital PWM Controller with Feed-Forward Compensation. [25] Z. Zhao and A. Prodic. (2007), Continuous-Time Digital Controller for High-Frequency DC-DC Converters. Dries Vromman Literatuurlijst II
102 Bijlagen 1. Schema vermogenprint Dries Vromman Bijlagen I
103 Dries Vromman Bijlagen II
104 Dries Vromman Bijlagen III
105 Dries Vromman Bijlagen IV
106 2. Schema FET-Driver Dries Vromman Bijlagen V
107 3. Schema condensatorbank Dries Vromman Bijlagen VI
108 4. Analytische analyse slope compensation Eerst wordt I LS bepaald: I LS = I REF m c DT I LS0 = I REF m c D d T I LS = I LS0 I LS = m c dt Uit bovenstaande figuur is makkelijk volgend verband af te leiden tijdens het stijgen van de spoelstroom: i 0 + m 1 D d T = m 1 DT + m c dt i 0 = m 1 + m c dt Daarnaast kan een soortgelijke vergelijking opgesteld worden tijdens het dalen van de spoelstroom: m 2 1 D + d T = m 2 1 D T + i 1 + m c dt i 1 = m 2 m c dt Nu verhoudt i 1 zich tot i 0 als: i 1 i 0 = m 2 m c m 1 + m c Merk op dat het minteken voor de breukstreep er op wijst dat de zin tussen twee opeenvolgende uitwijkingen tegengesteld is. Algemeen kan voor de n de uitwijking geschreven worden: i n = m 2 m c m 1 + m c n i 0 Om nu stabiliteit te garanderen moet de uitwijking naderen naar nul indien n naar oneindig gaat: Dries Vromman Bijlagen VII
109 lim i n = lim n n m 2 m c m 1 + m c n i 0 = 0 Om aan bovenstaande te voldoen moet gelden: m 2 m c m 1 + m c < 1 m 2 m c < m 1 + m c m c > m 2 m 1 2 In regimetoestand geldt: m 1 = m 2 1 D D Dan wordt de voorwaarde voor de helling van de slope: m c > m D of m c > m 2 2 Dit zijn ook de voorwaarden die afgeleid werden in [18, 20, 21]. Dries Vromman Bijlagen VIII
110 5. MATLAB script stabiliteitscontrole function STABILITEIT_DIG_SLOPE_COMP(aantal_iteraties, R) close all; verhouding=zeros(1,aantal_iteraties+1); for n=1:1:aantal_iteraties+1 if n==1 verhouding(1,n)= 1; elseif n==2 verhouding(1,n)= 1-R; else verhouding(1,n)= verhouding(1,n-1)-r*verhouding(1,n-2); end end aslabel(1,1)= max(verhouding); aslabel(1,2)= abs(min(verhouding)); stem(verhouding,'linewidth',1); title('\delta I_n/ \Delta I_1 in functie van het aantal Cycli n'); xlabel('aantal Cycli n'); ylabel('\delta I_n/ \Delta I_1','Rotation',0); axis([0 aantal_iteraties -max(aslabel) +max(aslabel)]); Dries Vromman Bijlagen IX
111 6. Onderzoek convergentie recursieformule x n = x n 1 Rx n 2 x n x n 1 + Rx n 2 = 0 De techniek om een dergelijke recursieformule op te lossen wordt in de wiskunde ook wel het oplossen van differentievergelijkingen genoemd. Hierbij wordt gesteld dat x n = r n. r n r n 1 + Rr n 2 = 0 r n 2 r 2 r + R = 0 r n 2 = 0 r 2 r + R = 0 ar 2 + br + c = 0 D = b 2 4ac = 1 4R R 1 4 reële wortels R > 1 4 complexe wortels Reële wortels (R 1 4 ) r 1,2 = 1 ± 1 4R 2 x n = c R 2 n + c R 2 n = c 1 A n + c 2 B n Onderstaande randvoorwaarden zijn geldig: x 1 = 1 x 2 = 1 R 1 = c 1 A + c 2 B 1 R = c 1 A 2 + c 2 B 2 c 2 = 1 c 1A B 1 R B c 1 = A² AB Dries Vromman Bijlagen X
112 c 1 = R 2 1 R 1 1 4R R 1 1 4R 2 2 Dit levert na uitwerking: 1 2R + 1 4R c 1 = 1 4R + 1 4R c 2 = 1 2R + 1 4R R 1 1 4R + 1 4R R 2 Zo wordt het onderstaande bekomen: R c 2 = 2 1 4R Nu kan de volledige betrekking geschreven worden als: 1 2R + 1 4R x n = 1 4R + 1 4R R 2 n R R 1 1 4R 2 n De vraag die nu moet gesteld worden is voor welke waarden van R de reeks convergeert naar 0. Hiertoe wordt de limiet naar oneindig berekend. lim x n = lim n n 1 2R + 1 4R 1 4R + 1 4R R 2 n + lim n R 2 1 4R 1 1 4R 2 n = R R 2 < R < 2 1 4R < 1 R > 0 < R < 2 1 4R < 1 R > 0 0 < R 1 4 Dries Vromman Bijlagen XI
113 r 1,2 = Complexe wortels (R > 1 4 ) 1 ± j 4R 1 2 x n = c j 4R 1 2 n + c 2 1 j 4R 1 2 n = c 1 A n + c 2 B n In bovenstaande formule zijn er nog twee onbekenden te zien. Deze onbekenden kunnen bepaald worden aan de hand van de randvoorwaarden. x 1 = 1 x 2 = 1 R 1 = c 1 A + c 2 B 1 R = c 1 A 2 + c 2 B 2 c 2 = 1 c 1A B 1 R B c 1 = A² AB c 1 = 1 + j 4R j 4R 1 1 R j 4R 1 1 j 4R Dit levert na uitwerking: 1 2R + j 4R 1 c 1 = 1 4R + j 4R 1 c 2 = 1 2R + j 4R j 4R R + j 4R j 4R 1 2 Zo wordt het onderstaande bekomen: 1 + j 4R 1 c 2 = 2j 4R 1 Nu kan de volledige betrekking geschreven worden als: 1 2R + j 4R 1 x n = 1 4R + j 4R j 4R 1 2 n 1 + j 4R 1 + 2j 4R 1 1 j 4R 1 2 n De vraag die nu moet gesteld worden is voor welke waarden van R de reeks convergeert naar 0. Hiertoe wordt de limiet naar oneindig berekend. Dries Vromman Bijlagen XII
114 lim x 1 2R + j 4R 1 n = lim n n 1 4R + j 4R j 4R 1 2 n + lim n 1 + j 4R 1 2j 4R 1 1 j 4R 1 2 n = j 4R j 4R 1 2 < R 1 < 2 < R 1 < < R < 1 Algemeen kan dus besloten worden dat R kleiner dan één moet zijn om de reeks te doen convergeren. Dries Vromman Bijlagen XIII
115 7. Blokschema van de dspic30f2020 Dries Vromman Bijlagen XIV
116 8. Software.global reset.global ADCInterrupt.global CMP2Interrupt.global CMP3Interrupt ;************************************************************************ ;INITIALISATIE STACKPOINTER ;************************************************************************.equiv STACK_BASE, 0x0950 ;stack begin.equiv STACK_LIM, 0x09FE ;stack einde ;************************************************************************ ;INITIALISATIE RAM-GEHEUGEN ;************************************************************************.equiv XRAM_BEGIN, 0x0850 ;XRAM begin.equiv YRAM_BEGIN, 0x0900 ;YRAM begin.equiv YRAM_EINDE, 0x09FE ;YRAM einde ;************************************************************************ ;RAM-GEHEUGEN RESERVEREN VOOR WAARDEN ;************************************************************************.section a,bss,address(xram_begin) ;plaats maken in XRAM-geheugen voor waarden D_n_1:.space 2 E_n:.space 2 E_n_1:.space 2 E_n_2:.space 2 V_OUT_REF:.space 2.section b,bss,address(yram_begin) MODE_SELECTED:.space 2 ADC_I_BOOST:.space 2 ADC_I_BUCK:.space 2 ADC_V_IN:.space 2 ADC_V_OUT:.space 2 ADC_V_OUT_REF:.space 2 BOOST_COEF_n:.space 2 BOOST_COEF_n_1:.space 2 BOOST_COEF_n_2:.space 2 BUCK_COEF_n:.space 2 BUCK_COEF_n_1:.space 2 BUCK_COEF_n_2:.space 2 ;plaats maken in XRAM-geheugen voor waarden.text ;************************************************************************ ;RESET, code starten ;************************************************************************ reset: nop ; ;Stackpointer instellen ; mov #STACK_BASE, w15 ;start stackpointer instellen mov #STACK_LIM, w0 mov w0, SPLIM ;limiet stackpointer instellen nop ; ;DSP instellen ; bset CORCON, #0 ;Integer multiplier mode select bset CORCON, #4 ;39-bit saturation accumulator Dries Vromman Bijlagen XV
117 ; ;RAM wissen + Accumulators ; mov #XRAM_BEGIN, w0 repeat(#yram_einde-#xram_begin)/2 clr [w0++] clr ACCA clr ACCB ;herhalen voor de totale RAM: (FF + 1 keer) ; ;ADC Initialiseren ; mov #handle(adc_table),w1 mov w1, ADBASE ;het basisadres wanneer er een ADC-interrupt is mov #0xFF00, w0 mov w0, ADPCFG ;0-7 poorten zijn analoge inputs mov #0x8383, w0 ;Interrupt aanvraag, PWM special event trigger mov w0, ADCPC0 mov w0, ADCPC1 clr ADSTAT ;geen conversies voltooid bclr IFS0, #11 ;clear wachtende ADC IRQs bset IEC0, #11 ;enabled interrupt request bset IPC2, #14 ;ADC prioriteit bset IPC2, #13 bclr IPC2, #12 mov #0x80A3, w0 ;ADC enable, interrupt na eerste conversie, shared mov w0, ADCON ;S&H start bij 2de conversie, Fadc/10 = 24MHz ; ;PWM Initialiseren ; equiv MIN_TRG_VAL, 0x0008 ;minimum waarde wanneer er een event optreedt mov #PWM_PERIODE, w0 mov w0, PTPER ;periode instellen mov #DC_MIN_BOOST, w0 ;dutycycle instellen call START_DUTYCYCLE setm PDC1 ;individuele Dutycycles van de PWM instellen clr PDC2 clr PDC3 mov #MIN_TRG_VAL, w0 mov w0, SEVTCMP ;waarde wanneer event moet optreden clr PHASE1 ;fases van de individuele PWMs op nul plaatsen clr PHASE2 clr PHASE3 mov #0x0080, w0 ;individuele DC, dead-time disabled mov w0, PWMCON1 mov w0, PWMCON2 mov w0, PWMCON3 mov #0x0003, w0 ;current-limit disabled mov w0, FCLCON1 ;fault current-limit disabled mov w0, FCLCON2 mov w0, FCLCON3 mov #0x8000, w0 ;PWMH actief, PWMH hoog actief mov w0, IOCON1 mov w0, IOCON2 mov w0, IOCON3 Dries Vromman Bijlagen XVI
118 mov #0x8800, w0 ;PWM enable, Special event interrupt enable mov w0, PTCON ; ;output compare Initialiseren ; equiv COMPARE_REF_V3,0x0286 ;Maximumspanning van 110Volt aan de condensators mov #COMPARE_REF_V3,w0 mov w0, CMPDAC3 mov #0x8041, w0 ;enabled output compare, B-pin input mov w0, CMPCON3 ;High range (AVdd/2) bclr IFS1, #15 ;clear interruptvlag status bset IEC1, #15 ;set interrupt enable control ; ;overige instellingen ; ;###starten met de boostmode### clr MODE_SELECTED ;MODE1(boost)=0x0000, MODE2(buck)=0x0001 ;MODE3(sleep)=0x0002 ;###periode,minimum en maximum dutycycles###.equiv PWM_PERIODE, 0x30DC ;Periode (0x30DC=50kHz).equiv DC_MIN, #PWM_PERIODE/100*5 ;Minimum dutycycle voor regelalgoritme.equiv DC_MAX, #PWM_PERIODE/100*80 ;Maximale dutycycle voor regelalgoritme.equiv DC_MIN_BOOST, #PWM_PERIODE/100*5 ;Minimale start dutycycle van boost.equiv DC_MIN_BUCK, #PWM_PERIODE/100*25 ;Minimale start dutycycle van buck ;###Coefficient voor boostmode-algoritme###.equiv coefficienta, 0x0002 ;coefficient maal 64.equiv coefficientb, 0x0001 ;vb: 1/32 = 64/32 = 2 = 0x0002.equiv coefficientc, 0x0000 ;###Coefficienten voor buckmode-algoritme###.equiv coefficienta2, 0x0008 ;coefficient maal 64.equiv coefficientb2, 0x0004 ;vb: 1/32 = 64/32 = 2 = 0x0002.equiv coefficientc2, 0x0008 ;###referentiestroom of gemiddelde laadstroom voor boostmode###.equiv I_REF, 0x0099 ;0x0099 = 1A (max 0x03FF = 6.67A) ;###ingangsreferentiespanning###.equiv V_IN_REF, 0x0212 ;0x0212 = 24V (max 0x03FF = 46V) ;###minimum ingangsspanning om over te schakelen naar buckmode###.equiv V_IN_MIN, 0x01E6 ;0x01E6 = 22V (max 0x03FF = 46V) ;###maximum spanning in de condensatorbank###.equiv V_OUT_MAX, 0x024B ;0x024B = 100V (max 0x03FF = 175V) ;###minimum spanning in de condensatorbank###.equiv V_OUT_MIN, 0x00B0 ;0x00B0=30V (max 0x03FF = 175V) ;###plaatsen van coefficienten in RAM-geheugen### mov #V_OUT_MAX, w0 mov w0, V_OUT_REF mov #coefficienta, w0 mov w0, BOOST_COEF_n mov #coefficientb, w0 mov w0, BOOST_COEF_n_1 mov #coefficientc, w0 mov w0, BOOST_COEF_n_2 mov #coefficienta2,w0 mov w0, BUCK_COEF_n mov #coefficientb2,w0 mov w0, BUCK_COEF_n_1 Dries Vromman Bijlagen XVII
119 mov #coefficientc2,w0 mov w0, BUCK_COEF_n_2 ; ;HOOFDPROGRAMMA ; bclr TRISA, #9 ;output-pin instellen voor error-lampje bclr TRISE, #6 ;output-pin instellen voor relaisaansturing bset TRISE, #7 ;input voor C-bankherkenning bset PORTE, #6 ;relais aansturen nop btss PORTE, #7 ;controle of condensatorbank aangesloten is bra GEEN_CONDENSATORBANK MODE1: bclr PTCON, #15 bset PWMCON1, #8 bset PWMCON2, #8 bclr PWMCON3, #8 clr PDC3 mov #DC_MIN_BOOST, w0 call START_DUTYCYCLE bset PTCON, #15 MODE1_loop: mov #0x0000, w0 mov MODE_SELECTED, w1 cpsne w0, w1 bra MODE1_loop bra MODE_WIJZIGEN MODE2: bclr PTCON, #15 bclr PWMCON1, #8 bclr PWMCON2, #8 bset PWMCON3, #8 setm PDC1 clr PDC2 mov #DC_MIN_BUCK, w0 call START_DUTYCYCLE bset PTCON, #15 MODE2_loop: mov #0x0001, w0 mov MODE_SELECTED, w1 cpsne w0, w1 bra MODE2_loop bra MODE_WIJZIGEN MODE3: bclr PTCON, #15 bclr PWMCON1, #8 bclr PWMCON2, #8 bclr PWMCON3, #8 clr PDC1 clr PDC2 clr PDC3 bset PTCON, #15 MODE3_loop: mov #0x0002, w0 mov MODE_SELECTED, w1 cpsne w0, w1 bra MODE3_loop bra MODE_WIJZIGEN MODE_WIJZIGEN: mov MODE_SELECTED, w1 clr w0 cpsne w1, w0 bra MODE1 inc w0, w0 cpsne w1, w0 bra MODE2 mov #0x0002, w0 ;BOOSTMODE instellen ;blijft in de loop als het boostmode is ;BUCKMODE instellen ;blijft in de loop als het buckmode is ;SLEEPMODE instellen ;blijft in de loop als het boostmode is ;Controleer welke mode het is Dries Vromman Bijlagen XVIII
120 mov w0, MODE_SELECTED bra MODE3 ;************************************************************************ ;CMP3 interrupt (OUTPUT-comparator) ;************************************************************************ CMP3Interrupt: push.s bclr IFS1, #15 ;clear interruptvlag bset PORTA, #9 ;PWM uitschakelen en led laten branden bclr PTCON, #15 ;relais sluiten zodat bank ontlaadt bclr PORTE, #6 pop.s retfie ;************************************************************************ ;ADC interrupt ;************************************************************************ ADCInterrupt: push.s bclr.b IFS0+1, #3 ;clear interruptvlag mov ADBASE, w0 ;ga naar ADC_TABLE goto w0 ADC_TABLE: bclr ADSTAT, #0 bra process_adc_pair0 bclr ADSTAT, #1 bra process_adc_pair1 bclr ADSTAT, #2 bra process_adc_pair2 bclr ADSTAT, #3 bra process_adc_pair3 bclr ADSTAT, #4 bra process_adc_pair4 bclr ADSTAT, #5 bra process_adc_pair5 ; ;ADC interrupt AN0-AN1 (AN0=buckstroom [IL,BUCK]) ; process_adc_pair0: nop mov ADCBUF0, w0 mov w0, ADC_I_BUCK ;plaats gesamplede buckstroom in RAM-geheugen mov #0x0001, w1 ;controleer op buckmode mov MODE_SELECTED, w2 ;geen buckmode => einde ADC-afhandeling cpseq w1, w2 bra ADC_EXIT mov #0x03FF, w1 cpsgt w1, w0 ;controleert op maximum buckstroom (begrenzer) bra STOP_PWM ;maximum buckstroom bereikt => stop de PWM bra ADC_EXIT ; ;ADC interrupt AN2-AN3 (AN2=booststroom [IL,BOOST]) ; process_adc_pair1: nop mov ADCBUF2, w0 mov w0, ADC_I_BOOST ;plaats gesamplede booststroom in RAM-geheugen clr w0 ;controleer op boostmode mov MODE_SELECTED, w1 ;geen boostmode => einde ADC-afhandeling cpseq w0, w1 bra ADC_EXIT Dries Vromman Bijlagen XIX
121 mov ADC_I_BOOST, w0 ;controleert op maximum booststroom (begrenzer) mov #0x03FF, w1 ;maximum booststroom bereikt => stop de PWM cpsgt w1, w0 bra STOP_PWM mov ADC_V_OUT, w0 ;controleert op condensatorspanning (Vc) mov V_OUT_REF, w1 ;Vc al de gewenste spanning => ga naar sleepmode cpsgt w1, w0 bra WIJZIG_MODE_NAAR_MODE3 mov ADC_V_IN, w0 ;controleert op ingangsspanning (Vbus) mov #0x00AC, w1 ;Vbus < 5V => ga naar sleepmode cpslt w1, w0 bra WIJZIG_MODE_NAAR_MODE3 ;alle voorwaarden voldaan => doe boost algoritme bra BOOST_ALGORITME ; ;ADC interrupt AN4-AN5 (AN4=ingangsspanning [Vbus]) ; process_adc_pair2: nop mov ADCBUF4, w0 mov w0, ADC_V_IN ;plaats gesamplede ingangsspanning in RAM-geheugen mov #0x0002, w0 ;controleer op sleepmode mov MODE_SELECTED, w1 ;sleepmode => controle om naar buckmode te gaan cpsne w0, w1 bra CONTROLE_VOOR_BUCK_MODE mov #0x0001, w0 ;controleer op buckmode mov MODE_SELECTED, w1 ;geen buckmode => einde ADC-afhandeling cpseq w0, w1 bra ADC_EXIT mov ADC_V_IN, w0 ;controleer op maximum Vbus (begrenzer) mov #0x03FF, w1 ;maximum ingangsspanning bereikt => stop de PWM cpsgt w1, w0 bra STOP_PWM mov ADC_V_OUT, w0 ;controleer op condensatorspanning (Vc) mov #V_OUT_MIN, w1 ;Vc minimumspanning bereikt => ga naar sleepmode cpslt w1, w0 bra WIJZIG_MODE_NAAR_MODE3 bra BUCK_ALGORITME ;alle voorwaarden voldaan => doe buck algoritme CONTROLE_VOOR_BUCK_MODE: mov ADC_V_IN, w0 ;controleer op ingangsspanning (Vbus) mov #V_IN_MIN, w1 ;Vbus minimumspanning bereikt => ga naar buckmode cpsgt w1, w0 ;zo niet => einde ADC-afhandeling bra ADC_EXIT bra WIJZIG_MODE_NAAR_MODE2 ; ;ADC interrupt AN6-AN7 (AN6=condensatorspanning [Vc],AN7=regelbare weerstand [Vc,ref]) ; process_adc_pair3: nop mov ADCBUF6, w0 mov w0, ADC_V_OUT ;plaats gesamplede Vc in RAM-geheugen mov ADCBUF7, w0 ;plaats gesamplede gewenste Vc in RAM-geheugen mov w0, ADC_V_OUT_REF mov #0x0002, w2 ;herschaling om gewenste Vc in te stellen repeat #17 div.s w0, w2 mov #0x0108, w1 ;minimum regelbare Vc is 45V (of 0x0108) add w0, w1, w0 Dries Vromman Bijlagen XX
122 cpslt w1, w0 ;gesamplede gewenste Vc te klein => Vc = 45V bra V_OUT_BEGRENZING mov #V_OUT_MAX, w1 cpsgt w1, w0 ;gesamplede gewenste Vc te hoog => Vc = max Vc bra V_OUT_BEGRENZING mov w0, V_OUT_REF bra SPANNINGSCONTROLE ;aan voorwaarden voldaan => Vc controle V_OUT_BEGRENZING: mov w1, V_OUT_REF bra SPANNINGSCONTROLE SPANNINGSCONTROLE: mov #0x0002, w0 ;controleer op sleepmode mov MODE_SELECTED, w1 ;geen sleepmode => einde ADC-afhandeling cpseq w0, w1 bra ADC_EXIT mov V_OUT_REF, w0 ;bereken Vc,ref+3V mov #0x0011, w1 add w0, w1, w0 mov ADC_V_OUT, w1 cpsgt w1, w0 ;controleer Vc met Vc,ref+3V bra SPANNINGSCONTROLE2 ;Vc > Vc,ref+3V => ga naar buckmode bra WIJZIG_MODE_NAAR_MODE2 SPANNINGSCONTROLE2: mov V_OUT_REF, w0 ;bereken Vc,ref-3V mov #0x0011, w1 sub w0, w1, w0 mov ADC_V_OUT, w1 cpslt w1, w0 ;controleer Vc met Vc,ref-3V bra ADC_EXIT ;Vc < Vc,ref-3V => ga naar boostmode bra WIJZIG_MODE_NAAR_MODE1 ;zo niet => einde ADC-afhandeling ; ;ADC interrupt AN8-AN9 ; process_adc_pair4: nop bra ADC_EXIT ; ;ADC interrupt AN10-AN11 ; process_adc_pair5: nop bra ADC_EXIT ;************************************************************************ ;gebruikte subroutines ;************************************************************************ GEEN_CONDENSATORBANK: bset PORTA, #9 ;als geen bank is aangesloten, dan brand de LED bclr PTCON, #15 ;en schakelen we de PWM uit bra GEEN_CONDENSATORBANK START_DUTYCYCLE: mov w0, MDC ;bij een gestarte boost- of buckmode stellen we mov w0, D_n_1 ;een minimale start dutycycle in. clr E_n ;alle fouten worden verwijderd clr E_n_1 clr E_n_2 return WIJZIG_MODE_NAAR_MODE1: mov #0x0000, w0 mov w0, MODE_SELECTED bra ADC_EXIT ;wijzig de mode naar de boostmode Dries Vromman Bijlagen XXI
123 WIJZIG_MODE_NAAR_MODE2: mov #0x0001, w0 mov w0, MODE_SELECTED bra ADC_EXIT WIJZIG_MODE_NAAR_MODE3: mov #0x0002, w0 mov w0, MODE_SELECTED bra ADC_EXIT ;wijzig de mode naar de buckmode ;wijzig de mode naar de sleepmode BOOST_ALGORITME: call WAARDES_VERSCHUIVEN ;fout- en dutycyclewaarden worden 1 periode mov ADC_I_BOOST, w0 ;doorgeschoven mov #I_REF, w1 sub w1, w0, w0 ;bereken gewenste IL,boost - gesamplede IL,boost mov w0, E_n ;resultaat is fout E_n mov D_n_1, w0 ;bereken regelalgoritme mov #E_n, w8 mov #BOOST_COEF_n, w10 clr A, [w8]+=2, w6, [w10]+=2, w7 ;clear accumulator (=nul) mac w6*w7, A, [w8]+=2, w6, [w10]+=2, w7 ;+BOOST_COEF_n * E_n mac w6*w7, A, [w8]+=2, w6, [w10]+=2, w7 ;+BOOST_COEF_n_1 * E_n_1 mac w6*w7, A, [w8]+=2, w6, [w10]+=2, w7 ;+BOOST_COEF_n_2 * E_n_2 sftac A,#-9 ;vermenigvuldigd met 1/64 add w0, A ;+D_n_1 (vorige dutycycle) mov ACCAH, w0 ;Plaats de nieuwe dutycycle in w0 btst ACCAU, #7 ;controle op negatieve dutycycle bra z, Dn ;negatieve DC => DC = minimale DC mov #DC_MIN, w1 bra DC_GRENSWAARDE BUCK_ALGORITME: call WAARDES_VERSCHUIVEN ;fout- en dutycyclewaarden worden 1 periode mov ADC_V_IN, w0 ;doorgeschoven mov #V_IN_REF, w1 sub w1, w0, w0 ;bereken gewenste Vbus - gesamplede Vbus mov w0, E_n ;resultaat is fout E_n mov D_n_1, w0 ;bereken regelalgoritme mov #E_n, w8 mov #BUCK_COEF_n, w10 clr A, [w8]+=2, w6, [w10]+=2, w7 ;clear accumulator (=nul) mac w6*w7, A, [w8]+=2, w6, [w10]+=2, w7 ;+BUCK_COEF_n * E_n msc w6*w7, A, [w8]+=2, w6, [w10]+=2, w7 ;-BUCK_COEF_n_1 * E_n_1 mac w6*w7, A, [w8]+=2, w6, [w10]+=2, w7 ;+BUCK_COEF_n_2 * E_n_2 sftac A,#-9 ;vermenigvuldigen met 1/64 add w0, A ;+D_n_1 (vorige dutycycle) mov ACCAH, w0 ;Plaats de nieuwe dutycycle in w0 btst ACCAU, #7 ;controle op negatieve dutycycle bra z, Dn ;negatieve DC => DC = minimale DC mov #DC_MIN, w1 bra DC_GRENSWAARDE WAARDES_VERSCHUIVEN: ;fout- en dutycyclewaarden worden 1 periode mov MDC, w1 ;doorgeschoven mov w1, D_n_1 mov E_n_1, w1 mov w1, E_n_2 mov E_n, w1 mov w1, E_n_1 return Dn: mov #DC_MIN, w1 cpslt w1, w0 ;controleer berekende dutycycle bra DC_GRENSWAARDE ;als Dn<5% => MDC=5% mov #DC_MAX, w1 Dries Vromman Bijlagen XXII
124 cpsgt w1, w0 ;controleer berekende dutycycle bra DC_GRENSWAARDE ;als Dn>80% => MDC=80% mov w0, MDC mov #0x0002, w2 ;dutycycle delen door 2 om gemiddelde waarde repeat #17 ;te bekomen div.u w0, w2 mov w0, SEVTCMP bra ADC_EXIT DC_GRENSWAARDE: mov w1, MDC ;dutycycle delen door 2 om gemiddelde waarde mov #0x0002, w2 ;te bekomen repeat #17 div.u w1, w2 mov w0, SEVTCMP clr E_n_2 ;clear alle fouten clr E_n_1 clr E_n bra ADC_EXIT STOP_PWM: bclr PTCON, #15 ;stop de PWM en laat de led branden bset PORTA, #9 bra ADC_EXIT ADC_EXIT: pop.s retfie ;return from interrupt.end Dries Vromman Bijlagen XXIII
Laboratory session 3 Power Electronics
Laboratory session 3 Power Electronics Dorien Jannis & Christophe Mestdag November 29, 2007 1 Excercise PSpice: Buck convertor QUESTION 1: Study the schematic of the buck converter. What s the purpose
Inleiding elektronica Presentatie 1
Inleiding elektronica Presentatie 1 2 Versie: 18 augustus 2014 Inleiding Elektronica Presentatie 1 16-9-2013 Praktische Elektronica, talk of the day! 2 1 Doel van deze module Herkennen van de algemene
vanwege het hoge rendement weinig warmte-ontwikkeling vanwege de steile schakelpulsen genereert de schakeling sterke hf-stoorsignalen
SCHAKELENDE VOEDING INLEIDING Bij de examenstof over voedingen is sinds 2007 behalve de stof in hoofdstuk 3.3. van het cursusboek ook kennis van de werking van schakelende voedingen opgenomen. De voordelen
Hydrofoon versterker. Een versterker voor de Aquarian H2a. Betreft: Hydrofoon versterker. Door: David Boelee,
Hydrofoon versterker Een versterker voor de Aquarian H2a Betreft: Door: Opdrachtgever: Hydrofoon versterker David Boelee, [email protected] Hogeschool Rotterdam, Kenniscentrum Duurzame Havenstad Kees
Inductiemeter via de parallelle poort
K.T.A.1-Gent "De Lindenlei" Lindenlei 38 9000 Gent Tel: 09.225.33.04 en 09.225.43.42 Fax: 09.225.52.88 Geïntegreerde proef Inductiemeter via de parallelle poort Naam: Michaël Clinckspoor Richting: Industriële
Digitale systemen. Hoofdstuk 6. 6.1 De digitale regelaar
Hoofdstuk 6 Digitale systemen Doelstellingen 1. Weten dat digitale systemen andere stabiliteitsvoorwaarden hebben In deze tijd van digitalisatie is het gebruik van computers in regelkringen alom.denk maar
Fig. 5.1: Blokschema van de 555
5 Timer IC 555 In de vorige drie hoofdstukken hebben we respectievelijk de Schmitt-trigger, de monostabiele en de astabiele multivibrator bestudeerd. Voor ieder van deze schakelingen bestaan in de verschillende
Module 1: werken met OPAMPS. Project 1 : Elementaire lineaire OPAMP schakelingen.
Vak: Labo elektro Pagina 1 / / Module 1: werken met OPAMPS. Project 1 : Elementaire lineaire OPAMP schakelingen. 1. Opgaven. - Zoek de bijzonderste principe schema s en datagegevens. Meet de opstellingen
Hoofdstuk 4: De gelijkrichting
Hoofdstuk 4: De gelijkrichting 4.1. Inleiding: De gelijkrichting is een toepassing op het gebruik van de diode. Elektronische en elektrische apparatuur maken gebruik van de netspanning. Niettegenstaande
Onderzoek werking T-verter.
Onderzoek werking T-verter. De Beer Gino Page 1 02/10/2007 Inhoudstabel: 1. Doelstellingen. 2. Benodigd materiaal. 3. Bespreking van de frequentieregelaar. 4. Instellingen en gebruik van de frequentieregelaar.
Klasse B output buffer voor een Flat Panel Display Kolom aansturing
Gevalstudie 1 Klasse B output buffer voor een Flat Panel Display Kolom aansturing IEEE Journal of Solid-state circuits, Vol 34, No 1, Januari 1999, pp 116-119 Jan Genoe KHLim Flat Panel display kolom driver
Tinyserir-RC5. Datasheet. Tinyserir-RC5 Page: 1 of 8
9600 bps RS-232 interface voor uitlezing van Ontvangen RC5 codes Led aanduiding bij ontvangst van Infrarood pulsen Led aanduiding goede werking Interne firmware Inwendige oscillator Weinig externe componenten
Handleiding software USB PIC DEV. BOARD
Handleiding software USB PIC DEV. BOARD V2.0 M.F. van Lieshout & J.G.W. Carpaij 21-03-2006 Handleiding software USB PIC DEV. BOARD Algemene informatie Hier volgt eerst wat algemene informatie over het
Inleiding Vermogenversterkers en de Klasse A versterker
Inleiding Vermogenversterkers en de Klasse A versterker Jan Genoe KHLim Universitaire Campus, Gebouw B 3590 Diepenbeek Belgium http://www.khlim.be/~jgenoe In dit hoofdstuk situeren we eerste in het algemeen
Overgangsverschijnselen
Hoofdstuk 5 Overgangsverschijnselen Doelstellingen 1. Overgangsverschijnselen van RC en RL ketens kunnen uitleggen waarbij de wiskundige afleiding van ondergeschikt belang is Als we een condensator of
Storing indicatie van LED binnen/buiten en eerste oordeel
indicatie van binnen/buiten en eerste oordeel Bestemd voor wand model 9K en 12K Indicatie binnendeel (, 0.5s AAN, No. 1 2 3 4 5 6 7 8 9 Hoge druk Invries Systeem geblokkeerd of koelmiddel lekkage Hoge
Zelf een hoogspanningsgenerator (9 kv gelijkspanning) bouwen
Zelf een hoogspanningsgenerator (9 kv gelijkspanning) bouwen Inhoud De schakeling Een blokspanning van 15 V opwekken De wisselspanning omhoog transformeren Analyse van de maximale stroom door de primaire
AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT. Geschreven door: Tom Vocke
AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT Geschreven door: Tom Vocke Datum: 28-09-2010 Inleiding: Dit document bevat alle hardware informatie betreffende de AVR-Doper mini. Het eerste deel zal zich
Departement industriële wetenschappen en technologie
Departement industriële wetenschappen en technologie Universitaire Campus, gebouw B B-3590 DIEPENBEEK Tel.: 011-23 07 90 Fax: 011-23 07 99 Aansturen en testen van een hybride infrarood beeldopnemer Abstract
ES1 Project 1: Microcontrollers
ES1 Project 1: Microcontrollers Les 5: Timers/counters & Interrupts Timers/counters Hardware timers/counters worden in microcontrollers gebruikt om onafhankelijk van de CPU te tellen. Hierdoor kunnen andere
GEÏNTEGREERDE PROEF. VTI Sint-Laurentius. Pakketweegschaal. Industriële informatie & communicatietechnologie SCHOOLJAAR 2010-2011.
VTI Sint-Laurentius De school voor Wetenschap, Techniek en Technologie Pr. Thuysbaertlaan 1 9160 Lokeren www.vti-lokeren.be [email protected] GEÏNTEGREERDE PROEF Pakketweegschaal Industriële informatie
Herken de kwaliteit van Leddrivers. Rob Snoek - R&D manager Lumotech B.V. - Heerhugowaard
Herken de kwaliteit van Leddrivers Rob Snoek - R&D manager Lumotech B.V. - Heerhugowaard Factoren waar de technologie van drivers bepalend zijn Veiligheid Compliance Voeding en bekabeling Low inrush High
De Arduino-microcontroller in de motorvoertuigentechniek (4)
De Arduino-microcontroller in de motorvoertuigentechniek () E. Gernaat (ISBN 978-90-7930--6) De Atmel ATmega38/P microcontroller. Uitvoering De ATmega38 is een microprocessor van de Amerikaanse firma ATMEL
De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4)
De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4) Timloto o.s. / E. Gernaat / ISBN 978-90-79302-06-2 Op dit werk is de Creative Commens Licentie van toepassing. Uitgave: september 2012
De Arduino-microcontroller in de motorvoertuigentechniek (3)
De Arduino-microcontroller in de motorvoertuigentechniek (3) E. Gernaat (ISBN 978-90-79302-11-6) 1 In- en uitgangssignalen van microprocessoren 1.1 Overzicht signalen Informatie van en naar een microprocessor
LEGO Energiemeter. Hoe te beginnen
LEGO Energiemeter Hoe te beginnen De Energy Meter bestaat uit twee delen: het LEGO Energy Display en de LEGO Energy Storage. De Energy Storage past op de onderkant van het Energy Display. Schuif de Energy
Klasse B versterkers
Klasse B versterkers Jan Genoe KHLim Universitaire Campus, Gebouw B 359 Diepenbeek Belgium http://www.khlim.be/~jgenoe In dit hoofdstuk bespreken we de Klasse B en de klasse G versterker. Deze versterker
De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (3)
De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (3) Timloto o.s. / E. Gernaat / ISBN 978-90-79302-06-2 Op dit werk is de Creative Commens Licentie van toepassing. Uitgave: september 2012
Logo quiz Project Inleiding op de Logo!
Logo quiz Project Inleiding op de Logo! Project ontwikkelt door: Tim van Schuylenburg Ben van Kruisbergen Inhoudsopgave Projectbeschrijving en Planning 2 Blz. De benodigdheden en aansluitschema 4-8 Complete
Stappenmotor Interface. Controller
Besturing In deze moderne tijd zal de besturing geheel elektrisch worden uitgevoerd. De bedoeling is dat er voor ieder afgaand spoor een wisseladres gebruikt worden. Dit betekend dan een reeks van 24 aansluitende
Condensator. Het hellingsgetal a is constant. Dit hellingsgetal noemen we de capaciteit van de condensator C. Er geldt dus: C = Q U
Inhoud Condensator... 2 Het laden van een condensator... 3 Het ontladen van een condensator... 5 Opgaven... 6 Opgave: Alarminstallatie... 6 Opgave: Gelijkrichtschakeling... 6 Opgave: Boormachine... 7 1/7
Condensator. Het hellingsgetal a is constant. Dit hellingsgetal noemen we de capaciteit van de condensator C. Er geldt dus: C = Q U
Inhoud Condensator... 2 Het laden van een condensator... 3 Het ontladen van een condensator... 6 Het gedrag van een condensator in een schakeling... 7 Opgaven... 8 Opgave: Alarminstallatie... 8 Opgave:
BEVEILIGING VAN HET STUURSTROOMCIRCUIT
BEVEILIGING VAN HET STUURSTROOMCIRCUIT Beveiliging van de stuurstroomtransformator: EN60204-1 stelt: Transformatoren moeten beveiligd zijn tegen overbelasting in overeenstemming met de het datasheet van
Wat is Arduino? Arduino = microprocessor (Atmel)
Intro tot Arduino Wat is Arduino? Volgens de website: Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers,
EM2 Microcontroller Project. LED cube
EM2 Microcontroller Project LED cube Door: Dennis Koster Klas: Tc202 Studentnummer: 536496 Docent: Jan Derriks & Ruud Slokker Versie 1.0 (12-1-2009) Inhoudsopgave Inleiding 3 De onderdelen 4 t/ m 6 Het
Basisschakelingen en poorten in de CMOS technologie
asisschakelingen en poorten in de CMOS technologie Jan Genoe KHLim Universitaire Campus, Gebouw -359 Diepenbeek www.khlim.be/~jgenoe In dit hoofdstuk bespreken we de basisschakelingen en poorten in de
Vermogenelectronica labo 2: Gelijkrichters
Vermogenelectronica labo : Gelijkrichters An Fotij, Christophe Mestdag, Koen Bogaerts November 9, 007 1 Diodes 1.1 Solderen van gelijkrichter Hierbij bestond de opdracht om vanuit een aantal compomenten
Hoofdstuk 4: Gestabiliseerde voedingen
Elektronica: Tweede kandidatuur industrieel ingenieur 1 Hoofdstuk 4: Gestabiliseerde voedingen 1: Inleiding Een spanningsstabilisator (= gestabiliseerde voeding) is een elektronische schakeling welke een
LocoServo Handleiding
LocoServo Handleiding HDM12 Disclaimer van Aansprakelijkheid: Het gebruik van alle items die kunnen worden gekocht en alle installatie-instructies die kunnen worden gevonden op deze site is op eigen risico.
Inhoudsopgave Voeding met 78xx en 79xx
Inhoudsopgave Inhoudsopgave...2 Inleiding...3 Werking...3 Berekeningen...3 Voorschakelweerstand...3 Schema...3 Componentenlijst...4 Printplaat...4 Printplaat...4 Componentenopstelling...4 Componentenzijde...4
Gestabiliseerde netvoeding
Gestabiliseerde netvoeding Een gestabiliseerde voeding zet de netspanning van 23 volt wisselspanning om in een stabiele gelijkspanning. Dit gebeurt door middel van een handvol relatief eenvoudige elementen
43 Keerlusprint. 43.1 Werking. informatieblad 43 keerlusprint KLS versie 2.0
43 Keerlusprint Beperking aansprakelijkheid De aansprakelijkheid van het bestuur van de HCCM is beperkt als omschreven in informatieblad 1 Bij treingestuurde (digitale) systemen wordt de hele baan door
LocoServo Handleiding
LocoServo Handleiding HDM12 Disclaimer van Aansprakelijkheid: Het gebruik van alle items die kunnen worden gekocht en alle installatie-instructies die kunnen worden gevonden op deze site is op eigen risico.
Arduino CURSUS. door Willy - 09-juni-2017
Arduino CURSUS door Willy - [email protected], 09-juni-2017 OVERZICHT (1) OVERZICHT (2) Historiek Microcontroller (1) Microcontroller (2) Specificaties - Arduino UNO bord Specificaties - ATmega328P chip LET
Storing indicatie van LED binnen/buiten en eerste oordeel
indicatie van binnen/buiten en eerste oordeel Bestemd voor wand model 18K en 24K (, 0.5s No. 1 2 3 4 5 6 7 8 Hoge druk Invries Hoge persgas Overstroom Communicatie Hoge weerstand Interne ventilator motor
spanning. * Deel het verschil daarvan en deel dat getal door de gewenste stroom om de weerstandswaarde te krijgen.
Weerstand stroombeperking voor LED s Om de stroom door een LED te beperken wordt een weerstand toegepast. Maar hoe hoog moet de waarde van zo n weerstand eigenlijk zijn? In de dagelijkse praktijk wordt
GEINTEGREERDE PROEF DE COMPUTER ALS TV AFSTANDSBEDIENING
7 IC De Computer als TV afstandsbediening - 1 - KTA-Gent GEINTEGREERDE PROEF DE COMPUTER ALS TV AFSTANDSBEDIENING Arnoud De Kemel Industriële Computertechnieken Schooljaar 2004-2005 7 IC De Computer als
Een intelligent DMX netwerk
WORKSHOP STEPP Een intelligent DMX netwerk WORKSHOP STEPP Wat is DMX? Een intelligent DMX netwerk Demo opstelling Probleem oplossing Wat is DMX? Hoe is het DMX signaal ontstaan DMX in de praktijk Hoe
In- en uitgangssignalen van microprocessoren
In- en uitgangssignalen van microprocessoren E. Gernaat 1 Overzicht signalen Informatie van en naar een microprocessor kan parallel of seriëel gebeuren. Bij parallel-overdracht zal elke lijn (draad) een
Terugmeld module in combinatie met andere merken 13. Aansluiten van de meldingangen 14. In gebruik nemen en testen van de terugmeld module 16
06/2009 Etecmo Alle rechten voorbehouden. Niets uit deze documentatie mag worden vermenigvuldigd opgeslagen en/of openbaar gemaakt, zonder voorafgaande schriftelijke toestemming van Etecmo. Technische
Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368
Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368 Handleiding bij het gebruik van een microcontroller in het Accelerometerproject (Project II) Er zijn speciaal voor het Accelerometerproject
SBP /24. Gebruiksaanwijzing
SBP 200-12/24 Gebruiksaanwijzing De accubewakers uit de SBP serie zijn ontwikkeld om de accu te beschermen tegen te diepe ontladingen. Hierdoor kan de levensduur van de accu gewaarborgd blijven. Ook kan
Update B van 13 /11/ 2009: in versie A van 3 /11 /2009 fout voeding LM324
Een praktische, goedkope,met groot bereik,gemakkelijk te bouwen,relatief nauwkeurige anatenne-analyser die zowel SWR als R, X en Z-componenten kan weergeven. Na langdurig zoeken naar een haalbare oplossing
Het testen van led s en drivers
Het testen van led s en drivers Parameters en testmethoden Door het steeds toenemende gebruik van led s is er een behoefte ontstaan aan nieuwe metingen, op basis van de eigenschappen van de led en alle
Locobuffer Handleiding
Locobuffer Handleiding HDM09 Disclaimer van Aansprakelijkheid: Het gebruik van alle items die kunnen worden gekocht en alle installatie-instructies die kunnen worden gevonden op deze site is op eigen risico.
René Bos, T&M Consultant. Den Bosch 14 juni 2018
René Bos, T&M Consultant Den Bosch 14 juni 2018 Batterij Emulatie Area of Expertise Measurement know-how Application know-how Batterij Emulatie Batterij Emulatie De elektrochemische cel Opbouw cel Waarom
A.n.B. Security n.v. Rue de Joie, 21 4000 Luik België. Tel. +32 4 229 37 97 Fax. +32 4 229 50 94. [email protected] www.anb-sa.be.
A.n.B. Security n.v. Rue de Joie, 21 4000 Luik België Tel. +32 4 229 37 97 Fax. +32 4 229 50 94 [email protected] www.anb-sa.be Opties Catalogus MiniDo Jaar 2007 BTW 424 592 259 RCLg 204 179 Fortis 240-0388800-28
Algemene beschrijving van de regelprogramma's
Algemene beschrijving van de regelprogramma's Deze beschrijving is voor de regelprogramma's, die werken met de I/O kaart K8055 en/of VM167. Om het aantal in- en uitgangen te verhogen kan een multiplexer
LEGO Energiemeter. Hoe te beginnen
LEGO Energiemeter Hoe te beginnen De Energy Meter bestaat uit twee delen: het LEGO en de LEGO. De past op de onderkant van het. Schuif de eenvoudig omlaag op de om hem te installeren. Om de weer te verwijderen,
Sensoren Introductie Weerstandtechniek Brug van Wheatstone Basis Opamp schakelingen Opampschakelingen voor gevorderden
Mechatronica/Robotica Mechanical Systems ELA Sensoren Sensoren Introductie Weerstandtechniek Brug van Wheatstone Basis Opamp schakelingen Opampschakelingen voor gevorderden Sessie 2: Basisschakelingen
Digitaal is een magisch woord
Digitaal is een magisch woord Hieronder leest u over digitale logica. De theorie en de praktijk. Dit werk moet nog uitgebreid worden met meer informatie over TTL, CMOS en varianten. Daarnaast kunnen de
P ow er Quality metingen: Harmonischen
P ow er Quality metingen: n Focus Power Quality is een begrip dat de laatste decennia enorm aan belangstelling heeft gewonnen. Power Quality behelst het garanderen van een sinusvormige spannings en stroomgolfvorm,
Alternator 1. De functie van de wisselstroomgenerator of de alternator 2. De werking/ basisprincipe van de wisselstroomgenerator
Alternator In dit hoofdstuk zal ik het vooral hebben over de functie is van de alternator in de wagen. En hoe het basisprincipe is van deze generator. 1. De functie van de wisselstroomgenerator of de alternator
Digitale Systeem Engineering 1. Week 4 Toepassing: Pulse Width Modulation Jesse op den Brouw DIGSE1/2013-2014
Digitale Systeem Engineering 1 Week 4 Toepassing: Pulse Width Modulation Jesse op den Brouw DIGSE1/2013-2014 PWM basics Het regelen van het toerental van een elektromotor kan eenvoudig worden gedaan door
Hand-out Introductieworkshop LED programmeren
Hand-out Introductieworkshop LED programmeren Inleiding Deze hand-out is bedoeld als naslag voor de introductie workshop LED programmeren. In deze handout vind je de uitleg over LEDs, Arduino s en LED
ES1 Project 1: Microcontrollers
ES1 Project 1: Microcontrollers Les 3: Eenvoudige externe hardware & hardware programmeren in C Hardware programmeren in C Inmiddels ben je al aardig op gang gekomen met het programmeren van microcontrollers.
Workshop Arduino Uno. Touw dag 6 juni 2015 Harold Pootjes en Simon Pauw
Workshop Arduino Uno Touw dag 6 juni 2015 Harold Pootjes en Simon Pauw Arduino Uno Pagina 2 Een programmeerbare controller The Arduino Uno is a programmable microcontroller board based on the ATmega 328.
Harmonischen: een virus op het net? FOCUS
Amplitude Harmonischen: een virus op het net? FOCUS In het kader van rationale energieverbruik (REG) wordt steeds gezocht om verbruikers energie efficiënter te maken. Hierdoor gaan verbruikers steeds meer
Handleiding HCS VB5248
Handleiding HCS VB5248 Analoge Uitgangsmodule met 8 uitgangen HCS Building Automation Kompasstraat 7a, 2901AM Capelle a/d IJssel Postbus 182, 2900AD Capelle a/d IJssel Tel. +31(0)10 458 00 00 Fax +31(0)10
TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE
TECHNISCHE UNIVERSITEIT EINDHOVEN FACULTEIT DER TECHNISCHE NATUURKUNDE Tentamen Computers bij fysische experimenten (3BB20) op dinsdag 25 oktober 2005 Het tentamen duurt 90 minuten en wordt gemaakt zonder
voordat we verder gaan raad ik aan om in ieder geval te zorgen dat je het volgende hebt:
Inleiding Dit artikel is geschreven om enige hulp te bieden bij het "debuggen" van de K8048 Beide zijn zelfbouwkits van velleman en zijn bedoeld voor het programeren Dit artikel is geschreven omdat er
PWM50/3. Dubbele motor sturing. DIGITAAL HANDLEIDING. Motion Control Systems
PWM50/3 Dubbele motor sturing. DIGITAAL HANDLEIDING Touwslagerij 19 4762AT Zevenbergen Nederland www.motion.nl [email protected] tel: 00 31 168 325077 fax: 00 31 168 328134 Inhoudsopgave: INHOUDSOPGAVE:...1
PIC Callgever Door PA1RUM
PIC Callgever Door PA1RUM Aanleiding Tijdens de radiokampweek 2008 is deze callgever met veel enthousiasme gebouwd. Niet alleen omdat het een zeer eenvoudig en veelzijdig ontwerp is, maar ook omdat het
WRC S Soundcard Interface
WRC S Soundcard Interface Intro door Eddy, ON7PO: De PC is ook bij de radioamateurs niet meer weg te denken de digitale modes zoals SSTV RTTY, PSK, QSK, PACKET enz. nemen met rassen schreden hun plaats
RAM geheugens. Jan Genoe KHLim. Situering RAM-geheugens. Geheugens. Halfgeleider Geheugens. Willekeurig toegankelijk geheugen
Jan Genoe KHLim Situering RAM-geheugens Geheugens Halfgeleider Geheugens Serieel toegankelijk geheugen Willekeurig toegankelijk geheugen Read Only Memory ROM Random Access Memory RAM Statische RAM SRAM
Besturingspaneel v Raam E-systeem functie omschrijving v109
Besturingspaneel v Raam E-systeem functie omschrijving v109 Aantal druktoetsen: 4 stuks met de volgende functies: On/off toets voor in- en uitschakelen, toets 1 laagste vermogen, 2 midden stand, 3 max.
Elektronica bouwen met M.T.S. LEGEO modulen
1 Elektronica bouwen met M.T.S. LEGEO modulen Door PE1KTH Deel 1. Datum 15-10-2015 Elektronica componenten worden steeds kleiner van afmeting en in SMD gemaakt. Het is dan lastiger om een complete ontvanger,tranceiver
Multi Purpose Converter 20A
MPC20 Multi Purpose Converter 20A Gebruiksaanwijzing Lees deze gebruiksaanwijzing grondig door voordat u uw omvormer gaat gebruiken GEBRUIKSAANWIJZING Index SECTIE 1 Eigenschappen...17 SECTIE 2 Aansluitschema...17
We kunnen nu met deze kabel de spanning meten door de kabel parallel te schakelen op bv het LEGO zonnepaneel, de LEGO condensator of de LEGO motor.
Metingen met LEGO zonnepaneel en condensator In mei zullen we LEGO autootjes een circuit laten afleggen waarbij we gebruik maken van groene energie. Ik heb gekozen om zonne-energie te gebruiken en omdat
De condensator en energie
De condensator en energie Belangrijkste onderdelen in de proeven De LEGO-condensator De condensator heeft een capaciteit van 1 Farad en is beschermd tegen een overbelasting tot 18 Volt. Wanneer de condensator
Opleiding ELEKTROMECHANICA optie Automatisatie LAB Labo Regeltechniek KLAS: 2AUa Academiejaar
en Doorniksesteenweg 145-8500 KORTRIJK - Tel. : (056)26 41 20 - Fax : (056)21 98 67 - E-mail: [email protected] w w w. k a t h o. b e / v h t i / e l e k t r o m e c h a n i c a Opleiding ELEKTROMECHANICA
2010 Handleiding MS12s
2010 Handleiding MS12s 2 Inhoudsopgave Voorwoord... 2 Technische specificaties:... 3 Overzicht encoder:... 4 Overzicht decoder:... 5 Inbouwen in zender:... 6 Inbouwen in model... 8 Voorbeelden voor aansluiten
Spanningdriver LEDVD5CH20A-V5 0-10V en DALI
Spanningdriver LEDVD5CH20A-V5 0-10V en DALI Spanningdriver met user interface print waarop de 0-10V en DALI interface is aangebracht (zonder display) Speciaal voor home automation kan aan de Spanningdriver
Handleiding HCS VB5224
Handleiding HCS VB5224 Digitale Uitgangsmodule met 4 uitgangen HCS Building Automation Kompasstraat 7, 2901AM Capelle a/d IJssel Postbus 182, 2900AD Capelle a/d IJssel Tel. +31(0)10 458 00 00 Fax +31(0)10
LocoIO Handleiding HDM08
LocoIO Handleiding HDM08 Disclaimer van Aansprakelijkheid: Het gebruik van alle items die kunnen worden gekocht en alle installatie-instructies die kunnen worden gevonden op deze site is op eigen risico.
Een 13,8 volt - 30 ampere voeding
Een 13,8 volt - 30 ampere voeding We gaan de opbouw van dit schema van links naar rechts beschrijven zodat een ieder het kan volgen. Als eerste de transformator, neem hiervoor een type dat secundair minstens
Spanningdriver LEDVD5CH20A-V4 Real Time Clock
Spanningdriver LEDVD5CH20A-V4 Real Time Clock Spanningdriver waarbij de uitgangen door de Real Time Clock worden ingesteld (zonder user interface print) De gebruiker kan door middel van een pc/laptop met
S88XPressNetLI v1.0. Installatie- en gebruikershandleiding en naslagwerk KDesign Electronics, PCB ontwerp door RoSoft
S88XPressNetLI v1.0 Installatie- en gebruikershandleiding en naslagwerk. 2008 KDesign Electronics, PCB ontwerp door RoSoft 3.3 De S88XpressNetLI verbinden met de ROCO versterker Aangezien de S88XpressNetLI
BOUWBESCHRIJVING RF-INTERFACE
BOUWBESCHRIJVING RF-INTERFACE Bij de bouw van de RF-interface wordt verwacht dat de bouwer enige bouw-ervaring heeft met elektronica-kits. Voor algemene aanwijzingen wordt verwezen naar de bouw-instructie
Testen en metingen op windenergie.
Testen en metingen op windenergie. Inleiding Als we rond groene energie begonnen te denken, dan kwam windenergie als een van de meest vanzelfsprekende vormen van groene energie naar boven. De wind heeft
Pajottenlandse Radio Amateurs. De multimeter
Pajottenlandse Radio Amateurs De multimeter ON3BL 05/03/2013 Wat is een multimeter of universeelmeter? Elektronisch meetinstrument waar we de grootheden van de wet van ohm kunnen mee meten Spanning (Volt)
Voor de bouw van de BITX 20 Tranceiver zijn de volgende stappen handig. Het bordje is in secties ingedeeld (zie de afbeelding).
BITX 20 Tranceiver Vs.3.x Voor de bouw van de BITX 20 Tranceiver zijn de volgende stappen handig. Het bordje is in secties ingedeeld (zie de afbeelding). De website: http://golddredgervideo.com/kc0wox/bitxver3new/newmanual.htm
Case Simulink. Team name: SolarMatic. Group:AM13
Team name: SolarMatic Group:AM13 Team members: Thomas Deliens Michaël Op de Beeck Renaud Peeters Tom Salens Jens Sneyers Karel Winderickx Case Simulink Weerstandswaarde waarbij het paneel een maximum vermogen
Praktijk Elektrotechniek:
Soldeer oefeningen Niveau 2/3 Mechatronica Naam Student: Klas: Praktijk Elektrotechniek: Datum: Het bouwen van een knipperlichtje LET OP! Tijdens de theoretische lessen zijn jullie ingeleid in de basisbegrippen
Inhoud vandaag. Interrupts. Algemeen ARM7 AIC
Inhoud vandaag Interrupts Algemeen ARM7 AIC Interrupts Wat is een interrupt? Een interrupt is een onderbreking van de huidige bezigheden ten gevolge van een externe gebeurtenis, zodanig dat de bezigheden
DATA SHEET C2-20. Besturing voor elektrische actuators. DATA SHEET C2-20 A&E Trading b.v. 1
DATA SHEET C2-20 Besturing voor elektrische actuators DATA SHEET C2-20 A&E Trading b.v. 1 C2-20 De C2-20 biedt geavanceerde positionering en controle van actuators door middel van eenvoudige en flexibele
Besturing. 200W eindtrap. 28V Voeding db MHz db 2: MHz db db 4: MHz db. 3:
Eddystone S800/ DAB eindtrap 00Watt op 45 MHz Deze Eddystone eindtrap is afkomstig uit een oude DAB zender. In deze zender zaten een aantal van deze eindtrappen gekoppeld. Omdat de eindtrappen oorspronkelijk
520JHKHXJHQV -DQ*HQRH.+/LP
520JHKHXJHQV -DQ*HQRH.+/LP 1 6LWXHULQJ520JHKHXJHQV Geheugens Halfgeleider Geheugens Serieel toegankelijk geheugen Willekeurig toegankelijk geheugen Read Only Memory ROM Random Access Memory RAM Masker
PIR DC-SWITCH. DC Passive infra-red Detector. Model No. PDS-10 GEBRUIKSAANWIJZING/INSTRUCTION MANUAL
PIR DC-SWITCH DC Passive infra-red Detector Model No. PDS-10 GEBRUIKSAANWIJZING/INSTRUCTION MANUAL Please read this manual before operating your DETECTOR PIR DC-Switch (PDS-10) De PDS-10 is een beweging
