UNIVERSIDADE POSITIVO NÚCLEO DE

Transcrição

UNIVERSIDADE POSITIVO NÚCLEO DE
UNIVERSIDADE POSITIVO
NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
ENGENHARIA ELÉTRICA
Marcelo Rodolfo Gazaniga
Marcos Roberto Rigoni
GERADOR DE CORRENTE IMPULSIVA
COM ONDA NO FORMATO 8/20 µs
Curitiba, 2008
Marcelo Rodolfo Gazaniga
Marcos Roberto Rigoni
GERADOR DE CORRENTE IMPULSIVA
COM ONDA NO FORMATO 8/20 µs
Trabalho de Conclusão de Curso apresentado ao
Curso de Engenharia Elétrica da Universidade
Positivo, como requisito à obtenção do grau de
Engenheiro Eletricista, sob a orientação do
Professor Salmo Pustilnick.
Curitiba, 2008
Marcelo Rodolfo Gazaniga
Marcos Roberto Rigoni
GERADOR DE CORRENTE IMPULSIVA
COM ONDA NO FORMATO 8/20 µs
Este trabalho foi julgado adequado e aprovado para a obtenção do título de graduação em
Engenharia de Elétrica da Universidade Positivo
Curitba, 10 de novembro de 2008
_____________________________________
Prof. M.Sc. Salmo Pustilnick
Coordenador do Curso de Engenharia Elétrica
BANCA EXAMINADORA:
_____________________________________
Prof. M.Sc. ou Salmo Pustilnick
Universidade Positivo
Orientador
_____________________________________
Prof.ª M.Sc. Ana Cristina Fermino
Universidade Positivo
Banca
Dedico este trabalho a meus pais, noiva,
esposa, amigos e as pessoas que colaboraram
com a realização e sucesso deste.
AGRADECIMENTOS
Pretendo me fazer breve, porém sem fazer
injustiça àqueles que contribuíram para a realização
deste projeto.
Agradeço primeiramente a Deus que tornou
possível a realização deste sonho e preparou o caminho
para que tudo se concretizasse da melhor forma possível.
Num segundo momento agradeço a meus familiares que
durante o curso soube compreender e muitas vezes
abdicar de minha companhia para que este sonho se
concretizasse.
Agradeço também meus amigos que ao longo
desta caminhada foram conquistados e que muitas vezes
não me deixou esmorecer dando–me o apoio e amizades
necessárias para que este projeto chegasse a sua
conclusão.
Por fim e não menos importante agradeço a meu
orientador e co-orientador que fizeram as devidas
correções e deram sua valiosa contribuição para que este
projeto tivesse o sucesso esperado.
“Há duas formas para viver a vida:
uma é acreditar que não existe milagre,
a outra é acreditar que todas as coisas
são um milagre.”
ALBERT EINSTEIN
RESUMO
As descargas atmosféricas representam condições de elevado risco para sistemas elétricos no
âmbito global, dificultando a operação e integridade das redes de transmissão e distribuição
de energia elétrica das concessionárias, além da questão de segurança para as pessoas. No
Brasil a incidência de descargas atmosféricas é muito elevada, comprovado pelo índice
cerâunico que é o número de dias de trovoadas por ano. Como conseqüência o sistema
elétrico sofre devido às sobretensões geradas pelas descargas atmosféricas, causando falta de
energia, interrupção de processos produtivos, queima de equipamentos domésticos e redução
no faturamento por parte das concessionárias. Para amenizar os efeitos das sobretensões
devem ser utilizados nas instalações elétricas dispositivos de proteção contra surtos,
conhecidos como DPS. A NBR 5410 prescreve a instalação de dispositivos de proteção contra
surtos para instalações alimentadas por linhas aéreas em cidades com mais de 25 dias de
trovoadas por ano. Portanto, os DPS tornam-se obrigatórios na maioria das instalações
elétricas residenciais, comerciais e industriais em nosso país. Para que os fabricantes possam
assegurar a qualidade do DPS é necessário efetuar ensaios onde as suas características
nominais são verificadas. Muitas vezes os fabricantes não possuem laboratórios com
equipamentos necessários para os testes de funcionamento, por conseqüência, empresas
especializadas em ensaios com emissão de certificados são contratadas para atestar seu
funcionamento. Portanto a nacionalização de um gerador de corrente impulsiva pode
possibilitar aos fabricantes do DPS montar seu próprio laboratório, tornando-se possível a
realização de ensaios com freqüência maior, garantindo o funcionamento do seu produto e
melhorando a confiabilidade de suas especificações.
Palavras-chave: Gerador de Corrente Impulsiva, Dispositivo de Proteção Contra Surtos,
Descargas atmosféricas, Ensaios.
LISTA DE FIGURAS
Figura 1 – Modelamento da corrente impulsiva....................................................................... 16
Figura 2 – Gerador de Marx ..................................................................................................... 17
Figura 3 – Diagrama em blocos................................................................................................ 19
Figura 4 – Fluxograma de funcionamento do sistema.............................................................. 20
Figura 5 – Pinagem dsPIC30F4011.......................................................................................... 25
Figura 6 – Fluxograma do programa do DSP........................................................................... 26
Figura 7 – Disposição da interface com o usuário.................................................................... 27
Figura 8 – Circuito para início do ensaio e sensor de abertura da tampa ................................. 27
Figura 9 – Circuito do display .................................................................................................. 27
Figura 10 – Circuito de comunicação serial ............................................................................. 29
Figura 11 – Fluxograma do programa do computador ............................................................. 30
Figura 12 – Fluxograma do programa do computador ............................................................. 31
Figura 13 – Gerador de Marx utilizado para testes .................................................................. 33
Figura 14 – Base com centelhadores ........................................................................................ 34
Figura 15 – PCI do controle do gerador ................................................................................... 34
Figura 16 – Taxa de amostragem ............................................................................................. 36
Figura 17 – Tela do software do computador........................................................................... 39
Figura 18 – PCI do controle do gerador ................................................................................... 40
Figura 19 – PCI do gerador ...................................................................................................... 40
Figura 20 – Projeto da PCI do display de LCD........................................................................ 41
Figura 21 – Exemplo de onda formada pelo software.............................................................. 44
Figura 22 – Exemplo de onda medida durante os ensaio do gerador de Marx ........................ 45
Figura 23 – Protótipo do gerador de corrente impulsiva .......................................................... 45
viii
LISTA DE TABELAS
Tabela 1 – Índice cerâunico no Brasil ...................................................................................... 12
Tabela 2 – Terminais do display .............................................................................................. 28
Tabela 3 – Dados experimentais do TC.................................................................................... 36
Tabela 4 – Custos do projeto .................................................................................................... 41
ix
LISTA DE ABREVIATURAS, SIGLAS E SÍMBOLOS
CI
- Circuito Integrado
DPS
- Dispositivo de proteção contra surtos
DSP
- Processador Digital de Sinais, Digital Signal Processor
I
- Corrente elétrica
IEC
- International Electrotechnical Commission
IHM
- Interface Homem Máquina
k
- Quilo
kA
- Quilo-Ampère
ksps
- kilo sample por segundo
LCD
- Display de Cristal Líquido
mm
- Milímetro
NBR
- Norma Brasileira
PCI
- Placa de Circuito Impresso
TC
- Transformador de Corrente
V
- Volt
µs
- Micro-segundo
x
SUMÁRIO
1
INTRODUÇÃO ........................................................................................................................................ 12
PROBLEMA ...................................................................................................................................... 13
JUSTIFICATIVA............................................................................................................................... 13
OBJETIVOS ESPECÍFICOS ............................................................................................................. 13
2
FUNDAMENTAÇÃO TEÓRICA........................................................................................................... 15
2.1
DISPOSITIVO DE PROTEÇÃO CONTRA SURTOS (DPS)............................................................ 15
2.2
FORMATO DA CORRENTE IMPULSIVA...................................................................................... 15
2.3
GERADOR DE MARX...................................................................................................................... 16
2.4
PROCESSADOR DIGITAL DE SINAIS........................................................................................... 17
3
ESPECIFICAÇÃO TÉCNICA ............................................................................................................... 19
3.1
VISÃO GERAL DO PROJETO ................................................................................................................... 19
3.2
DESCRIÇÃO FUNCIONAL DOS BLOCOS .................................................................................... 20
3.2.1
Gerador de Corrente Impulsiva ..................................................................................................... 21
1.1
1.2
1.3
3.2.1.1
3.2.1.2
3.2.1.3
3.2.1.4
3.2.1.5
Gerador de Marx ..................................................................................................................................21
Controle do gerador..............................................................................................................................21
Controle geral e aquisição de dados .....................................................................................................21
Comunicação serial ..............................................................................................................................22
Condicionador de sinal.........................................................................................................................22
3.2.2
Interface homem-máquina ............................................................................................................. 23
3.2.3
Software do computador ................................................................................................................ 23
3.3
DIMENSIONAMENTO E MEMORIAL DE CALCULO ................................................................................... 23
3.3.1
Gerador de Marx............................................................................................................................ 24
3.3.2
Processador Digital de Sinais ........................................................................................................ 25
3.3.3
Interface homem-máquina ............................................................................................................. 26
3.3.4
Comunicação serial........................................................................................................................ 28
3.3.5
Programa do computador............................................................................................................... 29
3.4
APLICABILIDADE E FUNCIONALIDADE ................................................................................... 31
3.5
PROGRAMAÇÃO................................................................................................................................... 32
4
IMPLEMENTAÇÃO ............................................................................................................................... 33
4.1
DESCRIÇÃO DA MONTAGEM....................................................................................................... 33
4.2
TESTES, MEDIÇÕES E CONFIGURAÇÕES .................................................................................. 35
4.2.1
Taxa de amostragem do conversor analógico digital..................................................................... 35
4.2.2
Curva de resposta do transformador de corrente ........................................................................... 36
4.3
CÓDIGO FONTE............................................................................................................................... 37
4.3.1
Firmware ....................................................................................................................................... 37
4.3.2
Software do Computador ............................................................................................................... 38
4.4
PLACAS DE CIRCUITO IMPRESSO ............................................................................................... 39
4.5
CUSTOS DO PROJETO, COMPONENTES E MATERIAIS ....................................................................... 41
5
RESULTADOS......................................................................................................................................... 43
6
CONCLUSÃO .......................................................................................................................................... 47
REFERÊNCIAS .................................................................................................................................................. 49
APÊNDICES........................................................................................................................................................ 50
APÊNDICE A – CÓDIGO FONTE DO FIRMWARE DE CONTROLE DO GERADOR........................... 51
APÊNDICE B – CÓDIGO FONTE DO SOFTWARE DO PC ........................................................................ 55
ANEXOS .............................................................................................................................................................. 63
ANEXO A – CÁLCULOS DO GERADOR DE MARX................................................................................... 64
12
1
INTRODUÇÃO
As descargas atmosféricas representam condições de elevado risco para sistemas
elétricos no âmbito global, dificultando a operação e integridade das redes de transmissão e
distribuição de energia elétrica das concessionárias, além da questão de segurança para as
pessoas.
O índice de incidência de descargas atmosféricas no Brasil é muito alto, sendo
conhecido como índice cerâunico que é o número de dias de trovoadas por ano. Na tabela 1
apresenta-se os valores deste índice para as diversas regiões do país, como apresentado pela
norma NBR 54191 e por MACEDO. Como conseqüência o sistema elétrico sofre devido às
sobretensões geradas pelas descargas atmosféricas, causando falta de energia, interrupção de
processos produtivos, queima de equipamentos domésticos e redução no faturamento por
parte das concessionárias.
Tabela 1 – Índice cerâunico no Brasil
REGIÃO
Estado de São Paulo
Estado de Minas Gerais
Centro Oeste
Amazônia
Nordeste (Litoral)
Nordeste (Sertão)
Sul
ÍNDICE CERÂUNICO
(Dias de trovoada por ano)
40 a 100
40 a 120
80 a 140
40 a 140
5 a 10
20 a 60
30 a 80
Fonte: NBR 5419, 2001.
Para amenizar os efeitos das sobretensões devem ser utilizados nas instalações
dispositivos de proteção contra surtos, conhecidos como DPS. Empregados na proteção de
equipamentos elétricos e eletrônicos e conforme a definição da norma IEC 61643-1, "... é um
dispositivo destinado a limitar as sobretensões transitórias e a desviar correntes de surtos,
contendo pelo menos um componente não-linear". A NBR 54102 prescreve a instalação de
dispositivos de proteção contra surtos para instalações alimentadas por linhas aéreas em
cidades com mais de 25 dias de trovoadas por ano. Portanto, os DPS tornam-se obrigatórios
na maioria das instalações elétricas residenciais, comerciais e industriais em nosso país.
1
NBR 5419: “Proteção de Estruturas Contra Descargas Atmosféricas”, 2001.
2
NBR 5410: “Instalações Elétricas de Baixa Tensão”, 2004.
13
1.1
PROBLEMA
Para que os fabricantes possam assegurar a qualidade do DPS é necessário efetuar
ensaios onde as suas características nominais são verificadas. Muitas vezes os fabricantes não
possuem laboratórios com equipamentos necessários para os testes de funcionamento, por
conseqüência, empresas especializadas em ensaios com emissão de certificados são
contratadas para atestar seu funcionamento.
1.2
JUSTIFICATIVA
A necessidade dos ensaios é evidente e constante. Assim, cada fabricante deve
conhecer o funcionamento real do produto, quais os níveis de atuação do mesmo e
principalmente como especificá-lo. Desta forma a terceirização dos testes é de vital
importância, porém são poucos os laboratórios habilitados a realizarem os ensaios, tornando
insuficiente a quantidade de testes realizados pelos fabricantes.
O fato dos equipamentos utilizados serem importados dificulta sua aquisição e a
realização dos ensaios. A nacionalização de um gerador de corrente impulsiva possibilita ao
fabricante do DPS montar seu próprio laboratório, tornando-se possível a realização de
ensaios com freqüência maior, garantindo o funcionamento do seu produto e melhorando a
confiabilidade de suas especificações.
1.3
OBJETIVOS ESPECÍFICOS
Construiu-se um equipamento que realize testes em DPS. O princípio de
funcionamento deste equipamento é baseado em um gerador de Marx, configurado para
fornecer um impulso de corrente no formato 8/20 µs, ou seja, 8 µs de tempo de subida e 20 µs
de tempo de descida. A amplitude máxima de corrente será de 10 kA.
O sistema é dotado de dispositivos de intertravamento, com a finalidade de prover
segurança para as pessoas que acompanham os ensaios. Também é função de um processador
digital de sinais (DSP), o controle de partida e parada do sistema, bem como transmitir,
14
através de comunicação serial para um computador, os dados adquiridos durante os testes. O
computador é dotado de software capaz de reconstituir o formato do impulso de corrente na
qual o DPS foi submetido para possibilitar análise posterior.
15
2
FUNDAMENTAÇÃO TEÓRICA
A partir das informações contidas no problema e sua justificativa e ainda com o
sistema proposto conforme descrito nos objetivos específicos deste trabalho é necessário a
fundamentação sobre o dispositivo de proteção contra surtos, o formato da corrente impulsiva,
o Gerador de Marx e a aquisição de dados, como mostrado na seqüência.
2.1
DISPOSITIVO DE PROTEÇÃO CONTRA SURTOS (DPS)
Com a finalidade de especificar um dispositivo de proteção contra surto é
necessário observar as seguintes características nominas: nível de proteção (Up); máxima
tensão de operação contínua (Uc), suportabilidade a sobretensões temporárias, corrente
nominal de descarga (In) e/ou corrente de impulso (Iimp) e suportabilidade à corrente de curtocircuito.
Segundo a NBR 5410, a corrente nominal de descarga (In) não deve ser inferior a
5 kA (8/20 µs) contra sobretensões de origem atmosférica transmitidas pela linha externa de
alimentação e contra sobretensões de manobra, enquanto que a corrente de impulso não deve
ser inferior a 12,5 kA quando o dispositivo for utilizado contra sobretensões causadas por
descargas atmosféricas diretas sobre a edificação ou ao seu redor.
2.2
FORMATO DA CORRENTE IMPULSIVA
O modelamento matemático da forma de onda de um raio é importante para o
estudo e o desenvolvimento correto dos dispositivos de proteção. Desta forma, JIA e
XIAOQING apresentam uma expressão exponencial dupla (1) para modelar a forma de onda
de um raio e GAMLIN também demonstra esta forma de onda.
(
i (t ) = I ⋅ k e −αt − e − βt
)
(1)
16
onde α , β e k são as constantes da fórmula e dependem do formato do impulso da corrente
do raio modelado.
Na figura 1 são mostrados os parâmetros utilizados para determinar as constantes
da equação 1. Assim, segundo JIA e XIAOQING α ≈ 1 tf e β ≈ 1 tp , sendo tf o tempo de
subida (10 a 90% da amplitude máxima) e tp o tempo para alcançar 50% do valor de pico na
descida.
Figura 1 – Modelamento da corrente impulsiva
Fonte: Jia e Xiaoqing, 2006.
2.3
GERADOR DE MARX
O circuito descrito por Edwin Marx em 1924, pode-se gerar um pulso de altatensão com base na carga de um número n de capacitores carregados em paralelo. Devido à
construção física do circuito, permite – se a descarga em série dos capacitores, tornando a
tensão resultante próxima do número de capacitores multiplicados pela tensão de carga de
cada capacitor. Na figura 2 é mostrado o processo de carga e descarga do circuito gerador de
Marx.
17
Figura 2 – Gerador de Marx
Fonte: Autores, 2008.
A ligação dos capacitores em série é dada por meio de uma centelha criada através
do rompimento do dielétrico do ar, gerando um arco elétrico. Esta centelha provoca a geração
de arcos em todos os outros centelhadores, desta forma criando um circuito fechado que gera
um pulso de alta corrente. O arco elétrico é formado sempre que a rigidez dielétrica do meio é
rompida, neste caso a do ar que é de 3 kV mm.
Com a descarga do circuito formado pelos capacitores ligados em série, é possível
gerar uma corrente dependente da carga a qual esteja conectada. Logo, escolhendo esta carga
de maneira apropriada, é possível gerar um pulso de corrente com os parâmetros que se
deseja. Por conseqüência, quanto maior o valor de pico, menor será o tempo de descarga, pois
a energia acumulada permanece a mesma.
2.4
PROCESSADOR DIGITAL DE SINAIS
Um circuito com um DSP, segundo NUNES, Processador Digital de Sinais é
capaz de fazer aquisições de sinais analógicos e processamento de dados com velocidade
muito superior aos de microcontroladores e microprocessadores. Assim, pode ser utilizado em
sistemas onde altas taxas de amostragem são necessárias. Também, pode ser programado para
executar tarefas de controle e intertravamento de sistemas.
18
No processo de conversão analógico digital, a quantidade de bits utilizados para
representar o sinal digital tem grande influência no erro de quantização. Também outro
aspecto importante é que o número de amostras deve ser respeitado pelo critério de Nyquist.
Assim, a freqüência de amostragem deve ser no mínimo o dobro da freqüência mais alta do
sinal amostrado possibilitando a reprodução correta do sinal original.
Da mesma forma, o sinal entregue ao DSP deve ser compatível, ou seja,
normalizado com o sinal especificado para o componente. Portanto, um circuito de
acondicionamento de sinal é necessário para não provocar a sua queima, bem como, isolar as
partes dos circuitos envolvidos, deixando desconectados fisicamente os circuitos de potência e
de manipulação do sinal.
19
3
ESPECIFICAÇÃO TÉCNICA
A seguir serão apresentados o diagrama em blocos, o fluxograma do
funcionamento, a descrição funcional dos blocos e suas interfaces e o plano de trabalho,
contendo o estudo detalhado dos custos.
3.1
VISÃO GERAL DO PROJETO
Na figura três é mostrado o diagrama em blocos do gerador de corrente impulsiva.
Podem ser observados três grandes blocos distintos: o gerador de AT/AC, a parte acessível
pelo usuário e o computador. Maiores detalhes dos blocos e suas especificidades serão
abordadas nos itens subseqüentes.
Figura 3 – Diagrama em blocos
Fonte: Autores, 2008.
Na figura 4 é apresentado o fluxograma de funcionamento do sistema. Os
primeiros blocos provêm segurança do sistema, enquanto que os outros executam a tarefa de
realizar o ensaio propriamente dito.
20
Figura 4 – Fluxograma de funcionamento do sistema
INÍCIO
2
1
VERIFICA SINAL DA
TAMPA FECHADA
TAMPA FECHADA?
ENVIA COMANDO PARA O
CIRCUITO DE CONTROLE
NÃO
ARMAZENA AMOSTRA DA
CORRENTE ACONDICIONADA
SIM
VERIFICA
COMANDO PARA
INÍCIO DO ENSAIO
SINAL RECEBIDO?
ENVIA DADOS ARMAZENADOS
PARA O PC
NÃO
SIM
PC RECEBE DADOS E
TRAÇA GRÁFICO
2
1
Fonte: Autores, 2008.
3.2
DESCRIÇÃO FUNCIONAL DOS BLOCOS
Na finalidade de construir um equipamento que possibilite a geração de um
impulso de corrente para o teste de dispositivos de proteção contra surtos, alguns blocos são
de extrema importância para o projeto deste equipamento. O detalhamento de cada bloco será
descrito a seguir.
21
3.2.1
Gerador de Corrente Impulsiva
3.2.1.1 Gerador de Marx
Fundamentado no funcionamento de um Gerador de Marx, este circuito será
responsável pela geração da corrente impulsiva, através da geração de alta tensão (AT) com
uma descarga com alta corrente (AC). O bloco de controle geral gerenciará seu
funcionamento através da interface com o usuário, permitindo que o gerador efetue a descarga
da corrente somente quando receber o comando para tal.
O gerador será alimentado através de um transistor que será acionado pelo
comando, que virá do circuito de controle geral. Após a descarga este comando é cessado,
desligando o gerador para evitar uma nova descarga.
3.2.1.2 Controle do gerador
O circuito de controle do gerador tem como função principal desabilitar o
processo de geração de alta tensão, após o início do impulso. Desta maneira impossibilita que
novos impulsos de correntes indesejáveis sejam gerados e, por conseqüência, impedindo que
o sistema se torne cíclico. O sinal para habilitar ou desabilitar a geração será enviado pelo
circuito de controle geral e aquisição de dados.
3.2.1.3 Controle geral e aquisição de dados
O circuito de aquisição de dados é um dos principais circuitos do equipamento,
onde se encontra o DSP, que faz o controle geral do equipamento e a amostragem do sinal de
corrente na saída do gerador.
22
Quando o DSP receber o sinal proveniente da interface com o usuário, através do
botão de inicio, e o sinal de que a tampa de proteção encontra-se devidamente fechada,
isolando o dispositivo de proteção contra surtos da pessoa que está conduzindo os ensaios, o
processador envia um sinal para o circuito de controle habilitando o gerador, portanto
possibilitando o início dos ensaios.
Este sinal de controle será através do chaveamento do circuito de alta tensão que
alimenta o gerador de Marx com a tensão necessária para produzir a descarga do pulso de
corrente.
Ainda, através do circuito de condicionamento do sinal, a aquisição de dados
consegue amostrar em tempo hábil o impulso de corrente e transmiti-lo para um computador,
através da comunicação serial.
3.2.1.4 Comunicação serial
Os dados lidos pelo circuito de aquisição de dados serão transmitidos para o
computador, através de um canal serial. Assim, torna-se necessário a utilização de
componentes responsáveis pela conversão do sinal TTL3, do DSP, para o padrão RS-232C, da
porta serial do computador. Portanto, o nível lógico baixo (bit “0”) é convertido num nível de
tensão de +3 V a +15 V enquanto que o nível lógico alto (bit “1”), é convertido de -3 V a -15
V.
3.2.1.5 Condicionador de sinal
Normalmente uma amostra de um sinal não está normalizada, ou seja, seu valor
máximo não é compatível com o sinal lido pelo circuito subseqüente, neste caso o sinal
passível de ser amostrado pelo DSP deve estar entre 0 e 5 V. Portanto, um circuito de
condicionamento de sinal é necessário para compatibilizar a amplitude da amostra de tensão
em função da corrente com a amplitude máxima admitida pelo DSP.
3
Transistor-Transistor Logic: Lógica Transistor-Transistor. A tensão de alimentação se restringe a 5Vcc, tendo,
porém, uma faixa de tensão correspondente aos níveis lógicos 0 e 1.
23
Outra função importante deste bloco é de isolar eletricamente a parte de potência,
pois o circuito de aquisição de sinais é bastante sensível ao impulso de corrente.
3.2.2
Interface homem-máquina
Uma interface com o usuário deve informar as condições do sistema como, por
exemplo, status do ensaio com o uso de um display e até mesmo, deve conter um botão para
iniciar o ensaio. Sendo que esses e outros itens devem estar dispostos de maneira a facilitar a
interação com o usuário.
3.2.3
Software do computador
Os dados transmitidos pelo circuito de aquisição de dados serão recebidos pelo
programa específico existente num computador através da porta serial do mesmo. Esses dados
serão armazenados em vetor para plotar o gráfico da forma de onda da corrente impulsiva,
bem como gerar um arquivo.
3.3
DIMENSIONAMENTO E MEMORIAL DE CALCULO
Na seqüência são apresentados os cálculos realizados para o dimensionamento dos
principais componentes utilizados nos blocos apresentados no item 3.2.
24
3.3.1
Gerador de Marx
A especificação dos componentes para o circuito gerador de AT/AC é baseada nos
cálculos desenvolvidos no Anexo A.
Ainda, são necessários os valores da resistência e capacitância para os varistores
freqüentemente utilizados na construção de DPS. Portanto, para um impulso de corrente de 10
kA, especificação do projeto, e com tensão nominal de 275 V, o varistor LS40K275QP da
EPCOS possui capacitância típica de 2,7 ηF com resistência obtida através de gráfico da
tensão, 1100 V, pela corrente, 10 kA, no valor aproximado de 0,11 Ω. Portanto, para o
modelo do estudo tem-se:
R 1 = 0,11 Ω
C 2 = 2,7 ηF
Com os valores de α1 , α 2 , extraídos da tabela do Anexo A, C2 e arbitrando um
valor para C1 é possível determinar os valores de R1 e R2 com a finalidade de obtenção de
um impulso de tensão no formato 1,2/50 µs que, quando em curto-circuito, gera um impulso
de corrente no formato 8/20 µs.
Assim, considerando os capacitores C1' = 500 pF , logo C1 = 1ηF e C 2 = 50 pF ,
obtém-se:
R 1 ≅ 270 kΩ e R 2 ≅ 1,2 MΩ
Como o valor do resistor R1 foi muito maior que o calculado através das
características do DSP, será necessário a associação deste resistor para que a forma de onda
permaneça a mesma. Por outro lado, o valor de R2 deverá ser dividido pelo número de
estágios utilizados na construção do gerador de Marx, conforme anexo A. Assim, até o
presente momento não é possível determinar quantos estágios são necessários como, também,
o valor da tensão aplicada para obter a forma de onda desejada.
O circuito para o gerador é mostrado no Anexo A. Para aplicar tensão na entrada
será utilizada uma bobina automotiva, podendo gerar em torno de 10 kV. Como se trata
basicamente de um transformador, a tensão aplicada em seu primário deve ser pulsada. Esses
pulsos serão obtidos através de um transistor excitado pelo DSP, funcionado também como
um oscilador. O valor da freqüência também será determinado posteriormente.
25
3.3.2
Processador Digital de Sinais
Dentre as opções existentes no mercado, optou-se por uma que possibilite a
amostragem de sinais e o controle dos circuitos externos, logo que permita a atuação em
periféricos.
Como o DSP não será utilizado para processamento de sinais, mas sim para
efetuar amostragem no domínio de tempo, optou-se por utilizar o componente de fabricante
comum no mercado, assim escolheu-se a família dsPIC da Microchip®.
A taxa de amostragem máxima foi determinante na especificação do modelo, uma
vez que o período do impulso é da ordem de µs, sendo assim, os que atendem a necessidade
são os componentes com 1 Msps.
Outro fator determinante é a memória RAM, necessário para armazenamento
provisório das amostras, num período máximo de análise de 100 µs, obtém 100 amostras de
10 bits, desta forma ocupando 125 bytes de informação.
Com base nas características descritas acima, o DSP que será utilizado é o
dsPIC30F4011. Este componente possui 40 pinos, sendo 30 entradas e saídas, 9 conversores
A/D com resolução de 10 bits, taxa de conversão de 1 Msps e 2048 bytes de memória RAM.
Na figura 5 encontra-se a descrição dos pinos.
Figura 5 – Pinagem dsPIC30F4011
Fonte: MICROCHIP, 2006.
26
Na figura 6 é apresentado o fluxograma principal do programa a ser executado
pelo DSP.
Figura 6 – Fluxograma do programa do DSP
Fonte: AUTORES, 2008.
3.3.3
Interface homem-máquina
Para possibilitar a operação do equipamento, faz-se necessário a utilização de uma
interface homem-máquina IHM contendo um display LCD com 2 linhas e 16 colunas para a
escrita das informações pertinentes ao seu uso e funcionamento. Bem como, uma chave do
tipo liga e desliga, que atuará diretamente na alimentação da fonte principal do sistema, e um
push-button para iniciar o ensaio. Na figura 7 é apresentado à disposição da IHM.
27
Figura 7 – Disposição da interface com o usuário
Fonte: Autores, 2008.
Outro item de extrema importância é o sensor para indicar que a tampa onde o
DPS é instalado está aberta. Para isso será utilizado um reed switch e um imã, chave que em
presença de campo magnético permite a circulação de corrente elétrica. Na figura 8 são
mostrados os circuitos para este sensor e o circuito para iniciar o ensaio.
Figura 8 – Circuito para início do ensaio e sensor de abertura da tampa
+5V
+5V
R3
10k
B7
R4
10K
B6
J2
SW1
1
2
PUSHBUTTON
REED SWITCH
Fonte: Autores, 2008.
Na figura 9 é mostrado o circuito para a utilização de um display genérico e na
tabela 2 é apontado a descrição de cada pino deste componente.
Figura 9 – Circuito do display
J1
DISPLAY LCD
+5V
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
+5V
R1
10k
RS
E
Fonte: Autores, 2008.
D7
D6
D5
D4
D3
D2
D1
D0
R2
15R
DISPLAY LCD
28
Tabela 2 – Terminais do display
Pino
1
2
3
Abreviatura
Vss
Vdd
Vo
4
RS
5
R/W
6
7 - 14
15
16
E
D0 – D7
-
Descrição
Terra
Alimentação
Ajuste de Contraste
“0” Entrada de código de instrução
“1” Entrada de dado
“0” Escreve dados no LCD
“1” Ler dados do LCD
Habilita LCD
Dados
Backlight +
Backlight -
Fonte: Rogercom, 2007.
3.3.4
Comunicação serial
Para compatibilizar o sinal TTL proveniente do DSP e o sinal padrão RS-232
utilizado pelo computador, é empregado o circuito integrado (CI) MAX232 (MAXIM, 2006).
Este componente é um driver e receptor duplo com gerador capacitivo de tensão para fornecer
os níveis de tensão para o padrão RS-232 alimentados por fonte de tensão de 5 V. Assim cada
driver converte os níveis TTL em níveis RS-232 e os receptores, convertem as entradas RS232 para níveis TTL.
Na figura 10 são mostrados os componentes e as interfaces com os outros
circuitos do sistema. Os valores dos capacitores são fornecidos pelo fabricante e o CI de uso
mais comum no mercado.
29
Figura 10 – Circuito de comunicação serial
P1
1
C1
1uF
DB9F
3
4
C2
1uF
MAX232
U2
14
13
5
T1OUT
R1IN
V+
2
C3
1uF
C+
C1-
V-
C2+
C2+5V
VCC
GND
TX
RX
R1OUT
T1IN
6
12
11
C4
1uF
F7
F8
16
15
1
6
2
7
3
8
4
9
5
C5
100nF
COMUNICAÇÃO SERIAL
Fonte: MAXIM, 2006.
3.3.5
Programa do computador
O programa a ser executado no computador será desenvolvido em linguagem
C++, baseada em linguagem orientada a objetos. Para isto, será utilizado o software Borland
Builder versão 5.0, conseguido com licença freeware4 através de uma revista de informática
especializada no assunto.
Na figura 11 é mostrado o fluxograma de funcionamento deste programa, assim,
as operações mais importantes são mostradas de forma cíclica, na mesma seqüência em que
são executadas.
4
Freeware: programa gratuito que pode ser utilizado livremente sem a necessidade de pagar para sua utilização,
normalmente gratuito apenas para pessoas físicas.
30
Figura 11 – Fluxograma do programa do computador
Fonte: Autores, 2008.
O layout para a tela do programa do computador é mostrado na figura 12. O
software será capaz de mostrar os principais parâmetros nos quais o DPS foi submetido, como
a amplitude da corrente e os tempos para 10, 90 e 50% da amplitude máxima, confirmando a
caracterização da onda em 8/20 µs como prevê o projeto. O botão de novo gráfico será
utilizado para iniciar nova recepção de dados do sistema e o botão de salvar é utilizado para
armazenar num arquivo as informações do gráfico e seus parâmetros.
31
Figura 12 – Fluxograma do programa do computador
Fonte: Autores, 2008.
3.4
APLICABILIDADE E FUNCIONALIDADE
O Gerador de Corrente Impulsiva é aplicável em simulações que necessitam de
transientes e distúrbios desta natureza, portanto o foco deste projeto é a construção do sistema
que proporcione uma onda no formato 8/20 µs com amplitude de até 10 kA, para promover
ensaios em dispositivos de proteção contra surtos.
Para realizar os ensaios, o usuário deve instalar o DPS nos conectores específicos,
fechar a tampa de proteção contra falha do DPS ou da tensão e correntes gerados. Em seguida,
o ensaio pode ser iniciado pressionando um botão, gerando alta tensão, que pelo gerador de
Marx, gera alta corrente. Neste intervalo, amostras da amplitude da corrente são armazenadas
provisoriamente no DSP, que são transmitidas para o computador ao final do ensaio. Os dados
recebidos pelo PC são utilizados pelo programa para traçar um gráfico com a forma da
corrente na qual o DPS foi submetido, finalizado o processo do dispositivo.
32
3.5
PROGRAMAÇÃO
Para o gerenciamento do trabalho, é coerente que exista um cronograma detalhado
do desencadeamento das atividades e das fases. Desta forma, são apresentados na seqüência o
cronograma de desenvolvimento.
No apêndice A é apresentado o cronograma de desenvolvimento do trabalho.
Nele, são mostrados as diversas etapas e seu respectivo responsável necessários ao bom
encaminhamento e desenvolvimento das etapas principais do projeto.
33
4
IMPLEMENTAÇÃO
Neste capítulo são descritos a concepção do equipamento, os critérios e os
métodos utilizados para seu desenvolvimento e realização de testes de funcionalidade.
4.1
DESCRIÇÃO DA MONTAGEM
A montagem foi iniciada pelo Gerador de Marx com a intenção de verificar seu
funcionamento e suas particularidades. Para isto, utilizou-se capacitores de 2,2 nF com
isolação de 2 kV associados em série e resistores para carga de 2,2 MΩ. Para obter a tensão de
isolação compatível com a alimentação do circuito, neste caso 10 kV, cinco capacitores foram
ligados em série por estágio. Para a alimentação do gerador empregou-se um flyback de
televisão, que gera em seu secundário aproximadamente 10 kV a partir do chaveamento da
corrente no primário utilizando um transistor tipo MOSFET IRFP450. O circuito
experimental do gerador é mostrado na figura 13.
Figura 13 – Gerador de Marx utilizado para testes
Fonte: Autores, 2008.
34
Para a montagem definitiva, utilizou-se dois capacitores de 1nF x 6 kV, para cada
estágio, e resistores de 1MΩ. Também, construiu-se uma base de policarbonato no qual foram
fixados parafusos de latão formando os centelhadores, como mostra a figura 14. A cabeça dos
parafusos é esférica para possibilitar apenas um único ponto durante a ocorrência da centelha.
Figura 14 – Base com centelhadores
Fonte: Autores, 2008.
Na seqüência, iniciou-se o dimensionamento do circuito de controle no qual se
encontra o processador digital de sinais, as entradas e saídas para usuário e display de LCD, a
entrada analógica para as amostras do sinal provenientes do gerador de Marx e a comunicação
serial. A primeira montagem do circuito foi realizada em protobord no qual foram feitos
testes com o conversor A/D do processador, comunicação serial, o oscilador que acionará a
alimentação do gerador. Após a realização dos testes foi confeccionada a placa de circuito
impresso (PCI), apresentada na figura 15.
Figura 15 – PCI do controle do gerador
3
5
1
2
7
4
6
Fonte: Autores, 2008.
35
As partes que compõem a PCI mostrada na figura 15 e sinalizadas são:
1 – alimentação
2 – processador de sinais
3 – entrada analógica
4 – conector da IHM
5 – conector para o LCD
6 – saída de clock para o circuito gerador
4.2
TESTES, MEDIÇÕES E CONFIGURAÇÕES
Durante a implementação do projeto, foram realizados alguns testes, medições e
configurações para o funcionamento dos circuitos. Assim, nos itens que seguem, são
apresentadas as informações retiradas durante esta fase.
4.2.1
Taxa de amostragem do conversor analógico digital
Para determinar a taxa de amostragem do conversor A/D do DSP, utilizou-se um
sinal padrão fornecido por um gerador de sinais. Como podem ser visualizadas na figura 16,
as ondas foram recompostas a partir das amostras efetuadas pelo conversor e transmitidas para
o computador. A taxa de amostragem obtida foi de 772 ksps, assim tem-se uma amostra do
sinal a cada 1,3 µs aproximadamente. No software desenvolvido, este valor é usado para
visualizar o sinal sempre no mesmo intervalo de tempo, no caso, 100 µs.
36
Figura 16 – Taxa de amostragem
f = 10 kHz
f = 50 kHz
Fonte: Autores, 2008.
4.2.2
Curva de resposta do transformador de corrente
Algumas medidas de tensão em função da corrente no TC foram realizadas no
intuito de obter uma curva de resposta e, como conseqüência, uma equação característica para
o componente. Na tabela 3 são apresentados os valores obtidos. Para isso utilizou-se um
variac e banco de resistores, para gerar a corrente a ser medida pelo TC, e um multímetro,
para efetuar a leitura da tensão nos terminais de saída do TC. Como os terminais de saída do
TC não podem estar abertos, utilizou-se um resistor de 3,3 kΩ em paralelo com a saída.
Tabela 3 – Dados experimentais do TC
I [A]
0,5
1,0
1,5
2,0
2,5
3,0
3,5
4,0
4,5
V [mV] @ 60 Hz
2,72
3,84
5,20
6,40
7,68
8,88
10,20
11,40
12,60
Fonte: Autores, 2008.
37
A partir dos valores obtidos, pode-se calcular a equação da reta que possibilita
obter o valor de tensão para qualquer valor de corrente. Na equação 2 é mostrada a função que
representa o TC.
V[mV] = 2,5086 * I[A] + 1,3314
(2)
Desta forma, os valores lidos pelo conversor A/D serão corrigidos segundo o
código abaixo. O valor 4,8876 é utilizado para converter o valor decimal lido pelo A/D em
um valor de tensão, no máximo 5000 mV.
# declaração das variáveis
float valor_ADC
float valor_corrente
// valor lido pelo AD
// valor real da corrente
# incluir no programa principal
valor_corrente = ( valor_ADC * 4.8876 - 1.3314 ) / 2.5086 ;
4.3
CÓDIGO FONTE
Foram desenvolvidos dois programas, o firmware específico para o DSP e um
software para o computador. Maiores detalhes serão mostrados nos itens seguintes.
4.3.1
Firmware
Para o desenvolvimento dos códigos responsáveis pelo correto funcionamento do
DSP com as funções necessárias para o equipamento, utilizou-se o compilador PCWHD
versão 4.070 desenvolvido pela CCS®.
A seguir, é apresentado um resumo do código desenvolvido enquanto que o
código fonte do firmware completo do controle do gerador encontra-se no Anexo B.
# Diretivas de compilação
// informações necessárias para o funcionamento do código com
// processador utilizado e inclusão de bibliotecas necessárias
38
# Declaração das variáveis
// cria as variáveis a serem utilizadas durante a execução do
// firmware
# Funções
Le_entradas()
Le_ADC()
Transmite()
Reinicia()
# Interrupção
//
//
//
//
//
//
//
//
//
//
//
verifica acionamento do sensor de abertura da tampa e botão
para início, caso a condição de tampa aberta não seja
respeitada, o programa não executa os próximos códigos
rotina de leitura das amostras, iniciadas a partir que a
leitura seja maior que zero e terminada após 100 amostras
envia dos dados lidos para o computador, como cada amostra
tem 10 bits e a transmissão serial pode envia apenas 8
bits, uma divisão é efetuada para envio do quociente,
divisor e resto separadamente
faz o usuário aguardar 30 segundos para possibilitar um
novo ensaio
// caso a tampa seja aberta durante a execução de Le_ADC() e
// Transmite(), o processo é desligado e o sistema ficará
// travado até o reset de todo o sistema
# Função principal
// principal rotina executada pelo DSP
{
Enquanto ( verdadeiro )
{
Le_entradas();
Le_ADC();
Transmite();
Reinicia();
}
}
4.3.2
Software do Computador
O software foi desenvolvido em linguagem C++ com o auxílio do compilador
Borland C++ Builder 5. Essencialmente o programa é responsável por receber as amostras,
traçar o gráfico e salvar as informações para consulta futura. A seguir é apresentado um
resumo do código, enquanto que o código completo encontra-se no Anexo C.
# Diretivas de compilação
// informações necessárias para o funcionamento do programa
// e inclusão de bibliotecas necessárias
# Declaração das variáveis e constantes
// cria as variáveis a serem utilizadas durante a execução do
// programa
# Funções
Novo()
Abrir()
Salvar()
Sair()
Traça_gráfico()
//
//
//
//
//
//
//
possibilita o recebimento de novas amostras
possibilita abrir um arquivos existente com as amostras
salvas anteriormente
salva as amostras adquiridas
fechar o programa
possibilita traçar o gráfico a partir da leitura de dados
armazenados
39
Calcula_parâmetros() //
//
Verifica_porta_serial()
//
//
//
Desconectar()
//
ComX()
//
# Interrupção
possibilita calcular os parâmetros da onda, por
interpolação, a partir da leitura de dados armazenados
verifica quais portas de comunicação serial estão
disponíveis para conexão, as que não forem localizadas,
serão desconectadas
desconectar a porta de comunicação serial
conecta a porta serial X
// verifica o recebimento de dados via porta serial
A tela do software desenvolvido é mostrada na figura 17. Nota-se que se tem três
regiões distintas: menu de seleção, área para traçar a curva gráfico e parâmetros calculados a
partir da curva.
Figura 17 – Tela do software do computador
Fonte: Autores, 2008.
4.4
PLACAS DE CIRCUITO IMPRESSO
As placas de circuito impresso foram confeccionadas em fenolite. Para a
montagem os circuitos foram divididos em cinco partes sendo elas: circuito de controle,
circuito do gerador, circuito da interface com usuário, circuito do LCD e fonte de
alimentação. O software utilizado para a confecção das placas do projeto foi o Traxmaker
2000 Trial®.
40
Na figura 18 é apresentada a placa para o circuito de controle e a disposição de
seus componentes. Suas dimensões reais são 70 x 130 mm.
Figura 18 – PCI do controle do gerador
Fonte: Autores, 2008.
Na figura 19 é apresentada a placa para o circuito do gerador e a disposição de
seus componentes. Suas dimensões reais são 100 x 400 mm.
Figura 19 – PCI do gerador
Fonte: Autores, 2008.
Na figura 20 é apresentada a placa para o circuito do display LCD e a disposição
de seus componentes. Suas dimensões reais são 60 x 90 mm.
41
Figura 20 – Projeto da PCI do display de LCD
Fonte: Autores, 2008.
4.5
CUSTOS DO PROJETO, COMPONENTES E MATERIAIS
A tabela 4 apresenta a relação de materiais e componentes utilizados no projeto,
incluindo ainda os custos respectivos de cada componente e o custo total aplicado no projeto.
Tabela 4 – Custos do projeto
Módulo
Descrição
Quantidade Unidade
Valor /un
Total
Cabo 1,5 mm²
2
m
R$ 0,80
R$ 1,60
Conector olhal
24
pç
R$ 0,15
R$ 3,60
Conector pino
24
pç
R$ 0,15
R$ 3,60
Parafuso de latão 3/16" x 2"
24
pç
R$ 0,68
R$ 16,32
48
pç
R$ 0,14
R$ 6,72
48
pç
R$ 0,16
R$ 7,68
400x170
mm
R$ 7,00
R$ 7,00
Capacitor Cerâmico 1 nF x 6 kV
20
pç
R$ 4,24
R$ 84,80
Resistor 1 MΩ x 1 W
20
pç
R$ 0,60
R$ 12,00
MOSFET IRFP450
1
pç
R$ 4,50
R$ 4,50
Trilho DIN
50
mm
R$ 5,00
R$ 2,00
Circuito de Conector DB9 femea
Controle
Conector para flatcable macho 10 pinos
1
pç
R$ 1,45
R$ 1,45
1
pç
R$ 0,59
R$ 0,59
Conector para flatcable macho 16 pinos
1
pç
R$ 0,59
R$ 0,59
Conector com 2 bornes de parafuso
4
pç
R$ 0,41
R$ 1,64
Suporte para CI de 40 pinos
1
pç
R$ 1,90
R$ 1,90
Suporte para CI de 16 pinos
1
pç
R$ 0,85
R$ 0,85
Porca sextavada de latão 3/16"
Gerador de
Arruela de latão 3/16"
Marx
Placa de policarbonato
42
Tabela 4 – Custos do Projeto (continuação)
Suporte para CI de 6 pinos
1
pç
R$ 0,40
R$ 0,40
Trimpot 10 kΩ
1
pç
R$ 0,80
R$ 0,80
Cristal 7,1512 MHz
1
pç
R$ 0,81
R$ 0,81
Transistor BC 558
2
pç
R$ 0,10
R$ 0,20
Diodo 1N4007
4
pç
R$ 0,20
R$ 0,80
Capacitor Eletrolítico 1 µF x 100 V
4
pç
R$ 0,10
R$ 0,40
Capacitor de Poliester 100 nF x 63 V
1
pç
R$ 0,25
R$ 0,25
Capacitor Cerâmico 22 pF x 50 V
2
pç
R$ 0,15
R$ 0,30
Rede Resistiva de 10 kΩ
1
pç
R$ 3,00
R$ 3,00
Resistor de 1 kΩ
5
pç
R$ 0,12
R$ 0,60
Resistor de 10 kΩ
2
pç
R$ 0,12
R$ 0,24
CI MAX232
1
pç
R$ 2,14
R$ 2,14
CI dsPIC30F4011
1
pç
R$ 66,10
R$ 66,10
CI TIL111
1
pç
R$ 2,10
R$ 2,10
Conector para flatcable macho 10 pinos
1
pç
R$ 0,59
R$ 0,59
Conector para flatcable macho 16 pinos
1
pç
R$ 0,59
R$ 0,59
1
pç
R$ 0,75
R$ 0,75
2
pç
R$ 5,24
R$ 10,48
Display de LCD 2 linhas por 16 colunas
1
pç
R$ 17,00
R$ 17,00
Transformador 127/220 V x 12 V / 2 A
1
pç
R$ 23,11
R$ 23,11
Transformador 127/220 V x 6 V / 600 mA
1
pç
R$ 10,80
R$ 10,80
Diodo 1N4007
4
pç
R$ 0,20
R$ 0,80
Capacitor Eletrolítico 2200 µF x 50 V
1
pç
R$ 1,43
R$ 1,43
Capacitor Eletrolítico 1000 µF x 35 V
1
pç
R$ 0,86
R$ 0,86
Capacitor Eletrolítico 100 µF x 25 V
1
pç
R$ 0,15
R$ 0,15
Capacitor Eletrolítico 10 µF x 25 V
1
pç
R$ 0,10
R$ 0,10
Capacitor Poliester 100 nF x 63 V
2
pç
R$ 0,25
R$ 0,50
Regulador de Tensão LM7805
1
pç
R$ 0,60
R$ 0,60
Regulador de Tensão LM7812
2
pç
R$ 0,63
R$ 1,26
Dissipador para Regulador de Tensão
1
pç
R$ 1,31
R$ 1,31
Chave H-H 110 / 220 V
1
pç
R$ 1,00
R$ 1,00
Chave Liga Desliga
1
pç
R$ 1,20
R$ 1,20
Borne KRE 2
2
pç
R$ 0,25
R$ 0,50
Cabo de força 3 pinos
1
pç
R$ 4,50
R$ 4,50
Porta fusível
1
pç
R$ 0,99
R$ 0,99
Fusível 0,5 A
1
pç
R$ 0,40
R$ 0,40
Flat Cable 16 vias
1
m
R$ 1,20
R$ 1,20
Flat Cable 10 vias
1
m
R$ 1,20
R$ 1,20
Caixa de acrílico
1
pç
R$ 87,50
R$ 87,50
Reed Swith
1
pç
R$ 3,15
R$ 3,15
Parafuso e porca de fixação
20
pç
R$ 0,32
R$ 6,40
Placa de Fenolite 200 x 400 mm
1
pç
R$ 24,00
R$ 24,00
Interface
LED bicolor
com Usuário
Push button
Fonte
Geral
TOTAL GERAL: R$ 437,35
Fonte: Autores, 2008.
43
5
RESULTADOS
Um desafio grande para o desenvolvimento do projeto está relacionado à
utilização de processador digital de sinais. Desafio, pois tal componente era desconhecido,
mas necessário ao funcionamento do equipamento devido à velocidade dos conversores A/D
internos do processador mas apresentando características de um microcontrolador comum
com alta capacidade de processamento.
No início do projeto optou-se por utilizar o dsPIC30F2020, da Microchip®,
devido a taxa de conversão A/D ser de 2 Msps. Porém não foi possível utilizá-lo, pois mesmo
com as diretivas de compilação corretas o processador não funcionava com clock externo e na
tentativa de utilização com o clock interno, ocorreram vários erros na transmissão de dados,
nas rotinas de escrita no display LCD e na conversão A/D. Portanto, optou-se pela utilização
do dsPIC30F4011, do mesmo fabricante. Apesar de sua conversão A/D ser limitada a 1 Msps,
foi possível adaptá-lo e conseguir uma taxa de amostragem aceitável.
Com o DSP definido, o passo seguinte foi programá-lo para obtenção da taxa de
conversão A/D desejada de 1 Msps. Foram feitas muitas alterações e testes com o DSP na
tentativa de obter-se a máxima velocidade de conversão informada pelo fabricante, mesmo
utilizando as configurações descritas no datasheet obteu-se o máximo de 772 ksps. A situação
foi questionada através do site do fabricante e não se obteve respostas. Por outro lado, outras
funções implementadas no DSP, como apresentar informações em display de LCD e a
comunicação com o software do computador, ocorreram normalmente.
Foram realizados testes com o software, nos quais se validou a base de tempo do
gráfico utilizando um gerador de funções e um osciloscópio, através da comparação da forma
de onda conhecida com a amostrada e recuperada pelo software. A figura 21 apresenta um
exemplo da onda amostra pelo DSP e formada pelo programa.
44
Figura 21 – Exemplo de onda formada pelo software
Fonte: Autores, 2008.
Com a necessidade de gerar a forma de onda proposta inicialmente, através de
pesquisas realizadas ao longo do trabalho, concluiu-se que o gerador de Marx teria condições
de gerar alta tensão para atender as necessidades do projeto. Desta forma, realizaram-se
cálculos utilizando a forma de onda desejada como parâmetro principal para dimensionar o
gerador.
Com os componentes dimensionados, ocorreu a primeira dificuldade, pois os
capacitores especificados deveriam ter alta tensão de isolamento e não foram encontrados no
comércio nacional, assim foram adquiridos através de importação. Outra dificuldade
encontrada no desenvolvimento está relacionado a tensão de alimentação do gerador de Marx,
da ordem de kV. Primeiramente pensou-se em utilizar um flyback de televisor, mas devido à
dificuldade de encontrar informações mais precisas com seus fabricantes, optou-se pelo uso
de uma bobina automotiva para os testes.
Com o gerador de Marx montado, partiu-se então para os testes de obtenção da
forma de onda desejada. As respostas obtidas durante a realização dos ensaios não foram
satisfatórias, mesmo com muitas tentativas e com a troca de componentes. Mesmo utilizando
um transformador de corrente ao invés do resistor shunt, os resultados obtidos não sofreram
alterações. A figura 22 apresenta o exemplo de uma forma de onda encontrada durante os
testes com o gerador de Marx.
45
Figura 22 – Exemplo de onda medida durante os
ensaio do gerador de Marx
Fonte: Autores, 2008.
Outra dificuldade encontrada é a determinação dos valores de tensão e corrente
gerados, pois como tais níveis são elevados não é possível fazer medições com os
instrumentos disponíveis.
Após os testes realizados, o equipamento encontra-se com o software do
computador, o firmware do DSP, a interface com o usuário e o controle do gerador
funcionando de acordo com o proposto. Como mostrado na figura 23, os circuitos estão
separados mecanicamente, de forma a diminuir as interferências entre as diferentes fontes de
energia. Ainda, pode ser observado que o DPS a ser testado fica isolado dos outros
componentes do equipamento, logo o usuário não tem acesso a parte interna do mesmo.
Figura 23 – Protótipo do gerador de corrente impulsiva
Fonte: Autores, 2008.
46
A tensão elevada obtida com o gerador de Marx produz um ruído alto que causa
interferência nas medições e como o impulso gerado é um sinal composto por muitas
freqüências, os resistores podem apresentar comportamentos indutivos, formando assim, um
circuito RLC ressonante que interfere diretamente na resposta obtida. Portanto, explicando a
onda senoidal exponencialmente amortecida mostrada na figura 22.
A interligação do circuito de controle do gerador e amostragem de sinal com o
gerador de Marx não foi possível, pois o período de duração do impulso gerado é de 250 ns,
enquanto o conversor A/D do DSP lê uma amostra a cada 1,29 µs. Logo, não é possível
amostrar o sinal como o esperado.
47
6
CONCLUSÃO
A proposta do projeto é a geração de uma onda impulsiva com onda no formato
8/20 µs. O modelo da onda é baseado em descargas atmosféricas, induzidas nas redes
elétricas. Com a corrente gerada pretende-se realizar ensaios em dispositivos de proteção
contra surtos, no qual podem ser obtidos os parâmetros nominais da onda gerada. Sua
construção é baseada no gerador de Marx com o circuito de controle e de aquisição de
amostras construído com um DSP. As amostras da corrente são enviadas para o computador
que possui um software capaz de recuperar a forma da onda gerada e armazená-la em arquivo.
Um dos problemas encontrados durante seu desenvolvimento está na geração da
onda no formato pretendido, uma vez que o resultado obtido foi apenas uma senóide
exponencialmente amortecida, muito diferente da proposta pelo modelo do gerador de Marx
proposto nas bibliografias. Mesmo depois de várias tentativas de alteração nos valores dos
componentes calculados, não se pode constatar grandes alterações na forma de onda, bem
como o maior tempo de duração da onda.
Outra grande dificuldade está relacionada à taxa de amostragem do DSP, uma vez
que a taxa nominal do componente não foi alcançada, mesmo respeitando as recomendações
do datasheet do fabricante e seguindo artigo com configuração para de taxa de 1 Msps.
Assim, trabalhando no desenvolvimento do código, obteve-se melhor desempenho chegado a
772 ksps, ou seja, uma amostra a cada 1,29 µs aproximadamente.
Este trabalho pode ser utilizado como fonte de experiência para trabalhos futuros,
uma vez que comprova o funcionamento básico do circuito proposto por Marx, onde
capacitores são carregados em série e descarregados em paralelo gerando alta tensão. Porém
as equações de modelamento precisam ser melhor analisadas, pois se mostraram ineficientes
para a desenvolvimento de onda com formato pretendido. Também deve ser verificada a
construção física do modelo, uma vez que os condutores utilizados podem ter influência nos
resultados obtidos.
Já no uso de DSP, foi conseguida uma melhor taxa de amostragem quando se
optou por trabalhar diretamente com ponteiros ou invés das variáveis de armazenamento dos
dados e controle. Isto se deve ao fato de que o código em linguagem de máquina entendido
pelo processador gerado através do compilador é mais simples, tornando a rotina de leitura do
conversor A/D mais rápida.
48
Como sugestão para trabalhos futuros e melhoramento deste projeto, pode-se
aprofundar as pesquisas com relação ao Gerador de Marx, formas de medição desta tensão
alta e a utilização de componentes específicos para altas freqüências e, ainda, outros circuitos
para a geração do impulso de corrente no formato de onda proposto neste projeto.
Ainda sugere-se trabalhar com modelos de DSP de outros fabricantes, objetivando
uma maior taxa de amostragem, na finalidade de se obter maior fidelidade dos pontos entre
amostras, logo conseguindo maior taxa de amostragem. Outra melhoria importante é a
capacidade de selecionar a tensão máxima da onda gerada. Isto possibilitaria a geração de
ondas necessárias ao teste de suportabilidade dos componentes da instalação conforme
previsto na NBR 5410:2004, tabela 31, onde estão listadas as categorias dos produtos, a
tensão de trabalho e a máxima tensão de impulso suportável sem danificar o componente na
instalação.
49
REFERÊNCIAS
GAMLIN, Michael. Impulse Current Test, Suíça, jun. 2004. Disponível em:
<http://www.haefely.com/pdf/Impulse-Current-testing-according-IEC.pdf>.
Acesso
em: 13 abr. 2008.
JIA, Wang; XIAOQING, Zhang. Double-Exponential of Lightning Current
Waveforms, China, 2006. CEEM’2006/Dalian, pág. 320-323.
KUFFEL, E; ZAENGL, W.S.; KUFFEL, J. High
Fundamentals. 2. ed. Oxford: Pergamon Press, 2000.
Voltage
Engineering:
MACEDO DE O. JR, Ademar; SILVA Roberto José da. Sistemas de Proteção Contra
Descargas Atmosféricas e Aterramento, Goiânia, fev. 2004. Disponível em:
<http://www.eee.ufg.br/cepf/pff/2003/pf2003_02.pdf >. Acesso em: 13 abr. 2008.
NUNES, Rafael Astuto Arouche; ALBUQUERQUE, Marcelos Portes de;
ALBUQUERQUE, Marcio Portes de. Introdução a Processadores de Sinais Digitais,
Rio de Janeiro, fev. 2006. Disponível em: <http://www.cbpf.br/~rastuto/pdf/NTCBPF001-2006.pdf>. Acesso em: 13 abr. 2008.
FARCHILD. General Purpose 6-Pin Phototransistor Optocouplers. Disponível em:
<http://www.fairchildsemi.com/ds/MO/MOC8100-M.pdf >. Acesso em 25 mai 2008.
MAXIM. MAX220 – MAX249, Sunnyvale , 2006. Disponível em:
<http://pdfserv.maximic.com/en/ds/MAX220-MAX249.pdf>. Acesso em: 21 mai.
2008.
IEC 61024-1: “Protection of Structures Against Lightning - Part 1: General Principles”,
1990.
NBR 5410: “Instalações Elétricas de Baixa Tensão”, 2004.
NBR 5419: “Proteção de Estruturas Contra Descargas Atmosféricas”, 2001.
50
APÊNDICES
51
APÊNDICE A – CÓDIGO FONTE DO FIRMWARE DE CONTROLE DO GERADOR
1 #INCLUDE <30F4011.h>
// seta modelo do dsPIC
2 #DEVICE adc=10
// conversor ADC com 10 bits
3 #DEVICE *= 16
// ponteiros com 16 bits
4
5 #FUSES NOWDT
// desabilita Watch Dog
6 #FUSES XT_PLL16
// oscilador a cristal, PLLx16
7 #FUSES NOPROTECT
// código não protegido para leitura
8 #FUSES NOWRT
// memória de programa não protegida para escrita
9
10 #USE delay(clock=114.4192MHz) // configura clock
11 #USE rs232(baud=19200,parity=N,xmit=PIN_F3,rcv=PIN_F2,bits=8) // configura pinos e
12 configuração da comunicação serial
13
14 #INCLUDE <mod_lcd.c>
15
16 #DEFINE SENSOR_ABERTURA
pin_c14 // sensor da tampa
17 #DEFINE BOTAO_INICIO
pin_b2 // botão de início do ensaio
18 #DEFINE LED_VM
pin_b4 // led de indicação de sistema operando
19 #DEFINE LED_VD
pin_b3 // led de indicacão de sistema inoperante
20 #DEFINE OSCILADOR
pin_b7 // oscilador para o Gerador de Marx
21 #DEFINE NUM_LEITURAS
101
// número de amostras do conversor AD
22 #DEFINE SET_CLOCK
65410 // configura tempo para nova interrupção
23
24 /* VARIÁVEIS GLOBAL */
25 int16 dados_lidos[NUM_LEITURAS] = {0};
26 int16 contagem = 0;
27 boolean habilita = FALSE;
28 int16 *ptr = dados_lidos;
29 int16 *ptr_comp = &dados_lidos[NUM_LEITURAS-1];
30
31 /* FUNÇÕES */
32 void le_entradas (void);
33 void le_adc (void);
34 void envia_dados (void);
35 void reinicia (void);
36
37 #INT_EXT0 HIGH // trata interrupção externa com prioridade alta
38 void trata_ext0 () // interrupção para abertura de tampa durante a execução do
39 ensaio
40 {
41
output_low ( OSCILADOR ); // desliga pino do oscilador
42
if ( habilita == TRUE )
43
{
44
output_low (LED_VM);
45
output_low (LED_VD);
46
while ( TRUE )
47
{
48
printf ( lcd_escreve , "\fPROCESSO TRAVADO\n TAMPA ABERTA " );
49
delay_ms ( 2000 );
50
printf ( lcd_escreve , "\f
REINICIE
\n
O SISTEMA
" );
51
delay_ms ( 2000 );
52
}
53
}
54 }
55
56 #INT_TIMER1 // declaração obrigatória para intrerrupção do timer 2
57 void trata_t1 ()
58 {
59
static boolean led;
60
set_timer1( SET_CLOCK );
61
62
led = !led;
63
output_bit ( OSCILADOR, led );
52
64
65 }
66
67 void le_adc(void)
68 {
69
int16 tmp = 0;
70
71
// verifica valor mínimo para início das amostras
72
read_adc(ADC_START_ONLY);
73
while( tmp < 900 )
74
{
75
tmp = read_adc(ADC_READ_ONLY);
76
read_adc(ADC_START_ONLY);
77
}
78
*ptr++ = tmp;
79
80
// realiza amostras sequenciais
81
read_adc(ADC_START_ONLY);
82
do
83
{
84
*ptr++ = read_adc(ADC_READ_ONLY);
85
read_adc(ADC_START_ONLY);
86
} while ( ptr != ptr_comp ) ;
87
88
disable_interrupts ( INT_TIMER1 );
89
output_low ( OSCILADOR ); // desliga pino do oscilador
90 }
91
92 /* FUNÇÃO PRINCIPAL */
93 void main()
94 {
95
// configura entradas analógicas
96
setup_adc_ports( sAN0 );
97
setup_adc( ADC_CLOCK_DIV_4 );
98
ptr_comp++;
99
100
// configura timer
101
setup_timer1( TMR_INTERNAL | TMR_DIV_BY_8 );
102
set_timer1( SET_CLOCK );
103
104
lcd_ini();
105
delay_us(200);
106
107
output_low (LED_VM);
108
output_low (LED_VD);
109
printf ( lcd_escreve,"\f Sistema para \n
Ensaio de
110
printf ( lcd_escreve,"\f Dispositivos \n de Protecao
111
printf ( lcd_escreve,"\f Contra Surtos \n
DPS
112
113
while ( TRUE )
114
{
115
*ptr = dados_lidos[0];
116
117
le_entradas();
118
if ( habilita )
119
{
120
// habilita as interrupções
121
clear_interrupt ( INT_EXT0 );
122
enable_interrupts ( INT_EXT0 );
123
enable_interrupts ( INT_TIMER1 );
124
enable_interrupts ( INTR_GLOBAL );
125
126
le_adc();
127
envia_dados();
128
129
// desabilita as interrupções
130
disable_interrupts(INT_EXT0);
131
" ); delay_ms(2000);
" ); delay_ms(2000);
" ); delay_ms(2000);
53
132
reinicia();
133
habilita = FALSE;
134
}
135
}
136 }
137
138 void le_entradas (void)
139 {
140
while ( input(SENSOR_ABERTURA) )
141
{
142
if ( !input(BOTAO_INICIO) )
143
{
144
output_low (LED_VM);
145
output_low (LED_VD);
146
printf ( lcd_escreve , "\fInicio Bloqueado\n Tampa Aberta " );
147
delay_ms (2000);
148
}
149
else
150
{
151
output_low (LED_VM);
152
output_low (LED_VD);
153
printf ( lcd_escreve ,"\f
Feche
\n
a Tampa
" );
154
delay_ms (200);
155
}
156
}
157
if ( input(BOTAO_INICIO) )
158
{
159
output_low (LED_VM);
160
output_high (LED_VD);
161
printf ( lcd_escreve ,"\f
Aguardando
\n
Ensaio ...
" );
162
habilita = FALSE;
163
delay_ms(200);
164
}
165
else
166
{
167
output_high(LED_VM);
168
output_low(LED_VD);
169
printf ( lcd_escreve ,"\f Processo
\n Iniciado ... " );
170
habilita = TRUE;
171
delay_ms(1000);
172
}
173 }
174
175 void envia_dados (void)
176 {
177
int divisor = 150;
178
contagem = 0;
179
printf ( lcd_escreve , "\f Enviando dados \n para o PC ... " );
180
//printf ( "Enviando dados para o PC ... " );
181
putchar (255);
182
putchar (255);
183
do
184
{
185
putchar (127); // código para o programa do PC preparar para receber os dados
186
delay_ms(4);
187
if ( dados_lidos[contagem] >= divisor )
188
{
189
putchar ( divisor ); // envia divisor
190
delay_ms(4);
191
putchar ( (int)(dados_lidos[contagem]/divisor) ); // envia quociente da
192 divisão
193
delay_ms(4);
194
putchar ( (int)(dados_lidos[contagem]%divisor) ); // envia resto da
195 divisão
196
delay_ms(4);
197
}
198
else
199
{
54
200
putchar ( 1 ); // envia divisor
201
delay_ms(4);
202
putchar( (int)(dados_lidos[contagem]) );
203
delay_ms(4);
204
putchar( 0 );
205
delay_ms(4);
206
}
207
//printf ( "cont %u vrl %lu ", contagem ,dados_lidos[contagem] );
208
contagem ++;
209
} while ( contagem < NUM_LEITURAS );
210
printf ( lcd_escreve,"\f Dados enviados\n com sucesso
" );
211
delay_ms (2000);
212 }
213
214 void reinicia(void)
215 {
216
contagem = 30;
217
printf ( lcd_escreve, "\f Reiniciando \n
Sistema
" );
218
delay_ms (2000);
219
do
220
{
221
printf( lcd_escreve , "\f Aguarde ... \n Faltam %u seg " , contagem
222
contagem--;
223
delay_ms (1000);
224
} while ( contagem >= 0 );
225
reset_cpu();
226 }
);
55
APÊNDICE B – CÓDIGO FONTE DO SOFTWARE DO PC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//--------------------------------------------------------------------------#include <vcl.h>
#include <stdio.h>
#pragma hdrstop
#include "Main.h"
#include "Serial.h"
//USEFORM("Unit_Sobre.cpp", AboutBox);
//--------------------------------------------------------------------------#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Serial serial;
// DECLARAÇÃO DAS CONSTANTES
#define T_AMOSTRA 1.295
#define NUM_LEITURAS 79
// DECLARAÇÃO DAS VARIÁVEIS
int Var;
int conta;
boolean habilita;
float dados_recebidos[NUM_LEITURAS];
// DECLARAÇÃO DAS FUNÇÕES
void verifica_porta_serial ( void );
void plota_grafico ( void );
void calcula_parametros ( void );
//--------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------void __fastcall TForm1::FormShow(TObject *Sender)
{
// Verifica portas de comunicação disponíveis
verifica_porta_serial ();
// REMOVER, USO APENAS PARA PLOTAR DADOS DURANTE A CRIAÇÃO DO FORMULÁRIO
/*for ( int i = 0 ; i < NUM_LEITURAS ; i++ )
{
Chart1->Series[0]-> AddXY(i,10*i,"",clRed);
dados_recebidos[i] = 10*i;
} */
TraarGrfico1->Enabled = FALSE;
CalcularParmetros1->Enabled = FALSE;
Salvar1->Enabled = FALSE;
Novo1->Enabled = FALSE;
Memo1->Clear();
}
//--------------------------------------------------------------------------void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
// Finaliza porta serial ao sair
serial.Close();
}
//--------------------------------------------------------------------------void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
56
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
// Finaliza formulário
Close();
}
//--------------------------------------------------------------------------void __fastcall TForm1::Timer2Timer(TObject *Sender)
{
// PROCESSO DE COMUNICAÇÃO SERIAL
// Recebe número de bytes no buffer da serial
int n = serial.BytesInQueue();
static int ValorRX[4], PosRec;
static boolean Recebe, Calcula;
if(n > 0)
{
BYTE x;
serial.Receive(&x, 1, 1000);
List_Serial->Items->Add (x);
// 255 -> Valor responsável para habilitar o recebimento de dados
if ( (x==255) && (!habilita) )
{
habilita = true;
Chart1->Series[0]->Clear();
List_Serial->Items->Clear();
Memo1->Clear();
conta = 0;
}
// 127 -> Cabeçalho responsável para informar o recebimento de um dado
if ( (x==127) && (!Recebe) && (habilita) )
{
Recebe = true;
PosRec = 0;
}
if ( Recebe )
{
PosRec++;
switch( PosRec )
{
case 2 : ValorRX[1] = x; break;
case 3 : ValorRX[2] = x; break;
case 4 : ValorRX[3] = x;
Recebe = false;
Calcula = true; break;
}
}
if(Calcula)
{
// Recompõem dado transmitido em 10 bits
Var =( ValorRX[1] * ValorRX[2] ) + ValorRX[3];
dados_recebidos[conta] = Var;
Chart1->Series[0]-> AddXY( conta*T_AMOSTRA , Var , "" , clRed );
// Termina recebimento dos dados da serial
if ( conta == (NUM_LEITURAS-1) )
{
conta = 0;
habilita = false;
Calcula = false;
// Habilita botões disponível
Salvar1->Enabled = TRUE;
Novo1->Enabled = TRUE;
Abrir1->Enabled = FALSE;
57
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
}
else
{
conta++;
Calcula = false;
}
}
}
}
//--------------------------------------------------------------------------void __fastcall TForm1::Sair1Click(TObject *Sender)
{
Close();
}
//--------------------------------------------------------------------------void __fastcall TForm1::Novo1Click(TObject *Sender)
{
// Limpa gráfico
Chart1->Series[0]->Clear();
Memo1->Clear();
List_Serial->Items->Clear();
conta = 0;
habilita = false;
// Apaga vetor
for ( int i=0 ; i<NUM_LEITURAS ; i++ ) dados_recebidos[i] = 0;
// Desabilita botões do MENU
TraarGrfico1->Enabled = FALSE;
CalcularParmetros1->Enabled = FALSE;
Salvar1->Enabled = FALSE;
Conectar1->Enabled = TRUE;
Abrir1->Enabled = TRUE;
}
//--------------------------------------------------------------------------void __fastcall TForm1::Abrir1Click(TObject *Sender)
{
// Declaração de Variáveis Locais
FILE *arquivo;
int i=0;
char tmp[20];
// Abre a Caixa de Diálogo Comum Abrir
if ( OpenDialog1->Execute() )
{
// Abre o arquivo
arquivo=fopen(OpenDialog1->FileName.c_str(),"r");
// Verifica abertura do arquivo
if ( arquivo == NULL )
Application->MessageBox( "Erro ao abrir arquivo para leitura"
...",MB_OK);
else
{
// Lê os dados do arquivo
//fread( dados_recebidos , sizeof(float) , 0 , arquivo );
while ( !feof(arquivo) )
{
fgets ( tmp , 20 , arquivo );
dados_recebidos[i] = atoi(tmp);
i++;
}
for ( i=0 ; i<NUM_LEITURAS ; i++ )
List_Serial->Items->Add (dados_recebidos[i]);
// Fecha o Arquivo
,
"Erro
58
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
fclose(arquivo);
// Habilita / desabilita itens do MENU
TraarGrfico1->Enabled = TRUE;
CalcularParmetros1->Enabled = TRUE;
Novo1->Enabled = TRUE;
serial.Close();
Conectar1->Caption = "Conectar";
Conectar1->Enabled = FALSE;
Abrir1->Enabled = FALSE;
}
TraarGrfico1Click(Owner);
CalcularParmetros1Click(Owner);
}
// Operação Cancelada
else
{
// Mensagem
Application->MessageBox( "Operação abortada pelo usuário!" , "Abrir Arquivo"
, MB_OK);
}
}
//--------------------------------------------------------------------------void __fastcall TForm1::Salvar1Click(TObject *Sender)
{
// Declaração de Variáveis Locais
FILE *arquivo;
int i;
// Abre a Caixa de Diálogo Comum Abrir
if (SaveDialog1->Execute())
{
// Abre o arquivo
arquivo = fopen( SaveDialog1->FileName.c_str(),"w+" );
// Verifica abertura do arquivo
if ( arquivo == NULL )
Application->MessageBox( "Erro ao abrir arquivo para leitura" ,
...",MB_OK);
else
{
// Faz a leitura de uma linha do arquivo
for ( i=0 ; i<NUM_LEITURAS ; i++ )
{
//List_Serial->Items->Add ( dados_recebidos[i] );
fprintf( arquivo , "%f\n" , dados_recebidos[i] );
}
// Fecha o Arquivo
fclose(arquivo);
}
}
// Operação Cancelada
else
{
// Mensagem
Application->MessageBox("Operação abortada pelo usuário!",
"Salvar Arquivo",MB_OK);
}
}
//---------------------------------------------------------------------------
"Erro
void __fastcall TForm1::Sobre2Click(TObject *Sender)
{
//Informações
//Application->MessageBox( "Software para download dos dados do Ensaio dos DSPs.
Desenvolvido por: Marcelo Rodolfo Gazaniga [email protected] Marcos Roberto Rigoni
[email protected]" , "Sobre...",MB_OK);
//AboutBox->ShowModal();
}
59
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
//--------------------------------------------------------------------------void __fastcall TForm1::COM11Click(TObject *Sender)
{
// Encerra comunicação serial existente
serial.Close();
// Estabelece nova comunicação serial
if ( serial.Open ( "COM1" , CBR_19200 )!= 1 )
{
Application->MessageBox ( "Erro de Comunicação na COM1!" , "Erro ..."
MB_OK);
// Desabilita menu caso não consiga conexão
COM11->Enabled = false;
}
else Conectar1->Caption = "COM1";
}
//--------------------------------------------------------------------------void __fastcall TForm1::COM21Click(TObject *Sender)
{
serial.Close();
if ( serial.Open ( "COM2" , CBR_19200 )!= 1 )
{
Application->MessageBox ( "Erro de Comunicação na COM2!" , "Erro ..."
MB_OK);
COM21->Enabled = false;
}
else Conectar1->Caption = "COM2";
}
//--------------------------------------------------------------------------void __fastcall TForm1::COM31Click(TObject *Sender)
{
serial.Close();
if ( serial.Open ( "COM3" , CBR_19200 )!= 1 )
{
Application->MessageBox ( "Erro de Comunicação na COM3!" , "Erro ..."
MB_OK);
COM31->Enabled = false;
}
else Conectar1->Caption = "COM3";
}
//--------------------------------------------------------------------------void __fastcall TForm1::COM41Click(TObject *Sender)
{
serial.Close();
if ( serial.Open ( "COM4" , CBR_19200 )!= 1 )
{
Application->MessageBox ( "Erro de Comunicação na COM4!" , "Erro ..."
MB_OK);
COM41->Enabled = false;
}
else Conectar1->Caption = "COM4";
}
//--------------------------------------------------------------------------void __fastcall TForm1::COM51Click(TObject *Sender)
{
serial.Close();
if ( serial.Open ( "COM5" , CBR_19200 )!= 1 )
{
Application->MessageBox ( "Erro de Comunicação
MB_OK);
COM51->Enabled = false;
}
else Conectar1->Caption = "COM5";
}
na
COM5!"
,
"Erro
..."
,
,
,
,
,
60
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
//--------------------------------------------------------------------------void __fastcall TForm1::COM61Click(TObject *Sender)
{
serial.Close();
if ( serial.Open ( "COM6" , CBR_19200 )!= 1 )
{
Application->MessageBox ( "Erro de Comunicação na COM6!" , "Erro ..."
MB_OK);
COM61->Enabled = false;
}
else Conectar1->Caption = "COM6";
}
//--------------------------------------------------------------------------void __fastcall TForm1::COM71Click(TObject *Sender)
{
serial.Close();
if ( serial.Open ( "COM7" , CBR_19200 )!= 1 )
{
Application->MessageBox ( "Erro de Comunicação na COM7!" , "Erro ..."
MB_OK);
COM71->Enabled = false;
}
else Conectar1->Caption = "COM7";
}
//--------------------------------------------------------------------------void __fastcall TForm1::COM81Click(TObject *Sender)
{
serial.Close();
if ( serial.Open ( "COM8" , CBR_19200 )!= 1 )
{
Application->MessageBox ( "Erro de Comunicação na COM8!" , "Erro ..."
MB_OK);
COM81->Enabled = false;
}
else Conectar1->Caption = "COM8";
}
//--------------------------------------------------------------------------void __fastcall TForm1::COM91Click(TObject *Sender)
{
serial.Close();
if ( serial.Open ( "COM9" , CBR_19200 )!= 1 )
{
Application->MessageBox ( "Erro de Comunicação na COM9!" , "Erro ..."
MB_OK);
COM91->Enabled = false;
}
else Conectar1->Caption = "COM9";
}
//--------------------------------------------------------------------------void __fastcall TForm1::Desconectar1Click(TObject *Sender)
{
Conectar1->Caption = "Conectar";
serial.Close();
verifica_porta_serial();
}
//--------------------------------------------------------------------------void verifica_porta_serial ( void )
{
// VERIFICA AS PORTAS DE COMUNICAÇÃO SERIAL DISPONÍVEL
// Caso a porta não esteja, o item do MENU é desabilitado
if ( serial.Open ( "COM1" , CBR_19200 )!= 1 )
Form1->COM11->Enabled = false;
,
,
,
,
61
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
else {
Form1->COM11->Enabled = true;
serial.Close(); }
if ( serial.Open ( "COM2" , CBR_19200
Form1->COM21->Enabled = false;
else {
Form1->COM21->Enabled = true;
serial.Close(); }
if ( serial.Open ( "COM3" , CBR_19200
Form1->COM31->Enabled = false;
else {
Form1->COM31->Enabled = true;
serial.Close(); }
if ( serial.Open ( "COM4" , CBR_19200
Form1->COM41->Enabled = false;
else {
Form1->COM41->Enabled = true;
serial.Close(); }
if ( serial.Open ( "COM5" , CBR_19200
Form1->COM51->Enabled = false;
else {
Form1->COM51->Enabled = true;
serial.Close(); }
if ( serial.Open ( "COM6" , CBR_19200
Form1->COM61->Enabled = false;
else {
Form1->COM61->Enabled = true;
serial.Close(); }
if ( serial.Open ( "COM7" , CBR_19200
Form1->COM71->Enabled = false;
else {
Form1->COM71->Enabled = true;
serial.Close(); }
if ( serial.Open ( "COM8" , CBR_19200
Form1->COM81->Enabled = false;
else {
Form1->COM81->Enabled = true;
serial.Close(); }
if ( serial.Open ( "COM9" , CBR_19200
Form1->COM91->Enabled = false;
else {
Form1->COM91->Enabled = true;
serial.Close(); }
)!= 1 )
)!= 1 )
)!= 1 )
)!= 1 )
)!= 1 )
)!= 1 )
)!= 1 )
)!= 1 )
}
//--------------------------------------------------------------------------void __fastcall TForm1::TraarGrfico1Click(TObject *Sender)
{
plota_grafico();
}
//--------------------------------------------------------------------------void plota_grafico ( void )
{
int i;
for ( i = 0 ; i < NUM_LEITURAS ; i++ )
Form1->Chart1->Series[0]-> AddXY( i*T_AMOSTRA , dados_recebidos[i] , "" ,
clRed );
}
//--------------------------------------------------------------------------void __fastcall TForm1::CalcularParmetros1Click(TObject *Sender)
{
calcula_parametros();
}
//--------------------------------------------------------------------------void calcula_parametros ( void )
62
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
{
int i,max;
float amp90, amp10, amp50;
float t90, t10, t50;
float m, c;
char buffer[80];
max = 0;
// Verifica maior amplitude recebida
for ( i=1 ; i<(NUM_LEITURAS-2) ; i++ )
{
if ( dados_recebidos[i] >= dados_recebidos[max] )
{
max = i;
}
}
// Determina as amplitudes em 10%,90% e 50% da amplitude máxima
amp90 = dados_recebidos[max]*0.9;
amp10 = dados_recebidos[max]*0.1;
amp50 = dados_recebidos[max]*0.5;
for ( i=0 ; i<=max ; i++ )
{
// Determina instante de tempo para 90% por interpolação
if ( amp90 <= dados_recebidos[i] )
{
m = ( dados_recebidos[i] - dados_recebidos[i-1] ) / (float)T_AMOSTRA;
c = dados_recebidos[i] - ( m * (float)i * (float)T_AMOSTRA );
t90 = ( amp90 - c ) / m;
i = max;
}
}
for ( i=0 ; i<max ; i++ )
{
// Determina instante de tempo para 10% por interpolação
if ( amp10 <= dados_recebidos[i] )
{
m = ( dados_recebidos[i] - dados_recebidos[i-1] ) / (float)T_AMOSTRA;
c = dados_recebidos[i] - ( m * (float)i * (float)T_AMOSTRA );
t10 = ( amp10 - c ) / m;
i = max;
}
}
for ( i=max ; i<NUM_LEITURAS ; i++ )
{
// Determina instante de tempo para 50% por interpolação
if ( amp50 >= dados_recebidos[i] )
{
m = ( dados_recebidos[i] - dados_recebidos[i-1] ) / (float)T_AMOSTRA;
c = dados_recebidos[i] - ( m * (float)i * (float)T_AMOSTRA );
t50 = ( amp50 - c ) / m;
i = NUM_LEITURAS;
}
}
// Visualiza parâmetros no programa
Form1->Memo1->Lines->Add( "PARÂMETROS DA ONDA ADQUIRIDA" );
sprintf( buffer , "- Tempo de Subida: %.2f µs \t t90: %.2f \tt10: %.2f" , t90t10 , t90 , t10 );
Form1->Memo1->Lines->Add( buffer );
sprintf( buffer , "- Tempo de Descida: %.2f µs \t t50: %.2f \tt10: %.2f" , t50t10 , t50 , t10);
Form1->Memo1->Lines->Add( buffer );
sprintf( buffer , "- Amplitude Máxima: %.2f A" , dados_recebidos[max] );
Form1->Memo1->Lines->Add( buffer );}
//----------------------------------------------------------------------
63
ANEXOS
64
ANEXO A – CÁLCULOS DO GERADOR DE MARX
O desenvolvimento dos circuitos e dos cálculos a seguir foi extraído de KUFFEL
(2000).
Tomando como base o modelo de gerador de tensão impulsiva da figura abaixo, pode
ser utilizado para se determinar a equação do impulso desejado neste projeto.
A tensão de saída do circuito é dada pela expressão:
onde:
Por substituição e aplicando a transformada de Laplace é encontrado:
onde:
65
Utilizando as tabelas de transformadas de Laplace e calculando sua inversa, no domínio
do tempo, pode-se encontrar a equação dupla exponencial de tensão pela qual é possível
determinar os parâmetros para o dimensionamento do equipamento de interesse deste projeto.
onde
são as raízes da equação:
ou
A tensão de saída é a superposição de duas equações exponenciais de diferentes sinais,
conforme mostrado no gráfico da figura abaixo.
A partir da equação da tensão no tempo, diversas formas de ondas podem ser obtidas.
Na tabela abaixo, são mostrados formas de onda padronizadas e suas respectivas constantes de
tempo
e
.
T1 / T2 Tp / T2
(µs)
(µs)
1.2/5
1.2/50
1.2/200
250/2500
250/2500
1/α1
(µs)
3,48
68.2
284
2877
3155
1/α2
(µs)
0,80
0,405
0,381
104
62,5
66
Levando-se em conta o rendimento do circuito em relação a tensão máxima de pico
pela tensão aplicada, e arbitrando os valores de C1 e C 2 , pode-se calcular os valores de R1 e
R2 , como segue.
1
R1 =
2 ⋅ C2

 1 + 1  −
 α1 α 2 

2

1
1  4 ⋅ (C1 + C2 ) 
 +
 −
α1 ⋅ α 2 ⋅ C1 
 α1 α 2 


1
 1 + 1  +
R2 =
2 ⋅ (C1 + C2 )  α 1 α 2 

2

1
1  4 ⋅ (C1 + C 2 ) 
 +
 −
α1 ⋅ α 2 ⋅ C1 
 α1 α 2 

Generalizando os componentes na finalidade de construir um circuito cascateado,
gerando um impulso com amplitude múltipla da tensão de entrada, os valores de C1 e R2
devem ser determinados por:
n
1
1
=∑ '
C1
C1
n
R2 = ∑ R2'
Onde:
•
n: número de estágios
A figura abaixo mostra a disposição de cada componente para o circuito.

Documentos relacionados