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
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
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.
vα
vβ
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
APÊNDICE C – FOTOS DO PROTÓTIPO 106
Foto 4: Reatância LT e Carga de Afundamento
Foto 5: Sistema de medição
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