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.