Upload
dangmien
View
213
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE FEDERAL DO PARANÁ
JOÃO PAULO CAMELO CUNHA MATEUS LOVATEL MATIAS
INVERSOR – PROJETO 1: CONTROLE DE CORRENTE NA CARGA (GRID-TIE)
CURITIBA 2014
JOÃO PAULO CAMELO CUNHA MATEUS LOVATEL MATIAS
INVERSOR – PROJETO 1: CONTROLE DE CORRENTE NA CARGA (GRID-TIE)
Projeto de especificação e construção de um inversor grid-tie apresentado como requisito parcial de aprovação na disciplina TE274 – Tópicos Avançados em Eletrônica I. Prof. Dr. João Américo Vilela Júnior.
CURITIBA 2014
SUMÁRIO
1 INTRODUÇÃO ................................................................................................................ 3
2 DESENVOLVIMENTO .................................................................................................... 5
2.1. PROJETO BÁSICO......................................................................................................... 5
2.2. PRINCÍPIO DE FUNCIONAMENTO ............................................................................... 6
2.3. MODULAÇÃO A TRÊS NÍVEIS ...................................................................................... 8
2.4. CIRCUITO DE REALIMENTAÇÃO ............................................................................... 10
2.5. PROJETO DA PLACA DE CIRCUITO IMPRESSO ....................................................... 11
2.6. PROJETO DO ELEMENTO MAGNÉTICO .................................................................... 12
2.7. CALCULO DO COMPENSADOR.................................................................................. 15
2.8. MICROCONTROLADOR .............................................................................................. 19
3 RESULTADOS.............................................................................................................. 23
3.1 SIMULAÇÃO DO INVERSOR PROJETADO................................................................. 23
3.2 DESAFIOS RELACIONADOS A INTERFERÊNCIA ELETROMAGNÉTICA .................. 23
3.3 PROTÓTIPO FINAL ...................................................................................................... 26
3.4 MEDIÇÃO DE RESPOSTA DO INVERSOR ................................................................. 29
4 CONCLUSÃO ............................................................................................................... 31
BIBLIOGRAFIA .................................................................................................................... 32
ANEXO A: CÓDIGO DO MICROCONTROLADOR ............................................................. 33
ANEXO B: ESQUEMÁTICO DO INVERSOR ...................................................................... 37
ANEXO C: BOARD DO INVERSOR.................................................................................... 38
3
1 INTRODUÇÃO
O presente relatório é o elemento documental de encerramento do projeto
de um circuito inversor grid-tie proposto como forma de aplicação da teoria
apresentada e avaliação na disciplina TE274 – Tópicos Especiais em Eletrônica I.
No estudo dos inversores, foram propostas três arquiteturas diferentes para
serem implantadas, dentre as quais o aluno deveria escolher uma para desenvolver
em seu projeto. As arquiteturas propostas foram:
Inversor com controle de corrente na carga (grid-tie);
Inversor com controle da tensão na carga (off-grid); e
Inversor com controle da frequência do motor.
Dentre as arquiteturas apresentadas, esta equipe optou por desenvolver em
seu projeto o inversor com controle de corrente na carga (grid-tie).
1.1 INVERSOR COM CONTROLE DE CORRENTE NA CARGA (GRID-TIE)
A principal tarefa de um inversor é converter uma tensão contínua de
entrada numa tensão alternada simétrica de saída com módulo e frequência
determinados. A frequência da tensão de saída do inversor é determinada pelo
chaveamento dos dispositivos semicondutores que formam o inversor. A frequência
depende, portanto, do circuito de controle.
Inversor grid-tie é um dispositivo elétrico/eletrônico que permite os usuários
de energia renováveis ligar seus sistemas a rede da concessionária. Portanto, o
excedente de energia produzido pelos sistemas alternativos (solar e eólico) pode
alimentar outros consumidores da rede da concessionária. Esse sistema é muito
utilizado em países onde os produtores dessa energia alternativa vendem a
concessionária local o excedente de produção (durante o dia, por exemplo) e
compram de volta quando o consumo aumenta (horários de picos).
O Inversor funciona convertendo a tensão e a corrente elétrica, que recebe
dos painéis solares ou mesmo turbinas eólicas (ou outra fonte de energia de
corrente contínua), em corrente alternada.
4
A principal diferença entre um inversor comum e um inversor grid-tie é que o
último é capaz de se interligar com a rede da concessionária, devido a sua
capacidade de sincronizar sua frequência e fase com a rede da concessionária e a
sua tensão de saída com a rede que se deseja conectar. Para chegar a tal
funcionamento é implementado um controle da forma de onda da corrente fornecida
pelo inversor para a rede. O inversor implementado tem como tensão DC de entrada
de 230 V e injeta corrente de 1,8 A em uma rede de 110 Vac.
5
2 DESENVOLVIMENTO
2.1. PROJETO BÁSICO
Independente do projeto escolhido pelos alunos, todas as equipes teriam que
desenvolver um inversor básico que serviria de ponto de partida para o projeto
escolhido. O inversor básico deveria ser capaz de receber uma tensão DC de 230
volts e gerar uma tensão alternada na saída. O projeto básico pode ser observado
na figura 01 abaixo.
Figura 1 - Esquemático do inversor básico.
O terra do microcontrolador deverá ser o mesmo do circuito de potencia. S1,
S2, S3 e S4 têm como especificação uma tensão de 200 volts e corrente de dreno
6
de 8A. Esses transistores podem ser implementados através dos transistores físicos
IRF840 ou IRF740. Os resistores R9, R10, R11 e R12 são de um terço de watts com
10K ohm de resistência. Os diodos ultra rápidos D1, D4, D7, D8, D9 e D10 operam
com 200 volts em 1A. Esses diodos comerciais UF4007 podem ser empregados
neste projeto.
Os resistores R1, R2, R3, R4, R5 e R6 também são de um terço de watts,
mas com 15 ohm de resistência. Os capacitores C1 a C6 são especificados para
operar com 20 volts usando 10uF de capacitância. As especificações dos diodos
D2, D3, D5 e D6 podem ser obtidos pelo diodo comercial 1N4148.
O microcontrolador utilizado foi ARM® Cortex™ TM4C123G implementado
através da placa de desenvolvimento Tiva C Series TM4C LaunchPad Evaluation
Board (EK-TM4C123GXL). Maiores detalhes serão descritos no tópico sobre o
microcontrolador usado.
2.2. PRINCÍPIO DE FUNCIONAMENTO
O inversor monofásico de tensão na configuração ponte completa é
apresentado nas figuras 2 abaixo.
Figura 2 - Estrutura básica do inversor de tensão em ponte completa.
O funcionamento básico é exposto através das figuras 3, 4 e 5 abaixo e são
dividido em duas etapas (figura 3 e figura 4).
7
1ª ETAPA: S1 e S2 conduzem e S3 e S4 estão bloqueadas.
Figura 3 - Estrutura básica do inversor de tensão em ponte completa
2ª ETAPA: S3 e S4 conduzem e S1 e S2 estão bloqueadas.
Figura 4 - Estrutura básica do inversor de tensão em ponte completa
8
Figura 5 - Sinal de comando dos interruptores e forma de onda da tensão e da corrente na
carga.
A partir de uma fonte CC o inversor foi capaz de produzir uma tensão
alternada na carga.
2.3. MODULAÇÃO A TRÊS NÍVEIS
O sinal de comando são obtidos a partir da intersecção de duas ondas
moduladas senoidais de mesma amplitude e frequência, mas defasada de 180º uma
em relação a outra. Assim, o comando das chaves S1 e S4 é obtido comparando a
onda portadora triangular Vtri com a onda moduladora senoidal Vseno1. Já o comando
das chaves S2 e S3 é obtido através da comparação de Vtri com a onda moduladora
senoidal complementar Vseno2.
A figura 6 ilustra a forma de onda da modulação, da corrente no indutor e da
corrente no capacitor.
9
Figura 6 - Forma de onda da modulação, da corrente no indutor e da corrente no capacitor
Verifica-se que algumas harmônicas, observando a figura 7, que estavam
presentes no espectro de frequência para a modulação a dois níveis, estão ausentes
na modulação PWM a três níveis.
Figura 7 - Espectro de frequência da modulação a três níveis.
10
2.4. CIRCUITO DE REALIMENTAÇÃO
O circuito de realimentação é responsável por fornecer informações da saída
para o microcontrolador que deverá atuar para produzir uma saída adequada. Neste
contexto, a figura 08 ilustra o funcionamento do circuito de realimentação do inversor
do tipo grid-tie.
A corrente Iref é ajustada através de um potenciômetro que posteriormente
será multiplicada por uma amostra instantânea da rede comercial. Esse produto foi
rotulado por I’ref . A corrente I’ref será comparada com Iinv que será fornecida pelo
sensor de corrente que está ligada em série com a rede comercial. Esta comparação
será realizada pelo microcontrolador. A fase de controle de corrente e a modulação
PWM foram também implementadas através do microcontrolador.
Figura 8 - Esquemático do inversor
11
2.5. PROJETO DA PLACA DE CIRCUITO IMPRESSO
O projeto da placa de circuito impresso foi desenvolvido no software CAD
Eagle e os gráficos podem ser visto no anexo. O anexo B mostra o esquemático
completo incluindo o circuito de realimentação do inversor para posteriormente
confecção da PCB.
O Anexo C exibe a PCB final do inversor grid-tie. Perceba que o PCB separa
a placa em duas partes. A primeira parte (esquerda) ficam os componentes de
controle e a segunda parte (direita) encontra-se os elementos de potencia. Além
disto, a região de controle contém uma malha de terra e a região de potencia não
contém malha de terra. Na figura a seguir pode-se observar a placa montada,
inclusive com o uso da técnica de recobrimento das trilhas de potência com estanho
afim de melhor a condutividade e, consequentemente, diminuir o aquecimento
quando o inversor operar com alta corrente de saída.
Figura 9 - Placa montada
12
2.6. PROJETO DO ELEMENTO MAGNÉTICO
Por se tratar de um projeto de cunho educacional, com a finalidade de aplicar
os conhecimentos adquiridos, não foram levadas em consideração para o projeto do
elemento magnético questões acerca de custo ou tamanho do elemento. Dessa
forma foi decidido que seria projetado o elemento magnético de maior indutância,
dado o núcleo de ferrite e o carretel que viesse a ser utilizado. Foi escolhido um
núcleo de ferrite de seção transversal (Ae) de 2,316cm². O núcleo do tipo E utilizado
possui as dimensões aproximadas apresentadas na figura a seguir.
Figura 10 - Dimensões do elemento magnético
Também seria necessário dimensionar o condutor que seria utilizado no
enrolamento deste elemento magnético, sendo necessário considerar a corrente
máxima do projeto. Uma vez que a máxima corrente de projeto é determinada pela
máxima corrente do sensor ACS712, 5A, essa foi a corrente máxima considerada no
projeto do elemento magnético. Outro requisito necessário para dimensionar o
condutor que será utilizado no projeto está relacionado com o efeito pelicular e a
profundidade de penetração da corrente no condutor. Na frequência de
chaveamento de 80kHz verificou-se que a corrente teria uma profundidade de
penetração do condutor de:
13
Considerando a densidade de corrente, para o cobre, de aproximadamente
450A/cm² e a corrente eficaz no indutor de , constatou-se que seria
necessária uma área transversal de cobre de 7,8444E-3 cm². Foi escolhido o fio
esmaltado AWG21, sendo necessário então dois fios paralelos para atender a
densidade de corrente proposta máxima prevista.
Com a intenção de se produzir a máxima indutância possível para o indutor
foram enrolados o maior número de espiras possíveis no carretel adotado,
totalizando 121 espiras. Com isso foi necessário calcular o tamanho de entreferro
necessário para manter o indutor operando com um fluxo máximo de 0,3T, conforme
determinar a formula a seguir:
Considerando que o espaçamento necessário entre os núcleos de ferrite do
tipo E equivale a metade da distancia de entreferro calculada, foram usados dois
recortes de cartões plásticos que totalizaram 1,18mm de espessura, com isso a
tamanho de entreferro resultante ficou em 2,36mm, garantindo assim um fluxo
magnético máximo inferior a 0,3T.
Como resultado, obteve-se o indutor apresentado na figura a seguir.
14
Figura 11 - Imagem do elemento magnético
Com o indutor montado foram realizados dois ensaios para verificar a
resposta do elemento magnético. Com o auxilio do professor Marlio J. C. Bonfim, foi
utilizado o analisador de redes do Laboratório de Microeletrônica, Medidas e
Instrumentação (LAMMI) para determinar a impedância do elemento magnético,
conforme gráfico a seguir.
15
Figura 12 - Característica indutiva do elemento magnético
Dessa forma foi identificado que, para a frequência de interesse de 80kHz o
elemento magnético apresentou uma indutância de 2,75mH. Em um segundo
momento foi ensaiada a operação do indutor com uma corrente alta afim de
comprovar que o mesmo não atingiria a saturação na corrente máxima do projeto,
de 5A. Neste ensaio o indutor foi colocado em operação com uma corrente superior
a 7A e não foi identificada saturação do núcleo, comprovando assim a segurança da
utilização do mesmo no projeto em questão.
2.7. CALCULO DO COMPENSADOR
O primeiro passo para a determinação do compensador foi aplicar o modelo
do inversor com os dados do circuito projetado utilizando o software MATLAB,
conforme o script transcrito a seguir:
1
10
100
1,00
1,
25
1,57
1,
96
2,45
3,
07
3,85
4,
81
6,03
7,
54
9,44
1
1,8
2 1
4,7
9 1
8,5
1 2
3,1
7 2
9,0
1 3
6,3
1 4
5,4
5 5
6,8
9 7
1,2
0 8
9,1
3 11
1,56
13
9,64
17
4,78
21
8,78
27
3,84
34
2,77
42
9,04
53
7,03
67
2,20
84
1,40
Ind
utâ
nci
a (m
H)
Frequência (kHz)
Caracterisca indutiva do elemento magnético
16
%======================================% % Compensador para a Malha de Corrente % %======================================% f=23289.4; Ts=1/f;
%======================================% % Inversor no dominio 's' %======================================% Vcc = 230; Lf = 0.00275;
num_Inversor = Vcc; den_Inversor = [Lf 0]; FT_Inversor = tf(num_Inversor,den_Inversor)
%======================================% % Filtro Anti-Alisign no dominio 's' %======================================% fi=11500; w = 2*pi*fi;
num_Alisign = w; den_Alisign = [1 w]; FT_Filtro = tf(num_Alisign,den_Alisign)
%======================================% % Produto Inversor & Filtro Anti-Alisign %======================================% FT_Inve_Filtro = FT_Inversor*FT_Filtro Inv_Fil_d = c2d(FT_Inve_Filtro,Ts,'tustin')
Em um primeiro momento foi projetado o compesandor para atuar no controle
de um inversor operando em baixa tensão (23V no barramento), para que fossem
realizados os primeiros testes. Na sequencia foi projetado o compensador para atuar
na tensão nominal de barramento de 230V. O procedimento descrito neste relatório
refere-se ao compensador para operação na tensão nominal, entretanto o
procedimento de calculo do compensador é o mesmo para ambos os casos.
A frequência de amostragem utilizada no código acima representa a
frequência de amostragem do conversor analógico-digital do microcontrolador que
adquire o sinal de corrente do sensor ACS712. Esta frequência foi medida durante a
operação normal do microcontrolador afim de se obter o ponto real de
funcionamento do mesmo.
Obtida a função de transferência do conversor projetado e utilizando-a com a
ferramenta sisotool do MATLAB foi possível determinar o diagrama de bode em
malha aberta para o conversor, conforme figura a seguir.
17
Figura 13 - Diagrama de bode do inversor sem compensador
Foi escolhida como especificação do projeto do compensador uma frequência
de corte de 3kHz e uma margem de fase de 60º. Para atingir tal especificação foram
iseridos um polo real em 0,54852, um zero real em 0,34337 e um ganho de
0,080068 no compensador C, conforme apresentado no diagrama de bode a seguir.
102
103
104
105
-180
-135
-90
-45
0
45P.M.: 25.8 deg
Freq: 9.41e+003 Hz
Frequency (Hz)
Phase (
deg)
-350
-300
-250
-200
-150
-100
-50
0
50
G.M.: Inf
Freq: NaN
Stable loop
Open-Loop Bode Editor for Open Loop 1 (OL1)
Magnitu
de (
dB
)
18
Figura 14 - Diagrama de bode do conversor com circuito compensador
Por fim, foi obtido com a inserção do compensador, uma frequência de corte
de 2,99kHz e um ganho de fase de 60,1º, valores muito próximos do planejado,
sendo considerado como um sucesso o projeto do compensador. Conhecendo a
posição do polo e do zero do compensador foi possível determinar que:
Sendo assim foi possível determinar que deveria ser inserido no código de
controle um compensador no seguinte formato:
102
103
104
105
-180
-135
-90
-45
0
45P.M.: 60.1 deg
Freq: 2.99e+003 Hz
Frequency (Hz)
Phase (
deg)
-400
-300
-200
-100
0
100
G.M.: Inf
Freq: NaN
Stable loop
Open-Loop Bode Editor for Open Loop 1 (OL1)
Magnitu
de (
dB
)
19
2.8. MICROCONTROLADOR
O microcontrolador utilizado na placa do inversor foi o TM4C123GH6PM
implementado através da placa de desenvolvimento Tiva™ C Series LaunchPad
Evaluation Kit. O microcontrolador TM4C123GH6PM é voltado para aplicações
industriais, incluindo o monitoramento remoto, máquinas eletrônicas de ponto-de-
venda, teste e medição, aparelhos e comutadores de rede, automação industrial,
HVAC, equipamento de jogos, controle de movimento, transporte, e segurança.
Figura 15 - Kit de desenvolvimento Tiva C
Esse microcontrolador foi escolhido por ser um dispositivo que opera com
um clock alto (80MHz) e integrar um controlador de PWM que permita a
20
implementação de PWM UP/DOWN. A tabela 1 resume os recursos encontrado no
circuito integrado.
Tabela 1 - Parâmetros do microcontrolador
Parâmetros TM4C123GH6PM
Pin & Package 64LQFP
CPU ARM Cortex-M4
Flash (KB) 256
SRAM (kB) 32
Max Speed (MHz) 80
Pin/Package 64LQFP
Motion PWM Outputs 16
QEI 2
GPIOs 43
Operating Temperature
Range (°C)
-40 to 105
-40 to 85
USB D, H/D, or OTG OTG
SSI/SPI 4
I2C 4
UART 8
ADC Channels 12
ADC Resolution (Bits) 12
CAN MAC 2
SysTick Sim
External Peripheral Interface Não
10/100 ENET MAC+PHY Não
USB High-Speed with ULPI Não
10/100 ENET MAC Não
LCD Controller Não
Data Protection Não
1-Wire Master 0
Bi- and Quad- SSI/SPI Não
21
A figura abaixo ilustra o diagrama bloco do microcontrolador . Maiores
informações podem ser obtidas no site http://www.ti.com/tool/ek-tm4c123gxl. Além
do site, existe ainda uma série de vídeos e uma apostila onde constam laboratórios
de aulas práticas de programação. A apostila pode ser acessada através do
endereço: http://software-dl.ti.com/trainingTTO/trainingTTO_pu
blic_sw/GSW-TM4C123G-LaunchPad/TM4C123G_LaunchPad_Workshop_Workboo
k.pdf.
Figura 16 - Diagrama bloco do microcontrolador
22
Com a intenção de utilizar corretamente o calculo do erro e a implementação
do compensador, foi utilizado a unidade de calculo com ponto flutuante no referido
microcontrolador.
O código completo do programa que implementa o inversor no
microcontrolador é apresentado no anexo A.
23
3 RESULTADOS
O circuito apresenta os requisitos solicitados pelo o professor da disciplina, ou
seja, entrada de 230 volts DC, saída de 110 volts AC.
Foram feitas simulações do inversor e medido resultado do circuito
implementado através de um osciloscópio.
3.1 SIMULAÇÃO DO INVERSOR PROJETADO
A simulação de circuitos está ficando cada vez mais aceita como uma
ferramenta padronizada de projeto de equipamentos eletrônico. O uso da simulação
é reconhecido como uma necessidade prática, tornando-se uma ferramenta
indispensável na formação de técnicos e engenheiros, principalmente na parte
referente a projetos e interpretação de equipamentos eletroeletrônicos. O método
prático para verificar o projeto de um circuito elétrico é construí-lo e testá-lo.
No entanto, isso pode se tornar caro e consumir muito tempo. Como
alternativa, o circuito pode ser cuidadosamente simulado usando um programa de
computador antes da implementação do circuito real. O MatLab é um programa de
simulação especialmente projetado para simulações matemáticas. Com interface
poderosa, simulação rápida e apresentação de formas de onda semelhante à tela de
um osciloscópio, o software mostra ser um ambiente de simulação poderoso para a
análise gráfica. Os gráficos da simulação do MatLab pode ser encontrados no tópico
2.7, cálculo do compensador.
3.2 DESAFIOS RELACIONADOS A INTERFERÊNCIA ELETROMAGNÉTICA
Pode-se destacar com um dos grandes desafios do projeto de um inversor a
diminuição da interferência eletromagnética causada pelo chaveamento de altas
potências na parte de controle do inversor. Neste projeto, em um primeiro momento
foi destacada maior atenção ao desenho da placa de circuito impresso, de modo a
24
separar a parte de potência da parte de controle e no artifício de criar uma malha de
terra na parte de controle do circuito.
No entanto, os testes iniciais do inversor em malha aberta mostraram que
esses cuidados não haviam sido suficientes para garantir o perfeito funcionamento
do inversor. Ao se aplicar uma tensão de barramento igual ou superior a 150V, o
microcontrolador deixava de responder, inibindo o funcionamento do inversor. Como
o mesmo foi projetado para trabalhar com uma tensão de barramento de 230V, o
problema encontrado foi alvo de estudo e tentativas de correção.
Em um primeiro momento, por se acreditar que poderia ser uma interferência
diferencial que atuaria nas malhas de alimentação do circuito, optou-se por iserir
diversos capacitores SMDs entre as trilhas de alimentação do circuito, conforme
pode ser visualizado na figura que se segue.
Figura 17 - Detalhes dos capacitores inseridos
Entretanto, o acréscimo de capacitores não representou um diminuição na
interferência sofrida pelo circuito de controle. Neste momento partiu-se para uma
25
nova proposição onde vislumbrava-se que a interferência irradiada seria a causa dos
problemas com o circuito de controle. Optou-se então por aplicar uma blindagem na
placa do microcontrolador e na ligação da placa com o potenciômetro de ajuste de
corrente de referência, conforme pode ser observados nas figuras que se seguem.
Figura 18 - Comparativo entre uma placa com blindagem e outra sem blindagem
Figura 19 - Utilização de cabo blindado na ligação do potenciômetro
26
Com a aplicação das duas técnicas mostradas acima, verificou-se o
funcionamento correto do inversor para tensões de barramento superiores a 230V.
3.3 PROTÓTIPO FINAL
Conforme já mencionado, o protótipo final do circuito conversor foi montado
através da uma placa de circuito impresso (PCB) desenvolvida com o software
EAGLE e corroída com percloreto de ferro em procedimento de confecção realizado
pela uma pequena empresa de PCB. O protótipo confeccionado foi apresentado ao
professor da disciplina e exibido em aula através de uma demonstração de
funcionamento. As figuras abaixo exibem as imagens do protótipo final do inversor
projetado.
27
Figura 20 - Imagem do protótipo final
28
Figura 21 - Imagem do protótipo final
29
Figura 22 - Imagem do protótipo final
3.4 MEDIÇÃO DE RESPOSTA DO INVERSOR
A resposta do circuito foi medida através da utilização do osciloscópio
disponível na bancada do laboratório. Foi então extraído o gráfico do osciloscópio
que demonstrou o seu funcionamento conforme especificado. A figura abaixo mostra
o funcionamento do circuito. O gráfico em verde exibe a tensão de saída do inversor
e o gráfico em laranja escuro demostra o funcionamento da corrente fornecida.
30
A figura abaixo mostra os mesmo parâmetros, porém utilizado recurso do
osciloscópio para valores médios.
31
4 CONCLUSÃO
Conclui-se que o resultado final do projeto foi um sucesso uma vez que a
equipe pode conhecer a teoria de funcionamento do inversor, modelar a resposta do
mesmo em uma simulação computacional, projetar o circuito compensador desejado
e obter, após a montagem do protótipo, a resposta esperada, o que veio a consolidar
o conhecimento sobre inversores.
Cabe resaltar ainda que a equipe obteve êxito ao cumprir o cronograma
proposto para desenvolvimento do projeto, conforme estipulado pelo professor da
disciplina.
Houve, porém, danos definitivos em diversos componentes da placa durante
um ensaio extra. Sugestões de solução foram dadas como implementações futuras
para o projeto e o reparo esta sendo feito para tornar o protótipo funcional afim de
poder ser utilizado como exemplo nas turmas seguintes da disciplina.
32
BIBLIOGRAFIA
VILELA JÚNIOR, J. A. Projeto de Conversores CC/CC e Inversores - Notas
de aula. UFPR. Curitiba-PR, 2014. Disponível em: <http://vilela-
eletrica.weebly.com/projeto-de-conversores-cccc-e-inversores.html >. Acesso em: 13
abr. 2014.
33
ANEXO A: CÓDIGO DO MICROCONTROLADOR
#include <stdint.h> #include <stdbool.h> #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "inc/hw_timer.h" #include "inc/tm4c123gh6pm.h" #include "driverlib/debug.h" #include "driverlib/sysctl.h" #include "driverlib/adc.h" #include "driverlib/gpio.h" #include "driverlib/timer.h" #include "driverlib/pin_map.h" #include "driverlib/rom.h" #include "driverlib/pwm.h" #include "driverlib/fpu.h" #define TARGET_IS_BLIZZARD_RB1 #ifdef DEBUG void__error__(char *pcFilename, unsigned long ulLine) { } #endif int main(void) { uint32_t ulADC0Value[4]; float ulLinv; float ulIref; float ulVsin; //float ulVsindc; //float ulk; float ulErro[2]={0,0}; float ulVc[2]={0,0}; float ulIref2; // I'ref float activeCycle; // Variáveis para o PWM float activeCycle1; // Variáveis para o PWM //int LED = 2; // Configuração dos LEDS //SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); //GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); //GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, LED); // Configuração do Ponto Flutuante FPULazyStackingEnable(); FPUEnable(); // Configuração do CHIPSELECT SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_4); GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_4, 0xFF);
34
activeCycle = 125; activeCycle1 = 125; SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_OSC_MAIN|SYSCTL_XTAL_16MHZ); //Configuração para 80MHz SysCtlPWMClockSet(SYSCTL_PWMDIV_8); SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0); // Habilita o ADC0 ADCHardwareOversampleConfigure(ADC0_BASE, 4); //Média por hardware de 4 amostras ADCSequenceDisable(ADC0_BASE, 1); //Desabilitar ADC0 para configuração ADCSequenceConfigure(ADC0_BASE, 1, ADC_TRIGGER_PROCESSOR, 0); //configura o ADC0 para uso, com sequenciador 1, trigger por processo e prioridade 0 ADCSequenceStepConfigure(ADC0_BASE, 1, 0, ADC_CTL_CH3); //lER o ADC0 CH3 - Linv(sensor de corrente) - PE0 ADCSequenceStepConfigure(ADC0_BASE, 1, 1, ADC_CTL_CH8); //lER o ADC0 CH8 - Iref(referencia de corrente) - PE5 ADCSequenceStepConfigure(ADC0_BASE, 1, 2, ADC_CTL_CH0); //lER o ADC0 CH0 - Vsindc - PE3 ADCSequenceStepConfigure(ADC0_BASE, 1, 3, ADC_CTL_CH2 | ADC_CTL_IE | ADC_CTL_END); //lER o ADC0 CH2 - Vsin(tensão da rede) - PE1 ADCSequenceEnable(ADC0_BASE, 1); //Habilita o ADC0 //Configure PB6 como PWM 0. SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_6); GPIOPinConfigure(GPIO_PB6_M0PWM0); PWMGenConfigure(PWM0_BASE, PWM_GEN_0, PWM_GEN_MODE_UP_DOWN); PWMGenPeriodSet(PWM0_BASE, PWM_GEN_0, 250); PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0, activeCycle); //Dutyciclo //Configure PB7 como PWM 1. SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM0); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); GPIOPinTypePWM(GPIO_PORTB_BASE, GPIO_PIN_7); GPIOPinConfigure(GPIO_PB7_M0PWM1); PWMGenConfigure(PWM0_BASE, PWM_GEN_1, PWM_GEN_MODE_UP_DOWN); PWMGenPeriodSet(PWM0_BASE, PWM_GEN_1, 250); PWMPulseWidthSet(PWM0_BASE, PWM_OUT_1, 250-activeCycle); //Dutyciclo //Inicia PWMs PWMOutputState(PWM0_BASE, PWM_OUT_0_BIT, 1); PWMOutputState(PWM0_BASE, PWM_OUT_1_BIT, 1); PWMGenEnable(PWM0_BASE, PWM_GEN_0); PWMGenEnable(PWM0_BASE, PWM_GEN_1); while(1) { ADCIntClear(ADC0_BASE, 1); //limpa a flag da interrupção do ADC ADCProcessorTrigger(ADC0_BASE, 1); //trigger do ADC0 while(!ADCIntStatus(ADC0_BASE, 1, false)) //Aguarda o ADC0 terminar a conversão { } ADCSequenceDataGet(ADC0_BASE, 1, ulADC0Value); //Guarda em ulADC0value[0]=Linv, ulADC0value[1]=Iref e ulADC0value[2]=Vsin,
35
ulLinv = ulADC0Value[0]; //sensor de corrente ulIref = ulADC0Value[1]; // referencia de corrente - Potênciomentro //ulVsindc = ulADC0Value[2]; ulVsin = ulADC0Value[3]; // Sinal senoidal de referência - trafo ulLinv = ulLinv - 2082; ulVsin = ulVsin - 1867 ; ulIref = ulIref/4095; //Atualização dos PWMs com compensador ulIref2 = ulVsin*ulIref; //ulIref2 = ulVsin; //ulIref2 = ulIref - 2047; ulErro[1] = ulErro[0]; ulErro[0] = ulIref2 - ulLinv; ulVc[1] = ulVc[0]; ulVc[0] = 0.63699*ulErro[0] - 0.22006*ulErro[1] - (-0.54663*ulVc[1]); //barramento de 23V //ulVc[0] = 0.080068*ulErro[0] - 0.0274929*ulErro[1] - (-0.54852*ulVc[1]); //barramento de 230V if (ulVc[0] > 120) ulVc[0]= 120; if (ulVc[0] < -120) ulVc[0] = -120; activeCycle = 125 - ulVc[0]; activeCycle1 = 125 + ulVc[0]; if (activeCycle > 249.99) activeCycle = 249.99; if (activeCycle < 0.01) activeCycle = 0.01; if (activeCycle1 > 249.99) activeCycle1 = 249.99; if (activeCycle1 < 0.01) activeCycle1 = 0.01; PWMGenPeriodSet(PWM0_BASE, PWM_GEN_0, 250); PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0, activeCycle); PWMGenPeriodSet(PWM0_BASE, PWM_GEN_1, 250); PWMPulseWidthSet(PWM0_BASE, PWM_OUT_1, activeCycle1); //Atualização dos PWMs em malha aberta //activeCycle = ((ulADC0Value[3] - 1867 + 2047)*250)/4095; //Saída fixa em função da entrada de referencia senoidal //activeCycle = (((ulVsin)*(ulIref/4095) + 2047)*250)/4095; //Saída em função da entrada de referencia senoidal multiplicada pelo fator IREF //activeCycle = ((ulADC0Value[1])*250)/4095; //Saída em função do fator IREF /* if (activeCycle > 249.99) activeCycle = 249.99; if (activeCycle < 0.01) activeCycle = 0.01; PWMGenPeriodSet(PWM0_BASE, PWM_GEN_0, 250); PWMPulseWidthSet(PWM0_BASE, PWM_OUT_0, activeCycle); //Duty cycle PWMGenPeriodSet(PWM0_BASE, PWM_GEN_1, 250); PWMPulseWidthSet(PWM0_BASE, PWM_OUT_1, 250-activeCycle); //Dutyciclo */ PWMOutputState(PWM0_BASE, PWM_OUT_0_BIT, 1); PWMOutputState(PWM0_BASE, PWM_OUT_1_BIT, 1); PWMGenEnable(PWM0_BASE, PWM_GEN_0); PWMGenEnable(PWM0_BASE, PWM_GEN_1);
36
// Turn on/off the LED //if (LED == 2) {LED = 0;} //else {LED = 2;} //GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, LED); // Turn off drivers quando potenciometro é menor que 200 (0 a 4096). if (ulADC0Value[1] > 200) {GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_4, 0xFF); } else {GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_4, 0x00);} } }
37
ANEXO B: ESQUEMÁTICO DO INVERSOR
38
ANEXO C: BOARD DO INVERSOR