Programa Híbrid pel Processament No Lineal de Circuits d...

130
Programa Híbrid pel Processament No Lineal de Circuits d’Electrònica de Potència AUTOR: Jordi Guimet Vila. DIRECTOR: Abdelali El Aroudi. DATA: Setembre / 2004.

Transcript of Programa Híbrid pel Processament No Lineal de Circuits d...

Page 1: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Programa Híbrid pel Processament No Lineal de Circuits d’Electrònica de Potència

AUTOR: Jordi Guimet Vila.

DIRECTOR: Abdelali El Aroudi.

DATA: Setembre / 2004.

Page 2: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Agraïments

Primer de tot voldria agrair al meu tutor, Abdelali El Aroudi, la seva dedicació i el fet de guiar-me en el present projecte. Després també agraeixo el suport dels meus pares i dels meus germans, Paquita i Eugeni.

Page 3: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Índex

Índex

Pàg.

1.- Memòria Descriptiva .................................................................................................... 9

1.1- Introducció ...................................................................................................... 11

1.2.- Objectius ........................................................................................................ 13

1.3.- Circuits d’Electrònica de Potència ................................................................. 15

1.3.1.- Introducció sobre l’Electrònica de Potència ................................... 15

1.3.2.- Els Convertidors DC-DC ................................................................. 16

1.3.2.1.- El Convertidor Buck (Reductor) ....................................... 16

1.3.2.1.1.- Mode de Conducció Contínua (MCC) ............... 18

1.3.2.1.2.- Mode de Conducció Discontínua (MCD) .......... 19

1.3.2.2.- El Convertidor Boost (Elevador) ...................................... 20

1.3.2.2.1.- Mode de Conducció Contínua (MCC) ............... 21

1.3.2.2.2.- Mode de Conducció Discontínua (MCD) .......... 21

1.3.2.3.- El Convertidor Buck- Boost (Reductor- Elevador) ........... 22

1.3.2.3.1.- Mode de Conducció Contínua (MCC) ............... 23

1.3.2.3.2.- Mode de Conducció Discontínua (MCD) .......... 23

1.4.- Tipus de Regeneració de Senyal PWM per al Control de Convertidors

DC-DC ............................................................................................................ 25

1.4.1.- Regeneració Mitjançant Senyal Rampa ......................................... 25

1.4.1.1.- Control Mode Corrent ...................................................... 26

1.4.1.2.- Control Mode Tensió ........................................................ 27

1.4.2.- Regeneració per Histèresis del Corrent de la Bobina ..................... 28

1.5.- Processament No Lineal de Circuits d’Electrònica de Potència .................... 31

1.5.1.- Aspectes Generals ........................................................................... 31

1.5.2.- Diagrames de Bifurcació ................................................................. 32

1.5.2.1.- Diagrames de Bifurcació amb Una Dimensió .................. 32

1.5.2.2.- Diagrames de Bifurcació amb Dues i Tres Dimensions .. 34

1.5.2.3.- Exemples d’Aplicació ....................................................... 34

1.5.2.3.1.- Convertidor Buck Controlat per senyal PWM Regenerat per Senyal Rampa ............................. 35

1.5.2.3.1.1.- Funcionament del Circuit .................... 35

1.5.2.3.1.2.- Representacions Gràfiques .................. 35

Page 4: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Índex

6

1.5.2.3.2.- Convertidor Boost Controlat per Senyal PWM Regenerat per Senyal Rampa ............................. 38

1.5.2.3.2.1.- Funcionament del Circuit .................... 38

1.5.2.3.2.2.- Representacions Gràfiques .................. 38

1.5.2.3.3.- Convertidor Boost Controlat per Senyal PWM Regenerat Mitjançant Control per Histèresis

de Corrent ........................................................... 41

1.5.2.3.3.1.- Funcionament del Circuit .................... 41

1.5.2.3.3.2.- Representacions Gràfiques .................. 41

1.5.2.3.4.- Circuit Multinivell Controlat per Senyal PWM Regenerat per Senyal Rampa ............................. 43

1.5.2.3.4.1.- Funcionament del Circuit .................... 43

1.5.2.3.4.2.- Representacions Gràfiques .................. 44

1.5.3.- Pla i Espai d’Estats .......................................................................... 46

1.5.4.- Secció de Poincaré ........................................................................... 48

1.5.5.- Representacions d’una Variable Respecte al Temps ....................... 50

1.6.- Entorn PSim ................................................................................................... 53

1.6.1.- Introducció al PSim ......................................................................... 53

1.6.2.- Pantalla de Disseny de Circuits ....................................................... 53

1.6.3.- Pantalla SIMVIEW ........................................................................... 54

1.6.4.- Control de la Simulació ................................................................... 55

1.6.5.- Escombratge Paramètric .................................................................. 56

1.6.6.- Fitxers Generats pel PSim ............................................................... 57

1.6.6.1.- Fitxer de Dades ................................................................. 57

1.6.6.2.- Fitxer amb la Llista d’Elements ........................................ 57

1.7.- Entorn Matlab ................................................................................................ 59

1.7.1.- Introducció al Matlab ...................................................................... 59

1.7.2.- Tipus de Dades ............................................................................... 59

1.7.3.- Programació en Matlab ................................................................... 60

1.7.3.1.- Operacions ........................................................................ 60

1.7.3.2.- Instruccions de Control de Flux del Programa ................. 60

1.7.3.2.1.- Control Lògic ..................................................... 60

1.7.3.2.2.- Bucles Iteratius .................................................. 61

1.7.3.3.- Fitxers *.m ........................................................................ 62

1.7.3.4.- Manipulació de Fitxers de Dades ..................................... 62

Page 5: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Índex

7

1.7.4.- Gràfiques ......................................................................................... 63

1.7.4.1.- Gràfiques Bidimensionals ................................................. 63

1.7.4.2.- Gràfiques Tridimensionals ............................................... 64

1.7.5.- Construcció Interactiva d’Interfícies d’Usuari (GUIDE) ................ 64

1.8.- El Programa Híbrid ........................................................................................ 67

1.8.1.- Aspectes Generals ........................................................................... 67

1.8.2.- Primera Fase: Creació i Simulació de Circuits Mitjançant PSim .... 67

1.8.3.- Segona Fase: Càrrega al Matlab de dades generades pel PSim ...... 68

1.8.4.- Tercera Fase: Representació Gràfica Mitjançant Matlab ................ 72

1.9.- Interfície Gràfica ............................................................................................ 73

1.9.1.- Aspectes Generals ........................................................................... 73

1.9.2.- Pantalles de Configuració ............................................................... 73

1.9.3.- Pantalla de Representacions Gràfiques ........................................... 77

1.9.3.1.- Menú Fitxer ...................................................................... 78

1.9.3.2.- Menú d’Opcions ............................................................... 78

1.10.- Conclusions .................................................................................................. 79

2.- Memòria de Càlcul ...................................................................................................... 81

2.1.- Introducció ..................................................................................................... 83

2.2.- Càlculs dels Valors de l’Escombratge Paramètric ......................................... 85

2.3.- Càlculs dels Valors per al Mostreig amb Període Conegut ............................ 87

3.- Plànols .......................................................................................................................... 89

Plànol Nº 1: Esquema Elèctric d’un Convertidor Buck Controlat per Rampa ....... 91

Plànol Nº 2: Esquema Elèctric d’un Convertidor Boost Controlat per Rampa ...... 93

Plànol Nº 3: Esquema Elèctric d’un Convertidor Boost Controlat per Histèresis .. 95

Plànol Nº 4: Esquema Elèctric d’un Circuit Multinivell Controlat per Rampa ...... 97

4.- Pressupost .................................................................................................................... 99

4.1.- Anidaments .................................................................................................. 101

4.1.1.- Capítol 1: Recerca Bibliogràfica, Simulació, Implementació i

Redacció del Projecte .................................................................... 101

4.1.2.- Capítol 2: Material ......................................................................... 103

Page 6: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Índex

8

4.2.- Quadre de Preus Elementals ......................................................................... 105

4.2.1.- Capítol 1: Recerca Bibliogràfica, Simulació, Implementació i

Redacció del Projecte .................................................................... 105

4.2.2.- Capítol 2: Material ......................................................................... 107

4.3.- Aplicació de Preus ........................................................................................ 109

4.3.1.- Capítol 1: Recerca Bibliogràfica, Simulació, Implementació i

Redacció del Projecte .................................................................... 109

4.3.2.- Capítol 2: Material ......................................................................... 111

4.4.- Resum del Pressupost ................................................................................... 113

5.- Plec de Condicions .................................................................................................... 115

5.1.- Condicions Administratives ......................................................................... 117

5.2.- Condicions Econòmiques ............................................................................. 119

5.3.- Condicions Facultatives ............................................................................... 121

5.3.1.- Qualificació de l’Usuari del Programa Híbrid .............................. 121

5.3.2.- Reconeixements Previs .................................................................. 121

5.4.- Condicions Tècniques .................................................................................. 123

5.4.1.- Programari a Utilitzar .................................................................... 123

5.4.2.- Condicions d’Execució del Programa Híbrid ............................... 123

6.-Annexes ....................................................................................................................... 125

Annex 1: Algorisme del Programa Híbrid (Versió 1) .......................................... 127

Annex 2: Flux d’Execució dels Fitxers *.m del Programa Híbrid (Versió 1) ..... 159

Annex 3: Errors Detectats al Programa PSim Demo Versió 6.0 .......................... 161

Referències ...................................................................................................................... 163

Page 7: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

1.- Memòria Descriptiva

Page 8: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

1 Memòria Descriptiva

1.1 Introducció

En els últims trenta anys, molts matemàtics han estudiat el caos i altres dinàmiques no lineals [1]. Aquest comportament es dóna en molts sistemes físics i concretament en circuits d’electrònica de potència [2].

Tradicionalment, aquestes dinàmiques en circuits d’electrònica de potència s’han considerat com a indesitjables i que calia evitar. No obstant, cada cop més l’estudi d’aquestes va creixent en interès, ja que possibilita el treball en nous règims de funcionament que poden ajudar a optimitzar els dissenys dels circuits [3]. Per aquest motiu, s’han desenvolupat una sèrie de tècniques d’anàlisi no lineal que ajuden a conèixer millor el comportament dels sistemes en aquestes regions.

En el present projecte, s’han estudiat dinàmiques no lineals en diversos circuits d’electrònica de potència. En aquest estudi s’han utilitzat eines gràfiques i no algebraiques, ja que els sistemes no lineals estan definits per equacions complexes i difícils de resoldre. A més, a partir de gràfiques és més fàcil comprendre l’evolució del funcionament dels circuits.

Per tal de poder efectuar aquest estudi, s’ha implementat un codi capaç d’elaborar els diagrames a analitzar. Aquest programa està elaborat a partir de l’entorn de Matlab [4], però a la vegada utilitza el PSim [5]; d’aquí el seu nom: híbrid.

El programa híbrid utilitza el PSim per implementar i simular un circuit. Un cop simulat el circuit, les dades obtingudes són guardades en un fitxer de text. Mitjançant el programa híbrid, aquestes dades es poden carregar al Matlab i representar diverses figures per tal d’analitzar el circuit.

Page 9: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

1.2 Objectius

Els objectius d’aquests projecte són:

• Implementar un codi en Matlab per a carregar dades generades pel PSim.

• Representar diferents eines d’anàlisi no lineal de sistemes mitjançant un codi amb Matlab. Aquestes eines són: diagrama de bifurcació amb una, dues i tres dimensions; pla i espai d’estats, secció de Poincaré amb dues i tres dimensions i també representar una variable en funció del temps amb o sense mostreig.

• Realitzar un escombratge paràmetric amb un i dos paràmetres, per tal d’obtenir diferents dinàmiques en funció de la variació d’un o dos elements del circuit.

• Crear una interfície gràfica que faci còmode l’execució del programa híbrid.

Page 10: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

1.3 Circuits d’Electrònica de Potència

1.3.1 Introducció sobre l’Electrònica de Potència

L’electrònica de potència és un camp de creixent importància, ja que es preveu que durant el segle XXI, el 90 % de l’energia elèctrica generada serà processada per dispositius que pertanyin a aquesta àrea [2].

A causa de la implicació que té amb l’energia elèctrica, en electrònica de potència s’acostuma a treballar amb tensions i corrents més elevats que en altres camps de l’electrònica.

D’altra banda, els principals circuits corresponents a aquesta branca de l’electrònica són els convertidors de potència. Els quals tenen com a finalitat proporcionar a la seva sortida una tensió i una corrent amb unes característiques determinades a partir d’una tensió i corrent proporcionats a la seva entrada. En funció de que les tensions a l’entrada i a la sortida siguin contínues o alternes es poden definir quatre grans tipus de convertidors de potència, aquests són: els convertidors alterna- contínua (rectificadors), els convertidors contínua- alterna (inversors), els convertidors alterna- alterna (cicloconvertidors) i els convertidors contínua- contínua (trossejadors).

Els convertidors de potència estan formats per dos grups bàsics de components [2]:

• Els commutadors. Són components que tenen dos estats possibles. Un estat és el de obert (on) en el qual, idealment, la tensió entre els seus terminals és nul·la i el corrent que travessa el commutador és infinit. Mentre que l’altre estat – tancat (off) – la tensió és idealment infinita i el corrent és zero. Els commutadors es poden dividir en dos tipus: actius i passius. Els actius són aquells que tenen algun terminal per controlar l’estat del commutador. Els passius són els es queden en un estat depenent de les condicions del circuit, és a dir el circuit força el valor de la tensió o la corrent de l’interruptor perquè aquest commuti. Els principals commutadors de potència actius són: els tiristors, els transistors bipolars (BJT), els MOSFETs (metal oxide semiconductor field effect transistor) i els IGBTs (insulate gate bipolar transistor).

• Els components reactius. Són elements que absorbeixen, emmagatzemen i retornen energia. N’hi ha de dos tipus: els capacitius (condensadors) i els inductius (bobines). Els capacitius no permeten canvis sobtats de tensió, mentre que els inductius no els permeten de corrent.

El funcionament dels convertidors de potència consisteix en bombejar energia a través dels commutadors mentre els components reactius actuen com a magatzems d’energia intermediaris entre l’entrada i la sortida. La presència dels dos tipus d’elements provoca que el circuit pugui tenir un comportament no lineal.

Page 11: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

16

La tecnologia de l’electrònica de potència es pot aplicar en molts camps. Per exemple [2]: en aplicacions de tracció com locomotores, en carregadors de bateries, en amplificadors d’àudio, en sistemes de potència per a aeronaus, en condicionaments per a fonts d’energia alternatives, etc.

1.3.2 Els Convertidors DC-DC

Els convertidors DC-DC (contínua- contínua) s’usen en fonts d’alimentació per a circuits electrònics, en el control de flux d’energia entre sistemes de tensió contínua i en aplicacions industrials on es necessiti mantenir una tensió constant [6].

La seva finalitat és mantenir un valor concret de tensió a la sortida del convertidor amb el menor arrissat possible. La tensió de sortida sol ser diferent a la tensió d’entrada i s’aconsegueix mitjançant els commutadors. L’arrissat pot ser provocat per variacions en la tensió d’entrada o per les commutacions de l’interruptor. Es minimitza mitjançant components reactius.

Les topologies bàsiques de convertidors DC-DC són les següents: convertidor buck (reductor), boost (elevador) i buck-boost (reductor-elevador) [7].

1.3.2.1 El Convertidor Buck (Reductor)

En el convertidor buck, la tensió mitjana a la sortida (V0) és sempre inferior a la tensió mitjana a l’entrada (VS). L’objectiu d’aquest circuit és mantenir una determinada tensió a la sortida i evitar discontinuïtats en el corrent. A la figura 1 es pot veure un esquema d’aquest convertidor.

Figura 1. Esquema d’un convertidor buck

Page 12: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

17

L’interruptor S és un commutador actiu de qualsevol dels tipus que s’han vist a l’apartat 3.1. Aquest interruptor es governa, en la majoria de casos, per un senyal PWM (modulació d’amplada d’impulsos). Un senyal PWM és un senyal de període fix T, només té dos valors possibles (nivell alt i nivell baix). El temps en qual es troba en cadascun dels dos nivells és variable. Quan l’interruptor rep el nivell alt es tanca i si rep el nivell baix s’obre. El temps en que roman tancat se l’anomena ton i el restant toff. Per tant, sempre es compleix la fórmula (1).

Ttt offon =+ (1)

Existeix un altre paràmetre que relaciona els tres temps anteriors: el cicle de treball o duty-cycle (δ). Aquest paràmetre es pot expressar en tan per u o en tan per cent. La seva expressió és la de la fórmula (2).

Tton=δ (2)

A la figura 2 es poden veure dos períodes complets d’un senyal PWM, en el qual el cicle de treball és del 33,33 %. Els nivells alt i baix del senyal estan representats per les lletres H i L, respectivament.

Figura 2. Senyal PWM

No convé que el cicle de treball sigui pròxim als extrems; perquè llavors l’interruptor podria deixar de commutar i el circuit es queda bloquejat.

A continuació es comentaran els dos modes de funcionament en que pot treballar un convertidor buck.

Page 13: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

18

1.3.2.1.1 Mode de Conducció Contínua (MCC)

En aquest mode de funcionament el corrent de la bobina es manté entre un valor màxim i un valor mínim superior a zero. Aquest mode de conducció depèn del valor de la bobina, la resistència, el període de commutació de l’interruptor (T) i del cicle de treball. S’ha de complir la inequació (3) perquè el convertidor treballi en règim contínu.

( )DTRL −> 121

(3)

A la figura 3 es pot observar la forma d’ona del corrent de la bobina en MCC. La freqüència del senyal és la mateixa que la freqüència de commutació (a l’exemple 2.500.Hz). L’interval de temps en que el corrent creix correspon a ton (interruptor tancat), mentre que l’interval amb corrent decreixent correspon a toff (interruptor obert).

Figura 3. Corrent de la bobina d’un convertidor buck en MCC

Les equacions següents defineixen les variables d’estat característiques del convertidor: vc (tensió al condensador) i iL (corrent a la bobina).

• Durant la topologia ON (interruptor tancat i díode en tall):

( ) ( ) Lc

Cc

C iCRR

Rv

CRRdtdv

··

··

1

+

+

+

−= (4)

( ) ( ) LV

Li

RRRR

RvLRR

Rdtdi sL

c

CSLC

c

L +

+

+

−= ··

··

(5)

On RC és la resistència paràsita en sèrie del condensador i RSL és la resistència paràsita en sèrie de la bobina.

Page 14: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

19

• Durant la topologia OFF ( interruptor obert i díode en conducció):

( ) ( ) Lc

Cc

C iCRR

Rv

CRRdtdv

··

··

1

+

+

+

−= (6)

( ) ( ) Li

RRRR

RvLRR

Rdtdi L

c

CSLC

c

L ··

··

+

+

−= (7)

1.3.2.1.2 Mode de Conducció Discontínua (MCD)

El mode de conducció discontínua (MCD) és el mode de funcionament contrari al MCC. Es dóna quan el valor mínim de corrent és zero. A la figura 4 es pot observar la forma del corrent de la bobina en aquest tipus de conducció. L’interval en que el corrent creix correspon a la topologia ON i la resta – corrent decreixent i nul – correspon a la topologia OFF.

Figura 4. Corrent de la bobina d’un convertidor buck en MCD

Les equacions que defineixen les variables fonamentals del circuit són les següents:

• Durant la topologia ON (interruptor tancat i díode en tall):

( ) ( ) Lc

Cc

C iCRR

Rv

CRRdtdv

··

··

1

+

+

+

−= (8)

( ) ( ) LV

Li

RRRR

RvLRR

Rdtdi sL

c

CSLC

c

L +

+

+

−= ··

··

(9)

Page 15: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

20

• Durant la topologia OFF (interruptor obert i díode en conducció). Interval en que el corrent de la bobina decreix:

( ) ( ) Lc

Cc

C iCRR

Rv

CRRdtdv

··

··

1

+

+

+

−= (10)

( ) ( ) Li

RRRR

RvLRR

Rdtdi L

c

CSLC

c

L ··

··

+

+

−= (11)

• Durant la topologia OFF ( interruptor obert i díode en tall). Interval en que el corrent de la bobina és nul:

( ) Cc

C vCRRdt

dv·

·1

+

−= (12)

0=dtdiL (13)

1.3.2.2 El Convertidor Boost (Elevador)

El convertidor boost és un tipus de convertidor DC-DC que es caracteritza per proporcionar una tensió a la sortida (V0) més elevada que la tensió d’entrada (VS). A la figura 5 es pot observar la configuració d’aquest tipus de convertidor.

Figura 5. Esquema d’un convertidor boost

De forma anàloga al convertidor buck, en la major part d’ocasions l’interruptor S es controla amb un senyal PWM.

De la mateixa manera, el circuit té dos modes de conducció ( MCC i MCD ), però en aquest s’ha de complir la inequació de la fórmula 14 per romandre en MCC.

Page 16: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

21

( )2121

DDTRL −> (14)

1.3.2.2.1 Mode de Conducció Contínua (MCC)

Les equacions següents defineixen les variables d’estat característiques del convertidor.

• Durant la topologia ON ( interruptor tancat i díode en tall):

( ) Cc

C vCRRdt

dv·

·1

+

−= (15)

LV

iL

Rdtdi s

LSLL +

−= · (16)

Vc correspon a la tensió del condensador, Rc correspon a la resistència paràsita sèrie del condensador i RSL a la resistència paràsita en sèrie a la bobina.

• Durant la topologia OFF ( interruptor obert i díode en conducció):

( ) ( ) Lc

Cc

C iCRR

Rv

CRRdtdv

··

··

1

+

+

+

−= (17)

( ) ( ) LV

Li

RRRR

RvLRR

Rdtdi SL

c

CSLC

c

L +

+

+

−= ··

··

(18)

1.3.2.2.2 Mode de Conducció Discontínua (MCD)

Les expressions que defineixen les variables fonamentals del circuit són les següents:

• Durant la topologia ON ( interruptor tancat i díode en tall):

( ) Cc

C vCRRdt

dv·

·1

+

−= (19)

Page 17: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

22

LV

iL

Rdtdi s

LSLL +−= · (20)

• Durant la topologia OFF ( interruptor obert i díode en conducció).

( ) ( ) Lc

Cc

C iCRR

Rv

CRRdtdv

··

··

1

+

+

+

−= (21)

( ) ( ) LV

Li

RRRR

RvLRR

Rdtdi sL

c

CSLC

c

L +

+

+

−= ··

··

(22)

• Durant la topologia OFF ( interruptor obert i díode en tall). Interval en que el corrent de la bobina és nul:

( ) Cc

C vCRRdt

dv·

·1

+

−= (23)

0=dtdiL (24)

1.3.2.3 El Convertidor Buck- Boost (Reductor- Elevador)

El convertidor buck- boost és un tipus de convertidor DC-DC que pot proporcionar a la sortida (V0) una tensió superior o inferior a la tensió d’entrada, depén del cicle de treball. Té la particularitat que V0 té la polaritat inversa a VS. Aquesta configuració s’utilitza en casos en que s’utilitzi un convertidor reductor i un elevador. D’aquesta manera un sol convertidor fa el treball de dos. Tenint en compte que no pot ser reductor i elevador a la vegada.

Figura 6. Esquema d’un convertidor buck-boost.

Page 18: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

23

Igual que en els dos convertidors anteriors, el reductor- elevador té dos modes de funcionament ( MCC i MCD ). Per garantir una conducció contínua s’ha de complir l’expressió (25).

( )2121

DTRL −> (25)

1.3.2.3.1 Mode de Conducció Contínua (MCC)

• Equacions durant la topologia ON ( interruptor tancat i díode en tall):

( ) Cc

C vCRRdt

dv·

·1

+

−= (26)

LV

iL

Rdtdi s

LSLL +

−= · (27)

Vc correspon a la tensió del condensador, Rc correspon a la resistència paràsita sèrie del condensador i RSL a la resistència paràsita en sèrie a la bobina.

• Equacions durant la topologia OFF ( interruptor obert i díode en conducció):

( ) ( ) Lc

Cc

C iCRR

Rv

CRRdtdv

··

··

1

+

+

+

−= (28)

( ) ( ) Li

RRRR

RvLRR

Rdtdi L

c

CSLC

c

L ··

··

+

+

−= (29)

1.3.2.3.2 Mode de Conducció Discontínua (MCD)

• Equacions durant la topologia ON ( interruptor tancat i díode en tall):

( ) Cc

C vCRRdt

dv·

·1

+

−= (30)

LV

iL

Rdtdi s

LSLL +−= · (31)

Page 19: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

24

• Equacions durant la topologia OFF ( interruptor obert i díode en conducció).

( ) ( ) Lc

Cc

C iCRR

Rv

CRRdtdv

··

··

1

+

+

+

−= (31)

( ) ( ) Li

RRRR

RvLRR

Rdtdi L

c

CSLC

c

L ··

··

+

+

−= (32)

• Equacions durant la topologia OFF ( interruptor obert i díode en tall). Interval en que el corrent de la bobina és nul:

( ) Cc

C vCRRdt

dv·

·1

+

−= (33)

0=dtdiL (34)

Page 20: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

1.4 Tipus de Regeneració de Senyal PWM per al Control de Convertidors DC-DC

Els convertidors DC-DC per tal de mantenir el valor de tensió a la sortida davant de possibles fluctuacions que pugui patir necessita un llaç de control. En aquest s’avaluen el corrent de la bobina i la tensió de sortida i es comparen amb els valors desitjats. A partir d’aquesta comparació es genera un senyal PWM que fa commutar l’interruptor del convertidor. A partir d’ara aquesta senyal se l’anomenarà q(t).

Existeixen diverses tècniques per generar el senyal q(t), dues d’elles són: mitjançant un senyal rampa i mitjançant un control per histèresis de corrent.

1.4.1 Regeneració Mitjançant Senyal Rampa

La regeneració mitjançant un senyal rampa és la més utilitzada en convertidors DC-DC. En aquest tipus de regeneració el període de commutació és igual al període de la rampa. D’aquesta manera el període de commutació és conegut a priori.

El funcionament consisteix en que el senyal q(t) canvia de valor – l’interruptor commuta – quan la rampa (Vramp) es talla amb un senyal de control (Vcon). Vcon és funció d’alguna variable d’estat del circuit, com es veurà més endavant. Quan la rampa conclou un període, el senyal q(t) retorna al valor d’abans del tall. Per tant, si Vcon i Vramp no s’arribessin a tallar mai, el convertidor no commutaria i es tornaria inestable.

Figura 7. Generació del senyal PWM a partir d’un senyal rampa

A la figura 7, es poden observar quatre períodes del senyal q(t) per al control d’un convertidor boost. A més, apareixen els dos senyals que es comparen per a generar q(t) en un control per rampa. Aquest exemple té la particularitat que al senyal Vramp se li suma el corrent de la bobina iL. A l’inici de cada període l’interruptor del convertidor està tancat i quan Vramp + iL supera a Vcon, s’obre. En finalitzar el període, l’interruptor es torna a tancar. El fet de sumar iL a Vramp millora el llaç de control.

Page 21: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

26

Per aconseguir les dues senyal a comparar per tal de generar el senyal PWM, existeixen dos modes de control: control mode corrent i control mode tensió [8]. En l’exemple de la figura 7 s’ha utilitzat el mode tensió.

1.4.1.1 Control Mode Corrent

El funcionament consisteix en agafar una mostra de la tensió de sortida del convertidor (v(t)) i restar-li la tensió de referència (Vref). Vref és el valor de la tensió que es vol mantenir a la sortida. L’error obtingut de la diferència anterior passa per un bloc proporcional de guany kv i es suma al senyal rampa. El senyal resultant s’introdueix a l’entrada positiva d’un comparador, mentre que a l’entrada negativa s’introdueix una mostra del corrent de la bobina (i(t)) multiplicat per una etapa de guany de valor ki.

La sortida del comparador anterior està connectada a l’entrada de reset d’un biestable R-S. A l’entrada de set del biestable hi ha connectat un senyal de rellotge (clock) de freqüència igual a la rampa. A la sortida del biestable es genera el senyal PWM (q(t)) que està connectada a l’interruptor del convertidor. Cada període del senyal rampa, el clock provoca un flanc ascendent al senyal PWM i quan la suma del senyal rampa i el valor de la sortida del bloc de guany kv és superior al producte del corrent de la bobina per ki es produeix un flanc descendent al senyal q(t).

Si es donés el cas en que el rellotge marqués final ( o inici ) de període i la sortida del comparador estigués a nivell alt, llavors el senyal q(t) romandria a nivell baix. Aquest succés es podria produir de forma aïllada en el règim transitori; però si es produís en el règim estable de forma repetitiva, llavors es pot parlar d’un canvi de període del senyal PWM. A la figura 8, apareix un diagrama de blocs d’un control mode corrent.

Figura 8. Diagrama de blocs d’un contol mode corrent

Page 22: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

27

1.4.1.2 Control Mode Tensió

El control mode tensió té un comportament similar al control de l’apartat anterior. A la figura 9 es pot veure l’esquema d’aquest tipus de control. Les diferències bàsiques respecte el control mode corrent són les següents:

• A l’entrada negativa del comparador hi entra la suma del producte corrent de la bobina (i(t)) per la constant ki i la multiplicació de l’error per la constant kv. L’error es defineix com la diferència entre la tensió de sortida i la tensió de referència. Mentre que a l’entrada positiva hi entra només el senyal rampa.

• En aquest cas, el resultat de la comparació va a l’entrada de set del biestable i el senyal de rellotge va connectat a l’entrada de reset. Aquí com en el cas anterior, el senyal provingut de la comparació té prioritat respecte al clock.

Figura 9. Diagrama de blocs d’un contol mode tensió

Aquests dos tipus de control es poden considerar com a bàsics i poden sofrir alteracions. Per exemple substituir el bloc de guany kv per un bloc PI (proporcional- integral) i així millorar el llaç de control.

Una altra modificació podria ser: sumar el corrent de la bobina a la rampa (vr(t)) i anar a l’entrada positiva del comparador enlloc d’anar sumat al senyal d’error.

Page 23: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

28

1.4.2 Regeneració per Histèresis del Corrent de la Bobina

La regeneració del senyal PWM per control d’histèresis del corrent de la bobina és molt menys utilitzat que la regeneració mitjançant una rampa. El seu funcionament consisteix en que el corrent de la bobina segons sigui ascendent o descendent no pugui superar un límit superior (Iref +) o inferior (Iref - ), respectivament.

Si el corrent de la bobina és ascendent i s’iguala amb Iref +, llavors es produeix un flanc descendent al senyal PWM . Per contra, si el corrent de la bobina és decreixent i s’iguala amb Iref -, llavors el senyal PWM té un flanc ascendent. Per tant el període de commutació de l’interruptor és en principi desconegut i depèn dels punts de tall entre el corrent de la bobina i els corrents de referència.

A la figura 10, es pot observar l’evolució del corrent de la bobina (de color blau) en un convertidor boost controlat per histerèsis. De color vermell està pintat el corrent Iref + i de color rosa el corrent Iref - . Quan es tallen amb el corrent de la bobina ( segons el sentit d’aquest últim ), es produeixen els flancs del senyal PWM ( pintat de color verd ).

Figura 10. Generació del senyal PWM a partir d’un control per histèresis del corrent de la bobina

A continuació s’explicarà el procés d’obtenció dels corrents de referència:

• Primer es calcula l’error entre la tensió obtinguda a la sortida del convertidor i la tensió de referència (Vref).

• A continuació, l’error passa per una etapa de control PI ( proporcional- integral), per una etapa de guany K i s’obté un corrent de referència ( Iref ).

• Finalment, a Iref se li suma una constant M obtenint el corrent Iref + i se li resta la mateixa quantitat per obtenir Iref - . Tal com es pot veure a les expressions 35 i 36.

Page 24: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

29

MII refref +=+ (35)

MII refref −=− (36)

Un cop definit els corrents de referència, es comparen els dos amb el corrent de la bobina (i(t)). Si el corrent de la bobina és més gran que Iref +, es produeix un reset a un biestable R-S. Si succeeix que el corrent de la bobina és inferior a Iref -, llavors s’activa l’entrada de set del biestable. La sortida d’aquest últim correspon al senyal PWM (q(t)) que controla l’interruptor del convertidor DC-DC. A la figura 11 apareix un esquema del control per histerèsis.

Figura 11. Diagrama de blocs d’un control per histèresis per a un convertidor DC-DC

Page 25: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

1.5 Processament No Lineal de Circuits d’Electrònica de Potència

1.5.1 Aspectes Generals

Els circuits d’electrònica de potència tenen diverses dinàmiques: poden tenir un comportament periòdic, subharmònic, quasi- periòdic i caòtic [8]. Alguns circuits només n’experimentaran alguns d’aquests quatre tipus de comportaments.

A la figura 12, es poden observar tres tipus de comportament de la tensió de sortida (V0) d’un convertidor boost amb control per rampa. La gràfica superior correspon a un comportament periòdic, en el qual el període és igual al de la rampa. A la gràfica central, es mostra un comportament subharmònic. Aquest senyal es caracteritza per tenir un petit component harmònic. En el cas de la gràfica central, es produeix un doblement de període; és a dir, el període de la tensió de sortida és el doble del període del senyal rampa. Per últim, a la gràfica inferior apareix el comportament caòtic. En aquest tipus de resposta el senyal deixa de tenir cap tipus de repetició. Però en cap moment el circuit es torna inestable, ja que la resposta està acotada i l’interruptor va commutant.

Figura 12. Dinàmiques d’un circuit d’electrònica de potència.

En la figura 13 s’il·lustra el comportament quasi- periòdic. Aquest tipus de resposta es pot expressar com una suma finita de funcions periòdiques.

Page 26: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

32

Figura 13. Comportament quasi- periòdic.

Els circuits evolucionen d’un comportament periòdic a un caòtic – passant per un de quasi- periòdic – mitjançant la variació d’un paràmetre. Cada circuit té una evolució diferent, per això s’han elaborat una sèrie d’eines per a l’estudi d’aquestes dinàmiques En els següents apartats s’explicaran les diverses tècniques usades en aquest projecte: diagrames de bifurcació, pla i espai d’estats, secció de Poincaré i representacions d’una variable respecte al temps.

1.5.2 Diagrames de Bifurcació

1.5.2.1 Diagrames de Bifurcació amb Una Dimensió

En electrònica de potència, els convertidors estan dissenyats per a que a la seva sortida subministrin un nivell de tensió determinat, però aquest funcionament pot canviar substancialment quan un paràmetre com la tensió d’entrada o la càrrega canvia. Així doncs, l’estudi d’aquestes variacions és de gran importància en molts sistemes [9].

Els diagrames de bifurcació amb una dimensió (1D) representen una variable d’estat mostrejada (tensió o corrent) en funció d’un paràmetre del circuit. Aquest podria ser la tensió d’entrada d’un convertidor, la resistència de càrrega, el guany de l’amplificador de l’error (kv) ; en cas de control mitjançant PWM generat per rampa, podria ser el període o l’amplitud de la rampa.

D’aquesta manera, es pot observar l’evolució d’una variable d’estat passant pels tres tipus de comportament: periòdic, quasi- periòdic i caòtic. Si el comportament és periòdic per a un rang de valors del paràmetre, en el diagrama apareix una línia. Si és quasi- periòdic, apareix un número finit de trajectòries; per exemple si es produeix un doblement de període, s’observa que la línia que definia el règim periòdic se separa en dues trajectòries. Per últim si es comportament es caòtic, apareix un núvol de punts.

El mostreig de la variable d’estat a representar, es pot efectuar de dues formes segons el tipus de període de commutació de l’interruptor del convertidor. Com ja s’ha explicat en el capítol 4, el període pot ser conegut – si la regeneració del senyal PWM es fa mitjançant una rampa – o bé desconegut – regeneració per histèresis.

Si el període és conegut, n’hi ha prou en agafar com a període de mostreig el període de la rampa. Sinó s’han detectar els flancs del senyal PWM i agafar una mostra per a cada flanc ascendent o descendent.

Page 27: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

33

A la figura 14, apareixen les formes d’ona de la figura 12 mostrejades amb un període de mostreig igual al del senyal rampa. Com es pot observar si la resposta és periòdica (gràfica superior), s’obté una sèrie de punts d’igual valor. Tal com era d’esperar, ja que agafem un punt de cada període del senyal. Si el comportament és quasi- periòdic (gràfica central), s’obté un número finit de nivells. En el cas de l’exemple, apareixen dos nivells de tensió corresponents a un doblement de període [6]. Finalment, per al comportament caòtic (gràfica inferior) s’obté un núvol de punts. Les tres gràfiques s’han obtingut per a tres valors diferents de la tensió de la rampa.

En la construcció d’un diagrama de bifurcació, per a cada valor d’un paràmetre se superposen tots els punts corresponents a aquell paràmetre. D’aquesta manera, en un comportament periòdic, la línia que s’obtenia mostrejant passa a ser un punt. Les dues línies que resultants per a un mostreig en el règim de doblement de període passen a ser dos punts. Per últim, en el comportament caòtic, el núvol de punts correspon a una línia perpendicular a l’eix d’abscisses.

A la figura 15, es pot observar un diagrama de bifurcació per a tres valors de la tensió rampa. Aquests valors es corresponen als valors utilitzats en la figura 14. Per tant, el diagrama de bifurcació de la figura 15, és el resultat de la superposició dels punts de la figura 14. Així es pot establir una correspondència entre les dues figures: la gràfica superior de la figura 14 correspon al punt de la dreta de la figura 15, la gràfica central de la 14 amb els dos punts del centre de la 15 i la gràfica inferior de la 14 amb la línia vertical de l’esquerra de la 15.

Figura 14. Mostreig de les dinàmiques d’un circuit d’electrònica de potència a partir del període del senyal rampa.

Page 28: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

34

Figura 15. Diagrama de bifurcació per a tres valors de la tensió rampa.

Per tal d’obtenir una evolució contínua en el diagrama de bifurcació s’ha de efectuar un escombratge paramètric amb més valors. En els exemples que es mostraran més endavant l’escombratge s’ha realitzat per a 201 valors.

1.5.2.2 Diagrames de Bifurcació amb Dues i Tres Dimensions

Els diagrames de bifurcació bidimensionals (2D) [10] i tridimensionals (3D) s’obtenen a partir de l’escombratge de dos paràmetres. En el diagrama 2D, els dos eixos es corresponen als dos paràmetres. D’aquesta manera, s’obtindrà un mapa amb diverses regions pintades de diferents colors segons el valor que tingui la variable d’estat en aquella zona. En convertidors DC-DC si el diagrama es fa respecte a la tensió de sortida, és útil per a determinar per quins valors dels dos paràmetres s’obté la tensió desitjada.

En el diagrama amb tres dimensions, els eixos X i Y corresponen als dos paràmetres; mentre que l’eix Z correspon a la variable d’estat escollida. Així doncs, el diagrama 2D es pot entendre com la vista aèria del diagrama 3D.

A l’apartat 5.2.3 s’estudiaran diverses dinàmiques corresponents a circuits concrets d’electrònica de potència mitjançant diagrames de bifurcació.

1.5.2.3 Exemples d’Aplicació

Els exemples que es mostraran a continuació pretenen donar una idea de les diferents rutes que poden seguir els circuits d’electrònica de potència des d’un comportament periòdic fins al caos.

Les representacions dels següents exemples s’han realitzat a partir d’un programa híbrid entre el PSim i el Matlab. En els diagrames de bifurcació, apareixen discontinuïtats en les regió de comportament. Per exemple: a la figura 16 es poden observar talls en les diverses trajectòries; i també a la mateixa figura, per un tensió Vin pròxima a 24 V apareix un comportament caòtic en mig d’una trajectòria periòdica. Aquests fenòmens no són reals, sinó que estan provocats per errors de càlcul del PSim. Aquests errors es produeixen si els escombratges paramètrics són superiors als 10 valors.

Page 29: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

35

1.5.2.3.1 Convertidor Buck Controlat per Senyal PWM Regenerat per Senyal Rampa.

L’esquema elèctric del convertidor buck analitzat en aquesta secció es troba al plànol nº 1. L’anàlisi d’aquest convertidor es divideix en dos apartats: funcionament del circuit i representacions gràfiques (diagrames de bifurcació 1D, 2D i 3D). Les seccions dels altres exemples proposats segueixen la mateixa pauta.

1.5.2.3.1.1 Funcionament del Circuit

El circuit és un convertidor buck, per tant és una topologia reductora (la tensió a l’entrada és superior a la tensió de la sortida). S’ha dissenyat per a que a la sortida apareguin 12 V.

El convertidor està controlat per un senyal PWM que tanca o obre l’interruptor. En aquest circuit l’interruptor és un transistor MOSFET. El senyal PWM es genera a partir de la comparació d’un senyal rampa (Vramp) amb la tensió d’error, que és la diferència entre la tensió de sortida (V0) i la tensió de referència (Vref).

1.5.2.3.1.2 Representacions Gràfiques

A la figura 16, apareix el comportament de la tensió de sortida del convertidor buck per a diferents valors de la tensió d’entrada. En el marge de tensions de Vin entre 22 i 25 V el circuit respon d’una forma periòdica. A partir de 24,5 V, la tensió de sortida comença a bifurcar-se en dues branques (apareix un doblement de període) tal com es pot observar amb més detall a la figura 17. A continuació les dues branques es van separant cada cop més i al voltant dels 28 V ja s’observen dues trajectòries clares (figura 16). Abans d’arribar als 32 V de la tensió d’entrada, les dues trajectòries experimenten una altra bifurcació, tenint així quatre branques. Aquestes trajectòries es van mantenint fins a superar els 32 V, llavors s’entra en comportament caòtic.

Es pot concloure que per un marge de tensions d’entrada entre inferior als 24,5 V, la sortida té el comportament esperat per a un convertidor. Proporciona un nivell de tensió aproximadament de 12 V amb poques variacions. Entre 24,5 i 32 V, el circuit respon de forma subharmònica amb dues bifurcacions ( una als 25 V i l’altra abans dels 32 V) i per una tensió d’entrada superior als 32 V apareix el caos.

Page 30: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

36

Figura 16. Diagrama de bifurcació 1D agafant com a paràmetre la tensió d’entrada entre 22 i 36 V.

Figura 17. Detall de la primera bifurcació

A continuació, es representen alguns diagrames de bifurcació 2D i 3D. Com a paràmetres a escombrar s’han escollit la tensió d’entrada (Vin) i el guany de tensió (kv). En funció d’aquests es mostra la tensió de sortida (Vout).

Figura 18. Diagrama de bifurcació 2D agafant com a variable d’estat la tensió de sortida d’un convertidor buck.

Page 31: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

37

Figura 19. Diagrama de bifurcació 3D d’un convertidor buck. Vista aèria.

Figura 20. Diagrama de bifurcació 3D d’un convertidor buck, vist des de sota.

Page 32: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

38

A la figura 18, es mostra un diagrama de bifurcació 2D corresponent al convertidor buck del plànol nº 1. La zona de color verd és la idònia pel que fa al funcionament del circuit, en la qual la tensió de sortida oscil·la al voltant dels 12 V. La zona negra correspon al comportament caòtic, que en situacions habituals cal evitar. Per a valors de kv inferiors a 8, es forma una zona carbassa en el que el circuit té un comportament quasi- periòdic. En el diagrama també apareix una zona blau cel que representa un comportament periòdic, però de tensió mitjana inferior als 12 V.

A la figura 19 s’observa una vista aèria d’un diagrama de bifurcació 3D del convertidor buck del plànol nº 1. La regió en que el diagrama és pla, el circuit té un comportament periòdic. Mentre que on apareixen muntanyes, el convertidor es comporta de forma caòtica. Per a uns valors de Vin pròxims a 36 V i kv del voltant de 7, es produeixen algunes bifurcacions corresponents al règim quasi- periòdic.

El diagrama de la figura 19 es pot observar des d’un altre angle, tal com apareix en la figura 20. En aquesta nova vista s’aprecia d’una forma més clara la bifurcació que té el circuit per a Vin al voltant dels 28 V i kv al voltant de 7. Després, el diagrama segueix dues trajectòries fins a tornar-se a bifurcar per una tensió d’entrada una mica superior a 34 V i un guany de tensió igual. A continuació, segueix quatre trajectòries fins a arribar al caos.

1.5.2.3.2 Convertidor Boost Controlat per Senyal PWM Regenerat per Senyal Rampa.

1.5.2.3.2.1 Funcionament del Circuit El circuit del plànol nº 2 és un convertidor elevador – tensió de sortida superior a la

tensió d’entrada – en que un senyal PWM controla un MOSFET, que actua com a interruptor.

El control és de tipus mode tensió, en el qual es comparen la tensió del senyal rampa més una mostra del corrent de la bobina amb la tensió d’error (Vref - Vo). A partir d’aquesta comparació es genera el senyal PWM.

1.5.2.3.2.2 Representacions Gràfiques A la figura 21, apareix un diagrama de bifurcació 1D en el que s’agafa com a

paràmetre l’amplitud de la rampa (Vramp) i en funció d’aquest es pot observar l’evolució del corrent de la bobina (I(L1)). A la figura 22 es pot veure en detall la bifurcació que experimenta el circuit.

El comportament del circuit és el següent:

• Per una tensió de rampa entre 1 i una mica superior a 0,62 V, el circuit té un comportament periòdic. Per aquest marge de valors, s’obté el comportament esperat per un convertidor.

• Per un valor de tensió rampa d’entre 0,62 i 0,63 apareix una bifurcació. Aquest succés es pot veure amb més detall a la figura 22. A partir d’aquest valor, el diagrama segueix dues trajectòries que es van separant fins arribar a dos nivells (9.5 i 8 A) i romandre constants.

Page 33: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

39

• Si la tensió rampa va disminuint, apareix un comportament caòtic. Primer s’observa que les dues branques que tenen una intensitat constant van augmentant de gruix. Quan arribaren a una tensió de la rampa de 0,2 V, llavors s’ajunten en una sola branca.

Figura 21. Diagrama de bifurcació 1D agafant com a paràmetre l’amplitud de la tensió rampa.

Figura 22. Detall de la bifurcació del diagrama 1D de la figura 21

Figura 23. Diagrama de bifurcació 2D d’un convertidor boost controlat per senyal PWM regenerat per rampa.

Page 34: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

40

Figura 24. Diagrama de bifurcació 3D d’un circuit boost controlat per senyal PWM regenerat per rampa

Les figures 23 i 24 representen el comportament del convertidor boost controlat per senyal PWM regenerat per rampa del plànol nº 2 en la variació de dos paràmetres. El primer paràmetre és l’amplitud de la rampa (Vramp) i el segon és el valor de la resistència de càrrega (R). L’interval de variació del primer paràmetre és el mateix que l’utilitzat en el diagrama de bifurcació de la figura 22 (de 0,61 a 0,65 V); mentre que pel segon, l’escombratge és entre 8 i 13 Ω. S’han escollit aquests marges de valors per observar amb detall el fenomen de doblement de període i per aquest motiu no s’observarà el comportament caòtic que es dóna – com es veu en la figura 21 – per valors de la rampa inferiors a 0,6 V.

A la figura 23, es mostra un diagrama de bifurcació 2D del convertidor boost. En ella es pot observar que per valors pròxims a 0,60 V de tensió rampa i 8 Ω de càrrega, el corrent a la bobina (I(L1)) té valors pròxims als 12 A. Si aquests dos paràmetres van augmentant, el corrent disminueix fins a arribar als 5 A (per una càrrega de 13 Ω i una rampa de 0,65 V). El convertidor boost està dissenyat de manera que introduint una tensió a l’entrada de 10 V a la sortida subministri 30 V i el corrent de la bobina tingui de valor eficaç 8,5 A. Aquest funcionament correspon a la regió verda de la figura 23.

A la figura 24 hi ha dibuixat un diagrama de bifurcació 3D. En aquest es pot observar millor el doblement de període que es produeix entre 13 Ω de càrrega i 0,64 V de tensió de rampa. Es pot concloure que augmentant la resistència de càrrega, la bifurcació es produeix

Page 35: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

41

1.5.2.3.3 Convertidor Boost Controlat per Senyal PWM Regenerat Mitjançant Control per Histèresis de Corrent.

1.5.2.3.3.1 Funcionament del Circuit El circuit del plànol nº 3 és un convertidor elevador, per tant té una tensió V0 més

gran que Vin, en condicions idònies de funcionament.

El control és per histèresis de corrent – tipus de control explicat en l’apartat 1.4.2 – en que la regeneració del senyal PWM s’obté de la comparació de la corrent de la bobina i dos corrents de referència, un màxim (Iref+) i un mínim (Iref-). Aquests dos corrents es calculen a partir d’un corrent de referència (Iref) i una tolerància. Com es pot apreciar al plànol nº 3, Iref és el resultat de fer passar la tensió d’error (Vref – V0) per una etapa de control PI (proporcional- integral) i després per una etapa de guany K.

1.5.2.3.3.2 Representacions Gràfiques Les gràfiques que es comentaran a continuació són extretes mitjançant la simulació

del circuit del plànol nº 3.

Les figures 25 i 26 s’han obtingut per un valor de M igual a 0,25 A. M és el corrent que es suma o es resta a Iref per a generar Iref+ i Iref-. Per a aquest valor de M, el circuit no experimenta un comportament caòtic: passa d’un comportament subharmònic a inestable. Les dues figures mostren dos diagrames de bifurcació 1D, en que el paràmetre escombrat és el guany de tensió (kv) de l’etapa de control. La diferència entre els dos diagrames és que en el de la figura 25 el mostreig del corrent de la bobina (I(RL1)) està realitzat a partir dels flancs ascendents del senyal PWM; mentre que el de la figura 26 està mostrejat amb els flancs descendents.

Figura 25. Diagrama de bifurcació 1D d’un convertidor boost controlat per histèresis de corrent. Mostreig per flanc

ascendent del senyal PWM.

Page 36: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

42

Figura 26. Diagrama de bifurcació 1D d’un convertidor boost controlat per histèresis de corrent. Mostreig per flanc

descendent del senyal PWM.

En els diagrames de les figures 25 i 26, es pot observar un doblement de període per un guany de tensió d’entre 4,36 i 4,37. A continuació les dues trajectòries es van separant fins que es produeix una discontinuïtat en el diagrama quan el guany de tensió val 4,38. Aquest fenomen apareix perquè el corrent de la bobina entra en MCD (en alguns moments arriba a zero) tal com es pot veure a la figura 25.

A les figures 27 i 28, apareixen un diagrama de bifurcació 2D i un 3D, respectivament. En els dos diagrames, la variable d’estat analitzada és el corrent de la bobina (I(RL1)) i els dos paràmetres escombrats són M (tensió en volts del marge d’histeresis sumat a Iref per obtenir els dos corrents de referència) i kv (el guany de tensió que amplifica l’error entre Vo i Vref). En ambdues figures es pot observar que per un guany de tensió superior a 4,34 es produeix un canvi de comportament: es passa d’una regió periòdica a una de règim caòtic, passant per un doblement de període. En la zona amb resposta periòdica (pintada als mapes de color blau cel), el corrent de la bobina és de 6 A. Mentre que en el comportament caòtic el corrent està acotat entre 9 i 5 A. Una altra observació a esmentar és que l’augment de l’interval d’histèresis i del guany de tensió avança l’aparició del doblement de període i del caos.

Figura 27. Diagrama de bifurcació 2D d’un convertidor boost controlat per histèresis de corrent. Mostreig per flanc

desscendent del senyal PWM.

Page 37: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

43

Figura 28. Diagrama de bifurcació 3D d’un convertidor boost controlat per histèresis de corrent. Mostreig per flanc

descendent del senyal PWM.

1.5.2.3.4 Circuit Multinivell Controlat per Senyal PWM Regenerat per Senyal Rampa

1.5.2.3.4.1 Funcionament del Circuit El circuit del plànol nº 4 té un comportament reductor, la tensió a la sortida (V0) és

inferior a la tensió d’entrada (Vin). Està dissenyat per a suportar tensions altes; per a les simulacions realitzades Vin val 800 V i a la sortida s’espera una tensió del voltant de 500 V.

Per tal de suportar aquestes tensions, s’ha elaborat una estructura multinivell. Aquesta està composta per dos interruptors que han d’aguantar la meitat de la tensió d’entrada (en aquest cas 400 V). Per aconseguir aquesta repartició de tensions, es col·loca un sensor de tensió als terminals del condensador, obtenint així la tensió que suporta l’interruptor (MOSFET) S2. Aquesta tensió es compara amb la meitat de Vin. El resultat de la comparació (Vp) després d’haver passat per una etapa de control PI forma part del llaç de control.

El control utilitzat és el de mode corrent. El funcionament del llaç de control és el següent:

• S’agafa una mostra del corrent de la bobina i se li resta una tensió constant perquè es pugui tallar després amb la rampa. A l’esquema aquesta tensió apareix en forma d’ona sinusoïdal, per si se li vol afegir un petit arrissat.

Page 38: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

44

• A continuació, es multiplica per una constant ki. Aquesta constant s’utilitzarà com a paràmetre a variar en l’escombratge paramètric.

• Després, es generen les dues tensions de control (Vcon1 i Vcon2). La primera és la suma del senyal que surt de l’etapa de guany ki més el senyal Vp. La segona és la diferència entre les dues senyals anteriors. D’aquesta manera, es controla la repartició de la meitat de la tensió Vin per a cada interruptor.

• Finalment, s’obtenen els dos senyals PWM que controlen els dos interruptors. El senyal u1 – el que controla l’interruptor S1 – té un flanc ascendent quan la tensió Vcon1 supera la rampa Vramp1. Mentre que el rellotge CLK1, provoca un flanc descendent al final de cada període de Vramp1. El senyal u2 que controla l’altre interruptor funciona de manera anàloga, però els senyals Vramp2 i CLK2 estan desfasats 180º respecte a Vramp1 i CLK1 perquè els dos interruptors no commutin alhora. D’aquesta manera s’eviten pics de corrent que puguin destruir algun element del circuit.

1.5.2.3.4.2 Representacions Gràfiques En les figures 29 i 30 es mostra l’evolució de la tensió de sortida en funció del guany

de corrent ki. Com es pot observar, el pas de règim periòdic a quasi- periòdic en aquest circuit té forma d’embut i no es pot determinar un nombre concret de trajectòries en el comportament quasi- periòdic.

A la figura 30, es veu en detall que a partir d’un guany de corrent de 0,85 el circuit deixa de tenir un comportament periòdic i passa ser caòtic. D’altra banda, a partir de la figura 29 es pot observar que a mesura que augmenta el guany ki disminueix la tensió de sortida.

Figura 29. Diagrama de bifurcació 1D d’un circuit multinivell agafant com a paràmetre el guany de corrent ki

Page 39: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

45

Figura 30. Detall del pas de comportament periòdic a quasi- periòdic i a caòtic.

Figura 31. Diagrama de bifurcació 2D d’un circuit multinivell.

Figura 32. Diagrama de bifurcació 3D d’un circuit multinivell.

Page 40: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

46

A les figures 31 i 32 s’efectua un anàlisi paramètric amb dos paràmetres del circuit multinivell del plànol nº 4, aquests paràmetres són el guany de corrent (ki) i la resistència de càrrega (R).

A la figura 31, s’observa un diagrama de bifurcació 2D. La intensitat del mapa és funció de la tensió de sortida (Vo) del circuit. Es pot observar que per cada valor de la càrrega se subministra una tensió diferent a la sortida: a càrrega més alta, tensió superior. A la part inferior de la gràfica apareix un triangle negre corresponent a la zona de comportament caòtic.

A la figura 32, es mostra un diagrama de bifurcació 3D. En aquesta representació es pot observar una bifurcació que no té forma de doblement de període, sinó de con. El comportament quasi- periòdic apareix a la gràfica en forma de falca tombada. Dins dels marges representats, per estar en règim caòtic el valor mínim de guany de corrent ha de ser superior a 0,85 i el valor màxim de càrrega ha de ser 20,5 Ω. Cal destacar que disminuint la càrrega, la quasi- periodicitat apareix més aviat. Una altra observació que es pot fer és que en règim caòtic – dins dels marges en que s’estudien els dos paràmetres – la tensió de sortida no supera els 560 V ni baixa dels 490 V.

1.5.3 Pla i Espai d’Estats

El pla d’estats és una eina en la qual es pot determinar el comportament d’un circuit. Es construeix a partir de les variables d’estat del sistema – tensions o corrents – que són els eixos de representació utilitzats.

Si el comportament és periòdic, en la representació apareix una corba tancada. Si es produeix un doblement de període, la corba tancada té un encreuament. Per un comportament caòtic, en la gràfica es formen diverses corbes que es van tallant [9].

L’espai d’estats és un tipus de representació semblant però amb tres dimensions. Un d’aquests tres eixos també pot ser, a part d’una variable d’estat, un eix temporal.

A la figura 33 es mostra l’evolució del comportament de la tensió de sortida (V0) del convertidor buck del plànol nº 1 en funció de la tensió d’entrada (Vin).

Per un valor de Vin igual a 22 V, el circuit respon de forma periòdica, ja que en el pla d’estats hi apareix una òrbita (figura 33 a). Si s’augmenta la tensió fins a 25 V, llavors es produeix un doblement de període, tal com es pot apreciar en el pla d’estats en forma de dues òrbites (figura 33 b). Per Vin igual a 32 V, el període de la tensió es quadruplica formant en el pla d’estats quatre òrbites (figura 33 c). Finalment, per una tensió a l’entrada de 35 V el convertidor entra en règim caòtic. En el pla d’estats aquest comportament es representa amb incomptables corbes que es van tallant (figura 33 d).

Page 41: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

47

a)

b)

c)

d)

Figura 33. Evolució dels plans d’estats d’un convertidor buck controlat per senyal PWM. a) Vin = 22 V, b) Vin = 25 V, c) Vin = 32 V i d) Vin = 35 V.

A la figura 34, es representa un espai d’estats corresponent al convertidor buck del plànol nº 1. Les constants del circuit són les mateixes que tenia el pla d’estats de la figura 33 b, en la que la tensió d’entrada Vin era de 25 V. A la gràfica es pot veure un doblement de període amb tres dimensions.

Figura 34. Espai d’estats corresponent a un convertidor buck controlat per senyal PWM. Per Vin = 25 V.

A la figura 35 es representa un pla d’estats corresponent al convertidor boost controlat per senyal PWM regenerada per histerèsis de corrent dibuixat al plànol nº 3. El guany de tensió kv en aquesta representació és de 4,4.

Page 42: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

48

A la gràfica es pot observar que el pla d’estats té dues òrbites que es tallen al voltant dels 20 V de tensió de sortida i entre els 2 i 4 A de corrent de la bobina (I(RL1)). Per tant, el circuit presenta un doblement de període per aquest valor del guany de tensió.

Figura 35. Pla d’estats d’un convertidor boost controlat per histèresis. Per kv = 4,4.

1.5.4 Secció de Poincaré

En moltes situacions és millor analitzar de forma discreta un sistema de temps continu si es pot expressar de tal manera [9]. Aquest mètode va ser desenvolupat per Henri Poincaré. De forma senzilla, es pot definir com la discretització d’un pla d’estats.

Pel que fa al mostreig, es realitza de la mateixa forma que en els diagrames de bifurcació. Per un sistema de període conegut, s’agafa com a període de mostreig el període de la rampa. Per un sistema de període desconegut, s’avalua el senyal PWM que controla l’interruptor i s’agafa una mostra per a cada flanc ascendent o descendent.

Es pot establir una correspondència entre el comportament del sistema, el pla d’estats i la secció de Poincaré, tal com es pot veure a la taula 1.

Aquest tipus de representació també es pot construir a partir de mostrejar tres variables d’estat, llavors rep el nom de secció de Poincaré 3D.

Comportament Pla d’estats Secció de Poincaré

Periòdic Una òrbita tancada Un punt

Doblement de període Dues òrbites tancades Dos punts

Multiplicació del període per quatre

Quatre òrbites tancades Quatre punts

Caòtic Òrbites que es van tallant Núvol de punts

Taula 1. Correspondència entre comportament del sistema, pla d’estats i secció de Poincaré.

Page 43: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

49

A la figura 36 apareix un atractor estrany obtingut a partir d’una secció de Poincaré 2D del convertidor buck del plànol nº 1. La tensió d’entrada s’ha fixat a 35 V en la qual el circuit té un comportament caòtic. El resultat d’aquest tipus de comportament en la secció de Poincaré és un núvol de punts.

Aquesta forma rep el nom d’atractor estrany perquè siguin quines siguin les condicions inicials del circuits, en règim estacionari la resposta sempre es tendeix cap a la zona pintada de color rosa. És a dir, es dóna el fenomen de que unes zones del pla V-I atrauen la resposta en règim caòtic cap a elles [3], [9].

Figura 36. Atractor estrany obtingut en una secció de Poincaré 2D d’un convertidor buck Per Vin = 35 V

A la figura 37, es representa una secció de Poincaré 2D del convertidor boost controlat per senyal PWM regenerat per rampa del plànol nº 2. En aquesta gràfica l’amplitud del senyal rampa és de 0.1 V. La figura ens mostra un núvol de punts, per tant es pot concloure que el circuit té un comportament caòtic per aquesta amplitud del senyal rampa.

Figura 37. Secció de Poincaré 2D d’un convertidor boost controlat per senyal PWM. Per una amplitud de la rampa igual

a 0.1 V.

Com a últim exemple de gràfiques per a l’anàlisi no lineal de circuits d’electrònica de potència es pot observar la figura 38. En ella es representa un secció de Poincaré amb tres dimensions. Correspon al circuit multinivell del plànol nº 4 per un guany de corrent ki igual a 0,9. Els tres eixos de la gràfica són la tensió de sortida (V0), la tensió d’error entre les dues tensions dels dos interruptors (Vp) després d’haver passat per un control PI i el corrent de la bobina (I(L1)).

Page 44: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

50

El comportament del circuit és caòtic, ja que es forma una corba. Si fos periòdic apareixeria un únic punt i si fos subharmònic, un nombre finit de punts. Per exemple, per un doblement de període hi hauria dos punts a l’espai i per a quatre trajectòries, quatre punts.

Figura 38. Secció de Poincaré 3D d’un circuit multinivell. Per a ki = 0,9.

1.5.5 Representacions d’una Variable Respecte al Temps.

Representar una variable d’estat respecte al temps és manera senzilla d’observar les diferents dinàmiques dels circuits. Segons la forma d’ona, es pot afirmar si el circuit experimenta un comportament periòdic, quasi- periòdic o caòtic.

Les gràfiques de la figura 39 corresponen a un comportament quasi- periòdic d’un convertidor buck (plànol nº 1). En totes dues gràfiques, el període de les variables d’estat es multiplica per quatre. A la figura 39 b – en la que el senyal està mostrejat – es poden observar els quatre nivells de tensió que confirmen que el període s’ha quaduplicat.

a)

b)

Figura 39. Tensió de sortida d’un convertidor buck en funció del temps (Vin = 32 V). a) sense mostrestreig. b) amb mostreig.

Page 45: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

51

A la figura 40, es poden observar dues gràfiques corresponents al règim caòtic d’un convertidor boost controlat per rampa (plànol nº 2). Aquestes gràfiques estan extretes del començament del caos després d’un doblement de període. Però com es pot observar a la figura 40 b, el corrent no té dos nivells d’intensitat fixes, sinó que apareix un núvol de punts.

a)

b)

Figura 40. Corrent de la bobina en funció del temps en un convertidor boost controlat per rampa. a) no mostrejat. b) mostrejat.

A la figura 41, es mostra un doblement de període en un circuit boost controlat per histèresis (plànol nº 3). Aquest doblement de període s’anula el corrent de la bobina, per tant el circuit entre mode de conducció discontinu.

a)

b)

Figura 41. Corrent de la bobina en funció del temps en un convertidor boost controlat per histèresis. a) mostrejat. b) no

mostrejat.

A la figura 42, apareix un comportament període i un de caòtic en un convertidor multinivell (plànol nº 4). Com es pot observar pas entre les dues dinàmiques es molt ràpid en aquest circuit: el primer correspont a un guany ki igual a 0,86 i en el segon ki val 0,87.

Page 46: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

52

a)

b)

Figura 42. Tensió de sortida en un convertidor multinivell. a) règim periòdic (ki= 0,86). b) règim caòtic (ki= 0,87)

Page 47: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

1.6 Entorn PSim

1.6.1 Introducció al PSim

Com ja s’ha esmentat en la introducció, el programa híbrid utilitza el programa PSim per a implementar i simular els circuits. La versió utilitzada és la versió demo 6.0, que es pot obtenir des de la pàgina web de Powersim Inc. [5]. A continuació es comentaran breument els aspectes més importants d’aquest programa.

El PSim és un programa de simulació de circuits de potència. Aquests es poden construir a partir de la combinació de diversos elements predeterminats. Com per exemple: resistències, condensadors, bobines, fonts de tensió contínua, generadors sinusoïdals, triangulars, d’ona quadrada, díodes, tiristors, biestables, comparadors, sumadors, posta a terra, etc. Un cop elaborat el circuit s’ha de col·locar un provador en alguna part del circuit. N’hi ha de tes tipus: amperímetre, voltímetre amb dos terminals i voltímetre amb un terminal ( la tensió que mesura està referenciada a terra ). Un cop introduït un o diversos provadors, ja es pot simular el circuit. La forma d’ona de la variable d’estat escollida apareixerà representada automàticament en una altra finestra anomenada SIMVIEW.

1.6.2 Pantalla de Disseny de Circuits

En executar el PSim apareix la pantalla de disseny de circuits (figura 43). Per crear un nou esquema, s’ha seleccionar el menú File, i després al submenú New. Un cop fet això, apareix una finestra en blanc a sobre de la qual s’hi han de col·locar els diferents components del circuit i connectar-los entre ells. Després d’haver introduït un provador, ja es pot simular el circuit. La simulació es pot iniciar des del menú Simulate, seleccionant l’opció Run Simulation, o clicant sobre el quadre marcat en la figura 43, o bé prement F8. Un cop acabada la simulació, automàticament apareix la pantalla de representació SIMVIEW.

Figura 43. Pantalla del PSim

Page 48: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

54

1.6.3 Pantalla SIMVIEW

La pantalla SIMVIEW (figura 44) apareix cada vegada que s’acaba una simulació de PSim, però també es pot executar prement el quadre de la dreta del botó d’inici de simulació a la barra d’eines i també es pot executar des de fora del PSim. En ella s’hi pot dibuixar qualsevol variable que s’hagi marcat amb un provador.

A part de veure el resultat de la simulació que acaba de finalitzar, també es poden veure gràfiques de simulacions passades. Això s’aconsegueix seleccionant el menú File i després Open. Llavors, apareix una finestra des de la qual es pot cercar el nom del fitxer a obrir. Aquest serà un fitxer de text, ja que el PSim quan acaba la simulació guarda les dades en un document d’aquest tipus.

Des del menú Screen, es poden introduir més corbes sobre la mateixa finestra, quedant superposades i també eliminar-les. A més es poden afegir noves finestres i eliminar la que està seleccionada.

Des del menú Measure, es pot obtenir el valor de cada variable en un instant determinat, el seu valor màxim i mínim (locals o generals). També el valor mitjà del senyal i el valor eficaç (RMS). A més, prement el botó FFT s’obté la transformada de Fourier de tots els senyals de la pantalla i es pot recuperar la representació en el domini temporal prement el botó on hi ha dibuixat un rellotge.

Figura 44. Pantalla SIMVIEW

Page 49: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

55

1.6.4 Control de la Simulació

Per definir l’interval de temps de la simulació s’ha d’utilitzar l’element Simulation Control que es troba al menú Simulate de PSim. En seleccionar aquesta opció apareix el rellotge de la figura 45 que s’ha de inserir a l’esquema del circuit.

Figura 45. Dibuix referent al control de simulació

Quan el rellotge ja es troba dins el circuit, llavors apareix el quadre de diàleg de la figura 46. En ell es poden ajustar els paràmetres temporals de la simulació. Els de més interès són els següents:

• Time step, és l’increment temporal en segons entre dos punts de càlcul consecutius. Com més petit sigui la simulació s’ajustarà millor a la realitat.

• Total time, és l’instant de temps en que s’acaba la simulació.

• Print time, és l’instant de temps en el qual els resultats de la simulació es comencen a guardar en el fitxer de sortida. Encara que abans d’aquest instant no es guarda cap dada, la simulació sempre comença des de zero.

• Print step, el nombre que s’introdueix a aquest camp indica un de cada quants punts de càlcul es guarden en el fitxer de sortida. Per exemple, si el time step valgués 1 µs i el print step 10, l’interval temporal entre punts que es representarien després en el SIMVIEW seria de 10 µs. Aquest paràmetre es pot usar pel mostreig d’un senyal.

En la versió demo 6.0, en el fitxer de sortida tant sols es poden escriure 6 000 punts.

Figura 46. Quadre de diàleg per ajustar el temps de simulació

Page 50: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

56

1.6.5 Escombratge Paramètric

Per tenir l’evolució del comportament del circuit en funció d’un element d’aquest s’usa l’escombratge paramètric. Aquest element es pot obtenir seguint la següent ruta: menú elements, other i .paramsweep. Llavors, apareix el quadrat de la figura 47 i s’ha d’inserir al circuit.

Figura 47. Dibuix referent a l’escombratge paramètric

Seguidament, apareix un quadre de diàleg (figura 48) per definir els valors de l’escombratge. Aquests són:

• Name: identificador de l’element.

• Start value: valor inicial de l’escombratge.

• End value: valor final de l’escombratge.

• Increment step: diferència entre dos punts consecutius de l’escombratge. A l’exemple de la figura 48, l’escombratge està preparat per simular el circuit per a cinc valors diferents de la resistència Ro

• Parameter to be swept: nom del paràmetre a escombrar. Per exemple, si volem escombrar el valor d’una resistència aquest nom també s’haurà d’introduir en el camp resistance d’aquesta.

Figura 48. Quadre de diàleg per ajustar els valors per a l’escombratge paramètric

En el PSim, no es poden escombrar el valor d’una font de tensió o l’amplitud d’un senyal sinusoïdal, quadrat o triangular, però sí que es pot escombrar el guany d’un bloc proporcional. Per tant, es pot intercalar un d’aquests blocs entre els elements anteriors i la resta del circuit i escombrar un dels anteriors paràmetres indirectament.

El PSim tampoc no pot escombrar dos paràmetres alhora, així doncs per fer-ho s’hauran de crear diferents fitxers de PSim i simular-los per separat. D’altra banda, la versió demo 6.0 només pot realitzar un escombratge per uns 200 valors.

Page 51: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

57

1.6.6 Fitxers Generats pel PSim

1.6.6.1 Fitxer de Dades

El fitxer de dades és el fitxer de sortida que és genera automàticament mentre es simula un circuit de PSim i després l’obre el SIMVIEW per representar el resultat de la simulació. El fitxer de dades té el mateix nom que el fitxer de PSim amb l’esquema elèctric del circuit. És un fitxer de text amb extensió .txt.

A la primera fila del fitxer apareix el nom time i després tots els noms de les variables que es volen mesurar i que s’han marcat amb un provador. Les següents files mostren els valors de cada variable en funció del temps (primera columna). En un escombratge paramètric, el fitxer té diversos blocs de números, dels quals cadascun correspon a un valor del paràmetre; tots tenen el mateix número de columnes. Aquests blocs es col·loquen cadascun sota de l’anterior i se separen amb un línia divisòria.

1.6.6.2 Fitxer Amb la Llista d’Elements

El fitxer amb la llista d’elements és un fitxer de text – amb extensió .cct – que conté tots els elements del circuit i tots els valors dels seus paràmetres. Aquest fitxer no es genera automàticament sinó que ho ha de fer l’usuari. Per fer-ho s’ha de desplegar el menú simulate i seleccionar l’opció generate netlist file. El fitxer adopta el mateix nom que el fitxer de PSim.

S’ha de tenir la precaució de generar-lo abans d’iniciar la simulació del circuit, ja que aquesta acció esborra el contingut del fitxer de dades.

Page 52: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

1.7 Entorn Matlab

1.7.1 Introducció al Matlab

El programa híbrid està implementat amb codi Matlab en la versió 6.1 [4]. Matlab és l’abreviatura de MATrix LABoratory, ja que totes les dades en que treballa són matrius. A la figura 49 es mostra la pantalla inicial del programa. En ella hi apareix el command window, on l’usuari pot escriure línies d’ordres des del teclat i s’executen prement enter.

Figura 49. Finestra inicial del Matlab versió 6.1

Escrivint help al command window apareix una llista amb directoris que contenen programes amb Matlab predefinits que l’usuari pot utilitzar. Si al costat d’aquesta ordre s’hi escriu un nom, es busca una instrucció anomenada d’aquesta manera. En cas de que existeixi, es presenta per pantalla una breu descripció del que fa aquesta ordre i com s’ha d’usar.

Des del menú view es pot obri la finestra workspace. Allí es guarden totes les variables que s’escriuen en el command window. Per esborrar totes aquestes variables es fa mitjançant la instrucció clear all escrita en el command window.

1.7.2 Tipus de Dades

En Matlab es poden definir nombres reals, complexos i caràcters; encara que tots ells són tractats com a matrius. Les cadenes de caràcters pera ser considerades com a tal han d’anar entre dos apòstrofs. Per exemple: ‘a’ s’interpreta com un caràcter, mentre que a com una variable. Existeix una funció per passar d’una cadena de caràcters a un nombre natural inclòs el zero, aquesta és str2num [11].

Page 53: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

60

Es poden definir variables com a escalars (taules 1x1), vectors fila (taules 1xN), vectors columna (taules Nx1) i matrius (taules MxN) que poden contenir valors dels tres tipus que s’han vist abans.

Per exemple, si es vol accedir a la posició definida per la fila 4 i la columna 2 de la variable taula, o a tota la tercera fila, o bé a tota la segona columna; s’haurien d’escriure la següents instruccions, respectivament:

taula(4,2) taula(3,:) taula(:,2)

Codi 1. Exemple de selecció a diferents parts d’una matriu.

A més, es poden definir estructures per agrupar dades i tenir-les ordenades. Aquestes poden tenir diversos camps i es pot accedir a ells seguint la següent sintaxi:

nom_estructura.nom_camp

Codi 2. Instrucció per a accedir a un camp d’una estructura.

1.7.3 Programació en Matlab

1.7.3.1 Operacions

El Matlab permet les operacions bàsiques aritmètiques i matricials entre variables del mateix tipus [11]. Aquestes s’escriuen amb els següents operadors: + (suma), - (resta), * (multiplicació), / (divisió), \ (divisió a l’esquerra), ^ (potència), ’ (transposició complexa), .’ (transposició). La multiplicació, els dos tipus de divisió i la potència es fan de forma matricials; si es vol fer element a element n’hi prou amb col·locar un punt al davant. Per agrupar operacions i indicar prioritats de càlcul es poden utilitzar parèntesis.

Unes altres operacions que es poden utilitzar són les de relació entre matrius i les lògiques, si són certes retornen ‘1’ i sinó ‘0’. Les operacions de relació són: == (igual a ), < (més petit que), <= (més petit o igual a), > (més gran que), >= (més gran o igual a) i ~= (diferent a). Mente que les lògiques són: & (i), | (o), ~ (negació).

També es poden utlitzar funcions trigonomètriques com el cosinus (cos), el sinus (sin), la tangent (tan) i l’arctangent (atan). A més de les respectives formes hiperbòliques introduint una h al costat de cada funció.

1.7.3.2 Instruccions de Control de Flux del Programa

1.7.3.2.1 Control Lògic

D’instruccions de control lògic n’hi ha de dos tipus:

• Sentència if / elseif / else: és el regulador de flux de programa bàsic. La seva sintaxi es mostra en el codi 3. Funciona de la següent manera: si es compleix la condició 1 s’executa el bloc de codi 1 i salta a la instrucció de sota l’end.

Page 54: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

61

En cas contrari, s’avalua la condició 2 i si es compleix s’executa el bloc 2, sinó el bloc 3. Després d’executar-se el bloc corresponent, es salta a la instrucció de sota l’end. Tan sols es ot executar un dels tres blocs.

if condicio1 bloc1 elseif condicio2 bloc2 else bloc3 end

Codi 3. Exemple de sentència if-elseif-else.

• Sentència switch / case / otherwise. Té una sintaxi semblant a la sentència if-elseif-else, tal com es pot veure al codi 4. Al costat de switch, si d’escriure el nom d’una variable (escalar o cadena de caràcters). A continuació, aquesta variable es compara amb un valor fixat al costat de case; si són iguals s’executa el bloc que conté a sota i salta a la instrucció de després de l’end, sinó avalua el cas següent. Si el valor de la variable no era igual a cap dels valors prefixats, llavors s’executa el bloc que hi ha a sota de otherwise.

switch variable case valor1 bloc1 case valor2 bloc2 otherwise bloc3 end

Codi 4. Exemple de sentència switch-case-otherwise.

1.7.3.2.2 Bucles Iteratius Els dos tipus de bucles iteratius que es poden trobar en Matlab són els següents:

• Sentència for. Aquesta instrucció repeteix una sèrie de comandes un nombre de determinat de vegades. La seva sintaxi és la del codi 5.

for var = m:s:n bloc1 end

Codi 5. Exemple de sentència for.

Les comandes del bloc 1 s’executaran una vegada a cada pas utilitzant el valor actual de la variable. La variable var adoptarà el valor inicial (m) quan s’executi la sentència for per primera vegada. Aquesta variable anirà incrementant amb el valor s, fins a arribar al valor n.

• Sentència while. El codi 6 correspon a un exemple amb un bucle while. El bloc 1 s’executarà fins que l’expressió lògica deixi de complir-se. Si en un principi ja no es complia, el bloc 1 no s’executa cap vegada.

Page 55: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

62

while expressió lògica bloc1 end

Codi 6. Exemple de sentència while.

1.7.3.3 Fitxers *.m

Els fitxers *.m són els fitxers on s’escriuen els programades que executa Matlab. Són fitxers de text en ASCII que poden ser creats des de qualsevol editor de textos. Matlab porta el seu propi editor. Es poden crear a partir del menú file, new, m-file o escrivint a la línia de comandes edit nom.m . Un cop creats es poden cridar des de la línia de comandes introduint el seu nom o bé des d’altres fitxers *.m. També es poden executar des de l’editor de fitxers.

N’hi ha de dos tipus: els scripts i les funcions. Els scripts no admeten paràmetres d’entrada o de sortida, treballen sempre amb les dades existents al workspace. Són útils per quan es vol automatitzar una seqüència de comandes que s’han d’executar moltes vegades. Les variables creades en aquests fitxers són accessibles des del command window, per tant treballen amb variables globals. En canvi, les funcions admeten paràmetres d’entrada o de sortida. Tenen el seu propi workspace i totes les variables són internes (locals) per defecte. Són útils per ampliar el llenguatge Matlab amb aplicacions pròpies.

1.7.3.4 Manipulació de Fitxers de Dades

El Matlab té diverses instruccions que permeten manipular fitxers de dades. Les més habituals són les següents:

• save: permet guardar les variables del workspace en un fitxer *.mat (fitxer binari on Matlab guarda les seves dades).

• load: carrega les variables d’un fitxer *.mat al workspace.

• fopen: obre un fitxer extern a Matlab. La seva sintaxi és la del codi 7, en el qual fid és una variable on es guarda un número enter (proporcionat per Matlab) que identifica el fitxer. El primer paràmetre d’entrada és el nom del fitxer que ha de contenir la seva extensió (.txt, .dat, etc.) i el segon, indica el mode en que es vol obrir: ‘r’ (en mode lectura), ‘w’ (per escriure al damunt) i ‘a’ (per escriure a continuació del que hi havia).

fid = fopen(‘filename.ext’,’mode’) Codi 6. Exemple per obrir un fitxer extern a Matlab

• fclose: tanca un fitxer extern a Matlab. Necessita com a paràmetre d’entrada la variable identificadora del fitxer.

• fread: llegeix dades en binari d’un fitxer i les escriu en una matriu. Té la sintaxi del codi 7.

[A,count] = fread(fid,size,precision) Codi 6. Exemple per obrir un fitxer extern a Matlab

Page 56: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

63

A és la matriu que conté les dades llegides, count és el número d’elements llegits (opcional), fid és l’identificador del fitxer a llegir, size és el número màxim d’elements a llegir (opcional) i precision és una cadena de caràcters que conté el tipus de dades a llegir (int8, int16, int32, int64, uint8 ..., float32 ..., double).

• fscanf: llegeix dades amb format (no binàries) d’un fitxeer i les escriu en una matriu. Té els mateixos paràmetres d’entrada i de sortida que el fread.

• fwrite: escriu les dades d’una matriu en binari a un fitxer. Els seus paràmetres d’entrada són per aquest ordre: l’identificador del fitxer a escriure, la matriu que conté les dades a escriure i el tipus de dades a escriure. Com a paràmetre de sortida té el número d’elements escrits.

• fprintf: escriu les dades d’una matriu amb format (no binàries) a un fitxer. Té un únic paràmetre de sortida: el número d’elements escrits i tres d’entrada. Aquests d’esquerra a dreta són l’identificador del fitxer a escriure, el format en que s’han d’escriure les dades i la matriu que conté les dades.

1.7.4 Gràfiques

1.7.4.1 Gràfiques Bidimensionals

La funció plot representa una corba en dues dimensions. Els seus paràmetres d’entrada són un vector de dades que forma l’eix d’abscisses, un altre vector d’igual llargada que forma l’eix d’ordenades i opcionalment atributs que determinen el color de la línia, el seu estil (contínua, de punts, traç i punt o discontínua) i si es volen utilitzar marcadors (punts, cercles, creus, quadrats, diamants, etc.) . A part, es pot configurar la grandària dels marcadors afegint dues entrades més a la funció. La primera ha de contenir la cadena de caràcters markersize i la segona, un nombre real positiu que indiqui la grandària. Una altra funció que representa gràfiques bidimensionals és stem, però aquesta és per representacions discretes.

La funció contourf, dibuixa un mapa amb corbes d’intensitat. Té tres paràmetres d’entrada: un vector de longitud m que s’utilitzarà com a eix d’abscisces, un vector de longitud n que serà l’eix d’ordenades i una matriu n x m que determina les zones del pla i la intensitat. Per saber el valor numèric que té cada zona, s’usa la sentència colorbar. Aquesta funció dibuixa una barra – per defecte vertical a la dreta de la gràfica – que indica la intensitat del mapa. Per col·locar la barra en posició horitzontal, s’ha d’introduir la cadena de caràcters horiz com a paràmetre d’entrada.

La sentencia grid on crea una graella a la figura actual, mentre que grid off la desactiva. Si només s’escriu grid, canvia l’estat en que es troba la graella. Per afegir gràfiques en una mateixa figura, s’utilitza la instrucció hold on, per desactivar-la hold off i hold canvia l’estat actual. Per modificar el marge dels eixos, cal utilitzar la funció axis i introduir com a paràmetres d’entrada els valors numèrics mínim i màxim dels dos eixos. Mitjançant les funcions title, xlabel, ylabel i text es poden escriure anotacions a la gràfica.

Page 57: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

64

1.7.4.2 Gràfiques Tridimensionals

Les funcions de gràfiques 3D que es poden utilitzar són:

• mesh, surf: per gràfiques de superfícies.

• meshc, surfc: per gràfiques amb ombres projectades sota.

• meshz: per gràfiques de superfícies amb pla de referència.

• surfl: per gràfiques de superfícies il·luminades des d’un punt determinat.

1.7.5 Construcció Interactiva d’Interfícies d’Usuari (GUIDE)

El GUIDE (Graphic User Interface Development Environment) és una eina de que disposa Matlab per a crear finestres interactives. Per obrir-lo s’ha de seleccionar el menú file de Matlab (figura 49) i seguir la ruta new, GUI; o bé escriure la sentència guide al command window. Llavors, apareix la pantalla d’elaboració d’interfícies gràfiques (figura 50).

Figura 50. Pantalla per a l’elaboració d’interfícies gràfiques (GUIDE)

Per crear la interfície gràfica s’han de seguir dues fases:

1. Disseny de la figura. El disseny es realitza sobre la quadrícula grisa que apareix a la figura 50. En la qual si van col·locant els elements de la seva esquerra. Tipus d’elements:

• Push button: botó que quan es prem amb el ratolí provoca un event.

• Radio button: botó de selecció que permet marcar una sola opció d’entre les que apareguin.

• Checkbox: botó de selecció. Es diferencia del radio button en que permet múltiples seleccions

• Edit text: bloc de text en que l’usuari hi pot escriure.

Page 58: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

65

• Static text: bloc de text que mostra un escrit a la pantalla i no es pot modificar.

• Slider: barra de desplaçament que permet a l’usuari introduir un valor entre un marge de valors arrossegant-la amb el ratolí.

• Popup menu: caixa de selecció desplegable que permet escollir una opció.

• Frame: caixa que permet englobar diversos dels elements anteriors. S’usa per tenir un cert ordre entre els botons.

• Axes: eixos on es poden dibuixar gràfiques.

Un cop acabada la figura s’ha d’activar prement el triangle verd que apareix a la dreta de la barra d’eines del guide. Llavors, es creen dos fitxers: un amb extensió *.fig que conté la figura dissenyada i un fitxer *.m que s’ha de programar perquè els botons de la figura realitzin alguna tasca.

2. Programació del elements de la figura. El fitxer *.m generat pel guide controla la figura. En aquest fitxer s’han de programar les funcions de crida (callback functions) que té associat cada control.

Page 59: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

1.8 El Programa Híbrid

1.8.1 Aspectes Generals

El programa híbrid és un algorisme inplementat en codi Matlab Versió 6.1, que elabora representacions a partir d’un anàlisi no lineal de circuits. Aquest algorisme llegeix les dades generades en la simulació d’un circuit mitjançant el programa PSim i a partir d’elles dibuixa les figures. El programa híbrid és capaç de representar: diagrames de bifurcació (1D, 2D i 3D), plans d’estats, espais d’estat, seccions de Poincaré (2D i 3D), gràfiques de variables respecte el temps i gràfiques de variables mostrejades.

1.8.2 Primera Fase: Creació i Simulació de Circuits Mitjançant PSim

Abans d’executar el programa híbrid, s’ha de dissenyar l’esquema elèctric d’un circuit mitjançant el programa PSim. Aquest s’haurà de guardar al mateix directori on hi hagi els fitxers *.m de l’híbrid. Un cop acabat el disseny del circuit i abans de simular-lo es procedirà de la següent manera, segons el tipus de representació que es vulgui dur a terme:

• Diagrama de bifurcació 1D. Primer, s’ha de col·locar el bloc de l’escombratge paràmetric (.paramsweep) al circuit i configurar el paràmetre a analitzar, donant-li un nom, el valor inicial, el valor final i l’increment. En segon lloc, s’ha d’inserir el control de la simulació (simulation control) i configurar-lo. En tercer lloc, s’ha d’escollir la variable d’estat a analitzar – se li ha de donar un nom que no superi els 30 caràcters – i col·locar un provador al node (o entre els nodes) on s’hagi de mesurar. En quart lloc, segons sigui el període de mostreig per realitzar el diagrama s’ha de procedir d’una manera o d’una altra:

a) Període Conegut. És el cas en que es coneix a priori el temps de mostreig de la variable d’estat escollida. En convertidors DC-DC, aquest temps és el període del senyal rampa, si en té. A continuació, s’ha d’assignar un valor al time step i un altre al print step del simulation control. El primer indica el temps entre dos punts consecutius de càlcul, mentre que el segon indica un de cada quants punts de càlcul s’han de guardar al fitxer de dades. És interessant que el temps ente punts de càlcul sigui el menor possible per tenir una simulació més precisa. D’altra banda, s’ha de complir que el producte dels dos sigui igual al període de mostreig.

b) Període Desconegut. Quan el temps de mostreig del senyal no es coneix, és el cas de convertidors DC-DC en els que no hi ha senyal rampa (per exemple control per histèresis de corrent). Llavors, el mostreig el marquen els flancs d’un senyal digital que ha de tenir com a nivell alt 1 V i nivell baix 0 V. En convertidors DC-DC, aquest senyal ha de ser el que controla l’interruptor. Un cop determinat, s’ha de col·locar un provador on s’hagi de mesurar. Un comportament inestable no es pot representar, ja que l’interruptor no commuta i per tant no es produeixen flancs per mostrejar la variable d’estat.

En cinquè lloc, s’ha de generar el fitxer amb el llistat d’elements del circuit (Net List File). Finalment, ja es pot iniciar la simulació.

Page 60: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

68

• Diagrama de bifurcació 2D i 3D. Primer de tot s’han de seguir els mateixos passos que en el diagrama 1D. Després, s’ha de crear un altre fitxer idèntic al primer, però canviant el valor d’un paràmetre. El nom d’aquest segon fitxer ha de tenir la següent forma: circuit_2. A continuació, s’anirant generant els fitxers que faci falta per cobrir tot l’escombratge del segon paràmetre, seguint la pauta circuit_n pels seus noms. Per últim, simular aquests fitxers. El fitxer Net List només cal generar-lo pel primer fitxer. En mostreig amb període desconegut, no es pot donar el cas en que per a tots els valors del primer paràmetre en algun moment, el cicuit es torni inestable. Si es donés el cas, el programa híbrid no podria representar cap gràfica.

• Pla d’estats, espai d’estat i representació d’una variable respecte el temps. Aquestes tres opcions són les úniques que no necessiten mostreig. Primer, s’ha d’inserir el bloc Simulation Control i configurar-lo. Després, triar les variables d’estat que formaran part de la gràfica i col·locar els provadors corresponents. Per últim, simular el circuit. No cal generar el fitxer Net List.

• Secció de Poincaré (2D i 3D) i representació d’una variable mostrejada. S’han de seguir els mateixos passos que en les tres opcions anteriors, però abans de la simulació s’ha de preparar el circuit per al mostreig. Aquí també s’ha de diferenciar entre mostreig amb període conegut i desconegut. S’han de seguir els mateixos passos que en els diagrames de bifurcació en la pert de mostreig. No és necessari generar el fitxer Net List.

1.8.3 Segona Fase: Càrrega al Matlab de dades generades pel PSim

Un cop generats els fitxers de dades i fitxer Net List (si és necessari), ja es pot executar el programa híbrid. Aquest programa té dues versions: una que s’han d’escriure sentències al Command Window de Matlab (versió 1) i una altra en que l’usuari es communica de forma interactiva amb el programa a partir d’una succeció de pantalles (versió 2). En aquest apartat s’explicaran els passos a seguir en la primera versió, mentre que la segona es comentarà en el capítol 9.

En la versió 1, el programa està estructurat en diversos fitxers *.m de tipus scripts. Les variables que utilitzen aquests fitxers són accessibles des del Command Window de Matlab. Per tant, un cop el programa hagi acabat la seva tasca aquestes quedaran a disposició de l’usuari. Per iniciar el funcionament d’aquesta versió, l’usuari ha d’executar el fitxer hibrid.m. Llavors, apareixerà al Command Window una llista les quinze opcions que té l’híbrid.

Un cop escollida l’opció, es demana a l’usuari el nom de fitxer de dades generat per PSim a obrir, també s’ha d’escriure la seva extensió (.txt). A continuació, s’obre el fitxer de dades i es llegeix la primera línia. D’aquesta lectura, s’extreu el nombre de variables analitzades en el circuit i els seus noms. Llavors, es pregunta a l’usuari el nom de la variable o variables d’estat a analitzar. A partir del nom del fitxer de dades, es pot deduir el

Page 61: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

69

nom del fitxer Net List – ja que només canvia l’extensió – i obrir-lo si s’ha de representar un diagrama de bifurcació. Si s’ha d’efectuar un mostreig amb període desconegut, llavors es pregunta a l’usuari quina d’entre les variables d’estat que apareixen a la primera línia del fitxer de dades és la que s’ha d’utilitzar com a referència. A més, també es demana si el nostreig s’ha de dur a terme als flancs ascendents o descendents d’aquest senyal. En cas d’escombratge amb dos paràmetres (diagrames de bifurcació 2D i 3D), es demana a l’usuari el nom, el valor inicial, el valor final i l’increment del segon paràmetre (el que varia en cada fitxer de PSim). A partir d’aquesta informació, es pot deduir el nombre de fitxers de dades a obrir i es generen els seus noms. Com ja s’ha esmentat abans, els fitxers de dades han de seguir la pauta circuit_n. Mentre es van generan els noms dels fitxers, també es van obrint i es guarden els seus identificadors en un vector anomenat fid. Si algun fitxer no s’ha pogut obrir, el seu identificador val -1. Per tant, si el programa dóna un missatge d’error dient que no ha pogut obrir els fitxer de text, es recomana consultar el vector d’identificadors.

Una vegada acabada aquesta preparació, s’han de llegir els fitxers de text generats pel PSim i carregar les dades en una matriu. Aquesta matriu s’anomena data o data3d, en diagrames de bifurcació 2D i 3D. El procediment de càrrega de dades varia segons el tipus de representació. Si s’ha de realitzar d’un mosteig amb període desconegut, el mostreig es fa per codi. Es llegeix la columna del fitxer de dades corresponent a la variable de referència i es detecta on es produeixen els seus flancs. Una transició de 0 V a 1 V al senyal de referència, es considera un flanc ascendent; mentre que una transició de 1 V a 0 V és un flanc descendent. Segons s’hagi escollit mostreig per flanc ascendent o descendent, es carrega a la matriu de dades la fila on s’ha produït la transició corresponent. D’aquesta manera es va construint la matriu. En la resta de casos, es carreguen totes les files a la matriu de dades. Pel que fa a les columnes, en un diagrama de bifurcació, la primera columna del fitxer de dades (corresponent al temps) no es carrega mai, en la resta de representacions sí. En diagrames de difurcació 1D, es carreguen totes les columnes corresponents a les variables d’estat; mentre que en 2D i 3D, només es carrega la columna corresponent a la variable a analitzar. La matriu de dades està organitzada de tres formes diferents:

• Si l’opció escollida és un diagrama de bifurcació 1D, llavors es poden definir n blocs de llargada pts (punts mostrejats) que es van col·locant un al costat de l’altre. Aquests estan organitzats segons a la variable d’estat i al valor del paràmetre a que corresponen (figura 51). A l’exemple de la figura, s’ha efectuar un escombratge paramètric per a tres valors sobre dues variables d’estat. En aquest exemple, per accedir al bloc corresponent a la segona variable i al primer paràmetre, s’hauria de seleccionar la quarta columna (data(:,4)).

• Si l’opció escollida és un diagrama de bifurcació 2D o 3D, llavors es defineixen m x n blocs de longitud pts. Sent m el número valors del segon paràmetre, n el número de valors del primer paràmetre i pts el numero de punts mostrejats de la variable d’estat que s’esta analitzant. Aquests blocs estan organitzats segons als valors dels dos paràmetres als quals corresponen (figura 52). D’aquesta manera, per accedir al bloc corresponent al primer valor del primer paràmetre i al segon valor del segon paràmetre, s’haurà d’escriure la següent instrucció: data3d((pts+1):2*pts,1).

Page 62: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

70

• Si al contrari, la opció escollida és qualsevol que no sigui un diagrama de bifurcació, llavors la matriu de dades conserva la mateixa estructura del fitxer de text generat per PSim (figura 53).

Figura 51. Estructura de la matriu de dades (data) en un diagrama de bifurcació 1D.

Figura 52. Estructura de la matriu de dades (data3d) en un diagrama de bifurcació 2D o 3D.

Page 63: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

71

Figura 53. Estructura de la matriu de dades (data) quan no hi ha escombratge paramètric.

En el mosteig amb període desconegut, com que no es pot saber el número de punts mostrejats (pts), abans de carregar les dades es crea una matriu de zeros amb l’estructura corresponent segons l’opció. Com a llargada de cada bloc s’agafa la longitud que tindria sense mostreig.

Altres variables d’interès que es poden consultar al Command Window de Matlab són:

• El vector colheaders que conté el nom de cada columna del fitxer generat per PSim.

• L’estructura p1 (només en diagrames de bifurcació), la qual conté informació sobre el primer paràmetre de l’escombratge. Els seus camps són: el nom (p1.nom), el valor inicial (p1.ini), el valor final (p1.fi), l’increment entre valors consecutius (p1.inc), el numero total de valors de l’escombratge (p1.num) i un vector amb tots els valors (p1.vector).

• L’estructura p2 (només en diagrames de bifurcació 2D i 3D). Conté informació referent al segon paràmetre de l’escombratge. Té els mateixos camps que l’estructura p1 (p2.nom, p2.ini, p2.fi, p2.inc, p2.num i p2.vector).

• La variable pts, que conté el número de punts que corresponen a cada bloc de la matriu de dades. En els diagrames de bifurcació 2D i 3D a partir d’un mostreig amb període desconegut, aquesta variable reb el nom de pts_final.

• La matriu data_correc. En diagrames de bifurcació 2D i 3D en que el mostreig tingui el període desconegut, es genera aquesta matriu quan per algun bloc de la matriu data3d no hi ha dades i s’utilitza en la representació gràfica. Aquest fet es dóna quan per algun valor dels dos paràmetres, el senyal de referència no té flancs. Per exemple, en convertidors DC-DC quan l’interruptor no commuta (comportament inestable). La matriu corregida s’elabora a partir de la matriu de dades original eliminant totes les files de blocs en els que n’hi hagi un de buit. Es pot donar el cas en que totes les files continguin un bloc buit, llavors no es crea la matriu corregida. De totes maneres la matriu de dades original sempre queda a disposició de l’usuari.

Page 64: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

72

1.8.4 Tercera Fase: Representació Gràfica Mitjançant Matlab

Un cop les dades estan carregades al Matlab, ja es pot realialitzar la representació gràfica escollida. Primer de tot, l’usuari ha de configurar la resolució de la gràfica. Se li demanarà el número de particions horitzontals i el de verticals. Aquests dos valors s’introduiran en els dos primers arguments de la funció subplot de Matlab. Com més particions tingui la pantalla figura (figure) de Matlab, la gràfica serà més petita i tindrà més resolució.

Per representar els diagrames de bifurcació 1D, 2D i 3D s’usen les funcions plot, contourf i surf (respectivament). En representacions d’una variable respecte al temps (amb o sense mostreig), plans d’estat i seccions de Poincaré 2D s’utilitza la funció plot. Mentre que per espais d’estat i seccions de Poincaré 3D, la gràfica es genera mitjançant la funció plot3.

Quan la gràfica ja està dibuixada, l’usuari pot ajustar els eixos mitjançant la funció axis. Aquesta funció té com a arguments els valors mínims i màxims dels dos o tres eixos.

Page 65: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

1.9 Interfície Gràfica

1.9.1 Aspectes Generals

La segona versió del programa híbrid està format per successives pantalles de configuració i una pantalla de representació gràfica. Aquestes pantalles s’han elaborat mitjançant l’eina GUIDE (Graphic User Interface Development Environment) de Matlab. Aquesta versió és més cómode alhora de treballar-hi que la versió 1, però l’usuari que pot accedir a les variables que utilitza i entre elles la matriu de dades. D’altra banda, la versió 2 pot realitzar les mateixes representacions gràfiques que la primera versió. Abans de començar a executar el programa s’han de simular els circuits amb el PSim i guardar els fitxers de dades al mateix directori on hi hagi el fitxers *.m del programa, igual que en la versió 1.

1.9.2 Pantalles de Configuració

Per iniciar el programa s’ha d’executar el fitxer presentacio.m, llavors apareix la pantalla de la figura 54. Per passar a la següent pantalla, prémer amb el ratolí el botó continuar i per tancar el programa prémer sortir.

Figura 54. Pantalla de presentació.

La següent pantalla és el menú principal (figura 55). En aquesta s’ha d’escollir entre un diagrama de bifurcació amb un paràmetre (1D), un diagrama de bifurcació amb dos paràmetres (2D o 3D) i una altra representació. Després, apareix una pantalla amb els passos a seguir – com a recordatori – en la elaboració i la simulació del circuit en el PSim (figura 56). A continuació, l’usuari a d’introduir el nom del fitxer de dades a la pantalla d’inscripció del nom del circuit (figura 57).

Page 66: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

74

Figura 55. Pantalla del menú principal.

Figura 56. Pantalla amb instruccions sobre com usar el PSim

Figura 57. Pantalla d’inscripció del nom del fitxer de dades de PSim.

Page 67: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

75

Si s’ha escollit l’opció diagrama de bifurcació amb dos paràmetres al menú inicial, es mostrarà la pantalla de la figura 58. En ella si ha d’introduir el nom, el valor inicial, el valor final i l’increment entre valors consecutius del segon paràmetre de l’escombratge paramètric (el que va variant en cada fitxer de PSim).

Figura 58. Pantalla de captura d’informació del segon paràmetre en escombratges de dos paràmetres.

A continuació, apareixerà una de les tres últimes pantalles abans de carregar les dades dels fitxers de PSim i dibuixar les representacions gràfiques. Si al menú principal l’opció triada era diagrama de bifurcació amb un paràmetre, llavors l’última pantalla de configuració serà la de la figura 59. En aquesta finestra, s’ha de seleccionar la variable d’estat a representa en el diagrama. Després, s’ha de triar entre mostreig amb freqüència coneguda o desconeguda. Si és desconeguda, també s’ha d’escollir la variable de referència i el tipus d’avaluació del flanc (ascendent o descendent). També s’ha de configurar la ressolució de la gràfica (a més nombre de particions més ressolució). Per últim, prémer el botó acceptar i després de carregar-se les dades del fitxer de text, es dibuixarà el diagrama.

Figura 59. Pantalla de configuració en un diagrama de bifurcació 1D.

Page 68: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

76

Mentre que si l’opció escollida és diagrama de bifurcació amb dos paràmetres, llavors apareixerà la finestra de la figura 60. En ella s’han de configurar els mateixos elements que en la pantalla de la figura 59 i a més s’ha de triar en les dimensions (dues o tres) del diagrama de bifurcació.

Figura 60. Pantalla de configuració en un diagrama de bifurcació 2D o 3D

L’última pantalla de les tres que pot aparéixer és la de la figura 61. Primer s’ha d’escollir entre quatre grans blocs d’opcions, aquests són:

• Representació d’una variable respecte al temps. Dins d’aquest bloc s’ha de triar entre una representació amb la variable mostrejada o sense mostrejar. Si ha d’estar mostrejada, s’ha d’indicar el tipus de període de mostreig (conegut o desconegut) i si és desconegut, indicar avaluació per flanc ascendent o descendent. Finalment, s’ha de seleccionar la variable a representar d’entre les que es mostrin en el menú desplegable.

• Secció de Poincaré. En aquest bloc s’ha de triar entre mostreig amb període conegut i amb període desconegut. D’altra banda, també s’han d’indicar les dimensions de la secció de Poincaré: seran dues o tres. També cal seleccionar les variables a representar.

• Pla d’estats. En aquest bloc s’han d’escollir les dues variables que apareixeran en els eixos de la representació.

• Espai d’estats. El mateix que en el pla d’estats, però amb tres variables.

Abans de prémer el botó acceptar per obtenir la representació, s’ha de configurar la ressolució de la gràfica.

Page 69: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

77

Figura 61. Pantalla de configuració en representacions que no siguin diagrames de bifurcació.

1.9.3 Pantalla de Representacions Gràfiques

La pantalla de representacions gràfiques (figura 62) és la finestra que apareix després de qualsevol de les tres pantalles últimes de configuració (figures 59, 60 i 61). A la part central d’aquesta pantalla, es dibuixa la gràfica i part superior apareixen dos menús.

Figura 62. Pantalla de representacions gràfiques.

Page 70: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

78

1.9.3.1 Menú Fitxer

El menú fitxer té les opcions d’imprimir la figura, tancar-la i guardar-la de dues maneres diferents. La pot guardar com una figura de Matlab (extensió *.fig) o bé com una imatge (extensió *.bmp). Si es guarda com a imatge ocupa molta menys memòria, però després no es podrà obrir en el Matlab. El nom en que guarda la gràfica és el mateix que té el fitxer de dades de PSim. Cal tenir en compte quan es guardi la imatge si hi ha alguna altra gràfica amb el mateix nom, aquesta es perdrà.

1.9.3.2 Menú d’Opcions

El menú d’opcions té diverses utilitats per modificar la gràfica un cop representada, aquestes opcions són:

• Graella. Activa una xarxa sobre la gràfica o la desactiva, segons l’estat anterior. Utilitza les funcions grid on i grid off de Matlab.

• Girar 3D. En gràfiques en tres dimensions, permet fer girar la gràfica sobre els tres eixos. Si es selecciona per segona vegada, es desactiva el moviment en tres dimensions. Utilitza la sentència rotate3d on i rotate3d off de Matlab.

• Apropar. Permet ampliar la gràfica. El centre d’ampliació es tria clicant amb el ratolí sobre un punt de la figura. Es desactiva seleccionant-la una segona vegada. Usa la funció zoom on i zoom off de Matlab.

• Eixos. Permet a l’usuari configurar els eixos de la gràfica amb els números exactes. Per fer-ho apareix la finestra de la figura 63, en la qual es poen definir el valor màxim i el mínim dels tres eixos. El valors introduits en aquesta figura són els arguments d’entrada de la funció axis de Matlab.

• Redibuixar. Permet a la gràfica tornar a la forma inicial després d’haver patit modificacions amb les opcions apropar i eixos. Utilitza també la funció axis, però els arguments d’entrada són els valors dels eixos que tenia en un principi la gràfica.

Figura 63. Pantalla per a la modificació dels eixos d’una gràfica.

Page 71: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria Descriptiva

1.10 Conclusions

En el present projecte s’ha elaborat un programa híbrid entre PSim i Matlab que permet analitzar circuits d’una forma no lineal a partir de diversos tipus de representacions.

En l’estudi de dinàmiques no lineals s’han usat principalment els diagrames de bifurcació, ja que són l’única representació on es poden observar els diferents tipus de comportament en una sola gràfica i de manera contínua.

En el diagrama de bifurcació 1D, queda reflexada la repercussió que té la variació d’un paràmetre del circuit en el seu règim de funcionament. En el diagrama 2D, aquests canvis de comportament els provoquen la variació de dos paràmetres.

Com a novetat, el projecte aporta el diagrama de bifurcació 3D. En aquest diagrama es poden obsevar les bifurcacions provocades per dos paràmetres des de diversos angles.

El programa híbrid permet l’elaboració de diagrames de bifurcació de dues maneres diferents. El mostreig necessari per a la realització del diagrama pot ser amb període conegut o desconegut.

A part dels diagrames de bifurcació, el programa híbrid té diverses eines per analitzar circuits sense escombratge. Aquests són: el pla i espai d’estats, la secció de Poincaré 2D i 3D i la representació d’una variable d’estat en funció del temps (amb mostreig o sense).

Una de les característiques principals del programa híbrid és que permet analitzar qualsevol circuit creat amb el PSim.

En el present projecte, s’han desenvolupat dues versions del mateix programa destinades a dos perfils d’usuari diferent. La primera versió, està pensada per un investigador familiaritzat amb l’entorn de programació en Matlab. Les dades que es carreguen queden a disposició seva i les pot utilitzar per a altres representacions, per exemple en pot buscar la transformada de Fourier. Mentre que la segona versió, és més còmode d’usar, però les dades es perden un cop el programa ha acabat la seva tasca. Aquesta versió està pensada per a un usuari que s’inicia en l’estudi de comportament no lineal de circuits i amb un coneixement bàsic de Matlab.

Page 72: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

2.- Memòria de Càlcul

Page 73: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria de Càlcul

2 Memòria de Càlcul

2.1 Introducció

En aquest capítol es mostraran els càlculs efectuats en la preparació dels circuits d’electrònica de potència analitzats. Els circuits que s’han analitzat són els següents i tenen els respectius esquemes al capítol 3:

• Convertidor buck controlat per senyal rampa

• Convertidor boost controlat per senyal rampa

• Convertidor boost controlat per histèresis de corrent

• Convertidor multinivell controlat per senyal rampa

Els càlculs que s’exposaran a continuació corresponen a la primera fase d’execució del programa híbrid: creació i simulació de circuits mitjançant PSim. En concret, fan referència a la configuració dels blocs .paramsweep i simulation control.

Page 74: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria de Càlcul

2.2 Càlcul dels Valors de l’Escombratge Paramètric

L’escombratge paramètric, com ja s’ha explicat en el capítol anterior, només s’utilitza en els diagrames de bifurcació d’entre totes les eines incorporades al programa híbrid. Per obtenir els valors de l’escombratge s’ha usat la fòrmula (35)

1−

−=

N

ppp inifi

inc (35)

Sent pinc l’increment entre dos punts de l’escombratge, pini el valor inicial del paràmetre, pfi el valor final del paràmetre i N el número total de valors de l’escombratge. En els diagrames de bifurcació 1D perquè no es notin la discontinuïtat N val 201. Mentre que en els diagrames de bifurcació 2D i 3D, N val 51.

Els valors de l’escombratge obtinguts per als diversos diagrames representats en la secció 1.5.2.3 són els de la taula 2.

Figura Circuit Nº Par Paràmetre 1 Paràmetre 2 Nom N p.ini p.fi p1.inc Nom N p.ini p.fi p1.inc 16 Buck 1 Vin 201 22 36 0.0700 0 17 Buck 1 Vin 201 24 27 0.0150 0 18,19,20 Buck 2 Vin 51 22 36 0.2800 kv 51 7 17 0.20 21 Boost rampa 1 Vramp 201 0.1 1 0.0045 0 22 Boost rampa 1 Vramp 201 0.61 0.65 0.0002 0 23,24 Boost rampa 2 Vramp 51 0.6 0.65 0.0010 R 51 8 13 0.10

25,26 Boost histèresis 1 kv 201 4.34 4.4 0.0003 0

27,28 Boost histèresis 2 M 51 0.254 0.26 0.0001 kv 51 4.3 4 0

29 Multinivell 1 ki 201 0.5 1 0.0025 0 30 Multinivell 1 ki 201 0.8 1 0.0010 0 31,32 Multinivell 2 ki 51 0.85 1 0.0030 R 51 20 22 0.04

Taula 2. Valors referents a l’escombratge paramètric dels circuits analitzats.

Page 75: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Memòria de Càlcul

2.3 Càlcul dels Valors per al Mostreig amb Període Conegut

Con s’ha explicat en el capítol anterior el mostreig amb període conegut s’efectua des del PSim. El mostreig s’aconsegueix a partir de la combinació de valors dels camps time step i print step del bloc simulation control.

Dels quatre circuits analitzats en el present projecte, en tres el període de mostreig és conegut. Aquests són:

• Convertidor buck controlat per senyal rampa

• Convertidor boost controlat per senyal rampa

• Convertidor multinivell controlat per senyal rampa

En tots ells, el període de commutació de l’interruptor (T) en règim periòdic és igual al període del senyal rampa. Per tant, si es volen mostejar les variables d’estat de qualsevol dels anteriors circuits s’ha de complir l’equació (36).

print steptime

Tstep = (36)

A la taula 3 s’indica el valor de print step que correspon a cada circuit per a un determinat time step.

Circuit freq rampa (Hz) T(s) time step (µs) print step Buck 2500 0.0004 0.25 1600 Boost rampa 20000 0.00005 1 50 Multinivell 5000 0.0002 1 200

Taula 3. Valors per al mostreig amb període conegut

Page 76: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

3 p

3.- Plànols

Page 77: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Plànols

Page 78: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Plànols

Page 79: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Plànols

Page 80: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Plànols

Page 81: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

4.- Pressupost

Page 82: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Pressupost

4 Pressupost

4.1 Anidaments

4.1.1 Capítol 1: Recerca Bibliogràfica, Simulació, Implementació i Redacció del Projecte

Nº DESCRIPCIÓ UNITATS SUBTOTAL TOTAL A1000 Recerca Bibliogràfica h 12 12 A1001 Simulació prèvia de circuits d'electrònica de potència amb Psim h 20 20 A1002 Implementació d'un codi en Matlab per a carregar dades del Psim h 15 15 A1003 Implementació d'un codi en Matlab per representar diagrames de bifurcació, pla i espai d'estats, seccions de Poincaré i variables respecte al temps h 80 80 A1004 Implementació d'una interfície gràfica amb Matlab h 25 25 A1005 Obtenció de diverses representacions d'anàlisi no lineal h 8 8 A1006 Redacció del projecte h 40 40

Page 83: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Pressupost

4.1.2 Capítol 2: Material

Nº DESCRIPCIÓ UNITATS SUBTOTAL TOTAL B1000 Matlab 6.1 versió d'estudiant u 1 1 B1001 Psim 6.0 versió demo u 1 1

Page 84: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Pressupost

4.2 Quadre de Preus Elementals

4.2.1 Capítol 1: Recerca Bibliogràfica, Simulació, Implementació i Redacció del Projecte

Nº DESCRIPCIÓ SUBTOTAL TOTAL A1000 Recerca Bibliogràfica 30.00 30.00 A1001 Simulació prèvia de circuits d'electrònica de potència amb Psim 30.00 30.00 A1002 Implementació d'un codi en Matlab per a carregar dades del Psim 30.00 30.00 A1003 Implementació d'un codi en Matlab per representar diagrames de bifurcació, pla i espai d'estats, seccions de Poincaré i variables respecte al temps 30.00 30.00 A1004 Implementació d'una interfície gràfica amb Matlab 30.00 30.00 A1005 Obtenció de diverses representacions d'anàlisi no lineal 20.00 20.00 A1006 Redacció del projecte 30.00 30.00

Page 85: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Pressupost

4.2.2 Capítol 2: Material

Nº DESCRIPCIÓ SUBTOTAL TOTAL B1000 Matlab 6.1 versió d'estudiant 81.16 81.16 B1001 Psim 6.0 versió demo 0.00 0.00

Page 86: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Pressupost

4.3 Aplicació de Preus

4.3.1 Capítol 1: Recerca Bibliogràfica, Simulació, Implementació i Redacció del Projecte

Nº DESCRIPCIÓ QUANTITAT PREU SUBTOTAL TOTAL A1000 Recerca Bibliogràfica 12 30.00 360.00 360.00 A1001 Simulació prèvia de circuits d'electrònica de potència amb Psim 20 30.00 600.00 600.00 A1002 Implementació d'un codi en Matlab per a carregar dades del Psim 15 30.00 450.00 450.00 A1003 Implementació d'un codi en Matlab per representar diagrames de bifurcació, pla i espai d'estats, seccions de Poincaré i variables respecte al temps 80 30.00 2400.00 2400.00

A1004 Implementació d'una interfície gràfica amb

Matlab 25 30.00 750.00 750.00 A1005 Obtenció de diverses representacions d'anàlisi no lineal 8 20.00 160.00 160.00 A1006 Redacció del projecte 40 30.00 1200.00 1200.00 TOTAL CAPÍTOL 1: Recerca Bibliogràfica, Simulació, Implementació i Redacció del Projecte 5920.00 €

Page 87: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Pressupost

4.3.2 Capítol 2: Material

Nº DESCRIPCIÓ QUANTITAT PREU SUBTOTAL TOTAL B1000 Matlab 6.1 versió d'estudiant 1 81.16 81.16 81.16 B1001 Psim 6.0 versió demo 1 0.00 0.00 0.00 TOTAL CAPÍTOL 2: Material 81.16 €

Page 88: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Pressupost

4.4 Resum del Pressupost

Total capítol 1: 5920.00 € Total capítol 2: 81.16 € Pressupost d'execució material 6001.16 € Pressupost d'execució material 6001.16 € Despeses generals (13%) 780.15 € Benefici industrial (6%) 360.07 € Pressupost d'execució per contracte 7141.38 € Pressupost d'execució per contracte 7141.38 € I.V.A. (16%) 1142.62 € Pressupost final de licitació 8284.00 € El pressupost arriba a: 8284.00 euros VUIT MIL DOS-CENTS VUITANTA-QUATRE EUROS AMB ZERO CÉNTIMS Tarragona, 13 de setembre del 2004

L'ENGINYER TÈCNIC

INDUSTRIAL JORDI GUIMET VILA

Page 89: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

5.- Plec de Condicions

Page 90: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Plec de Condicions

5 Plec de Condicions

5.1 Condicions Administratives

El present plec de condicions té per objecte definir a l’usuari el programa informàtic elaborat i la seva execució qualitativa.

El programari que s’utilitzarà ha seguir les especificacions que es comenten a la secció 5.4.1. Qualsevol altra especificació del material utilitzat que figuri en algun dels documents del projecte, encara que no aparegui en la resta, serà igualment obligatòria.

En cas de produir-se contradiccions o omissions en els documents del projecte, no es podrà suplir la falta sense autorització del projectista. Si s’efectuen alteracions del codi implementat, el projectista no es fa responsable del correcte funcionament del mateix. Si es detecten errors en el funcionament del programa és recomanable posar-se amb contacte amb el projectista.

L’usuari a seguir les condicions que s’exposen en aquest capítol. En cas de no fer-ho, el projectista no es responsabilitza dels danys que es puguin produir en executar el programa. Sigui destrucció de documents com alteració d’aquests.

Page 91: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Plec de Condicions

5.2 Condicions Econòmiques

L’import calculat en el pressupost del projecte pot sofrir variacions degudes a canvis de preus del material informàtic utilitzat.

El cost que pugui provocar l’incompliment de les especificacions exposades en el present capítol recaurà sobre l’usuari. Igualment s’actuarà en el cas que s’utilitzi el programa de forma diferent a la que s’explica en les seccions 1.8 i 1.9 del present projecte.

No es podrà treure un benefici econòmic a partir del programa implementat, així com de l’estudi realitzat en el present projecte, sense un acord amb el projectista.

Page 92: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Plec de Condicions

5.3 Condicions Facultatives

5.3.1 Qualificació de l’Usuari del Programa Híbrid

El programa implementat en el present projecte va destinat a un usuari amb coneixements d’electrònica de potència, bàsicament a un enginyer o estudiant d’enginyeria. A més, aquest usuari hauria de tenir nocions d’anàlisi no lineal de circuits. A part d’això, l’usuari ha de saber utilitzar el PSim i el Matlab.

5.3.2 Reconeixements Previs

En adquirir el programa híbrid s’ha de tenir en compte que aquest estar dividit en diversos fitxers *.m. Per tant s’ha de comprovar que es tinguin tots ells. A l’annex 2 del present projecte hi ha una relació de tots els fitxers de la versió 1.

Una altra comprovació que cal fer és comprovar que el programa híbrid funciona correctament amb les versions de PSim i Matlab de les que es disposa.

Page 93: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Plec de Condicions

5.4 Condicions Tècniques

5.4.1 Programari a Utilitzar

El programa híbrid es recolza sobre dos altres programes: PSim i Matlab. L’adquisició d’aquests dos últims és imprescindible per tal de poder executar el programa híbrid. Les versions utilitzades són la 6.0 demo i la 6.1, respectivament.

El PSim s’usa per a dissenyar i simular circuits. A la vegada genera dos fitxer de text (dades i net list), els quals llegeix el programa híbrid. Per tant, qualsevol versió de PSim que generi aquests dos fitxers de text és compatible amb l’híbrid. No obstant, per això sigui així el fitxer de dades ha de tenir extensió .txt i el net list, .cct; a més els dos fitxers han de tenir la mateixa estructura que en la versió 6.0 demo. Aquesta estructura s’explica a la secció 1.6.6 del present projecte.

El Matlab s’ha utilitzat per a implementar el codi del programa híbrid. Aquest codi s’ha elaborat exclusivament a partir de funcions incorporades al Matlab 6.1. No són d’esperar problemes d’incompatibilitat amb versions posteriors, però si que es poden donar en versions més antigues. S’han realitzat proves amb la versió 5.3 de Matlab i s’ha comprovat que l’híbrid 1 (versió amb línies d’instruccions) funciona correctament, mentre en l’híbrid 2 (interfície gràfica) es produeixen errors de funcionament. Aquests errors són deguts a que Matlab 5.3 no conté algunes de les funcions necessàries per a executar el programa.

5.4.2 Condicions d’Execució del Programa Híbrid

Els fitxers *.m que componen el programa híbrid s’han de trobar al mateix directori. En aquest també hi han d’haver els fitxers de text generats pel PSim. Els fitxers *.m de les dues versions de l’híbrid s’han de guardar en directoris diferents perquè alguns d’ells tenen el mateix nom i podrien eliminar algun fitxer de l’altra versió.

En un escombratge paramètric amb dos paràmetres, els noms dels diversos fitxers de PSim que s’han de generar han de seguir el format concret. Aquest s’exposa a la secció 1.8.2 del present projecte. També s’ha de tenir present que l’escombratge dels segon paràmetre està limitat a 299 valors.

Finalment, en la versió amb interfície gràfica s’ha d’anar amb compte en guardar una imatge. Si en el mateix directori hi ha una imatge amb el mateix nom, aquesta s’esborra sense avisar a l’usuari. Aquest fet s’explica a la secció 1.9.3.1 del present projecte.

Page 94: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

6.- Annexes

Page 95: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

6 Annexes

Annex 1: Algorisme del Programa Híbrid (Versió 1)

% hibrid.m % Programa inicial. Tria de l'opcio a escollir % Segons l'opcio escollida crida altres fitxers *.m clear all close all error=0; format compact %per veure el que hi ha a continuacio mes apretat 'PROGRAMA HIBRID PEL PROCESSAT NO LINEAL DE CIRCUITS D´ELECTRONICA

DE POTENCIA' 'Versio 1: Linies d´instruccions' '1.- Diagrama de Bifurcacio 1-D. Frequencia de mostreig coneguda.' '2.- Diagrama de Bifurcacio 1-D. Frequencia de mostreig

desconeguda.' '3.- Diagrama de Bifurcacio 2-D. Frequencia de mostreig coneguda.' '4.- Diagrama de Bifurcacio 2-D. Frequencia de mostreig

desconeguda.' '5.- Diagrama de Bifurcacio 3-D. Frequencia de mostreig coneguda' '6.- Diagrama de Bifurcacio 3-D. Frequencia de mostreig desconeguda' '7.- Representacio d´una variable sense mostreig.' '8.- Representacio d´una variable mostrejada amb frequencia

coneguda.' '9.- Representacio d´una variable mostrejada amb frequencia

desconeguda.' '10.- Pla d´Estats.' '11.- Seccio de Poincare 2-D. Frequencia de mostreig coneguda.' '12.- Seccio de Poincare 2-D. Frequencia de mostreig desconeguda.' '13.- Espai d´Estats.' '14.- Seccio de Poincare 3-D. Frequencia de mostreig coneguda.' '15.- Seccio de Poincare 3-D. Frequencia de mostreig desconeguda.' '0.- Sortir.' 'S´ha de generar el fitxer Net List de PSim nomes per les 6 primeres

opcions' '(s´ha de fer abans de la simulacio amb el PSim i l´obtencio del

fitxer de dades)' format loose %per veure deixar-ho igual com estava abans del

format compact opcio1 = input('Escullir una de les opcions anteriors: ','s'); if(isempty(opcio1)==0) %comprovacio de que se triat alguna opcio switch opcio1 case('1') inicialitzador if(error==0) carregar_a1p end

Page 96: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

128

case'3','5' inicialitzador if(error==0) gestor_fitxers if(error==0) carregar_a2p end end case('2') inicialitzador if(error==0) deter_ref if(error==0) carregar_b1p end end case'4','6' inicialitzador if(error==0) deter_ref if(error==0) gestor_fitxers if(error==0) carregar_b2p end end end case'7','8','9','10','11','12','13','14','15' s_escombratge otherwise if(opcio1~='0') 'No s´ha escullit cap opcio.' end end else 'No s´ha escullit cap opcio.' end

Codi 7. Algorisme hibrid.m

Page 97: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

129

% inicialitzador.m % Programa inicialitzador per a diagrames de bifurcacio % Obre el fitxer de dades de PSim, obte la inforamcio del primer % parametre del fitxer netlist % i l'usuari tria la variable d'estat a analitzar fitxer = input('Introduir el nom del fitxer a obrir: ','s'); [m,n]=size(fitxer); if(n>3) if(fitxer(n-2)~='t'|fitxer(n-1)~='x'|fitxer(n)~='t') %comprovacio

que el fitxer sigui de text 'ERROR: el nom del fitxer no s´ha escrit correctament.' error=-1; else fid=fopen(fitxer); %obertura del fitxer indicat if[fid==-1] %comprovacio d'error al obrir el fitxer 'ERROR: no s´ha pogut obrir el fitxer de dades.' %tractament

error error=-1; else if[feof(fid)] 'ERROR: El fitxer esta buit.' error=-1; else [m,n]=size(fitxer); fitxer_b=fitxer; fitxer_b(n-2:n)='cct'; fid2=fopen(fitxer_b); if(fid2==-1) 'ERROR: no s´ha pogut obrir el fitxer netlist' fclose(fid); error=-1; else %Captura dels valors del primer o unic parametre aux2=fscanf(fid2,'%s',[1,1]); aux(1:11)=' '; [m,n]=size(aux2); aux(1:n)=aux2;

while(aux(1)~='.'|aux(2)~='P'|aux(3)~='A'|aux(4)~='R'|aux(5)~='A'|aux(6)~='M'|aux(7)~='S'|aux(8)~='W'|aux(9:10)~='E'|aux(11)~='P')

aux2=fscanf(fid2,'%s',[1,1]); aux(1:11)=' '; [m,n]=size(aux2); aux(1:n)=aux2; end aux=fscanf(fid2,'%s',[1,1]); %nom de l'element .PARAMSWEEP p1.ini=fscanf(fid2,'%g',[1,1]); %numero inicial p1.fi=fscanf(fid2,'%g',[1,1]); %numero final p1.inc=fscanf(fid2,'%g',[1,1]); %increment entre numeros p1.nom=fscanf(fid2,'%s',[1,1]); %nom del parametre fclose(fid2);

Page 98: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

130

if(p1.ini>p1.fi) error=-1; 'ERROR: El valor inicial del 1r parametre es superior al

valor final.' end if(error==0) a=1; for i=p1.ini:p1.inc:p1.fi p1.vector(a)=i; a=a+1; end p1.num=a-1; %Determinacio de les columnes del fitxer .txt i es guarden les

capçaleres de cada columna aux=fscanf(fid,'%s',[1,1]); %llegim primer nom de variable x=0; %nº de columnes del fitxer .txt(nº de variables

d'estat + temps) while(((abs(aux(1))<48)|(abs(aux(1))>57))&error==0) %mentre

el primer caracter del string no sigui cap numero x=x+1; aux2(1:30)=' '; %S'imposa que tots els noms de variables

tinguin el mateix nº de caracters %per poder-les guardar en una matriu [m,n]=size(aux); if(n<=30) %les columnes nomes podran contenir noms de

fins a 30 caracters aux2(1:n)=aux; colheaders(x,:)=aux2; %Es guarden el nom de les

variables en un vector de capçaleres else 'ERROR: Algun nom de variable te mes de 30 caracters.' error=-1; end aux=fscanf(fid,'%s',[1,1]); %Es llegeixen nous noms de

variables if(feof(fid)) error=-1; 'ERROR: No hi ha numeros al fitxer de dades.' aux=48; end end end if(error==0) col.total=x; %numero total de columnes [p,q]=size(colheaders); colheaders(2:p,:) % escriptura al workspace de les variables

d'estat a escollir

Page 99: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

131

aux=input('Introduir el nom de la variable d´estat a analitzar: ','s');

%S'agafa el nom de la variable escollida i s'omple amb caracters

buits fins a la posicio 30 %perque despres sigui comparable amb els noms llegits

anteriorment [m,n]=size(aux); nom1(1:30)=' '; nom1(1:n)=aux; var=0; %posicio en que es troba la variable d'estat escollida igual=0; %si val 1->existeix variable, si val 0-> no existeix while(var<p&~igual) % comprovacio de que la variable escollida

existeix var=var+1; if(colheaders(var,1:30)==nom1) igual=1; end end if(igual) % si existeix variable escollida guardem la seva

posicio i el seu nom col.var=var; titol.var=nom1; error=0; else error=-1; 'ERROR: El nom escrit no es troba entre els possibles.' end end end end end end else 'ERROR: el nom del fitxer no s´ha escrit correctament.' error=-1; end

Codi 8. Algorisme inicialitzador.m

Page 100: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

132

% deter_ref.m % Determina el senyal a avaluar els flancs per realitzar el mostreig % amb periode desconegut i s'escull si l'avaluacio es per % flanc ascendent o descendent aux=input('Introduir el nom de el senyal per a avaluar els flancs:

','s'); [m,n]=size(aux); nom2(1:30)=' '; nom2(1:n)=aux; ref=0;igual=0; while(ref<p&~igual) %recerca del nom escrit per l´usuari entre la

llista de variables ref=ref+1; if(colheaders(ref,1:30)==nom2) igual=1; end end if(igual) marge=input('Avaluacio per flanc ascendent o descendent (a/d)?

','s'); if(marge=='A') marge='a'; end if(marge=='D') marge='d'; end if(marge~='a'&marge~='d') 'ERROR: no s´ha indicat si l´avaluacio havia de ser per flanc

ascendent o descendent.' error=-1; else error=0; col.ref=ref; titol.ref=nom2; end else error=-1; 'ERROR: El nom escrit no es troba entre els possibles.' end

Codi 9. Fitxer deter_ref.m

Page 101: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

133

% gestor_fitxers.m % Programa que obte la inforamcio pel segon parametre % en diagrames de bifuracio 2D i 3D, a mes % s'encarrega de generar els noms de tots els fitxers %variables a actualitzar per l'usuari sobre el segon parametre 'Introdueixi les dades que es demanin sobre el segon parametre (el

que es va canviant en cada fitxer de PSim).' p2.nom=input('Nom: ','s'); p2.ini=input('Valor inicial: '); %numero inicial p2.fi=input('Valor final: '); %numero final p2.inc=input('Increment: '); %increment entre numeros if(p2.ini>p2.fi) error=-1; 'ERROR: El valor inicial del segon parametre es mes gran que el

final.' else a=1; for i=p2.ini:p2.inc:p2.fi p2.vector(a)=i; a=a+1; end num_fitxer=a-1; p2.num=num_fitxer; fitxer_1=fitxer; if(isempty(num_fitxer)==0) %Aixo es produeix si l'increment es mes

gran que la diferencia entre el valor final i el valor inicial.' if(num_fitxer<300) [m,n_txt]=size(fitxer); j=1; obrir %obertura de tots els fitxers if(num_fitxer>1) j=2; fitxer(n_txt-3:n_txt+2)='_2.txt'; while(j<=num_fitxer&j<10) %obertura del 2n al 9e fitxer(n_txt-2)=48+j; %es generen els noms dels

fitxers que s´han d´obrir obrir j=j+1; end end if(num_fitxer>=10) j=10; fitxer(n_txt-3:n_txt+3)='_10.txt'; while(j<=num_fitxer&j<100) %obertura del 10e al 99e if(j>=90) fitxer(n_txt-2)='9';

Page 102: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

134

fitxer(n_txt-1)=48+j-90; else if(j>=80) fitxer(n_txt-2)='8'; fitxer(n_txt-1)=48+j-80; else if(j>=70) fitxer(n_txt-2)='7'; fitxer(n_txt-1)=48+j-70; else if(j>=60) fitxer(n_txt-2)='6'; fitxer(n_txt-1)=48+j-60; else if(j>=50) fitxer(n_txt-2)='5'; fitxer(n_txt-1)=48+j-50; else if(j>=40) fitxer(n_txt-2)='4'; fitxer(n_txt-1)=48+j-40; else if(j>=30) fitxer(n_txt-2)='3'; fitxer(n_txt-1)=48+j-30; else if(j>=20) fitxer(n_txt-2)='2'; fitxer(n_txt-1)=48+j-20; else fitxer(n_txt-1)=48+j-10; end end end end end end end end obrir j=j+1; end %end while end if(num_fitxer>=100) j=100; fitxer(n_txt-3:n_txt+4)='_100.txt'; while(j<=num_fitxer&j<300) %obertura del 100e al 299e if(j>=200) fitxer(n_txt-2)='2'; x_txt=200; else

Page 103: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

135

fitxer(n_txt-2)='1'; x_txt=100; end if(j>=(90+x_txt)) fitxer(n_txt-1)='9'; fitxer(n_txt)=48+j-90-x_txt; else if(j>=(80+x_txt)) fitxer(n_txt-1)='8'; fitxer(n_txt)=48+j-80-x_txt; else if(j>=(70+x_txt)) fitxer(n_txt-1)='7'; fitxer(n_txt)=48+j-70-x_txt; else if(j>=(60+x_txt)) fitxer(n_txt-1)='6'; fitxer(n_txt)=48+j-60-x_txt; else if(j>=(50+x_txt)) fitxer(n_txt-1)='5'; fitxer(n_txt)=48+j-50-x_txt; else if(j>=(40+x_txt)) fitxer(n_txt-1)='4'; fitxer(n_txt)=48+j-40-x_txt; else if(j>=(30+x_txt)) fitxer(n_txt-1)='3'; fitxer(n_txt)=48+j-30-x_txt; else if(j>=(20+x_txt)) fitxer(n_txt-1)='2'; fitxer(n_txt)=48+j-20-

x_txt; else if(j>=(10+x_txt)) fitxer(n_txt-1)='1'; fitxer(n_txt)=48+j-

10-x_txt; else fitxer(n_txt-1)='0'; fitxer(n_txt)=48+j-

x_txt; end end end end end end end end

Page 104: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

136

end obrir j=j+1; end %end while end else error=-1; 'ERROR: Com a maxim es poden obrir 299 fitxers de PSim.' end else error=-1; 'ERROR: El valor d´increment del segon parametre es mes gran que

la diferencia entre el valor final i el valor inicial.' end if(error~=-1) if(min(fid)==-1) 'ERROR: els fitxers de text no s´han pogut obrir.' error=-1; else if(min(columnes)~=max(columnes)) 'ERROR: en algun fitxer hi ha mes variables d´estat que en

els altres' error=-1; else if(min(parametre1)~=max(parametre1)) 'ERROR: en algun fitxer hi ha mes parametres que en els

altres' error=-1; else error=0; end end end end end

Codi 10. Algorisme gestor_fitxers.m

Page 105: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

137

% obrir.m % Fitxer auxiliar de gestor_fitxer.m % Obre un fitxer de dades generat per PSim cada % cop que el crida el gestor_fitxers % i guarda les seves dimensions: nº de columnes, % nº de blocs de l'escombratge i la seva longitud fid(j)=fopen(fitxer); %obertura el fitxer indicat i guarda a fid un

identificador de fitxer if[fid(j)~=-1] % si no hi ha cap error a l'obrir el fitxer if[~feof(fid(j))] %Determinacio de les columnes del fitxer .txt i es guarden les

capçaleres de cada columna aux=fscanf(fid(j),'%s',[1,1]); colum=0; %nº de columnes del fitxer .txt(nº de variables

d'estat + temps) x=1; while((abs(aux(1))<48)|(abs(aux(1))>57)) %mentre el primer

caracter del string no sigui cap numero colum=colum+1; [m,n]=size(aux); if(n<=30) aux2(1:30)=' '; aux2(1:n)=aux; cap(x,:)=aux2; %es guarden les capçaleres en un

vector de capçaleres end x=x+1; aux=fscanf(fid(j),'%s',[1,1]); end if((colum==col.total)&(cap(col.var,:)==titol.var)) %determinacio el numero de punts frewind(fid(j)); %tornada a l'imici del fitxer aux=fscanf(fid(j),'%s',[1,col.total]); %col·locacio per

llegir la primera linia numerica i=1; pts=0; %nº de punts de temps while(feof(fid(j))~=1) if(abs(aux(1))==95) %trobada d'una ratlla pts=pts-1; %Es resta la ratlla com a punt de temps llargada(i)=pts; i=i+1; aux=fscanf(fid(j),'%s',[1,1]); pts=1; end aux=fscanf(fid(j),'%s',[1,col.total]); pts=pts+1; end

Page 106: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

138

llargada(i)=pts-1; %Es resta l'ultim punt que no existeix es l'eof

num_par=i; %nºde parametres que es faran servir en al diagrama de bifurcacio

pts=min(llargada); %vectors de sortida columnes(j)=colum; % el nº de columnes punts(j)=pts; %llargada de cada bloc parametre1(j)=num_par; %nº de blocs corresponents a cada valor

del parametre llargada_pts(j,:)=llargada; %matriu on hi ha el nº de punts de

cada bloc, te dimensions p2.num*p1.num else error==-1; 'ERROR: Variables d´estat incorrectes en el fitxer: ' fitxer end end end

Codi 11. Algorisme obrir.m

% carregar_a1p.m % algorisme que carrega les dades d'un fitxer generat % per PSim i representa un diagrama de bifurcacio 1D % amb mostreig amb periode conegut 'Carregant dades ...' %lectura les dades del fitxer .txt i les guardem a la matriu data frewind(fid); aux=fscanf(fid,'%s',[1,col.total]); %col·locacio per llegir la

primera linia numerica aux=fscanf(fid,'%g',[1,col.total]); i=0;j=1; data=0; %inicialitzacio de la matriu de dades while(feof(fid)==0) if(isempty(aux)) %trobada d'una ratlla punts(j)=i; j=j+1; %canvi de columna de data i=0; %inicialitzem files aux=fscanf(fid,'%s',[1,1]); else i=i+1; data(i,(j:p1.num:(p1.num*(col.total-1))))=aux(2:col.total);

%no guardem la columna de temps end

Page 107: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

139

aux=fscanf(fid,'%g',[1,col.total]); end fclose(fid); punts(j)=i; [m,n]=size(data); if(m~=1&n~=1) %si matriu de dades llegides te un tamany mes gran

que 1X1 -> Dades llegides correctament punts=punts(1:p1.num); %correccio, el PSim de vegades genera un

bloc de dades corresponents a un parametre mes del compte pts=min(punts); if(pts>0) 'S´han carregat correctament les dades del fitxer de text.' data=data(1:pts,1:p1.num*(col.total-1)); %correccio de la

matriu de dades 'Configuracio de la finestra.' finx=input('Introduccio del nº de particions horitzontals:

'); finy=input('Introduccio del nº de particions verticals: '); figure if(finx>1|finy>1) subplot(finx,finy,1); end i=1+(p1.num*(col.var-2)); 'Dibuixant figura ...' hold on for par=p1.ini:p1.inc:p1.fi plot(par,data(:,i),'m.','markersize',3) %primera

columna temps, altres columnes sortides respecte el temps i=i+1; end index=1; while(titol.var(index)~=' ') index=index+1; end nom_var=titol.var(1:index); title('Diagrama de Bifurcacio 1-D. Freq coneguda'); xlabel(p1.nom); ylabel(nom_var); axis([p1.vector(1) p1.vector(p1.num)

min(min(data(:,1+((col.var-2)*p1.num):(col.var-1)*p1.num))) max(max(data(:,1+((col.var-2)*p1.num):(col.var-1)*p1.num)))]);

'Variables d´interes' format compact 'data -> matriu de dades.' 'p1 -> informacio sobre el parametre.' 'pts -> numero de punts corresponents a cada valor del

parametre.' format loose

Page 108: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

140

else 'ERROR: per algun valor del parametre no hi ha dades.' end else 'ERROR: Les dades del fitxer de text no s´han carregat

correctament.' 'Obri el fitxer de text generat pel PSim i comprovi que no

estigui buit' end

Codi 12. Algorisme carregar_a1p.m

% carregar_b1p.m % algorisme que carrega les dades d'un fitxer generat % per PSim i representa un diagrama de bifurcacio 1D % amb mostreig amb periode desconegut 'Carregant dades ...' %lectura de les dades del fitxer .txt i les guardem a la matriu data frewind(fid); aux=fscanf(fid,'%s',[1,col.total]); %col·locacio per llegir la

primera linia numerica i=0;j=1; data=0; aux=fscanf(fid,'%g',[1,col.total]); %lectura d'una fila completa estat_ant=aux(col.ref); %es guarda estat anterior

per detectar flanc aux=fscanf(fid,'%g',[1,col.total]); %lectura fila completa while(feof(fid)==0) %mentre no arribem al final del fitxer if(isempty(aux)) %trobada d'una ratlla punts(j)=i; %numero de punts per a cada parametre j=j+1; %canvi de columna (parametre) de data i=0; %inicialitzem fila aux=fscanf(fid,'%s',[1,1]); %lectura ratlla aux=fscanf(fid,'%g',[1,col.total]); %lectura fila

completa data(i+1,(j:p1.num:(p1.num*(col.total-1))))=0;

%inicialitzem columna else if(marge=='a') %flanc ascendent if((aux(col.ref)==1)&(estat_ant~=1)) %deteccio

d'un flanc ascendent i=i+1; data(i,(j:p1.num:(p1.num*(col.total-

1))))=aux(2:col.total); %data(i,j)=aux(col.var); end

Page 109: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

141

else %flanc descendent if((aux(col.ref)==0)&(estat_ant~=0)) %deteccio

d'un flanc descendent i=i+1; data(i,(j:p1.num:(p1.num*(col.total-

1))))=aux(2:col.total); %data(i,j)=aux(col.var); end end end estat_ant=aux(col.ref); %es guarda estat

anterior per detectar flanc aux=fscanf(fid,'%g',[1,col.total]); %lectura fila completa end %end while fclose(fid); punts(j)=i; [m,n]=size(data); if(m~=1&n~=1) %si matriu de dades llegides te un tamany mes gran que

1X1 -> Dades llegides correctament punts=punts(1:p1.num); %correccions, el PSim de vegades genera

un bloc de dades corresponents a un parametre mes del compte pts=min(punts); if(pts>0) %data=data(1:pts,1:p1.num); data=data(1:pts,1:p1.num*(col.total-1)); %correccio de la

matriu de dades 'Dades del fitxer de text llegides.' 'Configuracio de la finestra.' finx=input('Introduccio del nº de particions horitzontals:

'); finy=input('Introduccio del nº de particions verticals: '); figure if(finx>1|finy>1) subplot(finx,finy,1); end hold on %i=1; i=1+(p1.num*(col.var-2)); 'Dibuixant figura ...' for par=p1.ini:p1.inc:p1.fi plot(par,data(:,i),'m.','markersize',3) i=i+1; end title('Diagrama de bifurcacio 1-D. Freq desconeguda'); index=1; while(titol.var(index)~=' ') index=index+1; end

Page 110: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

142

nom_var=titol.var(1:index); xlabel(p1.nom); ylabel(nom_var); axis([p1.vector(1) p1.vector(p1.num) min(min(data))

max(max(data))]); 'Variables d´interes' format compact 'data -> matriu de dades.' 'p1 -> informacio sobre el parametre.' 'punts -> vector amb el numero de punts corresponents a cada

valor del parametre.' format loose else x=1; for i=1:p1.num if(punts(i)==0) index(x)=i; trobats(x)=p1.vector(i); x=x+1; end end format compact 'ATENCIO: Alguns valors de l´emcombratge parametric no es

representaran per causa d´algun error al fitxer dde text.' 'Aquests valors son els seguents:' trobats 'Causes d´error:' '1.- El circuit es inestable per aquests valors' '2.- No s´ha deixat prou temps perque actui el control

d´histeresis' '3.- Error del PSim .' format loose 'Configuracio de la finestra.' finx=input('Introduccio del nº de particions horitzontals:

'); finy=input('Introduccio del nº de particions verticals: '); figure if(finx>1|finy>1) subplot(finx,finy,1); end hold on primer=1+(p1.num*(col.var-2)); ultim=p1.num*(col.var-1); 'Dibuixant figura ...' %[m,n]=size(data); par=p1.ini; for i=primer:ultim if(punts(i)~=0) plot(par,data(:,i),'m.','markersize',3) end par=par+p1.inc;

Page 111: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

143

end title('Diagrama de bifurcacio 1-D. Freq desconeguda'); index=1; while(titol.var(index)~=' ') index=index+1; end nom_var=titol.var(1:index); xlabel(p1.nom); ylabel(nom_var); axis([p1.vector(1) p1.vector(p1.num) min(min(data))

max(max(data))]); 'Variables d´interes' format compact 'data -> matriu de dades.' 'p1 -> informacio sobre el parametre.' 'punts -> vector amb el numero de punts corresponents a cada

valor del parametre.' format loose end else format compact 'ERROR: Les dades del fitxer de text no s´han carregat

correctament.' 'Comprovi si a la variable que se li avaluen els flancs te

transicions de 0V a 1V (avaluacio per flanc ascendent) o de 1V a 0V (avaluacio per flanc descendent)'

'o sino obri el fitxer de text generat pel PSim i comprovi que no estigui buit'

format loose end

Codi 13. Algorisme carregar_b1p.m

Page 112: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

144

% carregar_a2p.m % algorisme que carrega les dades de diversos fitxers % generats per PSim i representa % un diagrama de bifurcacio 2D o 3D % amb mostreig amb periode conegut 'Carregant dades ...' %lectura de les dades dels fitxers .txt i les guardem a la matriu

data3d pts=min(punts); data3d=0; for a=1:p2.num frewind(fid(a)); aux=fscanf(fid(a),'%s',[1,col.total]); %col·locacio per llegir

la primera linia numerica aux2=fscanf(fid(a),'%g',[col.total,pts]); %lectura del temps i

les variables d'estat pel primer parametre resta=fscanf(fid(a),'%g',[col.total,(llargada_pts(a,1)-pts)]); aux3=aux2(col.var,:); aux3=aux3'; data3d(((a-1)*pts)+1:pts*a,1)=aux3; for i=2:p1.num ratlla=fscanf(fid(a),'%s',[1,1]); %lectura de la ratlla

divisoria aux2=fscanf(fid(a),'%g',[col.total,pts]); %lectura del temps

i les variables d'estat pel primer parametre resta=fscanf(fid(a),'%g',[col.total,(llargada_pts(a,i)-pts)]); aux3=aux2(col.var,:); aux3=aux3'; data3d(((a-1)*pts)+1:pts*a,i)=aux3; end fclose(fid(a)); end %Representacio en dues o tres dimensions [s,t]=size(data3d); if(s~=1&t~=1) %si matriu de dades llegides te un tamany mes gran que

1X1 -> Dades llegides correctament 'Dades del fitxer de text llegides correctament.' 'Configuracio de la finestra.' finx=input('Introdueixi el nº de particions horitzontals: '); finy=input('Introdueixi el nº de particions verticals: '); figure if(finx>1|finy>1) subplot(finx,finy,1); end hold on x=p1.vector'; y=p2.vector'; if(opcio1=='3') %diagrama amb dues dimensions

Page 113: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

145

for i=1:pts contourf(x,y,data3d(i:pts:s,:)); end title('Diagrama de bifurcacio 2-D. Freq coneguda'); else %diagrama amb tres dimensions for i=1:pts surf(x,y,data3d(i:pts:s,:)); end title('Diagrama de bifurcacio 3-D. Freq coneguda'); end index=1; while(titol.var(index)~=' ') index=index+1; end nom_var=titol.var(1:index); xlabel(p1.nom); ylabel(p2.nom); zlabel(nom_var); colorbar 'Variables d´interes' %informacio per a l'usuari format compact 'data3d -> matriu de dades, te dimensions (p2.num*pts) x

p1.num.' 'p1 -> informacio sobre el 1r parametre.' 'p2 -> informacio sobre el 2n parametre.' 'pts -> numero de punts corresponents a cada valor dels dos

parametres.' format loose else 'ERROR: Les dades del fitxer de text no s´han carregat

correctament.' 'Obri el fitxer de text generat pel PSim i comprovi que no

estigui buit' end

Codi 14. Algorisme carregar_a2p.m

Page 114: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

146

% carregar_b2p.m % algorisme que carrega les dades de diversos fitxers % generats per PSim i representa % un diagrama de bifurcacio 2D o 3D % amb mostreig amb periode desconegut 'Carregant dades ...' %lectura de les dades dels fitxers .txt i les guardem a la matriu

data3d pts=max(punts); data3d=zeros(pts*p2.num,p1.num); for a=1:p2.num frewind(fid(a)); aux=fscanf(fid(a),'%s',[1,col.total]); %col·locacio per llegir

la primera linia numerica for i=1:p1.num if(i~=1) ratlla=fscanf(fid(a),'%s',[1,1]); %lectura de la ratlla

divisoria end aux2=fscanf(fid(a),'%g',[col.total,llargada_pts(a,i)]);

%lectura del temps i les variables d'estat pel primer parametre aux3=aux2(col.var,:); aux3=aux3'; aux4=aux2(col.ref,:); aux4=aux4'; ind=0; for k=1:llargada_pts(a,i)-1 % es resta 1 per no excedir les

dimensions de la matriu en "aux4(k+1)" if(marge=='a') %flanc ascendent if((aux4(k+1)==1)&(aux4(k)~=1)) %deteccio d'un

flanc ascendent ind=ind+1; data3d((a-1)*pts+ind,i)=aux3(k); end else %flanc descendent if((aux4(k+1)==0)&(aux4(k)~=0)) %deteccio d'un

flanc descendent ind=ind+1; data3d((a-1)*pts+ind,i)=aux3(k); end end end %end for punts_finals(a,i)=ind; end fclose(fid(a)); end

Page 115: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

147

pts_final=min(min(punts_finals)); %Representacio en dues o tres dimensions if(pts_final~=0) %comprovacio de que per algun valor d´algun

parametre no hi hagi cap punt (cap flanc) 'Dades del fitxer de text llegides correctament.' 'Configuracio de la finestra.' finx=input('Introduccio del nº de particions horitzontals: '); finy=input('Introduccio del nº de particions verticals: '); figure if(finx>1|finy>1) subplot(finx,finy,1); end hold on x=p1.vector'; y=p2.vector'; [s,t]=size(data3d); if(opcio1=='4') for i=1:pts_final contourf(x,y,data3d(i:pts:s,:)); end title('Diagrama de bifurcacio 2-D. Freq desconeguda'); else for i=1:pts_final surf(x,y,data3d(i:pts:s,:)); end title('Diagrama de bifurcacio 3-D. Freq desconeguda'); end index=1; while(titol.var(index)~=' ') index=index+1; end nom_var=titol.var(1:index); xlabel(p1.nom); ylabel(p2.nom); zlabel(nom_var); colorbar 'Variables d´interes' %informacio per a l'usuari format compact 'data3d -> matriu de dades, te dimensions (p2.num*pts) x

p1.num.' 'p1 -> informacio sobre el 1r parametre.' 'p2 -> informacio sobre el 2n parametre.' 'pts_final -> numero de punts corresponents a cada valor dels

dos parametres.' format loose else [m,n]=size(punts_finals); %[m,n]=size(data_aux); zn=zeros(1,n); x=0;

Page 116: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

148

punts_finals2=0; for i=0:m-1 if(punts_finals(i+1,:)~=zn)

data_correc((x*pts)+1:(x*pts)+pts,:)=data3d((i*pts)+1:(i*pts)+pts,:); punts_finals2(x+1,:)=punts_finals(i+1,:); p2.vector_aux(x+1)=p2.vector(i+1); x=x+1; end end pts_final=min(min(punts_finals2)); [o,p]=size(punts_finals2); if(o>1&p>1) format compact 'ATENCIO: La representacio del segon parametre sera en menor

resolucio, a causa d´errors a les dades del fitxer de text.' 'Causes d´error:' '1.- El circuit es inestable per algun valor del 1r o 2n

parametre' '2.- No s´ha deixat prou temps perque actui el control

d´histeresis' '3.- Error del PSim .' format loose 'Configuracio de la finestra.' finx=input('Introduccio del nº de particions horitzontals:

'); finy=input('Introduccio del nº de particions verticals: '); figure if(finx>1|finy>1) subplot(finx,finy,1); end hold on x=p1.vector'; y=p2.vector_aux'; [s,t]=size(data_correc); if(opcio1=='4') for i=1:pts_final contourf(x,y,data_correc(i:pts:s,:)); end title('Diagrama de bifurcacio 2-D. Freq desconeguda'); else for i=1:pts_final surf(x,y,data_correc(i:pts:s,:)); end title('Diagrama de bifurcacio 3-D. Freq desconeguda'); end index=1; while(titol.var(index)~=' ')

Page 117: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

149

index=index+1; end nom_var=titol.var(1:index); xlabel(p1.nom); ylabel(p2.nom); zlabel(nom_var); colorbar else 'ERROR: En tots els escombratges del primer parametre per

algun valor no es produeix cap flanc.' end 'Variables d´interes' %informacio per a l'usuari format compact 'data_correc -> matriu de dades traient els valors erronis.' 'p1 -> informacio sobre el 1r parametre.' 'p2 -> informacio sobre el 2n parametre.' 'pts_final -> numero de punts corresponents a cada valor dels dos

parametres.' format loose end

Codi 15. Algorisme carregar_b2p.m

% s_escombratge % S'encarrega de processar i representar les dades de % fitxers generats per PSim i que no tenen escombratge % parametric. % Representa variables respcte al temps, plans i % espais d'estat i seccions de Poincare fitxer = input('Introduir el nom del fitxer a obrir: ','s'); [m,n]=size(fitxer); if(n<=3) 'ERROR: el nom del fitxer no s´ha escrit correctament.' error=-1; else if(fitxer(n-2)~='t'|fitxer(n-1)~='x'|fitxer(n)~='t')

%comprovacio de l'extensio del fitxer 'ERROR: el nom del fitxer no s´ha escrit correctament.' error=-1; else fid=fopen(fitxer); %obertura del fitxer indicat i es guarda

un identificador de fitxer if[fid==-1] %comprovacio d'error a l'obertura del

fitxer 'ERROR: no s´ha pogut obrir el fitxer de dades.'

%tractament error error=-1; else if[feof(fid)] 'ERROR: El fitxer esta buit.' error=-1;

Page 118: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

150

end end end end if(error==0) %Si no s´ha produit cap dels anterior errors %Determinacio de les columnes del fitxer .txt i es guarden les

capçaleres de cada columna aux=fscanf(fid,'%s',[1,1]); %Lectura del primer nom de variable x=0; %nº de columnes del fitxer .txt "nº de variables

d'estat i temps" while(((abs(aux(1))<48)|(abs(aux(1))>57))&error==0) %mentre

el primer caracter del string no sigui cap numero x=x+1; aux2(1:30)=' '; %Imposicio de que tots els noms de

variables tinguin el mateix nº de caracters %per poder-les guardar en una matriu [m,n]=size(aux); if(n<=30) %les columnes nomes podran contenir noms

de fins a 30 caracters aux2(1:n)=aux; colheaders(x,:)=aux2; %Es guarden el nom de les

variables en un vector de capçaleres else 'ERROR: Algun nom de variable te mes de 30 caracters.' error=-1; end aux=fscanf(fid,'%s',[1,1]); %lectura de nous noms de

variables if(feof(fid)) error=-1; 'ERROR: No hi ha numeros al fitxer de dades' aux=48; % es força una condicio per sortir del bucle end end end if(error==0) col.total=x; %es guarda el numero total de columnes %lectura de les dades del fitxer .txt i es guarden a la matriu

data frewind(fid); aux=fscanf(fid,'%s',[1,col.total]); %col·locacio per llegir

la primera linia numerica aux=fscanf(fid,'%g',[1,col.total]); pts=0; data=0; %inicialitzacio de la matriu de dades while(feof(fid)==0&isempty(aux)==0) %mentre no s´arribi al

final del fitxer o es llegeixi text pts=pts+1; data(pts,1:col.total)=aux; aux=fscanf(fid,'%g',[1,col.total]);

Page 119: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

151

end fclose(fid); if(data(1,1)~=0) %Es tenen dades switch opcio1 case '7','8','9' %Representacio d´una variable en funcio

del temps [p,q]=size(colheaders); colheaders(2:p,:) % escriptura al workspace de les

variables d'estat a escollir aux=input('Introdueixi el nom de la variable d´estat a

analitzar: ','s'); [m,n]=size(aux); nom1(1:30)=' '; nom1(1:n)=aux; var=0; %posicio en que es troba la variable d'estat

escollida igual=0; %si val 1->existeix variable, si val 0-> no

existeix while(var<p&~igual) % comprovacio de que la variable

escollida existeix var=var+1; if(colheaders(var,1:30)==nom1) igual=1; end end if(igual) % si existeix variable escollida guardem la

seva posicio i el seu nom col.var=var; titol.var=nom1; error=0; else error=-1; 'ERROR: El nom escrit no es troba entre els

possibles.' end if(error==0) if(opcio1=='9') %mostreig amb frequencia desconeguda deter_ref %identificacio del senyal de referencia

pel mostreig if(error==0) [r,s]=size(data); k=0; for i=2:r %mostreig if(marge=='a') %flanc ascendent if((data(i,col.ref)==1)&(data(i-

1,col.ref)~=1)) %deteccio d'un flanc ascendent k=k+1;

Page 120: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

152

data_aux(k,:)=data(i,:); end else %flanc descendent if((data(i,col.ref)==0)&(data(i-

1,col.ref)~=0)) %deteccio d'un flanc descendent k=k+1; data_aux(k,:)=data(i,:); end end end if(k==0) error=-1; 'ERROR: No s´ha produit cap flanc (ascendent

o descendent) al senyal que se li havien d´avaluar els flancs.' else data=data_aux; end end end end %Representacio if(error==0) 'Configuracio de la finestra.' finx=input('Introduccio del nº de particions

horitzontals: '); finy=input('Introduccio del nº de particions

verticals: '); figure if(finx>1|finy>1) subplot(finx,finy,1); end if(opcio1=='7') %sense mostreig

plot(data(:,1),data(:,col.var),'m','markersize',3) title('Representacio d´una variable'); else

plot(data(:,1),data(:,col.var),'m.','markersize',3) %amb mosteig if(opcio1=='8') title('Representacio d´una variable

mostrejada amb freq. coneguda'); else title('Representacio d´una variable

mostrejada amb freq. desconeguda'); end end index=1; while(titol.var(index)~=' ') index=index+1; end nom_var=titol.var(1:index);

Page 121: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

153

xlabel('Time'); ylabel(nom_var);

if(min(data(:,1))~=max(data(:,1))&min(data(:,col.var))~=max(data(:,col.var))) %comprovacio de que els valors maxims i minims son diferents

axis([min(data(:,1)) max(data(:,1)) min(data(:,col.var)) max(data(:,col.var))]);

end format compact 'Variables d´interes' 'data -> matriu de dades.' 'colheaders -> titol de cada columna de la matriu

anterior.' format loose end case '10','11','12' %Pla d´estats i Seccio de Poincare [p,q]=size(colheaders); colheaders(2:p,:) % escriptura al workspace de les

variables d'estat a escollir 'Introduccio els noms de les variables a representar:' aux1=input('Eix x: ','s'); aux2=input('Eix Y: ','s'); [m,n]=size(aux1); [m,o]=size(aux2); nom1(1:30)=' '; nom1(1:n)=aux1; nom2(1:30)=' '; nom2(1:o)=aux2; x=0; %posicio en que es troba la variable d'estat

escollida igual1=0; igual2=0; while(x<p) % comprovacio de que la variable escollida

existeix x=x+1; if(colheaders(x,1:30)==nom1) igual1=1; var1=x; end if(colheaders(x,1:30)==nom2) igual2=1; var2=x; end end if(igual1==1&igual2==1) col.var1=var1; col.var2=var2; titol.var1=nom1; titol.var2=nom2;

Page 122: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

154

error=0; else error=-1; 'ERROR: El nom escrit no es troba entre els

possibles.' end if(error==0) if(opcio1=='12') %mostreig amb frequencia desconeguda deter_ref %identificacio del senyal de referencia

pel mostreig if(error==0) [r,s]=size(data); k=0; for i=2:r %mostreig if(marge=='a') %flanc ascendent if((data(i,col.ref)==1)&(data(i-

1,col.ref)~=1)) %deteccio d'un flanc ascendent k=k+1; data_aux(k,:)=data(i,:); end else %flanc descendent if((data(i,col.ref)==0)&(data(i-

1,col.ref)~=0)) %deteccio d'un flanc descendent k=k+1; data_aux(k,:)=data(i,:); end end end if(k==0) error=-1; 'ERROR: No s´ha produit cap flanc (ascendent

o descendent) al senyal que se li havien d´avaluar els flancs.' else data=data_aux; end end end end %Representacio if(error==0) 'Configuracio de la finestra.' finx=input('Introduccio del nº de particions

horitzontals: '); finy=input('Introduccio del nº de particions

verticals: '); figure if(finx>1|finy>1) subplot(finx,finy,1); end if(opcio1=='10')

Page 123: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

155

plot(data(:,col.var1),data(:,col.var2),'m','markersize',3)

title('Pla d´Estats'); else

plot(data(:,col.var1),data(:,col.var2),'m.','markersize',3) if(opcio1=='11') title('Seccio de Poincare 2-D. Freq de

mostreig coneguda.'); else title('Seccio de Poincare 2-D. Freq de

mostreig desconeguda.'); end end index=1; while(titol.var1(index)~=' ') index=index+1; end nom_var1=titol.var1(1:index); index=1; while(titol.var2(index)~=' ') index=index+1; end nom_var2=titol.var2(1:index); xlabel(nom_var1); ylabel(nom_var2); format compact

if(min(data(:,col.var1))~=max(data(:,col.var1))&min(data(:,col.var2))~=max(data(:,col.var2))) %comprovacio de que els valors maxims i minims son diferents

axis([min(data(:,col.var1)) max(data(:,col.var1)) min(data(:,col.var2)) max(data(:,col.var2))]);

end 'Variables d´interes' 'data -> matriu de dades.' 'colheaders -> titol de cada columna de la matriu

anterior.' format loose end otherwise %Representacio tridimensional de tres variables colheaders % escriptura al workspace de les variables

d'estat a escollir 'Introduccio dels noms de les variables a representar:' aux1=input('Eix x: ','s'); aux2=input('Eix Y: ','s'); aux3=input('Eix Z: ','s'); [p,m]=size(colheaders); [m,n]=size(aux1);

Page 124: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

156

[m,o]=size(aux2); [m,q]=size(aux3); nom1(1:30)=' '; nom1(1:n)=aux1; nom2(1:30)=' '; nom2(1:o)=aux2; nom3(1:30)=' '; nom3(1:q)=aux3; x=0; %posicio en que es troba la variable d'estat

escollida igual1=0; igual2=0; igual3=0; while(x<p) % comprovacio de que la variable escollida

existeix x=x+1; if(colheaders(x,1:30)==nom1) igual1=1; var1=x; end if(colheaders(x,1:30)==nom2) igual2=1; var2=x; end if(colheaders(x,1:30)==nom3) igual3=1; var3=x; end end if(igual1==1&igual2==1&igual3==1) col.var1=var1; col.var2=var2; col.var3=var3; titol.var1=nom1; titol.var2=nom2; titol.var3=nom3; error=0; else error=-1; 'ERROR: El nom escrit no es troba entre els

possibles.' end if(error==0) if(opcio1=='15') %mostreig amb periode desconegut deter_ref %identificacio del senyal de referencia

pel mostreig if(error==0) [r,s]=size(data); k=0; for i=2:r %mostreig if(marge=='a') %flanc ascendent

Page 125: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

157

if((data(i,col.ref)==1)&(data(i-1,col.ref)~=1)) %deteccio un flanc ascendent

k=k+1; data_aux(k,:)=data(i,:); end else %flanc descendent if((data(i,col.ref)==0)&(data(i-

1,col.ref)~=0)) %deteccio un flanc descendent k=k+1; data_aux(k,:)=data(i,:); end end end if(k==0) error=-1; 'ERROR: No s´ha produit cap flanc (ascendent

o descendent) al senyal que se li havien d´avaluar els flancs.' else data=data_aux; end end end end %Representacio if(error==0) 'Configuracio de la finestra.' finx=input('Introduccio el nº de particions

horitzontals: '); finy=input('Introduccio el nº de particions

verticals: '); figure if(finx>1|finy>1) subplot(finx,finy,1); end if(opcio1=='13')

plot3(data(:,col.var1),data(:,col.var2),data(:,col.var3),'m','markersize',3)

title('Espai d´Estats'); else

plot3(data(:,col.var1),data(:,col.var2),data(:,col.var3),'m.','markersize',3)

if(opcio1=='14') title('Seccio de Poincare 3-D. Freq de

mostreig coneguda'); else title('Seccio de Poincare 3-D. Freq de

mostreig desconeguda'); end end index=1;

Page 126: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

158

while(titol.var1(index)~=' ') index=index+1; end nom_var1=titol.var1(1:index); index=1; while(titol.var2(index)~=' ') index=index+1; end nom_var2=titol.var2(1:index); index=1; while(titol.var3(index)~=' ') index=index+1; end nom_var3=titol.var3(1:index); xlabel(nom_var1); ylabel(nom_var2); zlabel(nom_var3)

if((min(data(:,col.var1))~=max(data(:,col.var1)))&(min(data(:,col.var2))~=max(data(:,col.var2)))&(min(data(:,col.var3))~=max(data(:,col.var3)))) %comprovacio de que els valors maxims i minims son diferents

axis([min(data(:,col.var1)) max(data(:,col.var1)) min(data(:,col.var2)) max(data(:,col.var2)) min(data(:,col.var3)) max(data(:,col.var3))]);

end format compact 'Variables d´interes' 'data -> matriu de dades.' 'colheaders -> titol de cada columna de la matriu

anterior.' format loose end end end end

Codi 16. Algorisme s_escombratge.m

Page 127: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

Annex 2: Flux d’Execució dels Fitxers *.m del Programa Híbrid (Versió 1)

Figura 64. Diagrama de flux del programa híbrid (versió 1)

Page 128: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Annexes

Annex 3: Errors Detectats al Programa PSim Demo Versió 6.0

1. Les dades del fitxer de text que genera el PSim s’esborren quan es crea el fitxer netlist.

2. En un escombratge paramètric utilitzant el bloc .paramsweep per més de 10 valors del paràmetre dóna dades errònies en la simulació.

3. Els blocs de dades – separats per una línia contínua corresponents a cada valor del paràmetre en un escombrat no sempre tenen la mateixa llargada.

4. No es permet que cap magnitud d’una font de tensió o generador de senyal sigui utilitzada com a paràmetre en un escombratge.

5. No es permet efectuar un escombratge amb dos paràmetres.

Page 129: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Referències

Page 130: Programa Híbrid pel Processament No Lineal de Circuits d ...deeea.urv.cat/public/PROPOSTES/pub/pdf/565pub.pdf · Programa Híbrid pel Processament No Lineal de Circuits d ... ...

Referències

Referències [1] C. K. Tse, Chaos from a buck switching regulator operating in discontinuous mode, International Journal of

Circuit Theory and Applications, 1994, vol. 22, 262-278. [2] D. C. Hamill, Power electronics: A field rich in nonlinear dynamics, 3rd Int. Specialists’ Workshop on Nonlinear

Dynamics of Electronic Systems (University College, Dublin), 1995, 165-178. [3] E. Fossas i G. Olivar, Study of chaos in the buck converter, IEEE Transactions on Circuits and Systems-I:

Fundamental Theory and Applications, 1996, vol. 43, no. 1, 13-25. [4] HTTP://www.mathworks.com. [5] HTTP://www.powersimtech.com. [6] A. El Aroudi i R. Leyva, Quasi-peridic route to chaos in a PWM voltage-controlled dc-dc boost converter, IEEE

Transactions on Circuits and Systems-I: Fundamental Theory and Applications, 2001, vol. 48, no. 8, 967-978. [7] M. di Bernardo, F. Garofalo, L. Glielmo i F. Vasca, Analysis of chaotic buck, boost and buck-boost converters

through switching maps, Proc of IEEE Power Electronics Specialists Conference, St. Louis, USA, 1997, 754-760.

[8] M. di Bernardo i F. Vasca, On Discrete Time Maps for the Analysis of Bifurcations and Chaos in DC/DC Converters, IEEE Transactions on Circuits and Systems-I: Fundamental Theory and Applications, 2000, vol. 47, no. 2, 130-143.

[9] S. Banerjee i G. C. Verghese, Nonlinear phenomena in power electronics attractors, bifurcations, chaos, and nonlinear control, IEEE Press, 2001.

[10] L. Benadero, A. El Aroudi, G. Olivar, E Toribio i E. Gómez, Two-dimensional bifurcation diagrams. Background pattern of fundamental dc-dc converters with PWM control, International Journal of Bifurcation and Chaos, 2003, vol. 13, no. 2, 427-451.

[11] D. Hanselman i B. Littlefield, Matlab, edición de estudiante versión 4, guía de usuario, Prentice Hall, 1996.