DESENVOLVIMENTO E IMPLEMENTAÇÃO EM DSP DO CONTROLE DE...

122
DESENVOLVIMENTO E IMPLEMENTAÇÃO EM DSP DO CONTROLE DE UM RESTAURADOR DINÂMICO DE TENSÃO - DVR RIO DE JANEIRO, R.J. – BRASIL OUTUBRO DE 2003 DIOGO RODRIGUES DA COSTA JUNIOR UNIVERSIDADE FEDERAL DO RIO DE JANEIRO ESCOLA POLITÉCNICA DEPARTAMENTO DE ELETROTÉCNICA

Transcript of DESENVOLVIMENTO E IMPLEMENTAÇÃO EM DSP DO CONTROLE DE...

DESENVOLVIMENTO E IMPLEMENTAÇÃO EM DSP DO CONTROLE DE UM RESTAURADOR

DINÂMICO DE TENSÃO - DVR

RIO DE JANEIRO, R.J. – BRASIL OUTUBRO DE 2003

DIOGO RODRIGUES DA COSTA JUNIOR

UNIVERSIDADE FEDERAL DO RIO DE JANEIROESCOLA POLITÉCNICA DEPARTAMENTO DE ELETROTÉCNICA

DESENVOLVIMENTO E IMPLEMENTAÇÃO EM DSP DO CONTROLE DE UM RESTAURADOR

DINÂMICO DE TENSÃO - DVR

DIOGO RODRIGUES DA COSTA JUNIOR

“PROJETO SUBMETIDO AO CORPO DOCENTE DO DEPARTAMENTO DE ELETROTÉCNICA DA ESCOLA DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE ENGENHEIRO ELETRICISTA”.

APROVADO POR:

________________________________________________________________ Prof. Maurício Aredes, Dr.-Ing.

________________________________________________________________ Prof. Luís Guilherme Barbosa Rolim, Dr.-Ing.

________________________________________________________________ Prof. José Luiz da Silva Neto, Ph.D.

RIO DE JANEIRO, R.J. – BRASIL OUTUBRO DE 2003

ii

AGRADECIMENTOS

Agradeço primeiramente a meu pai Diogo, minha mãe Sandra, e a minha irmã KK pelo

amor, dedicação e suporte que sempre dedicaram a mim e formam indispensáveis na realização

deste trabalho.

A meus parentes que me acompanharam e sempre acreditaram em mim.

Ao professor Maurício Aredes que me incentivou a direcionar meus estudos para a

Eletrônica de Potência. Agradeço também pela confiança em mim depositada, além de suas

valiosas ajudas, orientações e soluções dadas no decorrer deste projeto.

Ao professor Guilherme Rolim por suas preciosas orientações e colaborações que foram

indispensáveis no andamento deste projeto, sem estas, hoje não estaria apresentando este

trabalho. Sou muito grato por sua ajuda.

Ao professor José Luiz pelo auxílio na elaboração da dissertação e pelas idéias e

colaborações na operação da bancada.

A meus amigos da turma de engenharia elétrica da UFRJ que sempre estiveram ao meu

lado tanto nos momentos de estudo quanto nos de confraternização.

A todos os amigos do Laboratório de Eletrônica de Potência que contribuíram para o

desenvolvimento deste trabalho.

Agradeço a Deus, pois a Ele devemos os amigos, o conhecimento, e a nossa existência.

Diogo Rodrigues da Costa Junior

iii

DESENVOLVIMENTO E IMPLEMENTAÇÃO EM DSP DO CONTROLE DE UM RESTAURADOR DINÂMICO DE TENSÃO - DVR

RESUMO

Este trabalho apresenta o desenvolvimento e implementação do protótipo de um Restaurador

Dinâmico de Tensão (DVR) e de seu controle. O DVR é um dispositivo baseado na Eletrônica

de Potência, cujo conceito operacional é o controle da tensão fornecida a uma determinada carga.

Um modelo de controle, baseado principalmente em um detector de componente de

seqüência positiva, é proposto e detalhado. O controle do DVR operando na proteção contra

afundamentos de tensão de uma determinada carga foi simulado no programa Saber™Designer

apresentando um desempenho satisfatório.

Tendo em vista a grande gama de recursos disponíveis, assim como sua velocidade de

processamento de dados, foi utilizado um microcontrolador DSP da Texas Instruments, Inc. como

plataforma digital do controle, cujo algoritmo foi desenvolvido no ambiente Code Composer em

linguagem C.

E por fim são apresentados os resultados obtidos com a operação do protótipo que foi

montado no Laboratório de Eletrônica de Potência da COPPE/UFRJ.

iv

CONTEÚDO

NOMENCLATURA ...............................................................................................................vii

SIMBOLOGIA ........................................................................................................................ix

LISTA DE FIGURAS...............................................................................................................x

CAPÍTULO 1 ............................................................................................................................1 INTRODUÇÃO ........................................................................................................................1

1.1 MOTIVAÇÃO.............................................................................................................3 1.2 OBJETIVO ..................................................................................................................4 1.3 ORGANIZAÇÃO DOS CAPÍTULOS........................................................................4

CAPÍTULO 2 ............................................................................................................................6 RESTAURADOR DINÂMICO DE TENSÃO.......................................................................6

2.1 CONFIGURAÇÃO DO CIRCUITO DO DVR ..........................................................6 2.1.1 TRANSFORMADOR SÉRIE ........................................................................7 2.1.2 RETIFICADOR..............................................................................................8 2.1.3 INVERSOR ..................................................................................................10

2.1.3.1 TIPOS DE CHAVEAMENTO............................................................................10 PWM Senoidal – SPWM..................................................................................................11 PWM Vetorial – Space Vector Modulation - SVM .........................................................12

2.1.4 FILTROS......................................................................................................18 2.1.5 DSP...............................................................................................................18

2.1.5.1 CARACTERÍSTICAS.........................................................................................19 2.1.6 SISTEMA DE MEDIÇÃO DE TENSÃO....................................................20 2.1.7 INTERFACE ÓPTICA.................................................................................22

2.2 PROTÓTIPO .............................................................................................................22

CAPÍTULO 3 ..........................................................................................................................24 CONTROLE DO DVR...........................................................................................................24

3.1 ALGORITMO DE COMPENSAÇÃO DE AFUNDAMENTOS. ............................24 3.2 ALGORITMO DE COMPENSAÇÃO DE HARMÔNICOS E DESEQUILÍBRIOS

...................................................................................................................................27 3.3 TENSÕES DE REFERÊNCIA PARA O CHAVEAMENTO DO INVERSOR ......28 3.4 DESCRIÇÃO DOS COMPONENTES UTILIZADOS NOS ALGORITMOS........28

3.4.1 CIRCUITO PLL ...........................................................................................29 3.4.1.1 TEORIA PQ ........................................................................................................29

Sistemas balanceados e sem harmônicos..........................................................................30 Sistemas desequilibrados e com harmônicos....................................................................30

v

3.4.1.2 ALGORITMO DO CIRCUITO PLL ..................................................................32 Ajuste do controlador PI...................................................................................................33 Resultados de simulações do circuito PLL.......................................................................34 Conclusões sobre o circuito PLL......................................................................................38

3.4.2 DETECTOR DE SEQUÊNCIA POSITIVA ................................................38 3.4.2.1 DETECTOR BASEADO EM COMPONENTES SIMÉTRICAS ......................38

Resultados de simulações do detector ..............................................................................42 Conclusões sobre o detector baseado nas componentes simétricas..................................44

3.4.2.2 DETECTOR BASEADO NA TEORIA PQ........................................................44 Resultados de simulações do detector ..............................................................................45 Conclusões sobre o detector baseado na Teoria P-Q........................................................48

CAPÍTULO 4 ..........................................................................................................................49 SIMULAÇÕES DO MODELO .............................................................................................49

4.1 MODELAGEM NO SABER ....................................................................................49 4.2 RESULTADOS DE SIMULAÇÃO ..........................................................................50

CAPÍTULO 5 ..........................................................................................................................54 IMPLEMENTAÇÃO DO CONTROLE NO DSP...............................................................54

5.1 ALGORITMO ...........................................................................................................54 5.1.1 MÓDULO DE INICIALIZAÇÃO ...............................................................54

5.1.1.1 CONFIGURAÇÃO DA CPU..............................................................................55 5.1.2 MÓDULO PRINCIPAL...............................................................................61 5.1.3 MÓDULO DE INTERRUPÇÃO .................................................................62

5.1.3.1 VERIFICAÇÃO DO ERRO NO INVERSOR ....................................................62 5.1.3.2 AMOSTRAGEM DAS TENSÕES .....................................................................63

Princípios de operação do conversor analógico digital (C-A/D)......................................63 5.1.3.3 TRANSFORMAÇÃO DE CLARKE+................................................................65 5.1.3.4 DETECTOR DE SEQUÊNCIA ..........................................................................65 5.1.3.5 CONTROLE DE AFUNDAMENTO..................................................................66 5.1.3.6 MODULAÇÃO SPACE VECTOR.....................................................................67 5.1.3.7 LIBERAÇÃO DO FLAG....................................................................................67

5.2 RESULTADOS OBTIDOS.......................................................................................67 5.2.1 CONVERSOR ANALÓGICO-DIGITAL....................................................67 5.2.2 TRANSFORMAÇÃO DE CLARKE+.........................................................69 5.2.3 DETECTOR DE SEQUÊNCIA POSITIVA ................................................69 5.2.4 MODULAÇÃO SPACE VECTOR ...............................................................71 5.2.5 CONTROLE DE AFUNDAMENTO...........................................................72

5.2.5.1 MALHA ABERTA .............................................................................................72 5.2.5.2 MALHA FECHADA ..........................................................................................73

CAPÍTULO 6 ..........................................................................................................................75 CONCLUSÕES E TRABALHOS FUTUROS.....................................................................75

APÊNDICE A .........................................................................................................................76 LISTAGEM DO CÓDIGO FONTE .....................................................................................76

APÊNDICE B........................................................................................................................103 ENDEREÇO DOS REGISTRADORES.............................................................................103

APÊNDICE C .......................................................................................................................104

vi

FOTOS DO PROTÓTIPO...................................................................................................104

REFERÊNCIAS BIBLIOGRÁFICAS ...............................................................................108

vii

NOMENCLATURA

C-AD Conversor Analógico-Digital

DSP Digital Signal Processor

DVR Dynamic Voltage Restorer

FACTS Flexible AC Transmission System

HVDC High Voltage Direct Current

IGBT Insulated Gate Bipolar Transistor

PAM Pulse Amplitude Modulation PI Controlador Proporcional Integral

PLL Phase-Locked Loop

POLI Escola Politécnica da UFRJ

PWM Pulse Width Modulation

SPWM Sinusoidal Pulse Width Modulation

SVM Space Vector Modulation

THD Total Harmonic Distortion

UFRJ Universidade Federal do Rio de Janeiro

∞v Tensão na Barra Infinita

vIN Tensão na Barra de Entrada

XLT Reatância da linha de transmissão

viii

ix

SIMBOLOGIA

f frequência

f1 frequência fundamental

fsw frequência de chaveamento

∞v tensão na barra infinita

vIN tensão na barra de entrada pllω frequência angular encontrada pelo circuito PLL

XLT reatância da linha de transmissão

x

LISTA DE FIGURAS

Figura 1.1: Apresentação do problema.......................................................................................2 Figura 1.2: DVR inserido no sistema .........................................................................................3 Figura 2.1: Restaurador Dinâmico de Tensão ............................................................................7 Figura 2.2: Transformador Série ................................................................................................8 Figura 2.3: Retificador trifásico tipo ponte ................................................................................8 Figura 2.4: Retificador Ponte Diodo - (a) formas de onda das tensões de entrada e da tensão

retificada vd e de seu valor médio vd0; (b) tempo de condução de cada diodo. ........9 Figura 2.5:Inversor Trifásico em Ponte....................................................................................10 Figura 2.6: PWM Senoidal .......................................................................................................12 Figura 2.7: (a) Inversor trifásico PWM alimentando carga em conexão Y (b) Circuito

equivalente do inversor trifásico PWM..................................................................13 Figura 2.8: Vetores de chaveamento ........................................................................................15 Figura 2.9: Sinais de va, vb, e vc e a trajetória do respectivo vetor VS .....................................16 Figura 2.10: Filtro L-R-C .........................................................................................................18 Figura 2.11: Diagrama de blocos do módulo eZdsp™LF2407 ................................................19 Figura 2.12: Circuito divisor de tensão ...................................................................................21 Figura 3.1: Diagrama de blocos do controle de afundamentos ...............................................25 Figura 3.2: Diagrama de blocos do controle de harmônicos e desequilíbrios..........................27 Figura 3.3: Sinal de referência para o chaveamento.................................................................28 Figura 3.4: Circuito PLL ..........................................................................................................32 Figura 3.5: Ponto estável de operação do circuito PLL............................................................33 Figura 3.6: Tensões Balanceadas e sem harmônicos................................................................34 Figura 3.7: Tensão vα ea corrente fictícia i´β gerada pelo PLL ................................................35 Figura 3.8: Gráfico de p´3φ........................................................................................................35 Figura 3.9: Gráfico de ω ...........................................................................................................35 Figura 3.10: Tensões desequilibradas e com harmônicos ........................................................36 Figura 3.11: Conteúdo Harmônico ...........................................................................................36 Figura 3.12: Tensão vα ea corrente fictícia i´β gerada pelo PLL ..............................................36 Figura 3.13: Gráfico de p´3φ......................................................................................................37 Figura 3.14: Gráfico de p~ ........................................................................................................37 Figura 3.15: Gráfico de ω .........................................................................................................37 Figura 3.16: Conteúdo Harmônico de i´α .................................................................................38 Figura 3.17: Componentes Simétricas......................................................................................39 Figura 3.18: Representação gráfica da equação (3.23).............................................................39 Figura 3.19: Detector baseado em componentes simétricas.....................................................40 Figura 3.20: Diagrama de blocos utilizado para atrasar ou adiantar de 120°...........................40 Figura 3.21: Funcionamento dos Blocos de controle: (a) adianta 120° (b) atrasa 120°...........41 Figura 3.22: Diagrama de blocos do filtro passa-baixa ............................................................41 Figura 3.23: Tensões Balanceadas e sem harmônicos..............................................................42

xi

Figura 3.24: Componente de Seq. Positiva (v´a) e componente de sequência positiva detectada (v’a(det)) ....................................................................................................................42

Figura 3.25: Tensões desequilibradas e sem harmônicos.........................................................43 Figura 3.26: Componente de Seq. Positiva (v´a) e componente de sequência positiva detectada

(v’a(det)) ....................................................................................................................43 Figura 3.27: Tensões desequilibradas e com distorções harmônicas .......................................43 Figura 3.28: Conteúdo harmônico............................................................................................43 Figura 3.29: Componente de Seq. Positiva (v´a) e componente de sequência positiva detectada

(v’a(det)) ....................................................................................................................44 Figura 3.30: Detector de sequência positiva.............................................................................45 Figura 3.31: Sinais de tensões equilibradas..............................................................................46 Figura 3.32: Componente de seq. positiva (v´β) e componente de sequência positiva detectada

(v’β(det)) ....................................................................................................................46 Figura 3.33: Sinais de tensões desequilibrados ........................................................................47 Figura 3.34: Componente de seq. positiva (v´β) e componente de sequência positiva detectada

(v’β(det)) ....................................................................................................................47 Figura 3.35: Sinais de tensão desequilibrados e distorcidos ....................................................48 Figura 3.36: Componente de seq. positiva (v´β) e componente de sequência positiva detectada

(v’β(det)) ....................................................................................................................48

xii

1

CAPÍTULO 1

INTRODUÇÃO

OM o desenvolvimento de chaves semicondutoras que podem operar com limites

de tensão de alguns milhares de volts e capacidade de corrente de alguns milhares

de ampères, houve um aumento considerável das possibilidades de aplicações de

Eletrônica de Potência nos sistemas elétricos de distribuição e transmissão de energia.

Uma das primeiras aplicações da Eletrônica de Potência em sistemas de potência

foi na transmissão em corrente contínua - HVDC. Este tipo de transmissão permite, além

da ligação de dois sistemas assíncronos, reduzir as perdas em uma linha longa. No Brasil

a transmissão HVDC é adotada na ligação entre a usina hidrelétrica de Itaipu na fronteira

com o Paraguai com a subestação de Ibiúna no interior de São Paulo.

Depois surgiu o conceito FACTS (Flexível AC Transmission System), criado por

N. G. Hingorani em 1988, que agrupa um conjunto de equipamentos de Eletrônica de

Potência capaz de realizar rapidamente alterações nas características do sistema elétrico

permitindo uma maior flexibilidade em seu controle. Em [1] podem ser vistos alguns

desses equipamentos.

Hingorani também introduziu o conceito de Custom Power aplicado a sistemas de

distribuição de energia elétrica [2], cujo foco é garantir a qualidade e confiabilidade da

energia entregue ao consumidor. O fornecimento de energia elétrica é mais confiável e

C

CAPÍTULO 1- INTRODUÇÃO 2

de melhor qualidade quando a tensão é mantida senoidal livre de harmônicos, e quando

há uma redução do número de interrupções.

Um outro parâmetro que interfere diretamente na qualidade da energia elétrica é o

valor eficaz de tensão. Este deve permanecer constante e livre de afundamentos.

Existem técnicas convencionais, como banco de capacitores ou transformadores

com o tap variável, que são utilizadas com o intuito de atender este último parâmetro de

qualidade, mas estas se mostram menos eficientes quando comparadas às técnicas que

utilizam dispositivos baseados em Eletrônica de Potência.

O afundamento de tensão (voltage sag) é definido como sendo uma redução do

valor eficaz da componente fundamental da tensão e pode ser causado por curtos-

circuitos, sobre cargas ou fenômenos naturais, tais como descargas atmosféricas. A

conexão de uma carga relativamente grande trifásica ou ainda a conexão de cargas

bifásica ou de várias monofásicas além do afundamento pode também causar

desequilíbrio de tensão.

O diagrama da Figura 1.1 exemplifica o caso de uma conexão de uma carga

altamente indutiva (como um motor durante a partida) causando afundamento de tensão.

Nele pode-se observar uma barra infinita ∞v de tensão igual a 1,0 pu que fornece energia

normalmente através de uma linha de transmissão com reatância XLT a um barramento de

entrada com tensão vIN que está conectado diretamente a uma carga A e, através de uma

chave ch1, a uma carga B altamente indutiva. Com o fechamento da chave ch1,

acionando a carga B, ocorre um afundamento de tensão (temporário ou permanente)

naquele barramento prejudicando o fornecimento de energia e conseqüentemente o

funcionamento da carga A.

CARGAB

CARGAA

LT

BARRA DEENTRADA

ch1

vIN∞v

Figura 1.1: Apresentação do problema

CAPÍTULO 1- INTRODUÇÃO 3

A solução proposta nesse trabalho para esse problema é inserir, entre o barramento de

entrada e a carga sensível A, um compensador série que tenha capacidade de injetar

tensões de amplitudes e ângulos de fase determinados. Este compensador é um

dispositivo baseado na Eletrônica de Potência que possibilita uma rápida compensação de

afundamentos e desequilíbrio nas tensões trifásicas, sendo denominado de Restaurador

Dinâmico de Tensão ou simplesmente DVR (Dynamic Voltage Restorer). Esta solução

está ilustrada na Figura 1.2.

CARGAB

CARGAA

vIN

DSP

LT

BARRA DESAÍDADVR

BARRA DEENTRADA VC

vOUT

ch1

vOUTvIN∞v

CARGAB

CARGAA

vIN

DSP

LT

BARRA DESAÍDADVR

BARRA DEENTRADA VC

vOUT

ch1

vOUTvIN∞v∞v

Figura 1.2: DVR inserido no sistema

1.1 MOTIVAÇÃO

Nos últimos anos a preocupação com a qualidade da energia em sistemas de

distribuição tem aumentado devido a estudos que relatam perdas financeiras expressivas

devido a interrupções, afundamentos momentâneos e presença de harmônicos de tensão

no fornecimento de energia. É comum associar problemas de regulação de tensão com

soluções clássicas, como o emprego de capacitores em primeiro plano, e compensadores

estáticos de reativos (SVC) num segundo plano. Contudo, eles somente controlam a

tensão indiretamente, através de mudança da impedância efetiva do sistema. No caso de

afundamentos momentâneos na tensão causados por faltas no sistema de transmissão ou

distribuição, a injeção de tensão combinada com o suprimento de potência ativa é

necessária. Esta é uma característica distintiva de operação de um DVR.

A principal motivação deste trabalho em realizar estudos preliminares voltados

para o projeto de um DVR, deve-se ao fato deste equipamento oferecer possibilidades

especiais de operação em aplicações visando a melhoria da qualidade de energia entregue

a cargas sensíveis. Além disso, a utilização de um sistema digital baseado em um DSP

CAPÍTULO 1- INTRODUÇÃO 4

(Digital Signal Processor) no controle do DVR, permite substituir um hardware

complexo de componentes analógicos e digitais proporcionando um aumento da

confiabilidade e uma redução dos custos.

1.2 OBJETIVO

Nesta dissertação será apresentada a implementação do controle de um Restaurador

Dinâmico de Tensão em um processador digital de sinais (DSP). Este DVR é aplicado

para compensação de afundamentos, desequilíbrios, e distorções harmônicas. Como

objetivos específicos têm-se:

( i ) Apresentação do modelo de DVR;

( ii ) Apresentação do controle do DVR;

( iii ) Escolha do detector de sequência positiva;

( iv ) Simulações do modelo;

( v ) Implementação de um circuito de sincronismo;

( vi ) Implementação de um detector de sequência positiva;

( vii ) Implementação do controle de compensação de afundamentos;

( viii ) Implementação do chaveamento do inversor.

( ix ) Verificação do funcionamento do DVR.

1.3 ORGANIZAÇÃO DOS CAPÍTULOS

No CAPÍTULO 2, pode ser encontrado a configuração do circuito do DVR e a descrição

de todos os componentes utilizados, atendo ao objetivo específico ( i ).

No CAPÍTULO 3, pode ser encontrado o detalhamento do controle de

afundamentos, desequilíbrios e harmônicos, também o circuito de sincronismo (PLL)

atendo o objetivo ( ii ). Uma análise entre dois detectores de sequência positiva foi feita

neste capítulo com o intuito de atender ao objetivo ( iii ).

No CAPÍTULO 4, está descrito os resultados de simulações que validaram o

modelo e que deram a base necessária para a implementação de um protótipo. Atende ao

objetivo ( iv ).

CAPÍTULO 1- INTRODUÇÃO 5

No CAPÍTULO 5, é apresentado a implementação em DSP de todo o controle do

DVR atendendo os objetivos ( v ), ( vi ), ( vii ), e ( viii ). Neste capítulo também serão

apresentados os resultados obtidos com o protótipo atendendo o objetivo ( ix ).

6

CAPÍTULO 2

RESTAURADOR DINÂMICO DE TENSÃO

Restaurador Dinâmico de Tensão (DVR) é um equipamento de conexão série que

injeta no sistema de potência tensões de amplitude e ângulo de fase dinamicamente

controlados, funcionando como uma fonte de tensão controlada. A sua principal função é

eliminar ou reduzir afundamentos momentâneos de tensão, sobre-elevações

momentâneas, desequilíbrios e harmônicos nas tensões fornecidas aos consumidores.

2.1 CONFIGURAÇÃO DO CIRCUITO DO DVR

O DVR proposto neste trabalho está ilustrado na Figura 2.1 e seus principais

componentes são: um transformador série; um inversor; e um retificador. O circuito de

controle é baseado em um DSP como plataforma digital.

Na Figura 2.1 podemos ver que o DSP recebe os sinais das tensões do sistema

elétrico através de um sistema de medição de tensão que é composto por divisores de

tensão, isoladores, e uma placa condicionadora. Os sinais de disparos das chaves

semicondutores do inversor são gerados pelo DSP e, após serem condicionados por uma

placa de interface ótica, são transmitidos por fibra óptica para o inversor.

O

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 7

SISTEMA DE MEDIÇÃO DE TENSÃO

DSPINTERFACE

ÓPTICA

Rf CfLf

1 3 5

4 6 2

1 3 5

4 6 2

C

Vc

Figura 2.1: Restaurador Dinâmico de Tensão

2.1.1 TRANSFORMADOR SÉRIE

O transformador série é um componente importante do DVR. De acordo como a

Figura 2.2, toda a corrente fornecida à carga passa por este transformador , mesmo que o

DVR não esteja injetando tensão (vc = 0), fazendo com que este deva ter uma baixa

impedância, além de ser capaz de suportar esta corrente. A tensão que o transformador

deve suportar está baseada na avaliação da máxima amplitude de tensão necessária a ser

injetada no sistema para compensar afundamentos de tensão.

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 8

DVR

vcxm

X t /2

vDVR

X t /2IL

DVR

vcxm

X t /2

vDVR

X t /2IL

Figura 2.2: Transformador Série

2.1.2 RETIFICADOR

Para a sua operação, o DVR precisa de um fornecimento de energia ativa. Esta fonte de

energia pode ser uma bateria, células fotovoltaicas ou o próprio sistema. Neste projeto

foi escolhido o próprio sistema, e esta energia é retirada através de um retificador

trifásico com ponte de diodos (não controlado), que é altamente confiável e de baixo

custo.

Os retificadores podem ser controlados e não controlados dependendo do

dispositivo semicondutor utilizado, optou-se pela utilização de um não controlado por

apresentar um custo inferior. A Figura 2.3 mostra este tipo de retificador.

D1 D3 D5

D4 D6 D2

vd

Figura 2.3: Retificador trifásico tipo ponte

O valor médio da tensão no lado de corrente contínua é dado pela equação (2.1).

va

vb

vc

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 9

Vd0 = 1,35.vLL (2.1)

A Figura 2.4(a) mostra a forma de onda das tensões va, vb e vc, a tensão retificada

vd e seu valor médio vd0. Na Figura 2.4(b) pode-se observar o tempo de condução de

cada diodo. Quando a curva referente ao determinado diodo está em nível lógico alto

significa que o diodo está conduzindo, caso contrário (diodo cortado) estará em nível

baixo. Para exemplificar, a curva relativa ao diodo D1 está com as indicações ON e OFF,

que determinam respectivamente os intervalos de condução e corte do diodo.

0 5 10 15 20 25Tempo (ms)

-0,4

-0,3

-0,2

-0,1

0,0

0,1

0,2

0,3

0,4

0 5 10 15 20 25

Tens

ão (k

V)

Tempo (ms)

Figura 2.4: Retificador Ponte Diodo - (a) formas de onda das tensões de entrada e da tensão retificada vd e

de seu valor médio vd0; (b) tempo de condução de cada diodo.

Maiores detalhes sobre o funcionamento deste e de outro tipos de retificadores

podem ser encontrados em [3].

va vb vc

vd

vd0

ON OFF D1

D2

D3

D4

D5

D6

(b)

(a)

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 10

É válido lembrar que a forma de onda de vd mostrada na Figura 2.4(a) corresponde

a uma carga com indutância muito grande (uma fonte de corrente). No caso do DVR

serão utilizados capacitores com o propósito de manter constante a tensão vd e armazenar

energia para o inversor, como já apresentado na Figura 2.1.

2.1.3 INVERSOR

Os conversores estáticos são um conjunto de chaves com capacidade de condução e corte

controlados. Quando estes conversores têm a função de gerar uma tensão alternada a

partir de uma tensão contínua, são chamados de inversores.

No DVR será utilizado um inversor para gerar as tensões de compensação a serem

injetadas no sistema de potência. Dentre as topologias existentes adotou-se o inversor

trifásico em ponte que está representado na Figura 2.5 e tem seu funcionamento

explicado por Mohan et al. em [3].

vDC

Figura 2.5:Inversor Trifásico em Ponte

2.1.3.1 TIPOS DE CHAVEAMENTO

Algumas formas de chaveamento que permitem um controle da tensão gerada pelo

inversor são apresentadas a seguir.

O chamado chaveamento PAM (pulse amplitude modulation) faz com que as

chaves auto-comutadas do conversor sejam acionadas uma vez por ciclo (freqüência da

rede). Neste caso, o controle da amplitude da tensão na saída do inversor é feito pelo

controle da amplitude da tensão vDC do capacitor. Por ser de baixa freqüência, este tipo

de chaveamento apresenta um alto conteúdo de harmônicos de baixa freqüência, porém

apresenta uma alta eficiência, podendo ser aplicado em potências elevadas.

va vb vc

S1 S3 S5

S4 S6 S2

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 11

O chaveamento PWM (pulse width modulation) é realizado em uma freqüência

maior que da rede, podendo ser da ordem de alguns kHz. Os harmônicos gerados por

este tipo de chaveamento são de ordem elevada, podendo ser facilmente filtrados. Ele

apresenta, contudo, uma menor eficiência devido às perdas de energia no chaveamento,

não podendo operar em equipamentos de alta potência e limitando-se a alguns MWs.

Existem várias técnicas de chaveamento PWM, algumas serão apresentadas a

seguir.

PWM Senoidal – SPWM

Este tipo de PWM é o mais utilizado no controle de inversores, e também foi utilizado

nas simulações deste projeto. A SPWM gera os sinais de disparo das chaves

semicondutoras a partir da comparação de um sinal de controle vcontrol com frequência f1

com uma onda triangular portadora vtri de frequência fsw. A tensão de saída do inversor

não é uma onda senoidal perfeita. Ela irá conter um componente fundamental na

frequência f1 e harmônicos em torno de fsw e seus múltiplos.

As principais características da SPWM são expressas pelos índices: razão entre a

amplitude de vcontrol e a amplitude de vtri; razão entre a frequência f1 e a frequência

fsw. Estes índices estão definidos respectivamente em (2.2) e (2.3).

tri

controla V

Vm = (2.2)

1ffm sw

f = (2.3)

A Figura 2.6 exemplifica o funcionamento deste tipo de modulação. Nela

pode-se ver o sinal de controle vcontrol,a relativo a fase a. A comparação de vcontrol,a

com a portadora vtri irá definir o estado das chaves S1 e S4 de acordo com a

expressão (2.4). O estado indicado como ON significa que a chave está fechada, e

OFF indica que a chave encontra-se aberta.

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 12

vcontrol,a > vtri ⇒ S1 – ON

S4 – OFF

vcontrol,a < vtri ⇒ S1 – OFF

S4 – ON

(2.4)

vtrivcontrol,a

S1 – ONS4 – OFF

S1 – OFFS4 – ON

vcontrol,a

vtri

Figura 2.6: PWM Senoidal

Na prática, a frequência fsw do sinal vtri é muito maior que a frequência f1 do sinal

vcontrol, isso facilita o processo de eliminação dos harmônicos realizado pelo filtro R-L-C

pois o primeiro harmônico gerado seria da ordem de fsw [3].

PWM Vetorial – Space Vector Modulation - SVM

Esta técnica de chaveamento tem funcionamento mais complicado do que a SPWM, mas

apresenta importantes vantagens, como a diminuição das perdas de energia durante o

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 13

chaveamento, reduzido conteúdo harmônico nas tensões de saída, e permite o uso mais

eficiente da tensão vDC do barramento CC.

A seguir será apresentada uma breve descrição de sistemas trifásicos para um

melhor entendimento da SVM.

A Figura 2.7(a) mostra um inversor trifásico alimentado uma carga em conexão Y,

e a Figura 2.7(b) mostra o seu circuito equivalente.

S1 S3 S5

S4 S6 S2

ab

c

P

N

VDC n

Z

Z

Z

n

Z

Z

Z

N

a

b

c

vaN,pwm

vbN,pwm

vcN,pwm

(a) (b)

S1 S3 S5

S4 S6 S2

ab

c

P

N

VDC n

Z

Z

Z

n

Z

Z

Z

N

a

b

c

vaN,pwm

vbN,pwm

vcN,pwm

n

Z

Z

Z

N

a

b

c

vaN,pwm

vbN,pwm

vcN,pwm

(a) (b)

Figura 2.7: (a) Inversor trifásico PWM alimentando carga em conexão Y

(b) Circuito equivalente do inversor trifásico PWM

Analisando o circuito da Figura 2.7(b) podemos obter as tensões de fase van, vbn e

vcn como explicado a seguir.

De acordo com a lei de Kirchhoff das tensões podemos obter vNn relativa a cada

ramo do circuito da Figura 2.7(b) de acordo com as equações (2.5), (2.6) e (2.7).

apwmaNNn iZvv ⋅+−= ,

bpwmbNNn iZvv ⋅+−= ,

cpwmcNNn iZvv ⋅+−= ,

(2.5)

(2.6)

(2.7)

)(3 ,,, cbapwmcNpwmbNpwmaNNn iiiZvvvv ++⋅+−−−=⋅ (2.8)

A soma das equações (2.5), (2.6), e (2.7) resulta na equação (2.8). Aplicando a lei

de Kirchhoff das correntes no nó n, tem-se: ia+ib+ic = 0, portanto a equação (2.8) pode

ser reduzida a:

pwmcNpwmbNpwmaNNn vvvv ,,,3 −−−=⋅ (2.9)

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 14

Agora as tensões de fase aplicadas na carga podem ser calculadas mediante as

equações (2.10), (2.11) e (2.12).

pwmcNpwmbNpwmaNpwmaNNnan vvvvvv ,,,, 31

31

32

−−=+= (2.10)

pwmcNpwmbNpwmaNpwmbNNnbn vvvvvv ,,,, 31

32

31

−+−=+= (2.11)

pwmcNpwmbNpwmaNpwmcNNncn vvvvvv ,,,, 32

31

31

+−−=+= (2.12)

O inversor de Figura 2.7(a) necessita apenas de três sinais de disparo já que os

sinais de comando das chaves S4, S6, e S2, são complementares ao das chaves S1, S3 e

S5, com isso temos oito (23) combinações possíveis de tensões produzidas pelo inversor.

A Tabela 2.1 define para cada combinação de chaves as tensões de cada fase em relação

ao ponto N (vaN,pwm, vbN,pwm, vcN,pwm), bem como as tensões de fase na carga (van, vbn, vcn).

S1 S3 S5 v aN,pwm v bN,pwm v cN,pwm v an v bn v cn

0 0 0 0 0 0 0 0 0 0 O 000

1 0 0 V DC 0 0 -V DC /3 2V DC /3 -V DC /3 -V DC /3 V 0°

1 1 0 V DC V DC 0 -2V DC /3 V DC /3 V DC /3 -2V DC /3 V 60°

0 1 0 0 V DC 0 -V DC /3 -V DC /3 2V DC /3 -V DC /3 V 120°

0 1 1 0 V DC V DC -2V DC /3 -2V DC /3 V DC /3 V DC /3 V 180°

0 0 1 0 0 V DC -V DC /3 -V DC /3 -V DC /3 2V DC /3 V 240°

1 0 1 V DC 0 V DC -2V DC /3 V DC /3 -2V DC /3 V DC /3 V 300°

1 1 1 V DC V DC V DC - V DC 0 0 0 O 111

Vetores de Chaveamentos

Estados das Chaves

Tensões de fase em relação à N v Nn

Tensões de fase

Tabela 2.1: Estados das chaves, tensões das fases em relação ao ponto N,

tensões de fases, vetores de chaveamentos

Cada combinação de chaves representa um vetor de chaveamento, e que podem

ser definidos pelas equações (2.13). Estes vetores também são indicados na Tabela 2.1.

Vale notar que apenas o estado de uma chave é alterado entre vetores adjacentes,

proporcionando uma otimização do chaveamento.

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 15

000 0O =

DCVV ⋅=° 3/20

360 3/2

π⋅

° ⋅⋅=j

DC eVV

32

120 3/2π

° ⋅⋅=j

DC eVV

π⋅° ⋅⋅= j

DC eVV 3/2180 ,

34

240 3/2π

° ⋅⋅=j

DC eVV

35

300 3/2π

° ⋅⋅=j

DC eVV

111 0O =

(2.13)

Os seis vetores não nulos com módulos iguais a 3/2 VDC, têm os extremos nos

vértices de um hexágono, e possuem ângulo de defasagem entre si de 60°, como pode ser

visto na Figura 2.8

α

β

V0°

V60°V120°

V180°

V240° V300°

O000O111 T1

T2 VS

T

T

Figura 2.8: Vetores de chaveamento

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 16

O objetivo agora é sintetizar a cada instante de tempo o vetor de saída VS definido

na equação (2.14) e representado na Figura 2.9, mediante a combinação dos vetores

básicos de chaveamento.

3/43/20 ππ jc

jb

jaS evevevV ⋅+⋅+⋅= (2.14)

-2 -1 0 1 2-2

-1.5-1

-0.50

0.51

1.52

Re

Im0 0.005 0.01 0.015

-1

-0.5

0

0.5

1

t(s)

Am

plitu

de

va vb vc VS

Figura 2.9: Sinais de va, vb, e vc e a trajetória do respectivo vetor VS

Fazendo com que, num período de chaveamento TS, o valor médio da tensão de

saída do inversor seja igual ao valor médio do vetor de VS, tem-se:

( )sT

60º 000 1110s s

1 1( ) T1 T2 T0.( / 2 / 2)T Ts x xV t dt V V O O±⋅ = ⋅ + ⋅ + +∫ (2.15)

onde T1 e T2 são os respectivos intervalos de tempo nos quais os vetores de chaveamento

Vx e Vx±60º, correspondente ao setor onde VS se encontra, são aplicados. Para uma

frequência de chaveamento muito alta (TS muito pequeno), podemos assumir que não há

variação do vetor VS dentro de um periodo de tempo TS. Com isso a equação (2.15)

transforma-se em (2.16).

( )0º 60º 000 111s

3

s

1 T1 T2 T0.( / 2 / 2)T

1 T1 2 / 3 T2 2 / 3T

s

j

s DC DC

V V V O O

V V V eπ

= ⋅ ⋅ + ⋅ + +

= ⋅ ⋅ + ⋅ ⋅ ⋅

(2.16)

onde

T0 T1 T2 Ts+ + = (2.17)

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 17

Como exemplo, suponhamos que queremos sintetizar o vetor VS quando ele se

encontra no setor delimitado pelos vetores V0º e V60º como na figura Figura 2.8. Podemos

encontrar os períodos T1 e T2 em que são aplicados os padrões de chaveamento dos

vetores V0º e V60º respectivamente (001 e 011) de acordo com (2.16), e o período T0 pela

equação (2.17). Para este setor a sequência de chaveamento adotada é: ... O000 - V0º - V60º

- O111 - O111 - V60º - V0º - O000 ... . A Figura 2.10 ilustra como é executada esta sequência

de chaveamento.

000000 111 111001 011 011 001 001 011111 000PWM1

PWM3

PWM5

va,ref

vb,ref

vc,ref

T

T04 T⋅

T12 T⋅

T22 T⋅

T04 T⋅

T04 T⋅

T04 T⋅

T04 T⋅

T22 T⋅

T12 T⋅

T12 T⋅

T22 T⋅

T04 T⋅

T

V0° V60°O000 O111O111 V60° V0° O000 V0° V60°O000 O111

Figura 2.10: Sequência de chaveamento

Cada setor apresenta uma sequência de chaveamento que começa e termina com o

vetor O000. Estas sequências estão definidas na tabela Tabela 2.2 abaixo. SETOR LIMITES SEQUÊNCIA

1 V 0º - V 60º O 000 - V 0º - V 60º - O 111 - O 111 - V 60º - V 0º - O 000

2 V 60º - V 120º O 000 - V 120º - V 60º - O 111 - O 111 - V 60º - V 120º - O 000

3 V 120º - V 180º O 000 - V 120º - V 180º - O 111 - O 111 - V 180º - V 120º - O 000

4 V 180º - V 240º O 000 - V 240º - V 180º - O 111 - O 111 - V 180º - V 240º - O 000

5 V 240º - V 300º O 000 - V 240º - V 300º - O 111 - O 111 - V 300º - V 240º - O 000

6 V 300º - V 0º O 000 - V 0º - V 300º - O 111 - O 111 - V 300º - V 0º - O 000

Tabela 2.2: Seqüências de chaveamento

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 18

2.1.4 FILTROS

A tensão gerada pelo inversor é proveniente de um chaveamento PWM e, como já visto,

contém harmônicos de alta freqüência. Este problema pode ser facilmente resolvido com

a introdução de filtros. Neste trabalho foram utilizados filtros L-R-C que podem ser visto

na Figura 2.11

VIN VOUTVIN VOUT

Figura 2.11: Filtro L-R-C

Estes filtros provocam uma defasagem na componente fundamental da tensão

gerada pelo inversor. A solução para este problema será apresentada no CAPÍTULO 3.

2.1.5 DSP

O controle do DVR, foi desenvolvido sobre uma plataforma digital que tem como seu

coração o DSP TMS320LF2407A. Este processador foi desenvolvido pela Texas

Instruments, Inc. para auxiliar em várias aplicações de controle digital, e está embarcado

no módulo eZdsp™LF2407 criado pela Spectrum Digital, Inc.. As principais estruturas

do módulo eZdsp™LF2407 estão descritas no diagrama abaixo:

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 19

ADDRESS

DATA

JTAG

A/D

Converter

PARALLELPORT/JTAG

CONTROLLER

JTAG

PAR

ALL

ELSRAM

64k x 16PROGRAM/

DATA

AN

ALO

G E

XPA

NSI

ON

I/O

EXP

AN

SIO

N

EXPA

NSI

ON

DSP

TMS320LF2407

Figura 2.12: Diagrama de blocos do módulo eZdsp™LF2407

2.1.5.1 CARACTERÍSTICAS

O TMS320LF2407A é um dispositivo baseado na geração TMS320C2xx de processador

de ponto fixo de 16 bits. Este dispositivo oferece uma CPU de baixo custo, baixa

potência (designado para 3.3V), e de alto desempenho de processamento (40MIPS).

Apresenta, ainda, periféricos avançados otimizados para aplicações em eletrônica de

potência e controle.

Um periférico muito importante na implementação do sistema é o conversor

analógico-digital (C-A/D). O DSP aqui apresentado possui um C-A/D de 10 bits e

oferece 16 canais de entrada analógica tendo um tempo mínimo para a aquisição e

conversão de 375 ns. A capacidade de autosequenciamento do C-A/D permite que até 16

conversões sejam realizadas na mesma sessão de conversão.

O DSP também possui dois módulos gerenciadores de eventos (EV – Event

Manager) com dois temporizadores de propósito geral de 16 bits por módulo, e três

unidades de comparação com tempo morto configurável , associado ao Timer 1 para a

geração de PWM simétrico e assimétrico. O circuito integrado possui 40 pinos de

entradas-saídas digitais compartilhados com outras funções e três módulos de

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 20

comunicação com o exterior: serial síncrona (SPI); serial assíncrona (SCI); e CAN

(Controller Area Network)

2.1.6 SISTEMA DE MEDIÇÃO DE TENSÃO

Para o correto funcionamento do controle do DVR, há a necessidade de medições dos

sinais de tensão no ponto da linha de distribuição na qual o DVR se propõe a compensar

os desequilíbrios e harmônicos. Para isso, é necessário um sistema de medição preciso,

além de uma proteção e isolamento do circuito de controle.

O sistema de medição desenvolvido para este projeto pode ser dividido em 3

módulos: o primeiro trata de um circuito divisor de tensão formado apenas por resistores;

o segundo módulo é formado por condicionadores 5B41-06 fabricados pela Analog

Devices e montados no backplane 5B01 do mesmo fabricante; e o terceiro módulo é uma

placa de circuito impresso criada no próprio laboratório.

O circuito divisor de tensão está representado na Figura 2.13. Os valores dos

resistores são dados na Tabela 2.3 abaixo sendo que RIN é a impedância de entrada dos

condicionadores 5B41-06 de acordo com a referência [6]

RS 128kΩ

RP 10kΩ

RIN 650kΩ

Tabela 2.3: Valores dos resistores do circuito divisor de tensão

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 21

RS

Va

Vb

Vc

RS

RS

5B41RINRP

5B41RINRP

5B41RINRP

BACKPLANE

V’ab

V’ca

V’bc

Figura 2.13: Circuito divisor de tensão

A atenuação dada por este circuito está de acordo com a expressão (2.18)

.

´ // 13 // 40

ff P INdiv ten

ff S P IN

V R RatenV R R R

= = ≈⋅ +

(2.18)

Onde Vff é uma tensão de linha medida no sistema, e V´ff é o sinal entregue para os

condicionadores 5B41.

O segundo módulo da medição de tensão é formado pelo condicionador 5B41-06

que além de atenuar o sinal da tensão também irá adicionar um offset de 2.5V. Com isso

o sinal da tensão fase-fase é dado por (2.19)

//´ 0.25 2.53 //

P INff ff

S P IN

R RV VR R R

= ⋅ ⋅ + ⋅ +

(2.19)

Estes condicionadores são montados no backplane 5B01 como visto na

Figura 2.13, e também são utilizados para isolar o circuito de potência do circuito de

controle. Maiores informações sobre o 5B41 podem ser encontradas na referência [6].

O terceiro módulo é formado pela placa condicionadora. Esta condiciona os sinais

de tensão na faixa 0-5V à faixa 0-3.3V compatível com os níveis das entradas analógicas

do DSP. Esta placa apresenta um circuito de proteção para as portas do C-A/D limitando

a tensão de entrada ao valor 5V. O circuito de condionamento é esquematizado na

Figura 2.14. A placa de condicionamento apresenta seis destes circuitos.

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 22

in

-15V

-15V

15V

5V

5V

D1

D2470pF

470pF

100nF

100nF10nF

10kΩ

10kΩ

10kΩ

10kΩ7.8kΩ

20kΩ

1kΩ

10kΩ

150Ω 150Ωin

15Vout

out

Figura 2.14: Circuito da placa de condicionamento de sinais

2.1.7 INTERFACE ÓPTICA

Com o intuito de tornar o controle do DVR mais confiável, e ainda proporcionar

isolamento entre os circuitos de potência e os de controle, optou-se pela utilização de

fibras ópticas para o envio dos sinais de disparo e bloqueio das chaves semicondutoras do

inversor. Com isso foi necessário desenvolver uma interface óptica responsável pelo

envio destes seis sinais de controle (um sinal para cada chave), e também responsável por

receber possíveis sinais indicativos de erro de chaveamento, emitidos pelo inversor (um

sinal para cada fase).

Os circuitos transmissor (Tx) e receptor (Rx) estão ilustrados na figura abaixo.

Ambos os circuito foram montados de acordo com a referência [7].

Tx Rx

4.7µF

VccR1

C1

75451in

0.1µF

+3.3V

out

Figura 2.15: Interface óptica

2.2 PROTÓTIPO

Para a validação do projeto, foi montado um protótipo do equipamento, operando num

modelo reduzido mostrado na Figura 2.16.

CAPÍTULO 2 – RESTAURADOR DINÂMICO DE TENSÃO 23

CARGAB

CARGAA

LT

BARRA DESAÍDADVR

BARRA DEENTRADA VC

ch1

vOUTvIN∞v∞v

Inversor75kVA

Retificador6 pulsos

Figura 2.16: Unifilar do protótipo

Carga A 88mH + 30ΩCarga B 88mHLT 10mHTrafo Série 0.59mH

24

CAPÍTULO 3

CONTROLE DO DVR

controle do DVR é composto por três instâncias: algoritmo de compensação de

afundamentos; algoritmo de compensação de harmônicos e desequilíbrios; e

chaveamento PWM do inversor.

3.1 ALGORITMO DE COMPENSAÇÃO DE AFUNDAMENTOS.

O algoritmo de compensação de afundamentos de tensão está representado na

Figura 3.1. Para o correto funcionamento é necessário à aquisição das tensões na barra

de entrada do DVR e as tensões no barramento de saída do DVR. Neste controle calcula-

se o valor agregado instantâneo v∑ definido por (3.1) que, para tensões equilibradas é

igual ao valor eficaz da tensão de linha, como mostrado a seguir.

222 ''' cba vvvv ++=∑ (3.1)

Para:

)3/2(sin)3/2(sin)(sin

);3/2sin(');3/2sin('

);sin('

222222 πωπωω

πωπω

ω

++−+=⇒

+=−=

=

∑ tVtVtVv

tVvtVvtVv

FNFNFN

FNc

FNb

FNa

O

CAPÍTULO 3 – CONTROLE DO DVR 25

sabendo que:

)2(cos21

21)(sin

)(sin21)2cos(

)(sin)(cos)2cos(

22

2

2

)(sin1

2

2

XX

XX

XXXx

−=

−=

−=−

então:

RMSFFFN

FN

FNFNFN

VvVv

tttVv

tVtVtVv

=⇒=

−+++−=

+−+

−−+

−=

∑∑

=

23

))3/22(cos)3/22(cos)2(cos(21

23

)3

42(cos21

21)

342(cos

21

21)2(cos

21

21

0

222

222222

πωπωω

πωπωω

Detector de v +1

PLL ω t Gerador

de senos XX

X X

X X v a v b v c

v aL v bL v cL

XX

XX

XX

+ +

+ ∑ x

v ∑∑

v REF

v erro Controlador PI

v ac

v bs

v cs

v asc

v bsc

v csc

v’ aL

v’ bL

v’ cL +

-

Figura 3.1: Diagrama de blocos do controle de afundamentos

No sistema da Figura 3.1, as tensões estão normalizadas em relação aos valores

bases do sistema:

va, vb, vc – tensões da barra de entrada do DVR, estas tensões estão sujeitas a

afundamento, desequilíbrios e harmônicos.

v’a, v’b, v’c – componente fundamental de sequência positiva das tensões da barra

de entrada (definidas acima)

CAPÍTULO 3 – CONTROLE DO DVR 26

vaL, vbL, vcL – tensões da barra de saída do DVR, as tensões medidas na carga que

se deseja proteger.

v’aL, v’bL, v’cL – componente fundamental de sequência positiva das tensões da

barra de saída do DVR.

vREF – valor de referência da tensão de linha na barra de saída.

v∑ – valor agregado da barra de saída do DVR, ou seja, valor eficaz instantâneo da

componente fundamental de sequência positiva da tensão de linha da carga que se

deseja proteger.

verro – diferença entre o valor eficaz da tensão da barra de saída do DVR e o valor

de referência.

vas, vbs, vcs – sinais senoidais de valor eficaz unitário sincronizados com a

componente fundamental de sequência positiva da barra de entrada do DVR.

vasc, vbsc, vcsc – sinais da tensão de controle para compensação de afundamentos.

O controle de afundamentos recebe com entrada os sinais das tensões das barras

de entrada e saída do DVR (va, vb, vc e vaL, vbL, vcL). Utilizando um detector de sequência

positiva, apresentado adiante, calcula-se as componentes de sequência positiva da tensão

da barra de saída (v´aL, v´bL, v´cL), e partir de (3.1) o seu valor agregado (v∑).

O próximo passo é comparar este valor agregado v∑ com uma tensão de referência

vREF obtendo o erro de afundamento verro que deve ser compensado. O valor de vREF deve

ser o valor da tensão de linha da barra a ser protegida quando não há afundamento. Nesta

situação os valores de v´aL, v´bL e v´cL estão normalizados em 1 p.u. o que faz com que o

valor eficaz da tensão de linha seja igual a 3 p.u., que é o valor com o qual a tensão de

referência é ajustada.

Sabendo que um controlador PI tem como característica apresentar erro nulo em

regime, sua saída representará o valor eficaz do sinal de tensão (índice de modulação)

que está sendo injetado na barra de saída para compensar o afundamento.

Para o chaveamento correto do inversor é necessário que se conheça a forma de

onda da tensão a ser injetada e não somente o seu valor eficaz e para isso utilizou-se um

circuito PLL (Phase-Locked Loop) para encontrar a freqüência e a fase das tensões va, vb

e vc e, assim, produzir os sinais senoidais de valor eficaz unitário vas, vbs, e vcs que

CAPÍTULO 3 – CONTROLE DO DVR 27

multiplicados pela saída do PI formam os sinais de compensação de afundamentos vasc,

vbsc, vcsc.

3.2 ALGORITMO DE COMPENSAÇÃO DE HARMÔNICOS E DESEQUILÍBRIOS

Dentro dos conceitos de Custom Power implantou-se no controle do DVR um algoritmo

de compensação de harmônicos e desequilíbrios para que o consumidor final, além de ter

garantido um fornecimento de energia sem afundamentos de tensão, tenha também uma

tensão de qualidade livre de harmônicos e desequilíbrios. A Figura 3.2 ilustra o diagrama

deste algoritmo.

Detector de v+1

vavbvc

-+ ∑

v’a

v’b

v’c-

+ ∑

-∑

+ vahc

vbhc

vchc

Figura 3.2: Diagrama de blocos do controle de harmônicos e desequilíbrios

vahc, vbhc, vchc – tensões de compensação de harmônicos e desequilíbrios.

Compostas pelo oposto dos harmônicos e desequilíbrios.

A forma da tensão da barra de entrada do DVR pode ser vista na equação (3.2),

onde está expressa somente a fase a. Em (3.2) podemos observar que va tem uma

componente de sequência positiva (primeira parcela). A segunda e terceira parcelas de va

representam, respectivamente, a componente de sequência negativa e o somatório de

todos os harmônicos.

∑∞

=−−++ +⋅++⋅++⋅=

2111111 )(2)(2)(2

hhhha tsinVtsinVtsinVv φωφωφω (3.2)

)(2´ 111 ++ +⋅= φω tsinVv a (3.3)

∑∞

=−− +⋅−+⋅−=

2111 )(2)(2

hhhhahc tsinVtsinVv φωφω (3.4)

CAPÍTULO 3 – CONTROLE DO DVR 28

De acordo com o diagrama do controle de harmônicos e desequilíbrios da

Figura 3.2 pode-se ver que a tensão de compensação harmônica e de desequilíbrios vahc é

dada por v´a - va com polaridade oposta à das componentes de harmônicos e

desequilíbrios da fase a do sistema de potência. Com esta mesma lógica foram criadas as

tensões de compensação das outras fases (vbhc.e vchc).

3.3 TENSÕES DE REFERÊNCIA PARA O CHAVEAMENTO DO INVERSOR

As tensões de referência para o chaveamento do inversor são a soma das tensões de

compensação de afundamentos e de compensação de harmônicos e desequilíbrios.

Como o circuito L-R-C na saída do inversor PWM pode causar um deslocamento

de fase nas tensões de compensação geradas pelo inversor vfa, vfb e vfc, foi utilizada uma

malha adicional de controle com as realimentações de vfa, vfb e vfc para minimizar os

desvios entre o valor de referência e os valores atuais, como mostrado para uma fase na

Figura 3.3.

vkhc

vksc

∑∑ KVKV∑∑ ∑∑

onde k = a,b,cvfk

vckv*

ck

+++

++

-

Figura 3.3: Sinal de referência para o chaveamento

O ganho KV multiplica o erro entre o valor de referência encontrado pelo controle

de afundamentos, harmônicos e desequilíbrios (v*ck) e o valor da tensão gerada pelo

inversor (vfk). Ele é ajustado com o maior valor possível, considerando que os novos

valores de referência (vck = v*ck + KV(v*

ck - vfk); onde k=a,b,c) fornecidos ao controle de

chaveamento não devam exceder a amplitude da onda portadora triangular.

3.4 DESCRIÇÃO DOS COMPONENTES UTILIZADOS NOS ALGORITMOS

Três componentes que compõem a estrutura dos algoritmos apresentados acima merecem

ser detalhados: o circuito PLL, o detector de sequência positiva e o gerador de senos.

CAPÍTULO 3 – CONTROLE DO DVR 29

3.4.1 CIRCUITO PLL

O circuito PLL é responsável pela determinação da frequência e ângulo de fase da

componente fundamental de sequência positiva de tensões ou correntes do sistema. Este

dispositivo vem sendo aplicado no controle de equipamentos de Eletrônica de Potencia

que operam dentro dos conceitos FACTS ou Custom Power.

Para o entendimento do algoritmo do Circuito PLL implementado é necessário

conhecer alguns dos princípios da Teoria das Potências Ativa e Reativa Instantâneas (ou

simplesmente Teoria PQ).

3.4.1.1 TEORIA PQ

A principal diferença entre a teoria convencional de potências ativa e reativa e a Teoria

PQ é que a primeira baseia-se no domínio da freqüência e a segunda no domínio do

tempo. Para sistemas com distorções harmônicas e desequilíbrios entre fases a teoria

convencional mostra-se bem menos eficiente. OS sistemas com conteúdo harmônico

elevado devido a cargas não lineares, são mais facilmente analisados com a utilização da

Teoria PQ.

As potências instantâneas são definidas pela expressão (3.5).

−=

)()()(

)()(0)()(0

00)(

)()()( 000

tititi

tvtvtvtv

tv

tqtptp

β

α

αβ

βα (3.5)

As tensões vα ,vβ e v0 descritas em (3.5) são obtidas através da transformação de

Clarke mostrada na expressão (3.6). Esta transformação também é válida para as

correntes iα ,iβ e i0.

−−=

)()()(

23

230

21

211

21

21

21

32

)()()(0

tvtvtv

tvtvtv

c

b

a

β

α (3.6)

A expressão (3.7) mostra a transformação inversa de Clarke

CAPÍTULO 3 – CONTROLE DO DVR 30

−−

−=

)()()(

23

21

21

23

21

21

012

1

32

)()()( 0

tvtvtv

tvtvtv

c

b

a

β

α (3.7)

De (3.5) obtem-se:

)()()()()( titvtitvtp ββαα ⋅+⋅= (3.8)

Sistemas balanceados e sem harmônicos.

Para sistemas balanceados e sem harmônicos é válido:

−==

)cos(3)sen(3tVv

tVvω

ω

β

α (3.9)

e

+−=+=

)cos(3)sen(3φω

φω

β

α

tIitIi

(3.10)

Com isso p(t) e q(t) são constantes e valem:

)cos(3)( φ−= VItp (3.11)

)(sen3)( φ−−= VItq (3.12)

Das expressões (3.11) e (3.12) conclui-se que:

0)(90

0)(90

0)(90

<⇒°>

>⇒°<

=⇒°=

tp

tp

tp

φ

φ

φ

0)(90º180

0)(180º0

0)(1800

>⇒°<<

<⇒°<<

=⇒°=∧°=

tq

tq

tq

φ

φ

φφ

Sistemas desequilibrados e com harmônicos

Para sistemas desequilibrados e com conteúdo harmônico são válidas as expressões:

CAPÍTULO 3 – CONTROLE DO DVR 31

+++−=

+++=

∑∑

∑∑∞

=−−

=++

=−−

=++

11

11

)cos(3)cos(3

)sen(3)sen(3

nnnn

nnnn

nnnn

nnnn

tVtVv

tVtVv

δωδω

δωδω

β

α

(3.13)

e

+++−=

+++=

∑∑

∑∑∞

=−−

=++

=−−

=++

11

11

)cos(3)cos(3

)sen(3)sen(3

nnnn

nnnn

nnnn

nnnn

tItIi

tItIi

φωφω

φωφω

β

α

(3.14)

onde n o índice para as ordens dos harmônicos.

Assim a potência real instantânea p(t) além da parcela constante ( p ) terá uma

parcela oscilante ( p~ )::

pptp ~)( += (3.15)

onde:

∑ ∑∞

=

=−−−−++++ −+−=

1 1

)cos(3)cos(3n n

nnnnnnnn IVIVp φδφδ (3.16)

∑ ∑

∑ ∑

∑ ∑

∑ ∑

=

=+−+−

=

=−+−+

≠=

=−−−−

≠=

=++++

+++−+

+

+++−+

+

−+−+

+

−+−=

1 1

1 1

1 1

1 1

))cos((3

))cos((3

))cos((3

))cos((3~

m nnmnmnm

m nnmnmnm

nmm n

nmnmnm

nmm n

nmnmnm

tIV

tIV

tIV

tIVp

φδωω

φδωω

φδωω

φδωω

(3.17)

A potência imaginária instantânea q(t) também terá uma parcela constante ( q ) e

uma parcela oscilante ( q~ ):

qqtq ~)( += (3.18)

onde:

CAPÍTULO 3 – CONTROLE DO DVR 32

∑ ∑∞

=

=−−−−++++ −+−−=

1 1)(sen3)(sen3

n nnnnnnnnn IVIVq φδφδ (3.19)

∑ ∑

∑ ∑

∑ ∑

∑ ∑

=

=+−+−

=

=−+−+

≠=

=−−−−

≠=

=++++

+++−+

+

++++

+

−+−+

+

−+−−=

1 1

1 1

1 1

1 1

))((sen3

))((sen3

))((sen3

))((sen3~

m nnmnmnm

m nnmnmnm

nmm n

nmnmnm

nmm n

nmnmnm

tIV

tIV

tIV

tIVq

φδωω

φδωω

φδωω

φδωω

(3.20)

3.4.1.2 ALGORITMO DO CIRCUITO PLL

O circuito PLL utilizado tem seu diagrama de blocos representado na Figura 3.4, onde vα

e vβ são sinais de tensões reais do sistema elétrico que passaram pela transformação de

Clarke (3.6). Já i´α e i´β são sinais de correntes fictícias geradas internamente ao PLL.

Controlador PI

X

X

Σ

sin(ω⋅t)

-cos(ω⋅t)

s1

βv

αv

αi

βi

φ3´p t⋅ωω

Figura 3.4: Circuito PLL

Pelo diagrama observa-se que a entrada p´3φ do controlador PI é calculada de

acordo com a equação (3.8), sendo que agora as correntes i´α e i´β são de seqüência

positiva e de amplitude unitária, fazendo com que as expressões de p e p~ sejam

reduzidas para (3.21) e (3.22) respectivamente.

CAPÍTULO 3 – CONTROLE DO DVR 33

)cos(3 111 +++ −= φδVp (3.21)

∑∞

=+−−

=+++

+++−+

+−+−=

111

111

))cos((3

))cos((3~

nnnn

nnnn

tV

tVp

φδωω

φδωω (3.22)

Sabendo que o controlador PI é capaz de anular o erro de regime, observamos à

luz da equação (3.21) que existem dois pontos de operação em que o valor de p é nulo:

um quando as corrente fictícias i´α e i´β estão atrasadas de 90° de suas respectivas

tensões; e o outro ponto ocorre quando as correntes estão adiantadas de 90° de suas

respectivas tensões.

Porém, no ponto em que as correntes estão atrasadas de 90° de suas tensões,

qualquer perturbação no sistema faz com que o PLL saia de sincronismo, sendo então um

ponto de operação instável. Com isso, o único ponto de operação estável do circuito PLL

ocorre quando as correntes estão adiantadas de 90° de suas respectivas tensões, como

pode ser observado na Figura 3.5.

i´β

i´α

Figura 3.5: Ponto estável de operação do circuito PLL

Em regime o valor da saída ω do PI é constante e igual à freqüência angular do

sistema elétrico. O valor de ωt utilizado para gerar as realimentações de correntes são

obtidos a partir da integração de ω.

Ajuste do controlador PI

O valor de p´3φ possuirá ainda uma parcela oscilante que, dependendo do ajuste nos

ganhos KI e KP, pode causar uma oscilação indesejada no valor de ω. A sintonia do PI

deve também garantir uma resposta dinâmica suficientemente rápida do PLL para

variações em tempo real do sistema. Por isso, deve-se tolerar uma pequena oscilação de

CAPÍTULO 3 – CONTROLE DO DVR 34

ω se o sistema contiver um elevado nível de harmônicos e desequilíbrios. Os valores

para os ganhos KI e KP obtidos empiricamente e mostrados abaixo, respeitam esse

compromisso:

KP = 50 KI = 3000

Resultados de simulações do circuito PLL

A fim de verificar o correto funcionamento do PLL modelado, foram conduzidas algumas

simulações no MATLAB® cujos resultados são mostrados nos próximos itens.

i) Tensões balanceadas e sem distorção harmônica

No primeiro caso simulado considera-se que o sistema de tensões trifásicas esteja

balanceado e sem harmônicos (Figura 3.6).

0 0.05 0.1

-1-0.8-0.6-0.4-0.2

00.20.40.60.8

1

Tempo (s)

Am

plitu

de (p

u)

Figura 3.6: Tensões Balanceadas e sem harmônicos

Na Figura 3.7 estão traçados os sinais vα e i´β que, como visto na Figura 3.5,

encontram-se em fase quando o PLL atinge seu ponto de operação estável.

CAPÍTULO 3 – CONTROLE DO DVR 35

0 0.05 0.1 0.15 0.2 0.25

-1-0.8-0.6-0.4-0.2

00.20.40.60.8

1

tempo (s)

ampl

itude

(pu)

vαiβ

Figura 3.7: Tensão vα ea corrente fictícia i´β gerada pelo PLL

Na Figura 3.8 observa-se o gráfico de p´3φ calculado pelo PLL. Note que o

instante em que o valor de p´3φ se estabiliza em zero é o mesmo na qual i´β fica em fase

com vα da Figura 3.7.

Na Figura 3.9 observa-se o gráfico da freqüência angular ω que corretamente se

estabiliza no valor de 2πf (376.99 rad/s).

0 0.05 0.1 0.15 0.2 0.25-0.6-0.4-0.2

00.20.40.60.8

11.21.4

p´3φ

tempo (s)

Figura 3.8: Gráfico de p´3φ

0 0.05 0.1 0.15 0.2 0.25360

380

400

420

440

460

ω(r

ad/s

)

tempo (s)

Figura 3.9: Gráfico de ω

ii) Tensões desequilibradas e com distorção harmônica

No segundo caso simulado considera-se que o sistema de tensões trifásicas esteja

desequilibrado e possua harmônicos (Figura 3.10).

CAPÍTULO 3 – CONTROLE DO DVR 36

Os sinais da Figura 3.10 contêm 12.5% de seqüência negativa e um nível de

distorção harmônica total (THD) de 13.784%. O seu espectro harmônico pode ser visto

na Figura 3.11.

0 0.05 0.1-1.5

-1

-0.5

0

0.5

1

1.5

tempo (s)

Am

plitu

de (p

u)

Figura 3.10: Tensões desequilibradas e com

harmônicos

1 3 5 7 9 110

0.2

0.4

0.6

0.8

1

Ordem do HarmônicoA

mpl

itude

(pu)

Figura 3.11: Conteúdo Harmônico

Na Figura 3.12 estão traçados os sinais vα e i´β que, como visto na Figura 3.5,

encontram-se em fase quando o PLL atinge seu ponto de operação estável.

0 0.05 0.1 0.15 0.2 0.25

-1-0.8-0.6-0.4-0.2

00.20.40.60.8

1

tempo(s)

Am

pitu

de (p

u)

vαiβ

Figura 3.12: Tensão vα e a corrente fictícia i´β gerada pelo PLL

Na Figura 3.13 observa-se o gráfico de p´3φ calculado pelo PLL. Note que este

valor terá uma parcela oscilante (Figura 3.14) de acordo com a equação (3.22).

THD=13.784%

CAPÍTULO 3 – CONTROLE DO DVR 37

0 0.05 0.1 0.15 0.2 0.25-1

-0.5

0

0.5

1

1.5

tempo (s)

p´3φ

Figura 3.13: Gráfico de p´3φ

0.2 0.25

0

tempo (s)

p~ p~

Figura 3.14: Gráfico de p~

Esta parcela oscilante faz com que a saída ω do PI possua um desvio máximo de

4% entorno do valor de 2πf (376.99 rad/s). A Figura 3.15 mostra o gráfico de ω.

0 0.05 0.1 0.15 0.2 0.25300

340

380

420

460

500

tempo (s)

ω(r

ad/s

)

Figura 3.15: Gráfico de ω

Esta oscilação em ω gerado pelo PLL causa uma distorção nas correntes fictícias

i´α e i´β. Estas correntes apresentam, para este caso, um THD de 0.391% e a amplitude

do maior harmônico (3°) vale 0.348% da amplitude da fundamental, como mostrado na

Figura 3.16.

CAPÍTULO 3 – CONTROLE DO DVR 38

3 5 7 9 11 13 15 17 1901234 x 10-3

Ordem do harmônicoA

mpl

itude

(pu)

Figura 3.16: Conteúdo Harmônico de i´α

Conclusões sobre o circuito PLL

O circuito PLL proposto para ser utilizado no controle do DVR apresentou resultados

bastante satisfatórios, como pode ser comprovado na seção anterior, para sistemas com

distúrbios harmônicos e desequilíbrios de tensão.

3.4.2 DETECTOR DE SEQUÊNCIA POSITIVA

A tensão de fase tanto na barra de entrada como na barra de saída são compostas

principalmente de componentes de sequência positiva, mas podem conter também

componentes de sequência negativa (desequilíbrios) e conter harmônicos (distorções). A

detecção da componente de sequência positiva é crucial para o correto funcionamento dos

algoritmos de controle do DVR.

Nesta dissertação será apresentado o funcionamento e a comparação entre dois

tipos de detectores de sequência positiva. O primeiro detector está relacionado

diretamente com o trabalho apresentado por Fortescue [8], enquanto que o segundo

detector baseia-se na Teoria de Potências Instantâneas e foi utilizado por Aredes em [10].

3.4.2.1 DETECTOR BASEADO EM COMPONENTES SIMÉTRICAS

De acordo com o teorema de Fortescue, todo sistema trifásico desequilibrado pode ser

decomposto em três sistemas trifásicos balanceados. Estes sistemas definem as seguintes

componentes:

1. Componentes de sequência positiva – sistema composto por três fasores de

mesma magnitude e defasados de 120° tendo a mesma sequência dos

fasores originais

CAPÍTULO 3 – CONTROLE DO DVR 39

2. Componentes de sequência negativa – sistema composto por três fasores de

mesma magnitude e defasados de 120° tendo a sequência oposta dos

fasores originais

3. Componentes de sequência zero – sistema composto por três fasores de

mesma magnitude e mesmo ângulo de fase.

va1

vc1

vb1va2

vb2

vc2

va0vc0vb0

Componentes de sequência positiva

Componentes de sequência negativa

Componentes de sequência zero

Figura 3.17: Componentes Simétricas

Com isso cada fasor do sistema desequilibrado é igual à soma de suas

componentes simétricas, resultando em:

Va=Va1+ Va2+ Va0

Vb=Vb1+ Vb2+ Vb0

Vc=Vc1+ Vc2+ Vc0

(3.23)

v a1

v b1

v c1 v a2

v b2

v c0 v a0

v b0

v c2

v a

v b

v c

v a1

v b1

v c1 v a2

v b2

v c0 v a0

v b0

v c2

v a

v b

v c

Figura 3.18: Representação gráfica da equação (3.23).

A decomposição de um sistema trifásico desequilibrado em componentes

simétricas é feita de acordo com a expressão (3.24)

CAPÍTULO 3 – CONTROLE DO DVR 40

=

c

b

a

a

a

a

VVV

aaaa

VVV

2

2

2

1

0

11

111

31 (3.24)

onde a é um operador que impõe uma rotação de 120°:

866.05.012401

866.05.0112013/22

3/2

jea

jeaj

j

−−==°=

+−==°=− π

π

Haque et al. utiliza em [9] dois blocos de controle que tem um funcionamento

similar aos operadores a e a2. Com isso foi possível desenvolver o detector de sequência

positiva da Figura 3.19.

Adianta 120°

Atrasa 120°

∑31 Filtro

Passa- BaixaAdianta 120°

Atrasa 120°+

++

va

vb

vc

v’a

v’b

v’c

Adianta 120°

Atrasa 120°

∑∑31 Filtro

Passa- BaixaAdianta 120°

Atrasa 120°+

++

va

vb

vc

v’a

v’b

v’c

Figura 3.19: Detector baseado em componentes simétricas

A operação dos blocos de controle “Adianta 120°” e “Atrasa 120°” resulta em um

avanço de fase de 120° em vb e atraso de 120° em vc. A Figura 3.20 mostra estes blocos

de controle em detalhe. Os termos vi e vo são respectivamente funções de entrada e saída

deste blocos.

0,5

sTsTK

+−

1)1(

∑-

+

vovi0,5

sTsTK

+−

1)1(

∑∑-

+

vovi

Figura 3.20: Diagrama de blocos utilizado para atrasar ou adiantar de 120°

As magnitudes de K e 1/T definem respectivamente o ganho e a frequência

fundamental para a qual a função de transferência (3.25) apresentará em sua saída uma

defasagem de 90° em relação a sua entrada.

sTsTK

vv

i

o

+−

=1

)1( (3.25)

CAPÍTULO 3 – CONTROLE DO DVR 41

onde T=1/ω1, ω1=2πf1 e f1 é a frequência fundamental.

O valor de K para o caso de adiantar 120° é 2/3 , e - 2/3 para atrasar 120°. A

Figura 3.16 exemplifica o funcionamento destes blocos de controle.

vi

vo

-0.5 vi

-0.866 vi e jπ/2

vi

vo

-0.5 vi

0.866 vi e jπ/2

(a) (b)

vi

vo

-0.5 vi

-0.866 vi e jπ/2vi

vo

-0.5 vi

vi

vo

-0.5 vi

-0.866 vi e jπ/2

vi

vo

-0.5 vi

0.866 vi e jπ/2

(a) (b)

Figura 3.21: Funcionamento dos Blocos de controle: (a) adianta 120° (b) atrasa 120°

O filtro Passa-Baixa é responsável por filtrar as componentes harmônicas. A Figura 3.22

ilustra o seu diagrama de blocos.

Ts+11

Ts+11

Ts+11

Ts+−

14

Ts+11

Ts+11

Ts+11

Ts+−

14

Figura 3.22: Diagrama de blocos do filtro passa-baixa

Como pode ser visto, o filtro passa-baixa utilizado consiste na conexão em série

de quatro outros filtros passa-baixa de primeira ordem. A frequência de corte de todos os

outros filtro é igual à frequência fundamental, o que resulta em uma defasagem de -π/4 e

um ganho de 2/1 na amplitude do sinal de frequência fundamental. Desta forma, a

defasagem total é de -π, com uma atenuação de ¼ na amplitude do sinal de entrada. Para

corrigir este problema o último filtro possui um ganho de –4. A expressão (3.26) mostra

a função de transferência deste filtro.

4)1(4)(

sTsH

+−

= (3.26)

CAPÍTULO 3 – CONTROLE DO DVR 42

Resultados de simulações do detector

Para comprovar o funcionamento do detector de sequência positiva aqui apresentado,

foram feitas algumas simulações utilizando sinais de tensões contendo desequilíbrio e

distorções

1° Caso: Tensões Balanceadas

O primeiro caso de simulação foi realizado com sinais de entrada equilibrados e sem

distúrbios harmônicos como pode ser visto na Figura 3.23. Na Figura 3.24 estão traçados

o sinal da componente de sequência positiva da fase a (v’a) e o sinal encontrado pelo

detector (v’a(det)).

0 0.01 0.02 0.03 0.04 0.05 0.06

-1-0.8-0.6-0.4-0.2

00.20.40.60.8

1

tempo(s)

Am

plitu

de (p

u)

va vb vc

Figura 3.23: Tensões Balanceadas e sem harmônicos

0 0.01 0.02 0.03 0.04 0.05 0.06-1.5

-1

-0.5

0

0.5

1

1.5

tempo(s)

Am

pitu

de(p

u)v’a

v’a(det)

Figura 3.24: Componente de Seq. Positiva (v´a) e

componente de sequência positiva detectada (v’a(det))

2° Caso: Tensões Desequilibradas

No segundo caso simulado considerou-se um desequilíbrio de 12.5% de sequência

negativa nos sinais de entrada e nenhum conteúdo harmônico, como pode ser visto na

Figura 3.25. Na Figura 3.26 estão traçados o sinal da componente de sequência positiva

da fase a (v’a) e o sinal encontrado pelo detector (v’a(det)).

CAPÍTULO 3 – CONTROLE DO DVR 43

0 0.01 0.02 0.03 0.04 0.05 0.06-1.5

-1

-0.5

0

0.5

1

1.5

tempo(s)

Am

plitu

de (p

u)

vavb vc

Figura 3.25: Tensões desequilibradas e sem

harmônicos

0 0.01 0.02 0.03 0.04 0.05 0.06-1.5

-1

-0.5

0

0.5

1

1.5

tempo(s)

Am

pitu

de(p

u)

v’a

v’a(det)

Figura 3.26: Componente de Seq. Positiva (v´a) e

componente de sequência positiva detectada (v’a(det))

3° Caso: Tensões Desequilibradas e com harmônicos

O terceiro caso de simulação foi realizado considerando além de um desequilíbrio de

12.5% de sequência negativa nos sinais de entrada uma considerável distorção

harmônica. Na Figura 3.29, estão traçados o sinal da componente de sequência positiva

da fase a (v’a) e o sinal encontrado pelo detector (v’a(det)).

0 0.01 0.02 0.03 0.04 0.05 0.06-1.5

-1

-0.5

0

0.5

1

1.5

tempo(s)

Am

plitu

de (p

u)

va vb vc

0 0.01 0.02 0.03 0.04 0.05 0.06-1.5

-1

-0.5

0

0.5

1

1.5

tempo(s)

Am

plitu

de (p

u)

va vb vc

Figura 3.27: Tensões desequilibradas e com distorções

harmônicas

0 2 4 6 8 10 120

0.10.20.30.40.50.60.70.80.9

1

Ordem do harmônico

Am

plitu

de (p

u)

Figura 3.28: Conteúdo harmônico

THD = 22.93%

CAPÍTULO 3 – CONTROLE DO DVR 44

0 0.01 0.02 0.03 0.04 0.05 0.06-1.5

-1

-0.5

0

0.5

1

1.5

tempo(s)

Am

pitu

de(p

u)

v’a

v’a(det)

Figura 3.29: Componente de Seq. Positiva (v´a) e componente de sequência positiva detectada (v’a(det))

Conclusões sobre o detector baseado nas componentes simétricas

Este detector pode, na prática, ter seu funcionamento prejudicado, pois como é um

sistema de controle em malha aberta, qualquer variação da frequência fundamental do

sistema faz com que este apresente um erro. Os blocos de defasagem “Adianta 120°” e

“Atrasa 120°” estão configurados para funcionamento em uma frequência fundamental

predefinida. Qualquer desvio na frequência das tensões do sistema fará com que esses

blocos não sejam capazes de operar corretamente, invalidando todo o algoritmo do

detector.

Além dos blocos de controle já citados, o filtro passa-baixa, também apresentará

um erro se a frequência fundamental variar. Este apresentará na saída um sinal com fase

e amplitude incorretas.

3.4.2.2 DETECTOR BASEADO NA TEORIA PQ.

No caso de um sistema trifásico com tensões e corrente equilibradas e sem distorções os

valores instantâneos das potências real e da imaginária são constantes. No caso de um

sistema trifásico com tensões desequilibradas e/ou distorcidas, estas potências

apresentarão uma parcela constante e outra oscilante segundo as equações (3.15) e (3.18).

O detector calcula em tempo real as potências instantâneas utilizando sinais de

correntes geradas pelo circuito PLL (3.27) e sinais de tensões medidos no sistema e

transformadas para os eixos α-β de acordo com (3.28).

´ sin( )

´ cos( )

pll

pll

i t

i tα

β

ω

ω

=

= − (3.27)

CAPÍTULO 3 – CONTROLE DO DVR 45

´ ´ ´

´ ´ ´

p v i v i

q v i v iα α β β

α β β α

= ⋅ + ⋅

= − ⋅ + ⋅ (3.28)

Tran

sfor

maç

ão

α-β

bcvabv

αi

βiβvαv

PLL

Cál

culo

de

P e

Q

~~~~____

~~~~____

αi

βi

´v β

´v α

´p

´q

´p

´q Cál

culo

de

v´α

e v´

β

Fc=50Hz

Fc=50Hzβvαv

Figura 3.30: Detector de sequência positiva

Como os sinais de correntes gerados pelo PLL são de sequência positiva e sem

distorções, podemos dizer que somente a componente fundamental de sequência positiva

da tensão contribui para as parcelas constantes das potências ativa e reativa, como já pode

ser visto nas equações (3.16) e (3.19). Estas parcelas são obtidas com um filtro

Butterworth de quinta ordem e frequência de corte de 50 Hz como pode ser visto no

diagrama da Figura 3.30.

Com os valores de ´ e ´p q , e ´ e ´i iα β e de acordo com a expressão (3.29) obtemos

o valor instantâneo da componente fundamental de sequência positiva das tensões nas

coordenadas α-β.

2 2

´ ´ ´ ´1´ ´ ´ ´´ ´

v i i pv i i qi i

α α β

β α βα β

− = ⋅ ⋅ +

(3.29)

É importante destacar que as correntes ´ e ´i iα β utilizadas no cálculo das potências

reais e imaginárias ´ e ´p q são correntes fictícias, portanto estas são potências fictícias

sem nenhum sentido físico.

Resultados de simulações do detector

Para comprovar o funcionamento e verificar a dinâmica do detector de sequência

positiva baseado na Teoria p-q, foram feitas algumas simulações utilizando sinais de

tensões contendo ou não desequilíbrio e distorções.

CAPÍTULO 3 – CONTROLE DO DVR 46

1° Caso: Tensões Balanceadas O primeiro caso de simulação foi realizado com sinais de entrada equilibrados e

sem distúrbios harmônicos como pode ser visto na Figura 3.31. Na Figura 3.32 estão

traçados o sinal da componente de sequência positiva (v’β) e o sinal encontrado pelo

detector (v’β(det)).

0 0.01 0.02 0.03 0.04 0.05 0.06 -1.5

-1

-0.5

0

0.5

1

1.5vα vβ

Figura 3.31: Sinais de tensões equilibradas

0 0 .0 5 0 .1 0 .1 5 0 .2 0 .2 5 0 .3 - 1 .5

-1

-0 .5

0

0 .5

1

1 .5´v β ( d e t )´v β

Figura 3.32: Componente de seq. positiva (v´β) e componente de sequência positiva detectada (v’β(det))

O período transitório do detector tem duração de aproximadamente 0,1 segundos.

Este transitório está diretamente relacionado com a dinâmica do circuito PLL.

2° Caso: Tensões Desequilibradas

No segundo caso simulado considerou-se um desequilíbrio de 12.5% de sequência

negativa na frequência fundamental e nenhum conteúdo harmônico, como pode ser visto

CAPÍTULO 3 – CONTROLE DO DVR 47

na Figura 3.33. Na Figura 3.34 estão traçados o sinal da componente de sequência

positiva (v’β) e o sinal encontrado pelo detector (v’β(det)).

0 0.01 0.02 0.03 0.04 0.05 0.06 -1.5

-1

-0.5

0

0.5

1

1.5vα vβ

Figura 3.33: Sinais de tensões desequilibrados

0 0.05 0.1 0.15 0.2 0.25 0.3 -1.5

-1

-0.5

0

0.5

1

1.5´v β (det)´v β

Figura 3.34: Componente de seq. positiva (v´β) e componente de sequência positiva detectada (v’β(det))

Mesmo com o desequilíbrio entre fases, em aproximadamente 0,3 segundos o

detector foi capaz de encontrar a fase e a amplitude da componente de sequência positiva

sistema.

3° Caso: Tensões Desequilibradas e com harmônicos O terceiro caso de simulação foi realizado considerando além de um desequilíbrio

de 12.5% de sequência negativa nos sinais de entrada uma considerável distorção

harmônica. Na Figura 3.35, estão traçados o sinal da componente de sequência positiva

da fase a (v’β) e o sinal encontrado pelo detector (v’β(det)).

CAPÍTULO 3 – CONTROLE DO DVR 48

0 0.01 0.02 0.03 0.04 0.05 0.06 -1.5

-1

-0.5

0

0.5

1

1.5vα vβ 25%THD =

Figura 3.35: Sinais de tensão desequilibrados e distorcidos

0 0.05 0.1 0.15 0.2 0.25 0.3 -1.5

-1

-0.5

0

0.5

1

1.5´v β (det)´v β

Figura 3.36: Componente de seq. positiva (v´β) e componente de sequência positiva detectada (v’β(det))

Na Figura 3.36 pode ser visto que em menos de 150ms o detector é capaz de

rastrear com perfeição o sinal da componente fundamental de sequência positiva do

sistema, mesmo com tensões desequilibradas e distorcidas.

Conclusões sobre o detector baseado na Teoria P-Q

Este detector apresenta uma dinâmica mais lenta que a apresentada no ítem

3.4.2.1, mas a sincronização baseada em um PLL aumenta a robustez do detector,

permitindo que ele possa ser utilizado em sistemas onde a frequência fundamental varie.

49

CAPÍTULO 4

SIMULAÇÕES DO MODELO

ARA a implementação de um protótipo do Restaurador Dinâmico de Tensão (DVR)

é necessário realizar simulações de forma a poder validar o modelo desenvolvido.

A importância da simulação é evidente quando há a necessidade de modificar parâmetros

do modelo, de maneira rápida, fácil e segura.

O simulador aqui utilizado foi o Saber™Designer, que é uma ferramenta

matemática desenvolvida para resolução de sistemas de equações representados em um

circuito ou sistema. A interface gráfica (SaberTMSketch) facilita as tarefas de

desenvolvimento e visualização do projeto. Os resultados podem ser analisados em uma

interface de saída (Saber™Scope).

O grupo de Eletrônica de Potência da COPPE/UFRJ, onde este trabalho foi

desenvolvido, possui uma larga experiência na utilização do simulador Saber™Designer,

o que foi bastante útil para o andamento deste trabalho.

4.1 MODELAGEM NO SABER

O diagrama de blocos que representa o sistema simulado pode ser observado

novamente na Figura 4.1. A barra infinita (v∞) foi modelada por uma fonte de tensão

senoidal trifásica com frequência de 60Hz e valor eficaz de linha igual a 1 p.u. nas bases

P

CAPÍTULO 4 – SIMULAÇÕES DO MODELO 50

da tabela abaixo. A linha de transmissão foi representada por uma indutância de

0.15 p.u.. A carga A é representada por uma carga RL trifásica ligada em Y

(XL = 0.436 p.u. e R = 0.9 p.u.). A carga B, que provoca um afundamento é também

representada por uma carga trifásica RL ligada em Y (XL = 0.667 p.u. e R = 0.105 p.u.) e

é acionada no instante t=0.5s e desligada em t=0.8s.

Vbase 13.8kVSbase 10MVAZbase 19.044Ω

Bases do Sistema em pu

CARGAB

CARGAA

vIN

DSP

LT

BARRA DESAÍDADVR

BARRA DEENTRADA VC

vOUT

ch1

vOUTvIN∞v

CARGAB

CARGAA

vIN

DSP

LT

BARRA DESAÍDADVR

BARRA DEENTRADA VC

vOUT

ch1

vOUTvIN∞v∞v

Figura 4.1: DVR inserido no sistema

Em princípio, a tensão na barra de entrada já está abaixo de 1 p.u. devido à

impedância LT presente no sistema. Assim, mesmo sem a conexão da carga B o DVR já

teria que compensar este afundamento natural do sistema, garantindo a tensão de 1 p.u.

na barra de saída. O equipamento entra em operação em t=0.1s depois que a tensão no

elo de corrente contínua do conversor já esteja estabilizada, e o PLL já esteja no ponto de

operação estável.

4.2 RESULTADOS DE SIMULAÇÃO

Na Figura 4.2 pode-se observar as tensões de fase na barra de entrada assim como

o seu valor coletivo. Nota-se que estas tensões apresentam inicialmente um valor de

aproximadamente 0.9 p.u., devido à queda de tensão na linha de transmissão. Em t=0.5s

observa-se o afundamento provocado pela conexão da carga B. Analisando a figura

podemos observar que o afundamento provocado pela conexão da carga B faz com que a

CAPÍTULO 4 – SIMULAÇÕES DO MODELO 51

tensão nesta barra apresente um valor coletivo de aproximadamente 0.7 p.u. que causaria

uma falha no funcionamento da carga sensível A.

p.u.

p.u.

Conexão da carga B

Retirada da carga B

Valor Coletivo da tensão na barra de entrada

Figura 4.2: Tensão na barra de entrada

Na Figura 4.3 é apresentada a tensão na barra de saída (carga sensível A). A

operação do DVR faz com que o valor coletivo da tensão na barra de entrada se estabilize

em 1 p.u.. Durante os transitórios a tensão na barra de saída sofre uma variação de no

máximo 0.15 p.u. num intervalo de tempo muito reduzido.

CAPÍTULO 4 – SIMULAÇÕES DO MODELO 52

p.u.

Valor Coletivo da tensão na barra de saída

Conexão da carga B

Retirada da carga BEntrada

do DVR

Figura 4.3: Tensão na barra de saída

Na Figura 4.4 vê-se a forma de onda da tensão na fase a nas três barras do sistema.

Note que a tensão na barra de entrada apresenta amplitude bem inferior à da tensão na

barra infinita. A tensão na barra de saída, já compensada, também apresenta a mesma

amplitude da tensão na barra infinita.

Va (inf.) Va (saída)Va (entrada)

Figura 4.4: Tensão da fase a na barra infinita, barra de entrada e barra de saída.

CAPÍTULO 4 – SIMULAÇÕES DO MODELO 53

A partir dos resultados de simulação aqui apresentados pode-se verificar o

funcionamento do DVR analisado, garantindo de forma eficiente uma tensão de

qualidade na barra onde está conectada uma carga sensível.

54

CAPÍTULO 5

IMPLEMENTAÇÃO DO CONTROLE NO DSP

validação do modelo discreto desenvolvido foi realizada implementando-se o

controle no microcontrolador DSP TMS320LF2407A da Texas Instruments, Inc.

Este DSP foi escolhido por apresentar processamento de dados de elevado desempenho,

além de ser capaz de controlar periféricos em tempo real, concentrando as principais

características de hardware e software necessárias ao controle do DVR.

Neste capítulo será apresentada uma descrição da implementação dos algoritmos

no DSP, e em especial, de algumas sub-rotinas que merecem destaque.

5.1 ALGORITMO

Com a finalidade de facilitar a compreensão, o código de controle foi dividido em

módulos, apresentados a seguir.

5.1.1 MÓDULO DE INICIALIZAÇÃO

módulo é executado após todo evento de reset (reinicialização), e nele são realizadas

as seguintes tarefas:

• configuração da CPU:

o registradores de estado;

A

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 55

o watchdog;

o estado de espera de acesso à memória (wait-state);

o configurações de funções para os pinos;

o gerenciador de eventos;

o conversor A/D;

o inicialização de bibliotecas;

• inicialização de variáveis

• definições de constantes

5.1.1.1 CONFIGURAÇÃO DA CPU

O primeiro registrador a ser configurado neste módulo é o SCSR1 (System Control and

Status Register 1), que tem seu campo de bits representado na Figura 5.1.

Figura 5.1: SCSR1

Neste registrador foi definido o escalonamento para o clock de entrada da CPU

através dos bits CLK PSx (x=2,1,0), na combinação mostrada na primeira linha (4 x Fin)

da Tabela 5.1. O valor Fin representa a frequência do oscilador principal.

Configurando os bits 7(ADC CLKEN) e 3(EVA CLKEN) deste mesmo

registrador para nível lógico um, habilita-se respectivamente o clock para o módulo do

conversor AD e para o gerenciador de eventos A, utilizados na implementação do

algoritmo.

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 56

CLK PS2 CLK PS1 CLK PS0 CLOCK da CPU0 0 0 4 x Fin0 0 1 2 x Fin0 1 0 1.33 x Fin0 1 1 1 x Fin1 0 0 0.8 x Fin1 0 1 0.66 x Fin1 1 0 0.57 x Fin1 1 1 0.5 x Fin

Fin = 10 MHz -- frequência do oscilador

Tabela 5.1: Configuração do clock de entrada para a CPU

O segundo registrador configurado neste módulo é o WSGR (Wait-State

Generator) que determina o tempo de espera para acesso a memória. Este foi configurado

para zero.

O chamado watchdog timer é um temporizador periférico que monitora a operação

do software e hardware, e pode gerar eventos de reset caso detecte um distúrbio na

operação. Na etapa de desenvolvimento do código, tornou-se conveniente desabilitar esta

função, atribuindo-se nível lógico um aos bits WDDIS, WDCHK2 e WDCHK0 do

registrador WDCR (Watchdog Timer Control Register) da Figura 5.2. Em seguida é

necessário reinicializar com zero o contador do watchdog escrevendo-se o valor 55h

(hexadecimal) no registrador WDKEY (Watchdog Reset Key Register), e em seguida o

valor AAh. Qualquer outro valor causa um reset no sistema.

Figura 5.2: WDCR

Alguns pinos de interface com a CPU podem compartilhar funções [11] que

devem ser definidas previamente. Como o inversor estático utilizado no protótipo é

controlado por seis sinais PWM e pode emitir três sinais indicativos de erro, foi

necessário configurar seis pinos para função PWM e três para obtenção de sinais digitais.

O registrador envolvido aqui é o MCRA (I/O Mux Control Register A) e tem seu campo

de bits representado na Figura 5.3

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 57

Figura 5.3: MCRA

Para selecionar as funções PWMx (x=1,2,3,4,5,6) para os pinos de interface foi

necessário escrever o valor lógico um nos bits 6, 7, 8, 9, 10 e 11 do MCRA. A seleção

das funções de entrada ou saída digital (E/S), para a leitura dos possíveis erros emitidos

pelo inversor, é realizada escrevendo-se o valor lógico 0 nos bits 3, 4 e 5 - funções

IOPAx (x=3,4,5). Em seguida define-se para estes pinos a sua direção (entrada digital)

através do registrador PADATDIR (Port A Data and Direction Control Register) da

Figura 5.4, escrevendo-se o nível lógico zero nos bits 3, 4 e 5 deste registrador

Figura 5.4: PADATDIR

Os sinais de erro podem ser obtidos, então, em tempo real lendo-se o estado dos

bits IOPA3, 4 e 5 deste mesmo registrador.

Também foram configurados neste módulo os registradores do gerenciador de

eventos A (EVA - Event Manager A). O GPTCONA (General-Purpose Control

Register A) tem seu campo de bits representado na Figura 5.5. Com este registrador é

possível definir um evento de interrupção provocado por período do temporizador 1, para

iniciar a conversão A/D. Para isto, escreve-se no campo de dois bits T1TOADC o valor

10b(binário).

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 58

Figura 5.5: GPTCONA

Utilizou-se neste trabalho a biblioteca DMC [12], fornecida pela própria Texas,

que apresenta diversas funções. Algumas destas funções, para o seu correto

funcionamento, realizam inicializações na CPU. Como é o caso da FC_PWM_DRV que

é responsável por gerar os sinais de disparo das chaves do inversor.

O primeiro registrador que esta função configura é o T1CON (Timer 1 Control

Register) da Figura 5.6. Nos campos FREE-SOFT(bits 15-14) escreve-se o valor 10b

para que a operação do temporizador seja ininterrupta. Nos bits TMODE1 e TMODE0

configura-se o modo de operação do contador, no caso, escolheu-se o modo contínuo

up/down escrevendo-s o valor 01b neste campo. O escalonamento do clock de entrada foi

definido em x/1, com a configuração do campo TPS2-TPS0 no valor 000b. No bit 6

(TENABLE) se habilita as operações do timer e no bit 1 habilita-se os comparadores.

Figura 5.6: T1CON

O próximo registrador configurado pela função FC_PWM_DRV é o ACTRA

(Compare Action Control Register A) que tem o seu campo de bits representado na

Figura 5.7. Nele é possível configurar a ação do comparador na saída dos pinos

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 59

configurados para os PWM1-6. Escrevendo-se, por exemplo, o valor 00b nos bits

CMP1ACT1-0 a saída PWM1 é forçada a assumir nível lógico baixo. Caso o valor seja

11b a saída PWM1 assume nível lógico alto. Os valores 01b e 10b, por outro lado, fazem

com que a saída PWM1 dependa do valor do comparador 1 e do temporizador 1. Caso se

escolha configurar o modo “ativo alto”, os bits CMP1ACT1-0 devem conter 01b. O valor

10b configura o modo “ativo baixo”. Esta diferença pode ser facilmente entendida

analisando a Figura 5.8.

Figura 5.7: ACTRA

Timer 1

CMPR 1

ATIVO BAIXO

ATIVO ALTO

Figura 5.8: Resultado da comparação

Com isso, configurou-se os PWM1, 3 e 5 para o modo “ativo baixo”, e os PWM2,

4 e 6 para o modo “ativo alto”.

O último registrador configurado pela função FC_PWM_DRV é o DBTCONA

(Dead-Band Timer Control Register A - Figura 5.9), onde se define o tempo morto que é

implementado no chaveamento (bits 11-8), indicando-se os comparadores para os quais

este deve ser admitido (bits 7-2).

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 60

Figura 5.9: DBTCONA

O conversor AD foi configurado utilizando primeiramente o registrador

ADCTRL1 (ADC Control Register 1) da Figura 5.10, para selecionar que o conversor irá

funcionar continuamente, mesmo que ocorra alguma parada, escreve-se o valor 1b no

bit 12 (FREE). No campo de bits ACQ PS3 - ACQ PS0 configurou-se o valor 0011b

para selecionar uma escala de clock que garanta a conversão analógico-digital. No bit 5

(INT PRI) foi definido que a requisição de interrupção pelo ADC é de baixa prioridade.

No bit 4 (SEQ CASC) definiu-se que o sequenciador irá operar em modo cascateado.

O seqüenciador deve retornar ao estado inicial afim de se preparar para receber um

sinal de disparo, isto é feito no bit 14 do registrador ADCTRL2 (ADC Control

Register 2), Figura 5.11. Já no bit 8, configura-se que o disparo do conversor A/D será

feito pelo gerenciador de eventos A (EVA).

Figura 5.10: ADCTRL1

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 61

Figura 5.11: ADCTRL2

No registrador MAXCONV definiu-se o número de conversões que serão

realizadas, e no registrador CHSELSEQ1 defini-se a seqüência dos canais que devem ser

submetidos as conversões.

5.1.2 MÓDULO PRINCIPAL

Neste módulo é feita a declaração de todas as variáveis, as definições de constantes e

configuração de interrupção além de chamar o módulo de inicialização.

O primeiro passo é habilitar as interrupções utilizando o bit INTM que deve ser

configurado em nível zero. No IMR (Interrupt Mask Register) mascara-se a interrupção

INT1 com isto ela pode ser habilitada ou desabilitada por software. No bit 7 do

registrador EVAIMRA (Event Manager A Interrupt Mask Register A) habilita-se a

T1PINT(Timer 1 Period Interrupt) e o bit 7 do registrador EVAIFRA (Event Manager A

Interrupt Flag Register A) indica quando há interrupção pendente, por isso ele deve

inicialmente configurado garantindo a cpu que não há pendências com isso, pode-se

aceitar uma interrupção deste tipo. A configuração deste bit é o último passo feito no

módulo principal garantindo que a rotina de interrupção seja executada somente com

todas as definições e configurações concluídas.

É necessário também, manter um o módulo principal sendo executado como tarefa

de fundo e para isso é implementado um laço infinito no fim deste módulo.

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 62

5.1.3 MÓDULO DE INTERRUPÇÃO

Este módulo é executado periodicamente sempre que o temporizador 1 atinge o valor do

período armazenado no registrador T1PR(Timer 1 Period Register), e a partir daí toda a

rotina de serviço de interrupção é executada.

Nesta rotina realiza-se a amostragem das variáveis, o cálculo das ações de controle

e implementação da modulação vetorial. Na Figura 5.12 pode ser vista uma descrição

dos eventos executados dentro da rotina de interrupção e estes são detalhados a seguir.

Início

Amostragem das tensões

Verifica erro no inversor

Transformaçãode Clarke+

Detector de Sequência Positiva

Cálculo da tensãode referência

“Space Vector” PWM

Fim da Rotina

Libera o flag para apróxima interrupção

Verifica errono inversor

Bloqueiainversorsim

não

Figura 5.12: Fluxograma da rotina de interrupção

5.1.3.1 VERIFICAÇÃO DO ERRO NO INVERSOR

Quando ocorre algum problema no chaveamento, o inversor emite um sinal de erro para o

DSP que bloqueia as três fases do inversor até que o sinal de erro desapareça. Este

bloqueio é feito utilizando a função trava (apêndice A) que reconfigura a função dos

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 63

pinos de saída PWM para pinos de saída digital e com isso emite um sinal para o inversor

abrir suas chaves superiores (S1,S3 e S5) e fechar as chaves inferiores (S2, S4 e S6).

No momento em que o inversor para de emitir o sinal de erro a rotina segue

normalmente as suas outras etapas.

5.1.3.2 AMOSTRAGEM DAS TENSÕES

O algoritmo de controle do DVR requer os sinais de tensões da barra de entrada do DVR

(tensão com afundamento) e de sua barra saída (tensão regulada). Decidiu-se então medir

duas tensões de linha em cada barra (vab_in, vbc_in, vab_reg e vab_reg). Com isso é necessário

utilizar quatro canais do conversor AD que tem seu funcionamento explicado a seguir:

Princípios de operação do conversor analógico digital (C-A/D)

O seqüenciador C-A/D consiste de dois seqüenciadores (SEQ1 e SEQ2) independentes de

oito estados (onde a palavra “estado” representa o número de autoconversões que podem

ser feitas pelo seqüenciador). Estes seqüenciadores podem operar separadamente (modo

dual) ou cascateados formando um seqüenciador de dezesseis estados (modo simples).

Os diagrama dos dois modos de operação dos seqüenciadores são mostrados nas

Figura 5.13 e Figura 5.14

Mux

ADCIN0ADCIN1ADCIN2

ADCIN15

seleção

Conversor A/D10-bit M

ux

RESULT0RESULT1RESULT2

RESULT15

MAX CONV 1

Ch Sel (estado 0)Ch Sel (estado 1)Ch Sel (estado 2)Ch Sel (estado 3)

Ch Sel (estado 15)

Ponteirode estado

Início daconversão

Fim daconversão

EVA

Software

EVB

Externodisparo

Mux

ADCIN0ADCIN1ADCIN2

ADCIN15

seleção

Conversor A/D10-bit M

ux

RESULT0RESULT1RESULT2

RESULT15

MAX CONV 1

Ch Sel (estado 0)Ch Sel (estado 1)Ch Sel (estado 2)Ch Sel (estado 3)

Ch Sel (estado 15)

Ponteirode estado

Início daconversão

Fim daconversão

EVA

Software

EVB

Externo

EVA

Software

EVB

Externodisparo

Figura 5.13: Diagrama com o C-A/D no modo cascateado

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 64

Mux

ADCIN0ADCIN1ADCIN2

ADCIN15

seleção

Conversor A/D10-bit

Mux

RESULT0RESULT1RESULT2

RESULT15

Início daconversão

Fim daconversão

MAX CONV 1

Ch Sel (estado 0)Ch Sel (estado 1)Ch Sel (estado 2)Ch Sel (estado 3)

Ch Sel (estado 7)

Ponteirode estado

EVA

Software

Externo disparo

MAX CONV 2

Ch Sel (estado 8) Ch Sel (estado 9) Ch Sel (estado 10)Ch Sel (estado 11)

Ch Sel (estado 15)

Ponteirode estado

EVB

Software

disparo

MAX CONV 1

Ch Sel (estado 0)Ch Sel (estado 1)Ch Sel (estado 2)Ch Sel (estado 3)

Ch Sel (estado 7)

Ponteirode estado

EVA

Software

Externo disparo

MAX CONV 2

Ch Sel (estado 8) Ch Sel (estado 9) Ch Sel (estado 10)Ch Sel (estado 11)

Ch Sel (estado 15)

Ponteirode estado

EVB

Software

disparo

Fim daconversão 1

Início daconversão 1

Seqüenciadorintermediário

Fim daconversão 2

Início daconversão 2

Mux

RESULT0RESULT1RESULT2

RESULT15

Figura 5.14: Diagrama com C-A/D no modo dual

Em ambos os casos, o C-A/D tem a habilidade de autosequenciar uma série de

conversões. Nas figuras pode-se observar que, para várias conversões, um dos dezesseis

canais de entrada (ADCINx) podem ser selecionados através do mux analógico. Após a

conversão, o valor digital é armazenado no registrador apropriado (RESULTx). Também

é possível amostrar o mesmo sinal várias vezes, permitindo um aumento da resolução dos

resultados da conversão.

No caso, se utilizou quatro canais de entrada (ADCIN0, ADCIN1, ADCIN4,

ADCIN3 configurados nesta ordem no registrador CHSELSEQ1). Com isso os sinais

relativos as tensões de linha vab_in, vbc_in, vab_out, vbc_out, são armazenados respectivamente

nos registradores RESULT0, RESULT1, RESULT2 e RESULT3. Pode-se ver no

capítulo 7 de [13] que o resultado da conversão é armazenado nos dez bits mais

significativos destes registradores, devendo-se então deslocar este resultado para os dez

primeiros bits antes de normalizar o valor obtido.

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 65

Na seção 5.2 pode-se encontra alguns resultados da aquisição e normalização dos

sinais de tensão.

5.1.3.3 TRANSFORMAÇÃO DE CLARKE+

A transformação de coordenadas a-b-c para α-β-0 é uma transformação algébrica de um

sistema de tensões e corrente trifásicas para um sistema de coordenadas ortogonais entre

si (e não a 120° como no sistema a-b-c).

A diferença da transformação aqui implementada para a original proposta pela

Engenheira Edith Clarke em [14], é que as tensões disponíveis são tensões de linha, com

isso a matriz de transformação de coordenadas é alterada:

2 11

3 32 0 1

ab

bc

v vv vα

β

= ⋅

(5.1)

Como já foi comentado anteriormente, a unidade aritmético-lógica do DSP opera

com números em ponto-fixo, dificultando a implementação desta transformação de

coordenadas.

Para alcançar um máximo de precisão sem que ocorra um overflow todas as

operações implementadas neste trabalho foram analisadas no Matlab® com a ferramenta

Fixed-Poit Blockset [15], esta simula um determinado sistema a partir do diagrama de

blocos montado no Simulink®, e recomenda um formato de ponto fixo que proporcione a

melhor precisão.

Na seção 5.2, adiante, pode-se encontra alguns resultados desta transformação.

5.1.3.4 DETECTOR DE SEQUÊNCIA

O primeiro passo para a implementação do detector de sequência positiva foi a criação do

circuito PLL que se mostrou eficiente mesmo em condições de desfavoráveis de distorção

e desequilíbrio.

O PLL utilizou a função park da biblioteca DMC [12] para gerar os sinais de

realimentação. Esta função implementa as seguintes equações:

cos sinsin cos

ID Id IqIQ Id Iq

θ θθ θ

= ⋅ + ⋅ = − ⋅ + ⋅

(5.2)

Onde Id, Iq e θ são entradas da função.

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 66

Com isso assumiu-se que Iq=1; Id=0 ; e θ é o ωt (integral da saída do controlador

PI), assim as realimentações são i´α=IQ e i´β=-ID.

Neste PLL não foi necessário zerar o ωt quando este se torna maior que 2π,

porque o maior valor que a variável ωt pode assumir é o valor correspondente a 2π, assim

quando este ser torna maior, ocorre um overflow que automaticamente faz com que ωt

assuma um valor de -2π, tendo o mesmo efeito de zerar.

Outra característica adotada neste PLL, é a saturação do valor de ω fazendo com

que o circuito apresente um melhor desempenho[16].

Com o PLL funcionando, o próximo passo para a implementação do detector de

sequência é o calculo da parcela constante de q´, para isto foi necessário implementar um

filtro passa-baixa butterworth de 5ª ordem, que foi projetado utilizando a biblioteca de

desenvolvimento de filtros digitais [17] disponibilizada pela Texas Instruments.

Os cálculos das tensões de sequência positiva são:

2 2

´ ´ ´ ´1´ ´ ´ ´´ ´

v i i pv i i qi i

α α β

β α βα β

− = ⋅ ⋅ +

(5.3)

Com intuito de otimizar o código, (5.3) pode ser reduzido para (5.4), já que

sabemos que em regime permanente ´p vale zero e as corrente de realimentação

apresentam amplitude de valor unitário, assim 2 2

1´ ´i iα β+

=1.

' ' '' ' '

v i qv i q

α β

β α

= ⋅ = − ⋅

(5.4)

5.1.3.5 CONTROLE DE AFUNDAMENTO

Primeiramente foi feito um controle em malha aberta para testar o funcionamento

do sistema. Este adiciona uma tensão com amplitude fixa na barra controlada. Para gerar

as tensões de referência para o chaveamento foi utilizado novamente a função park da

biblioteca DMC [12], onde agora o valor de Iq representa a aplitude da tensão de

compensação. Os resultados obtidos por este controle estão apresentados na seção 5.2.

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 67

No controle de afundamento em malha fechada é necessário o cálculo do valor

coletivo das tensões da barra controlada, para isto foi utilizada a função qsqrt da

biblioteca Fixed-Point Math [18].

O fechamento da malha é feito comparando o valor coletivo com uma referência

encontrando um sinal de erro que é a entrada de um controlador PI. Este fornece em sua

saída a amplitude da tensão de compensação. O sinal da tensão de compensação é

novamente criado utilizando a função park.

5.1.3.6 MODULAÇÃO SPACE VECTOR

Para encontra o ciclo de cada fase para o chaveamento do inversor. Foi utilizado a função

SVGEN DQ da biblioteca DMC [12]. Esta gera os ciclos de trabalhos baseado na técnica

de modulação vetorial já apresentada na seção 2.1.3.1 deste trabalho. Esta função tem

como entrada as tensões de referência nas coordenadas α-β.

Com o ciclo de trabalho, utilizou-se a função FC_PWM_DVR para gerar os sinais

de disparo para o inversor. Esta função necessita, além do ciclo de trabalho das três fase,

o período de chaveamento além de toda uma pré-configuração já feita pelo Módulo de

Inicialização.

5.1.3.7 LIBERAÇÃO DO FLAG

Como já dito, o bit 7 do registrador EVAIFRA indica que uma interrupção foi solicitada,

e por isso de ser configurado em nível lógico 1 no fim de cada interrupção permitindo o

atendimento de novas interrupções do mesmo tipo.

5.2 RESULTADOS OBTIDOS

Nesta seção serão apresentados os resultados obtidos pelo programa desenvolvido no

DSP.

5.2.1 CONVERSOR ANALÓGICO-DIGITAL

O primeiro teste realizado com o intuito de comprovar o funcionamento do

conversor A/D, foi a aquisição de quatro sinais. O resultado deste teste pode ser

observado na Figura 5.15 que mostra as quatro sinais puramente senoidais que foram

aplicados nos canais do A/D.

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 68

0 0.03 0.06 0.09 0.12 0.15-2-1012

0 0.03 0.06 0.09 0.12 0.15-2-1012

0 0.03 0.06 0.09 0.12 0.15-2-1012

0 0.03 0.06 0.09 0.12 0.15-2-1012

Canal #0

Canal #1

Canal #2

Canal #3

Figura 5.15: Aquisição de quatro sinais

Também foi testada a capacidade de medir sinais com distorções harmônicas. A

Figura 5.16 mostra o resultado da aquisição de dois sinais com 20% de distorção sendo

que o primeiro com harmônico de décima primeira ordem e o segundo sinal com

harmônico de quinta ordem.

0 0.03 0.06 0.09 0.12 0.15-2-1012

0 0.03 0.06 0.09 0.12 0.15-2-1012

20% de distorção harmonica de 11ª ordem

20% de distorção harmonica de 5ª ordem

Figura 5.16: Aquisição de sinais com distorção harmônica

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 69

5.2.2 TRANSFORMAÇÃO DE CLARKE+

A Figura 5.17 mostra o resultado implementação da transformação de Clarke+. Note que

a transformação foi feita a partir de sinais de tensão de linha (vab,vbc) distorcidos.

0 0.03 0.06 0.09 0.12 0.15-2-1012

0 0.03 0.06 0.09 0.12 0.15-2-1012

vab vbc

vα vβ

Figura 5.17: Transformação de Clarke+ - sinais distorcidos

5.2.3 DETECTOR DE SEQUÊNCIA POSITIVA

A Figura 5.18 mostra o desempenho do circuito PLL operando com sinais de

entrada senoidais. O que deve ser observado é que o PLL encontra seu ponto de

operação no momento que o erro de fase é zero (aproximadamente 150ms) e a frequência

vale um. Note que a faixa de variação do sinal de ωt é de -1 até 1 o que corresponde a

uma variação angular de -2π até 2π.

Na Figura 5.19 pode ser visto o desempenho do PLL operando com sinais

desequilibrado (12,5% de seqüência negativa). Note que tando o valor do erro de fase

quando o de frequência apresentam um oscilação que como já discutido é totalmente

aceitável.

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 70

0 0.05 0.1 0.15 0.2 0.250.9

11.11.21.3

0 0.05 0.1 0.15 0.2 0.25-1

-0.50

0.51

Frequência (pu)

ωtPLL

0.05 0.1 0.15 0.2 0.25-0.5

0

0.5

1Erro de fase

Figura 5.18: Resultados do PLL - sinais senoidais

0 0.05 0.1 0.15 0.2 0.25-1

-0.5

0

0.5

0 0.05 0.1 0.15 0.2 0.250.8

1

1.2

0 0.05 0.1 0.15 0.2 0.25-1

-0.50

0.51

Frequência (pu)

ωtPLL

Erro de fase

Figura 5.19: Resultados do PLL - sinais desequilibrados

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 71

Na Figura 5.20 pode ser vista a tensão medida e transformada para a coordenada β

vβ e a componente de seqüência positiva encontrada pelo detector v’β.

0 0.01 0.02 0.03 0.04 0.05-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

Tempo (s)

Tens

ão (V

)

vβ v´β

Figura 5.20: Resultado do Detector de Sequencia Positiva

5.2.4 MODULAÇÃO SPACE VECTOR

Na Figura 5.21 pode-se ver a variação do ciclo de trabalho de uma das fases no

tempo. Note que esta variação não é totalmente senoidal, esta contém harmônicos de

seqüência zero que serão naturalmente filtrados pelo conversor.

-0.05 -0.04 -0.03 -0.02 -0.01 00

1

2

3

4

5

6

7

8

9

10

Figura 5.21: Variação do ciclo de trabalho na modulação vetorial

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 72

5.2.5 CONTROLE DE AFUNDAMENTO

5.2.5.1 MALHA ABERTA

O primeiro teste que foi feito com o protótipo foi o de verificar a sua capacidade de

injetar uma tensão de compensação, e para isso foi utilizado um controle em malha

aberta, onde não são realimentadas as tensões na barra regulada e o DVR impõe uma

tensão de compensação de amplitude previamente definida. Neste caso, foi utilizada uma

carga mais leve, com isso o nível de distorção harmônica é menor do que se fosse

utilizado a carga especificada no item 2.2 deste trabalho que somente foi utilizada no

quando o controle em malha fechada foi implementado (item 5.2.5.2)

A Figura 5.22 mostra a tensão na barra de saída (regulada) com o DVR desligado.

A partir desta figura calculou-se o valor de tensão que o DVR deve injetar para que a

tensão nesta barra permaneça a mesma com ou sem a conexão da carga B.

O resultado deste controle de tensão pode ser visto na Figura 5.23 onde o DVR

deve ser ligado somente no momento em que a carga B é conectada.

Tempo (s)

Tens

ão (V

)

-0.01 -0.005 0 0.005 0.01

-200

-150

-100

-50

0

50

100

150

200Carga B conectada

Carga B desconectada

Figura 5.22: Tensão na barra regulada – DVR desligado

Note que o DVR compensa com sucesso o afundamento causado pela conexão da

carga de afundamento. O problema deste controle é que deve-se saber previamente

quanto de afundamento e quando este vai ocorrer para que se possa ajustar a tensão e o

momento que o DVR deve compensar.

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 73

Tempo (s)

Tens

ão (V

)

-0.01 -0.005 0 0.005 0.01

-200

-150

-100

-50

0

50

100

150

200

Carga B conectada

Carga B desconectada

Figura 5.23: Tensão na barra regulada - DVR liga no momento que a carga B é conectada

5.2.5.2 MALHA FECHADA

Com o controle em malha fechada, a tensão de compensação que deve ser aplicada é

calculada em tempo real, com isso o DVR deve ficar ligado mesmo no momento em que

não há afundamento. Com isso a tensão na barra regulada permanece com um valor

eficaz constante como pode ser visto na Figura 5.24 e também na Figura 5.25.

A primeira forma de onda da Figura 5.24 é a corrente drenada pelo retificador,

esta corrente que provoca a distorção na tensão na barra de entrada (terceira forma de

onda da Figura 5.24).

Na Figura 5.25 pode-se observar a dinâmica do DVR quando há um afundamento

de tensão na barra de entrada. Neste caso o afundamento teve uma duração de

aproximadamente 800 ms. Pode-se observar que quando ocorre o afundamento a

corrente na entrada do retificador transitoriamente diminui e quando a tensão na barra de

entrada retorna ao nível anterior esta corrente transitoriamente aumenta. A tensão na

barra regulada praticamente não se altera confirmando a eficácia do modelo de DVR

implementado.

CAPÍTULO 5 – IMPLEMENTAÇÃO DO CONTROLE NO DSP 74

Figura 5.24: Corrente drenada pelo retificador, tensão de linha na barra regulada,

e tensão de linha na barra de entrada

Figura 5.25: Corrente drenada pelo retificador, tensão de linha na barra regulada,

e tensão de linha na barra de entrada

iret.

vab,reg.

vab,in.

iret.

vab,reg.

vab,in

75

CAPÍTULO 6

CONCLUSÕES E TRABALHOS FUTUROS

OM base nos resultados obtidos nas simulações e com os da implementação do

protótipo, conclui-se que o projeto alcançou seu objetivo, permitindo comprovar a

eficiência do DVR na proteção de uma determinada carga contra afundamentos de

tensão.

O DSP utilizado para a implementação do controle se mostrou bastante adequado

já que este apresenta funções que foram vitais para o sucesso do trabalho.

O detector de sequência positiva implementado se mostrou bastante robusto já que

foi capaz de encontrar a componente fundamental de sequência positiva mesmo em

condições de alto índice de distorção.

E como trabalhos futuros, é necessária uma melhor sintonia do controlador PI

presente no controle de afundamento para permitir um melhor desempenho do controle

em malha fechada. A implementação do controle de harmônico é um passo que pode ser

facilmente dado com o intuito de valorizar ainda mais o protótipo do DVR. Otimizar o

código para que seja possível aumentar a frequência de amostragem de sinais e de

chaveamento do inversor também é sugerido pelo autor.

C

76

APÊNDICE A

LISTAGEM DO CÓDIGO FONTE

A.1. ESTRUTURA DO PROJETO

dvr01.mak -include coef_filtro.h defines_dvr.h f2407bmsk.h f2407pwm.h iirfilt.h regs_dvr.h setbit.h structs.h svgen.h - libraries qmath.lib clib_010.lib f2407_010.lib rts2xx.lib filter.lib map.cmd - source calc_clarke.c calc_vcol.c dvr_main.c inic_dvr.c plltrifasico.c trava.c vector.asm

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 77

A.2. COEF_FILT.H

/*=========================================== Coeficientes do filtro Butterworth do detector de sequencia positiva --------------------------------------------- nome do arquivo : coef_filtro.h --------------------------------------------- criado por: Diogo Rodrigues da Costa Jr Lab. de Eletrônica de Potência POLI/COPPE/UFRJ --------------------------------------------- última modificação: 26-09-2003 ============================================*/ #define IIR_COEFF \ 0,7036,0,21,21,\ -6408,14433,32,65,32,\ -7462,15474,11427,22855,11427 #define IIR_ISF 1156 #define IIR_NBIQ 3 #define IIR_QFMAT 13 /***** fim de coef_filtro.h *****/

A.3. DEFINES_DVR.H

/*================================================== Definições de constantes usadas no DVR ---------------------------------------------------- nome do arquivo : defines_dvr.h ---------------------------------------------------- criado por: Diogo Rodrigues da Costa Jr Lab. de Eletrônica de Potência POLI/COPPE/UFRJ ---------------------------------------------------- última modificação: 26-09-2003 ====================================================*/ #define ENABLE_INTERRUPTS asm(" clrc INTM") #define CLKFREQ 40e6 #define FBASE 60.0 #define Q30 1073741824L #define Q29 536870912L #define Q28 268435456L #define Q25 33554432L #define Q15 32768 #define Q14 16384 #define Q13 8192 #define Q10 1024 #define Q9 512 #define Q5 32 #define Q4 16

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 78

#define CONSTANTE ((unsigned int)(CLKFREQ*(1.0/(16*FBASE))))

/* CLKfreq/(16*f) -- 50hz e 30MHz- 36864U */ //#define CONSTANTE 41667U

/* CLKfreq/(16*f) -- 50hz e 30MHz- 36864U */ #define INV_CONST_Q25 ((long int)(Q25*(1.0/CONSTANTE))) #define AMPL_I_Q15 32765 #define INV_AMPL_I2_Q14 16387 #define SEQ1BSY (MASKBIT12) #define H 200e-6 /* intervalo de amostragem */ #define ESCALA_FILTRO (int)((float)((10*100e-6/H)-1))

/* garantir que o filtro opere em 1kHz*/ #define PI 314159265389e-11 #define KI 5000.0 /* ganho do PI do PLL */ #define KP 50.0 /* ganho do PI do PLL */ #define KI_Q15 ((int)(((float)KI*H/(2*PI*FBASE))*Q15))

/*(KI*H)/(2*PI*60)*/ #define KP_Q15 ((int)(((float)KP/(2*PI*FBASE))*Q15))

/*(KP/(2*PI*60))*/ #define KW_Q15 ((int)((FBASE*H)*Q15)) #define KP_AFUND 1.0 /* ganho do PI do controle de afundamento */ #define KI_AFUND 25 /* ganho do PI do controle de afundamento */ #define KI_AFUND_Q14 ((int)(((float)KI_AFUND*H)*Q14)) #define KP_AFUND_Q9 ((int)((float)(KP_AFUND)*Q9)) #define PR ((unsigned int)((CLKFREQ*H)/2.0)) /* (PWMpr/CLKpr)-1 */ #define U_MIN 0.5 #define U_MAX 1.5 #define U_MIN_Q28 (U_MIN*Q28) #define U_MAX_Q28 (U_MAX*Q28) /***** fim de defines_dvr.c ********/

A.4. F2407BMSK.H

FORNECIDO PELA TEXAS INSTRUMENTS, INC.

A.5. F2407PWM.H

FORNECIDO PELA TEXAS INSTRUMENTS, INC.

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 79

A.6. IIRFILT.H

FORNECIDO PELA TEXAS INSTRUMENTS, INC.

A.7. REGS_DVR.H

/*====================================== Definições dos Registradores LF24x ---------------------------------------- arquivo original: regs24x.h Digital Control Systems Group Texas Instruments ----------------------------------------- 15-09-2000 Release Rev 1.0 ----------------------------------------- nome do novo arquivo : regs_dvr.h modificado por: Diogo Rodrigues da Costa Jr Lab. de Eletrônica de Potência POLI/COPPE/UFRJ ----------------------------------------- última modificação: 26-09-2003 ========================================*/ #include "structs.h" /*====================================== Definições dos Registradores ========================================*/ /* System configuration and interrupt registers*/ #define SCSR1 (*(volatile struct stscsr1*)0x7018) /* System Control & System Status */ /* Event Manager (EV) registers */ #define GPTCONA (*(volatile struct stgptcona*)0x7400)/* GP Timer control register. */ #define T1CON (*(volatile struct sttxcon*)0x7404) /* GP Timer 1 control register.*/ #define T2CON (*(volatile struct sttxcon*)0x7408) /* GP Timer 2 control register.*/ #define COMCONA (*(volatile struct stcomcona*)0x7411)/* Compare control register.*/ //#define ACTRA (*(volatile struct stactra*)0x7413) /* Full compare action control register.*/ #define ACTRA *((volatile unsigned int *)0x7413) #define GPTCONB (*(volatile struct stgptconb*)0x7500)/* GP Timer control register.*/ #define T3CON (*(volatile struct sttxcon*)0x7504) /* GP Timer 3 control register.*/ #ifndef __REGS24X_H__ #define __REGS24X_H__

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 80

/* C2xx core registers */ #define IMR *((volatile int *)0x0004) /* Interrupt Mask Register*/ #define IFR *((volatile int *)0x0006) /* Interrupt Flag Register*/ /* System configuration and interrupt registers*/ #define PIVR *((volatile int *)0x701E) /* Peripheral Interrupt Vector Reg. X241/2/3 only.*/ /* Digital I/O registers */ #define MCRA *((volatile int *)0x7090) /* Output Control Reg A */ #define MCRB *((volatile int *)0x7092) /* Output Control Reg B */ #define MCRC *((volatile int *)0x7094) /*Input Status Reg A. X240 only */ #define PADATDIR (*(volatile struct stpadatdir*)0x7098) /* I/O port A Data & Direction reg.*/ #define PBDATDIR (*(volatile struct stpbdatdir*)0x709A) /* I/O port B Data & Direction reg.*/ #define PCDATDIR (*(volatile struct stpcdatdir*)0x709C) /* I/O port C Data & Direction reg.*/ #define PDDATDIR (*(volatile struct stpddatdir*)0x709E) /* I/O port D Data & Direction reg.*/ #define PEDATDIR (*(volatile struct stpedatdir*)0x7095) /* I/O port D Data & Direction reg.*/ /* Watchdog (WD) registers */ #define WDCNTR *((volatile int *)0x7023) /* WD Counter reg */ #define WDKEY *((volatile int *)0x7025) /* WD Key reg */ #define WDCR *((volatile int *)0x7029) /* WD Control reg */ /* ADC registers */ #define ADCTRL1 *((volatile int *)0x70A0) /* ADC Control Reg1 */ #define ADCTRL2 *((volatile int *)0x70A1) /* ADC Control Reg2 */ #define MAXCONV *((volatile int *)0x70A2) #define CHSELSEQ1 *((volatile int *)0x70A3) #define RESULT0 *((volatile unsigned int *)0x70A8) #define RESULT1 *((volatile unsigned int *)0x70A9) #define RESULT2 *((volatile unsigned int *)0x70AA) #define RESULT3 *((volatile unsigned int *)0x70AB) /* Event Manager (EV) registers */ #define DBTCONA *((volatile int *)0x7415) /* Dead-band timer control register. */ #define CMPR1 *((volatile int *)0x7417) /* Full compare unit compare register1.*/ #define CMPR2 *((volatile int *)0x7418) /* Full compare unit compare register2.*/ #define CMPR3 *((volatile int *)0x7419) /* Full compare unit compare register3.*/ #define EVAIMRA *((volatile int *)0x742C) /* Group A Interrupt Mask Register */ #define EVAIFRA *((volatile int *)0x742F) /* Group A Interrupt Flag Register */

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 81

/*----------------------------------------*/ /* I/O space mapped registers */ /*----------------------------------------*/ /* Wait-State Generator Control Reg */ #define WSGR portffff ioport unsigned portffff; #endif

A.8. SETBIT.H

/*=========================================== Header para operacoes com registrados bit a bit --------------------------------------------- nome do arquivo : setbit.h --------------------------------------------- criado no: Lab. de Eletrônica de Potência POLI/COPPE/UFRJ ============================================*/ /* && CLEARBIT && */ /* configura nivel logico baixo em algum bit de um registrador ex. config. 0 no bit 5 do registrador REG1 REG1 &= CLEARBIT5 */ #define CLEARBIT0 0xFFFE #define CLEARBIT1 0xFFFD #define CLEARBIT2 0xFFFB #define CLEARBIT3 0xFFF7 #define CLEARBIT4 0xFFEF #define CLEARBIT5 0xFFDF #define CLEARBIT6 0xFFBF #define CLEARBIT7 0xFF7F #define CLEARBIT8 0xFEFF #define CLEARBIT9 0xFDFF #define CLEARBIT10 0xFBFF #define CLEARBIT11 0xF7FF #define CLEARBIT12 0xEFFF #define CLEARBIT13 0xDFFF #define CLEARBIT14 0xBFFF #define CLEARBIT15 0x7FFF /* || SETBIT || */ /* configura nivel logico alto em algum bit de um registrador ex. config. 1 no bit 15 do registrador REG4 REG4 |= SETBIT15 */ #define SETBIT0 0x0001 #define SETBIT1 0x0002 #define SETBIT2 0x0004 #define SETBIT3 0x0008

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 82

#define SETBIT4 0x0010 #define SETBIT5 0x0020 #define SETBIT6 0x0040 #define SETBIT7 0x0080 #define SETBIT8 0x0100 #define SETBIT9 0x0200 #define SETBIT10 0x0400 #define SETBIT11 0x0800 #define SETBIT12 0x1000 #define SETBIT13 0x2000 #define SETBIT14 0x4000 #define SETBIT15 0x8000 /* && MASKBIT && */ #define MASKBIT0 0x0001 #define MASKBIT1 0x0002 #define MASKBIT2 0x0004 #define MASKBIT3 0x0008 #define MASKBIT4 0x0010 #define MASKBIT5 0x0020 #define MASKBIT6 0x0040 #define MASKBIT7 0x0080 #define MASKBIT8 0x0100 #define MASKBIT9 0x0200 #define MASKBIT10 0x0400 #define MASKBIT11 0x0800 #define MASKBIT12 0x1000 #define MASKBIT13 0x2000 #define MASKBIT14 0x4000 #define MASKBIT15 0x8000 /*** fim do arquivo setbit.h ***/

A.9. STRUCTS.H

/*=========================================== Estruturas Gerais --------------------------------------------- nome do arquivo : structs.h --------------------------------------------- criado por: Diogo Rodrigues da Costa Jr Lab. de Eletrônica de Potência POLI/COPPE/UFRJ --------------------------------------------- 2002 ============================================*/ /*====================================== Estruturas do Registradores ========================================*/ struct stscsr1 unsigned int ILLADR : 1; /* bit 0 */ unsigned int RESERV0 : 1; unsigned int EVACLKEN : 1;

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 83

unsigned int EVBCLKEN : 1; unsigned int CANCLKEN : 1; unsigned int SPICLKEN : 1; unsigned int SCICLKEN : 1; unsigned int ADCCLKEN : 1; unsigned int RESERV1 : 1; unsigned int CLKPS0 : 1; unsigned int CLKPS1 : 1; unsigned int CLKPS2 : 1; unsigned int LPM0 : 1; unsigned int LPM1 : 1; unsigned int CLKSRC : 1; unsigned int RESERV2 : 1; ; struct stgptcona unsigned int T1PIN : 2; unsigned int T2PIN : 2; unsigned int RESERV0 : 2; unsigned int TCOMPOE : 1; unsigned int T1TOADC : 2; unsigned int T2TOADC : 2; unsigned int RESERV1 : 2; unsigned int T1STAT : 1; unsigned int T2STAT : 1; unsigned int RESERV2 : 1; ; struct stgptconb unsigned int T3PIN : 2; unsigned int T4PIN : 2; unsigned int RESERV0 : 2; unsigned int TCOMPOE : 1; unsigned int T3TOADC : 2; unsigned int T4TOADC : 2; unsigned int RESERV1 : 2; unsigned int T3STAT : 1; unsigned int T4STAT : 1; unsigned int RESERV2 : 1; ; struct sttxcon unsigned int SELTXPR : 1; unsigned int TECMPR : 1; unsigned int TCLD0 : 1; unsigned int TCLD1 : 1; unsigned int TCLKS0 : 1; unsigned int TCLKS1 : 1; unsigned int TENABLE : 1; unsigned int TXSWTX : 1; unsigned int TPS0 : 1; unsigned int TPS1 : 1; unsigned int TPS2 : 1; unsigned int TMODE0 : 1; unsigned int TMODE1 : 1; unsigned int RESERV0 : 1; unsigned int SOFT : 1; unsigned int FREE : 1; ;

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 84

struct stactra unsigned int CMP1ACT1T0 : 2; unsigned int CMP2ACT1T0 : 2; unsigned int CMP3ACT1T0 : 2; unsigned int CMP4ACT1T0 : 2; unsigned int CMP5ACT1T0 : 2; unsigned int CMP6ACT1T0 : 2; unsigned int D0 : 1; unsigned int D1 : 1; unsigned int D2 : 1; unsigned int SVRDIR : 1; ; struct stcomcona unsigned int RESERVED : 8; unsigned int PDPINTA : 1; unsigned int FCOMPOE : 1; unsigned int ACTRLD1D0 : 2; unsigned int SVENABLE : 1; unsigned int CLD1D0 : 2; unsigned int CENABLE : 1; ; volatile struct stpadatdir unsigned int IOPA0 : 1; /* bit 0 */ unsigned int IOPA1 : 1; unsigned int IOPA2 : 1; unsigned int IOPA3 : 1; unsigned int IOPA4 : 1; unsigned int IOPA5 : 1; unsigned int IOPA6 : 1; unsigned int IOPA7 : 1; unsigned int A0DIR : 1; unsigned int A1DIR : 1; unsigned int A2DIR : 1; unsigned int A3DIR : 1; unsigned int A4DIR : 1; unsigned int A5DIR : 1; unsigned int A6DIR : 1; unsigned int A7DIR : 1; ; struct stpbdatdir unsigned int IOPB0 : 1; /* bit 0 */ unsigned int IOPB1 : 1; unsigned int IOPB2 : 1; unsigned int IOPB3 : 1; unsigned int IOPB4 : 1; unsigned int IOPB5 : 1; unsigned int IOPB6 : 1; unsigned int IOPB7 : 1; unsigned int B0DIR : 1; unsigned int B1DIR : 1; unsigned int B2DIR : 1; unsigned int B3DIR : 1; unsigned int B4DIR : 1; unsigned int B5DIR : 1; unsigned int B6DIR : 1; unsigned int B7DIR : 1;

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 85

; struct stpcdatdir unsigned int IOPC0 : 1; /* bit 0 */ unsigned int IOPC1 : 1; unsigned int IOPC2 : 1; unsigned int IOPC3 : 1; unsigned int IOPC4 : 1; unsigned int IOPC5 : 1; unsigned int IOPC6 : 1; unsigned int IOPC7 : 1; unsigned int C0DIR : 1; unsigned int C1DIR : 1; unsigned int C2DIR : 1; unsigned int C3DIR : 1; unsigned int C4DIR : 1; unsigned int C5DIR : 1; unsigned int C6DIR : 1; unsigned int C7DIR : 1; ; struct stpddatdir unsigned int IOPD0 : 1; /* bit 0 */ unsigned int RESERVED0 : 7; unsigned int D0DIR : 1; unsigned int RESERVED1 : 7; ; struct stpedatdir unsigned int IOPE0 : 1; /* bit 0 */ unsigned int IOPE1 : 1; unsigned int IOPE2 : 1; unsigned int IOPE3 : 1; unsigned int IOPE4 : 1; unsigned int IOPE5 : 1; unsigned int IOPE6 : 1; unsigned int IOPE7 : 1; unsigned int E0DIR : 1; unsigned int E1DIR : 1; unsigned int E2DIR : 1; unsigned int E3DIR : 1; unsigned int E4DIR : 1; unsigned int E5DIR : 1; unsigned int E6DIR : 1; unsigned int E7DIR : 1; ; /*====================================== Estruturas de Variaveis ========================================*/ struct stpark_in int d; int q; int theta; ; struct stpark_out

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 86

int seno; int cosseno; ; struct stvclarke int alfa; int beta; ; struct stvlinha int ab; int bc; ; struct stpll_in long int omegat_Q31; long int p3f_ant_Q28; long int u_Q28; int valfa_Q13; int vbeta_Q13; ; struct stpll_out long int omegat_Q31; long int p3f_ant_Q28; long int u_Q28; int ialfa_Q15; int ibeta_Q15; ; /***** fim do structs.h *****/

A.10. SVGEN.H

FORNECIDO PELA TEXAS INSTRUMENTS, INC.

A.11. QMATH.LIB

FORNECIDO PELA TEXAS INSTRUMENTS, INC.

A.12. CLIB_010.LIB

FORNECIDO PELA TEXAS INSTRUMENTS, INC.

A.13. F2407_010.LIB

FORNECIDO PELA TEXAS INSTRUMENTS, INC.

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 87

A.14. FILTER.LIB

FORNECIDO PELA TEXAS INSTRUMENTS, INC.

A.15. MAP.CMD

/* */ MEMORY /* Mapa de memória */ PAGE 0 : /* program memory */ VECS : origin = 0h , length = 3Fh CODE1: origin = 040h , length= 0DC0h CODE : origin = 8800h, length = 7600h PAGE 1 : /*data memory*/ Ext_Ram : origin = 8000h, length = 8000h PAGE 2 : /*I/O MEMORY */ IO_EX : origin = 0000h , length = 0FFF0h

/* External I/O mapped peripherals */ IO_IN : origin = 0FFF0h, length = 0000Fh

/* On-chip I/O mapped peripherals */ SECTIONS /* specify sections */ vectors : > VECS PAGE = 0 .text : > CODE1 PAGE = 0 .switch : > CODE1 PAGE = 0 .data : > Ext_Ram PAGE = 1 .bss : > Ext_Ram PAGE = 1 .heap : > Ext_Ram PAGE = 1 .stack : > Ext_Ram PAGE = 1

A.16. CALC_CLARKE.C

/*=========================================== Transformação de coordenadas a-b-c => alfa-beta --------------------------------------------- nome do arquivo : calc_clarke.c --------------------------------------------- criado por:

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 88

Diogo Rodrigues da Costa Jr Lab. de Eletrônica de Potência POLI/COPPE/UFRJ --------------------------------------------- última modificação: 26-09-2003 ============================================*/ /************ Formato das variáveis *************/ /* */ /* entrada -> vlinha.ab vlinha.bc ==> Q9 */ /* saida -> vclarke.alfa vclarke.beta ==> Q13 */ /* */ /************************************************/ #include "structs.h" #define SQRT16 Q20 428079L // sqrt(1/6) em Q20 #define SQRT12 Q20 741455L // sqrt(1/2) em Q20 int vab_Q9; int vbc_Q9; /***************************************************************/ /* Entrada == sinais de tensão de linha */ /***************************************************************/ /* valfa = sqrt(1/6) * (2*vab+vb) */ /* vbeta = sqrt(1/2) * vbc */ /***************************************************************/ void calc_clarke(struct stvlinha *vlinha, struct stvclarke *vclarke) /*** variaveis locais usadas p/ o calculo *****/ long int valfa1_Q9; // (2*vab+vac) long int valfa2_Q13; // 1/sqrt(6)*(2*vab+vac) long int vbeta1_Q13; // 1/sqrt(2) * vbc struct stvlinha temp_vlinha; // temporario _Q9 struct stvclarke temp_vclarke; // temporario _Q9 /**********************************************/ temp_vlinha = *vlinha; //vab_Q9 = temp_vlinha.ab; //vbc_Q9 = temp_vlinha.bc; /************* calculo de valfa ***************/ valfa1_Q9 = ((2 * temp_vlinha.ab) + temp_vlinha.bc); valfa2_Q13 = ( (SQRT16_Q20 * valfa1_Q9 ) >> 16 ); /**********************************************/ /************* calculo de vbeta ***************/ vbeta1_Q13 = ((SQRT12_Q20 * temp_vlinha.bc) >> 16); /**********************************************/ temp vclarke.alfa = valfa2 Q13; temp_vclarke.beta = vbeta1_Q13; *vclarke = temp_vclarke; /***** fim de calc_clarke.m *****/

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 89

A.17. CALC_VCOL.C

/*=========================================== Calculo do valor coletivo --------------------------------------------- nome do arquivo : calc_vcol.c --------------------------------------------- criado por: Diogo Rodrigues da Costa Jr Lab. de Eletrônica de Potência POLI/COPPE/UFRJ --------------------------------------------- última modificação: 26-09-2003 ============================================*/ #include"qmath.h" unsigned long int vquad_Q14; unsigned short int vcol_Q14; int vcol_in; unsigned int temp[1500]; unsigned int short temp2[1500]; unsigned long int temp3[1500]; long int valfa2, vbeta2; int a=0; unsigned int vcol(int valfa,int vbeta) valfa2 = (((long)(valfa * valfa))>>14);//Q14 vbeta2 = (((long)(vbeta * vbeta))>>14);//Q14 vquad_Q14 = valfa2+vbeta2; vcol_Q14 = qsqrt(vquad_Q14); vcol_in = vcol_Q14; return(vcol_in); /*fim de calc_vcol.c*/

A.18. DVR_MAIN.C

/*=========================================== Arquivo pricipal do controle do DVR implementado no eZdsp TMS320LM2407A --------------------------------------------- nome do arquivo : drv_main.c --------------------------------------------- criado por: Diogo Rodrigues da Costa Jr Lab. de Eletrônica de Potência POLI/COPPE/UFRJ --------------------------------------------- ultima modificação: 26-09-2003 ============================================*/ #include "SETBIT.h" #include "regs_dvr.h" #include "defines_dvr.h" #include "svgen.h"

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 90

#include "F2407PWM.H" #include "coef_filtro.h" #include "iirfilt.h" /*============================*/ /* Declaração das variáveis */ /*============================*/ struct stpark_in park_ilinha_in; /* utilizado corrente de realimentacao - PLL */ struct stpark_out park_ilinha_out;/* utilizado corrente de realimentacao - PLL */ struct stpark_in park_comp_in; /* utilizado para tensão de compensação */ struct stpark_out park_comp_out; /* utilizado para tensão de compensação */ struct stvclarke vclarke; struct stvlinha vlinha; struct stpll_in pll_reg_in,pll_entr_in; struct stpll_out pll_reg_out,pll_entr_out; int i=0,k=0,j=0,m=0; int amp; int sintonia=10; int c=1; int adcin0_Q10, adcin1_Q10, adcin2_Q10, adcin3_Q10; int amp_i_Q15=0; int saida_pi; /************************ Variaveis de Visualizacao ************************/ #define NAMOSTRAS 1500 int var1[NAMOSTRAS], var2[NAMOSTRAS], var3[NAMOSTRAS], var4[NAMOSTRAS]; int amostra0[NAMOSTRAS],amostra1[NAMOSTRAS],amostra2[NAMOSTRAS]; long int var5[NAMOSTRAS], var6[NAMOSTRAS], var7[NAMOSTRAS], var8[NAMOSTRAS]; /***************************************************************************/ void bad_trap(void); void bad_trap(void) while(1); /* a place to hang if illegal trap */ /*=======================================*/ /* Inicialização da biblioteca do filtro */ /*=======================================*/ #pragma DATA_SECTION(iir, "iirfilt"); IIR5BIQ16 iir=IIR5BIQ16_DEFAULTS; /* Instance the Filter Object and Initialize */ #pragma DATA_SECTION(iir2, "iirfilt"); IIR5BIQ16 iir2=IIR5BIQ16_DEFAULTS; /* Instance the Filter Object and Initialize */ #pragma DATA_SECTION(dbuffer,"iirfilt"); int dbuffer[2*IIR_NBIQ]; /* Create Delay Buffer */

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 91

#pragma DATA_SECTION(dbuffer2,"iirfilt"); int dbuffer2[2*IIR_NBIQ]; /* Create Delay Buffer */ #pragma DATA_SECTION(coeff, "iirfilt"); int coeff[5*IIR_NBIQ]=IIR_COEFF; /* Create Coefficient Buffer and initialize */ /*=======================================*/ /* Inicialização da biblioteca do PWM */ /*=======================================*/ SVGENDQ sv1=SVGENDQ_DEFAULTS, sv2=SVGENDQ_DEFAULTS; PWMGEN gen = F2407_EV1_FC_PWM_GEN; /* Instance the PWM interface object */ int main() inic_dvr(); pll_entr_in.omegat_Q31=0; pll_entr_in.p3f_ant_Q28=0; /* potência trifásica no instante anterior */ pll_entr_in.u_Q28=Q28; /* Inicialização do valor da saída do PI */ pll_reg_in.omegat_Q31=0; pll_reg_in.p3f_ant_Q28=0; /* potência trifásica no instante anterior */ pll_reg_in.u_Q28=Q28; /* Inicialização do valor da saída do PI */ gen.period_max=PR; /* Sets the prd reg for the Timer to 500 cycles*/ gen.init(&gen); /* Call the hardware initialization function */ ACTRA=ACTR_INIT_STATE; DBTCONA=DBTCON_INIT_STATE; iir.dbuffer_ptr=dbuffer; /* Object Initialization */ iir.coeff_ptr=coeff; iir.qfmat=IIR_QFMAT; iir.nbiq=IIR_NBIQ; iir.isf=IIR_ISF; iir.init(&iir); iir2.dbuffer_ptr=dbuffer2; /* Object Initialization */ iir2.coeff_ptr=coeff; iir2.qfmat=IIR_QFMAT; iir2.nbiq=IIR_NBIQ; iir2.isf=IIR_ISF; iir2.init(&iir2); park_ilinha_in.q = AMPL_I_Q15; /* D=d*cos(teta)+q*sin(teta) */ park_ilinha_in.d = 0; /* Q=-d*sin(teta)+q*cos(teta) */ MCRC &= CLEARBIT7; /* seleciona funcao IO */ PEDATDIR.E7DIR=1; /* configura como saida digital */ /*INTERRUPTS*/ IMR=SETBIT1; EVAIMRA |= SETBIT7; /* T1PINT */ EVAIFRA |= SETBIT7; /* não há pendências */

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 92

ENABLE_INTERRUPTS; while (1) ; /* fundo - loop infinito*/ /*============================================*/ /* INICIO DA ROTINA DE SERVIÇO DE INTERRUPÇÃO */ /*============================================*/ void interrupt gisr2() /*--------------------------------*/ /* declaração de variáveis locais */ /*--------------------------------*/ int vabentr_Q9, vbcentr_Q9; /* sinais de tensão medidos na barra in */ int vabreg_Q9, vbcreg_Q9; /* sinais de tensão medidos na barra reg */ int ialfaentr_Q15, ibetaentr_Q15; /* sinais de realimentação do PLL da barra de entrada */ int ialfareg_Q15, ibetareg_Q15; /* sinais de realimentação do PLL da barra regulada */ int vcol_regQ7; int verro_Q7; int valfa_comp_Q14, vbeta_comp_Q14; int amp_Q15; int valfaentr_Q13,valfalinhareg_Q14; int alfa_pwm,valfareg_Q13,valfareg_Q14; int vbetaentr_Q13,vbetalinhareg_Q14; int beta_pwm,vbetareg_Q13,vbetareg_Q14; long int q1_Q28; long int q2_Q28; long int plinha_Q12,pbarra_Q14; long int qlinha_Q12,qbarra_Q14; /*--------------------------------*/ #define OFFSET_Q10 ((int)(Q10*1.57/3.3))/*1.63483*/ /* zero Amp = 2.5V; 3.3V = 1.0(Q10) */ #define GAIN ((int)74) switch (PIVR) /*Peripheral Interrupt Vetor Register*/ case 0x27: /*PIVR=[0027h]Interrupt T1PINT */ PEDATDIR.IOPE7=1; /* nivel logico zero no IOPE7 (p/ marcar o tempo de exec. da rsi)*/ /******************************************************/ /********** Bloqueio do inversor **********/ /******************************************************/ /* verifica o estado da chave de bloqueio do inversor */ while (!PADATDIR.IOPA2) trava();

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 93

/******************************************************/ /*****************************************************/ /********** Verifica Erro no Inversor ********/ /*****************************************************/ /* se ocorrer algum erro, o inversor para de chavear,*/ /* porem nao eh deligado */ MCRA &= CLEARBIT3; /* configura como função IO */ MCRA &= CLEARBIT4; /* configura como função IO */ MCRA &= CLEARBIT5; /* configura como função IO */ PADATDIR.A3DIR=0; /* configura como entrada digital */ PADATDIR.A4DIR=0; /* configura como entrada digital */ PADATDIR.A5DIR=0; /* configura como entrada digital */ while (PADATDIR.IOPA3) /* erro na fase A*/ trava(); while (PADATDIR.IOPA4) /* erro na fase B*/ trava(); while (PADATDIR.IOPA5) /* erro na fase C*/ trava(); MCRA |= SETBIT6; /* configura como função PWM */ MCRA |= SETBIT7; /* configura como função PWM */ MCRA |= SETBIT8; /* configura como função PWM */ MCRA |= SETBIT9; /* configura como função PWM */ MCRA |= SETBIT10; /* configura como função PWM */ MCRA |= SETBIT11; /* configura como função PWM */ /****fim da verificação dos erros**********************/ /******************************************************/ /********** Conversão AD ********/ /******************************************************/ while (ADCTRL2 & SEQ1BSY) ; /*Teste de fim da conversao*/ /* ATENCAO - IMPORTANTE VERIFICAR SEQUENCIA DE FASES !!! */ adcin0_Q10 = (((int)(((RESULT0 >>6)-OFFSET_Q10)*GAIN))>>5); adcin1_Q10 = (((int)(((RESULT1 >>6)-OFFSET_Q10)*GAIN))>>5); adcin2_Q10 = (((int)(((RESULT2 >>6)-OFFSET_Q10)*GAIN))>>5); adcin3_Q10 = (((int)(((RESULT3 >>6)-OFFSET_Q10)*GAIN))>>5); ADCTRL2 |=SETBIT14; /* RESET SEQ1 */ /**** fim do AD **************************************/ /*****************************************************/ /********** Transformação de Clarke *********/ /*****************************************************/ vabentr_Q9 = (adcin0_Q10); /* 2^10 -> 1pu (Vrms) = Vbase=220V */ vbcentr_Q9 = (adcin1_Q10); vabreg_Q9 = (adcin2_Q10); vbcreg_Q9 = (adcin3_Q10);

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 94

/* Transformações de clarke+ */ vlinha.ab = vabentr_Q9; vlinha.bc = vbcentr_Q9; calc_clarke(&vlinha,&vclarke); /* executa o algoritmo transf. de Clarke (calc_clarke.c)*/ valfaentr_Q13 = vclarke.alfa; vbetaentr_Q13 = vclarke.beta; vlinha.ab = vabreg_Q9; vlinha.bc = vbcreg_Q9; calc_clarke(&vlinha,&vclarke); /* executa o algoritmo transf. de Clarke (calc_clarke.c)*/ valfareg_Q13 = vclarke.alfa; vbetareg_Q13 = vclarke.beta; /**** fim da transf. de clarke ***********************/ /*****************************************************/ /****** PLL da barra de entrada ********/ /*****************************************************/ pll_entr_in.valfa_Q13=valfaentr_Q13; pll_entr_in.vbeta_Q13=vbetaentr_Q13; pll(&pll_entr_in,&pll_entr_out); /*executa o algoritmo do PLL (plltrifasico.c)*/ pll_entr_in.omegat_Q31=pll_entr_out.omegat_Q31; pll_entr_in.p3f_ant_Q28=pll_entr_out.p3f_ant_Q28; pll_entr_in.u_Q28=pll_entr_out.u_Q28; ialfaentr_Q15=pll_entr_out.ialfa_Q15; ibetaentr_Q15=pll_entr_out.ibeta_Q15; /*****fim do ****************************************/ /****************************************************/ /***** PLL da barra de regulada ********/ /****************************************************/ pll_reg_in.valfa_Q13=valfareg_Q13; pll_reg_in.vbeta_Q13=vbetareg_Q13; pll(&pll_reg_in,&pll_reg_out); /*executa o algoritmo do PLL (plltrifasico.c)*/ pll_reg_in.omegat_Q31=pll_reg_out.omegat_Q31; pll_reg_in.p3f_ant_Q28=pll_reg_out.p3f_ant_Q28; pll_reg_in.u_Q28=pll_reg_out.u_Q28; ialfareg_Q15=pll_reg_out.ialfa_Q15; ibetareg_Q15=pll_reg_out.ibeta_Q15; /***fim do PLL***************************************/ /****************************************************/ /****** Detector de V+1 ********/ /****************************************************/ /* barra regulada */ q1_Q28 = (valfareg_Q13 * ibetareg_Q15); q2_Q28 = (vbetareg_Q13 * ialfareg_Q15); plinha_Q12 = ((pll_reg_out.p3f_ant_Q28)>>16); qlinha_Q12 = ((q1_Q28-q2_Q28)>>16);

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 95

/******** Filtro *********/ /* 5th order butterworth */ **************************/ if (++m==ESCALA_FILTRO) /*1kHz*/ /*Qbarra*/ iir.input=(qlinha_Q12<<2); iir.calc(&iir); qbarra_Q14=(iir.output<<1); m=0; /***fim do filtro ********/ /***** cálculo das tensões de referencia *****/ /* I=> amplitude de ialfa e ibeta */ /* valfa' e vbeta' => tensão de seq. + */ /* valfa'=1/(I^2)*(pbarra*ialfa+qbarra*ibeta)*/ /* vbeta'=1/(I^2)*(pbarra*ibeta-qbarra*ialfa)*/ // considerando pbarra_Q14=0; valfalinhareg_Q14 = ((long)((((long)qbarra_Q14*ibetareg_Q15)>>15)*(INV_AMPL_I2_Q14))>>14); vbetalinhareg_Q14 = (-((long)((((long)qbarra_Q14*ialfareg_Q15)>>15)*(INV_AMPL_I2_Q14))>>14)); /*** Fim do detectro de *********************************/ /********************************************************/ /*** controle de afundamento ******/ /********************************************************/ vcol_regQ7 = vcol(valfalinhareg_Q14,vbetalinhareg_Q14); /* calculo da tensao coletiva*/ verro_Q7 = (105-vcol_regQ7); /* PI */ amp_i_Q15 = amp_i_Q15 + (KI_AFUND_Q14*(verro_Q7)>>6); if (amp_i_Q15>(Q15-1)) amp_i_Q15=(Q15-1); saida_pi = amp_i_Q15 + ((KP_AFUND_Q9*verro_Q7)>>1); amp_Q15 = saida_pi; if (amp_Q15>19000) amp_Q15=19000; if (amp_Q15<10) amp_Q15=10; /*** Fim do Controle de afundamento *******************/ /******************************************************/ /***** SPACE VECTOR PWM *********/ /******************************************************/ park_comp_in.q = amp_Q15;/* D= d*cos(teta) + q*sin(teta) */ park_comp_in.d = 0; /* Q=-d*sin(teta) + q*cos(teta) */ park_comp_in.theta = (pll_entr_out.omegat_Q31 >> 16) ; park(&park_comp_in,&park_comp_out);

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 96

alfa_pwm = -(park_comp_out.cosseno); beta_pwm = -(park_comp_out.seno); sv1.d=alfa_pwm; sv1.q=beta_pwm; sv1.calc(&sv1); gen.mfunc_c1= sv1.va; /* Connect the output of svgen to gen inputs */ gen.mfunc_c2= sv1.vb; gen.mfunc_c3= sv1.vc; gen.update(&gen); /* Call the hardware update function */ /**** fim do SV PWM *************************************/ /********************************************************/ /************ VISUALIZAÇÃO ******/ /********************************************************/ if (++j==1) var1[k] = valfareg_Q13; var2[k] = ibetareg_Q15; var3[k] = valfaentr_Q13; var4[k] = ibetaentr_Q15; var5[k] = pll_reg_out.u_Q28;; //formatlong var6[k] = pll_entr_out.u_Q28; //formatlong var7[k] = pll_entr_out.omegat_Q31; //formatlong amostra0[k]=vabreg_Q9; amostra1[k]=vbcreg_Q9; amostra2[k]=vbcentr_Q9; if (++k==NAMOSTRAS) (k=0); j=0; /****Fim da visulização ******************************/ PEDATDIR.IOPE7=0; /* nivel logico zero no IOPE7 (p/ marcar o tempo de exec. da rsi)*/ EVAIFRA |= SETBIT7; /* permitir outra interrupção */ break; default: break; /***** fim de dvr_main.c *****/

A.19. INIC_DVR.C

/*=========================================== Configurações de inicialização para o DVR --------------------------------------------- nome do arquivo : inic_dvr.c --------------------------------------------- criado por: Diogo Rodrigues da Costa Jr Lab. de Eletrônica de Potência POLI/COPPE/UFRJ ---------------------------------------------

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 97

ultima modificação: 07-10-2002 ============================================*/ #include "SETBIT.h" #include "regs_dvr.h" int inic_dvr() SCSR1.CLKSRC=0; /* CLOCKOUT PIN - (0 - 30MHz) OU (1 - WD CLOCK) */ /*====================================== Prescale System Clock ---------------------------------------- PS2 PS1 PS0 System Clock 0 0 0 4 x Fin 0 0 1 2 x Fin 0 1 0 1.33 x Fin 0 1 1 1 x Fin 1 0 0 0.8 x Fin 1 0 1 0.66 x Fin 1 1 0 0.57 x Fin 1 1 1 0.5 x Fin ========================================*/ SCSR1.CLKPS0=0; SCSR1.CLKPS1=0; SCSR1.CLKPS2=0; /*====================================== Wait State ========================================*/ WSGR = 0; /*====================================== Watchdog Timer ========================================*/ WDCR =0x68; /* 0110 1000 WD Timer Control Register */ WDKEY=0x55; /* WD Counter eh habilitado para ser resetado pelo proximo 0xAA*/ WDKEY=0xAA; /* WD Counter eh resetado*/ /*================================================== System Control and Status Registers 1 ====================================================*/ SCSR1.ADCCLKEN=1; /* Habilita o Clock para o modulo ADC */ SCSR1.EVACLKEN=1; /* Habilita o Clock para o modulo EVA */ SCSR1.EVBCLKEN=0; /*================================================== Event Manger ====================================================*/ /*-------------------------------------------------- GPTCONA 0x0040 0000 0000 0101 0000 --------------------------------------------------*/

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 98

GPTCONA.T2TOADC=0; /* Start ADC com timer 2 - no events starts ADC(00) */ GPTCONA.T1TOADC=2; /* Start ADC com timer 1 - period event starts ADC(10) */ GPTCONA.TCOMPOE=0; /* Compare output enable - Enable all GP Timer compare output(1) */ GPTCONA.T2PIN=0; /* Polarity of GP Timer 2 compare output - Forced low(00) */ GPTCONA.T1PIN=0; /* Polarity of GP Timer 2 compare output - Forced low(00) */ /*-------------------------------------------------- GPTCONB 0x0040 0000 0000 010, 0 0000 --------------------------------------------------*/ GPTCONB.T4TOADC=0; /* Start ADC com timer 4 - no events starts ADC(00) */ GPTCONB.T3TOADC=0; /* Start ADC com timer 3 - no events starts ADC(00) */ GPTCONB.TCOMPOE=0; /* Compare output enable - Enable all GP Timer compare output(1) */ GPTCONB.T4PIN=0; /* Polarity of GP Timer 4 compare output - Forced low(00) */ GPTCONB.T3PIN=0; /* Polarity of GP Timer 3 compare output - Forced low(00) */ /*--------------------------------------------------*/ /*-------------------------------------------------- ACTRA 0x0666 0000 0110 0110 0110 --------------------------------------------------*/ /* ACTRA.CMP1ACT1T0 = 01;//10; ACTRA.CMP2ACT1T0 = 10;//01; ACTRA.CMP3ACT1T0 = 01;//10; ACTRA.CMP4ACT1T0 = 10;//01; ACTRA.CMP5ACT1T0 = 01;//10; ACTRA.CMP6ACT1T0 = 10;//01; ACTRA.D0 = 0; ACTRA.D1 = 0; ACTRA.D2 = 0; ACTRA.SVRDIR = 0; *//* bit 15 */ /*------------------------------------------------ COMCONA 0x8200 1000 0010 0000 0000 --------------------------------------------------*/ COMCONA.FCOMPOE = 1; /* habilita os pinos de saida PWM (1) */ COMCONA.ACTRLD1D0 = 0; COMCONA.SVENABLE = 0; COMCONA.CLD1D0 = 0; COMCONA.CENABLE = 1; /* Enables compare(1) */ /* bit 15 */ /*--------------------------------------------------*/ /* Timer Control Register */ /*--------------------------------------------------*/ /* OBS.: INICIALIZACOES MODIFICADAS PELA FUNC. F2407_EV1_FC_PWM_GEN */ T1CON.FREE = 1; /* BIT 15 */

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 99

T1CON.SOFT = 1; T1CON.TMODE1 = 0; T1CON.TMODE0 = 1; /* up/down */ T1CON.TPS2 = 0; T1CON.TPS1 = 0; T1CON.TPS0 = 0; T1CON.TENABLE = 1; T1CON.TCLKS1 = 0; T1CON.TCLKS0 = 0; T1CON.TCLD1 = 0; T1CON.TCLD0 = 1; T1CON.TECMPR = 1; /* T2CON = 0xF446 1111 0100 0100 0110 */ /* Prescaler x/16 */ T2CON.FREE = 1; T2CON.SOFT = 1; T2CON.TMODE1 = 1; T2CON.TMODE0 = 0; T2CON.TPS2 = 0; T2CON.TPS1 = 0; T2CON.TPS0 = 0; T2CON.TXSWTX = 0; T2CON.TENABLE = 0; T2CON.TCLKS1 = 0; T2CON.TCLKS0 = 0; T2CON.TCLD1 = 1; T2CON.TCLD0 = 0; T2CON.TECMPR = 0; T2CON.SELTXPR = 0; /*--------------------------------------------------*/ /* T3CON = 0xF446 1111 0100 0100 0110 */ /* Prescaler x/16 */ T3CON.FREE = 1; T3CON.SOFT = 1; T3CON.TMODE1 = 1; T3CON.TMODE0 = 0; T3CON.TPS2 = 0; T3CON.TPS1 = 0; T3CON.TPS0 = 0; T3CON.TENABLE = 0; T3CON.TCLKS1 = 0; T3CON.TCLKS0 = 0; T3CON.TCLD1 = 1; T3CON.TCLD0 = 0; T3CON.TECMPR = 0; /*--------------------------------------------------*/ /*==================================================*/

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 100

/* AD Converter */ /*==================================================*/ ADCTRL1=0x1320; /* CPS=0, Prescale=#3 (Zin<767ohm) */ MAXCONV=0x0003; CHSELSEQ1=0x3410; /*[70A3]Input Channel Sequence Register*/ /*(0000) Channel 0*/ ADCTRL2 |=SETBIT8; /* disparo pela EVA */ ADCTRL2 |=SETBIT14; /* reset seq1 */ /********** fim de inic_dvr.c ***********/

A.20. PLLTRIFASICO.C

/*=========================================== Rotina do PLL(Phase-Locked Loop) Trifásico --------------------------------------------- nome do arquivo : plltrifasico.c --------------------------------------------- criado por: Diogo Rodrigues da Costa Jr Lab. de Eletrônica de Potência POLI/COPPE/UFRJ --------------------------------------------- última modificação: 26-09-2003 ============================================*/ #include "structs.h" #include "defines_dvr.h" struct stpark_in park_in; struct stpark_out park_out; struct stpll_in in; struct stpll_out out; long int p1_Q28; long int p2_Q28; long int q1_Q28; long int q2_Q28; long int prop_Q28; long int integ_Q28; static long int p3f_Q28; /* potencia trifasica */ int delta_p; void pll(struct stpll_in *pll_in, struct stpll_out *pll_out) park_in.q = AMPL_I_Q15; /* D = d*cos(teta) + q*sin(teta) */ park_in.d = 0; /* Q = -d*sin(teta) + q*cos(teta) */ in = *pll_in; /* Sinais de realimentação */ park_in.theta = (in.omegat_Q31 >> 16) ; park(&park_in,&park_out); out.ibeta_Q15 = -park_out.cosseno;

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 101

out.ialfa_Q15 = park_out.seno; /*****************************/ p1_Q28 = in.valfa_Q13 * out.ialfa_Q15; p2_Q28 = in.vbeta_Q13 * out.ibeta_Q15; p3f_Q28 = ((long)(p1_Q28+p2_Q28)); delta_p = (p3f_Q28-in.p3f_ant_Q28)>>15; //Q13 prop_Q28 = KP_Q15 * delta_p; integ_Q28 = KI_Q15 * (p3f_Q28>>15); out.u_Q28 += (prop_Q28 + integ_Q28); /************ saturação **************/ if (out.u_Q28>U_MAX_Q28) out.u_Q28=U_MAX_Q28; if (out.u_Q28<U_MIN_Q28) out.u_Q28=U_MIN_Q28; /*************************************/ out.omegat_Q31 = in.omegat_Q31 + (((out.u_Q28) >> 12) * KW_Q15); out.p3f_ant_Q28=p3f_Q28; *pll_out=out; /*** fim do plltrifasico.c ***/

A.21. TRAVA.C

/*=========================================== Desliga o DVR --------------------------------------------- nome do arquivo : trava.c --------------------------------------------- criado por: Diogo Rodrigues da Costa Jr Lab. de Eletrônica de Potência POLI/COPPE/UFRJ --------------------------------------------- última modificação: 26-09-2003 ============================================*/ /* O DVR é travado com o fechamento das chaves inferiores de seu inversor e a abertura da chaves superiores, com isso há um curto no secundário dos trafo série, não havendo perda de fornecimento de energia para a carga sensivel */ #include "SETBIT.h" #include "regs_dvr.h" int trava() MCRA &= CLEARBIT6; /* configura como função IO */ MCRA &= CLEARBIT7; /* configura como função IO */ MCRA &= CLEARBIT8; /* configura como função IO */

APÊNDICE A – LISTAGEM DO CÓDIGO FONTE 102

MCRA &= CLEARBIT9; /* configura como função IO */ MCRA &= CLEARBIT10; /* configura como função IO */ MCRA &= CLEARBIT11; /* configura como função IO */ PADATDIR.A6DIR=1; /* configura como saida digital */

PADATDIR.A7DIR=1; /* configura como saida digital */ PBDATDIR.B0DIR=1; /* configura como saida digital */ PBDATDIR.B1DIR=1; /* configura como saida digital */ PBDATDIR.B2DIR=1; /* configura como saida digital */ PBDATDIR.B3DIR=1; /* configura como saida digital */ PADATDIR.IOPA6=1; /* set nivel logico 1 */ PADATDIR.IOPA7=0; /* set nivel logico 0 */ PBDATDIR.IOPB0=1; /* set nivel logico 1 */ PBDATDIR.IOPB1=0; /* set nivel logico 0 */ PBDATDIR.IOPB2=1; /* set nivel logico 1 */ PBDATDIR.IOPB3=0; /* set nivel logico 0 */ /*** fim do trava.c ***/

A.22. VECTOR.ASM

FORNECIDO PELA TEXAS INSTRUMENTS, INC.

103

APÊNDICE B

ENDEREÇO DOS REGISTRADORES

REGISTRADOR NOME ENDEREÇOSCSR1 System Control ans Status Register 1 7018hWSGR Wait-State Generator Control Register FFFFhWDCR Watchdog Control Register 7029hWDKEY Watchdog Key Register 7025h

GPTCONA General-Purpose Timer Control Register A 7400hMCRA I/O Mux Control Register A 7090h

PADATDIR Port A Data and Direction Control Register 7098hT1CON Timer 1 Control Register 7411hACTRA Compare Action Control Register A 7413hACTRB Compare Action Control Register B 7513h

DBTCONA Dead-Band Timer Control Register A xx15hEVAIMRA Interrupt Mask Register A 742ChEVAIFRA Interrupt Flag Register A 742Fh

T1PR Timer 1 Period Register 7403hCMPR1 Compare Register 1 7417hCMPR2 Compare Register 2 7418hCMPR3 Compare Register 3 7419h

ADCTRL1 ADC Control Register 1 70A0hADCTRL2 ADC Control Register 2 70A1h

MAXCONV1 Maximum Conversion Channels Register 70A2hCHSELSEQ1 Channel Select Sequencing Control Register 1 70A3h

RESULT0 Conversion Result Buffer Register 0 70A8hRESULT1 Conversion Result Buffer Register 1 70A9hRESULT2 Conversion Result Buffer Register 2 70AAhRESULT3 Conversion Result Buffer Register 3 70ABh

104

APÊNDICE C

FOTOS DO PROTÓTIPO

Foto 1: Bancada DVR

APÊNDICE C – FOTOS DO PROTÓTIPO 105

Foto 2: Carga Sensível

Foto 3: Inversor Estático de Potência

APÊNDICE C – FOTOS DO PROTÓTIPO 106

Foto 4: Reatância LT e Carga de Afundamento

Foto 5: Sistema de medição

APÊNDICE C – FOTOS DO PROTÓTIPO 107

Foto 6: DSP

Foto 7: Controle

108

REFERÊNCIAS BIBLIOGRÁFICAS

[1] Hingorani, N.G.; Gyugy, L.; Understanding FACTS – Concepts and Technology of Flexible AC Transmission Systems, IEEE Press, New York, 1999, ISBN: 0-7803-3455-8.

[2] Hingorani, N.G.; Introducing Custom Power, IEEE Spectrum, Junho de 1995.

[3] Mohan, N.; Undeland, T.M.; Robins, W.P.; Power Electronics – Converters, Applications, and Design, John Wiley & Sons, New York, 1995, ISBN: 0-471-58408-8.

[4] Holtz, J.; Pulse Width Modulation for Electronic Power Conversion, Capítulo 4 do livro Power Electronics and Variable Frequency Drivers, editado por Bose, B.K., IEEE Press, New York, 1997, ISBN: 0-7803-1084-5.

[5] Mohan, N.; Advanced Electric Drives – Analysis, Control and Modeling using Simulink®, MNPERE, Minneapolis, 2001, ISBN: 0-9715292-0-5

[6] The 5B User’s Manual, Analog Device Inc., Massachusetts, 1987.

[7] Versatile Link – The Versatile Fiber Optic Connection – Technical Data, Agilent, 1999

[8] Fortescue, C.L.; Method of Symmetrical Coordinates Applied to the Solution of Polyphase Networks, Trans. AIEE, vol. 37, pp.1027-1140, 1918

[9] Harque, M. T.; Hosseini, S. H.; Ise, T.; A Control Strategy for parallel Active Filters Using Extended p-q Theory and Quasi Instantaneous Positive Sequence Extraction Method, ISIE 2001, pp. 348-353.

[10] Aredes, M.; Active Power Line Conditioners, Dr-Ing. Thesis, Technischen Universität Berlin, Berlin, 1996

[11] eZdspTMLF2407A – Technical Reference, Spectrum Digital Inc., Stafford, 2003.

[12] Digital Motor Control – Software Libary, Texas Instruments Inc., Dallas, 2001 – spru485.pdf

[13] TMS320LF/LC240xA DSP Controllers Reference Guide – System and Peripherals, Texas Instruments Inc., Dallas, 2002 – spru357b.pdf

[14] Clarke, E.; Circuit Analysing Power Systems, Vol. I – Symmetrical and Related Components, John Wiley & Sons, New York, 1950

REFERÊNCIAS BIBLIOGRÁFICAS 109

[15] Fixed Point Blockset User’s Guide; The MathWorks, Inc.; 2002

[16] Costa Jr., D.R.; Rolim, L.G.B.; Aredes, M.; Analysis and Software Implementation of a Robust Synchronizing Circuit – PLL Circuit, Proc. IEEE ISIE’03 , Rio de Janeiro , junho, 2003.

[17] Filter Library – Module user’s Guide C24x Foundation Software, Texas Instruments Inc., Dallas, 2002

[18] Fixed Point Math Library – Module user’s Guide C24x Foundation Software, Texas Instruments Inc., Dallas, 2002