Você está na página 1de 56

UNIVERSIDADE FEDERAL DO ESPRITO SANTO CENTRO TECNOLGICO DEPARTAMENTO DE ENGENHARIA ELTRICA PROJETO DE GRADUAO

ACIONAMENTO MICROCONTROLADO DE UM MOTOR CC COM FRENAGEM REGENERATIVA

EDUARDO LEANDRO DEL-PUPPO

VITRIA ES AGOSTO/2007

EDUARDO LEANDRO DEL-PUPPO

ACIONAMENTO MICROCONTROLADO DE UM MOTOR CC COM FRENAGEM REGENERATIVA

Parte manuscrita do Projeto de Graduao do aluno Eduardo Leandro Del-Puppo, apresentado ao Departamento de Engenharia Eltrica do Centro Tecnolgico da Universidade Federal do Esprito Santo, para obteno do grau de Engenheiro Eletricista.

VITRIA ES AGOSTO/2007

EDUARDO LEANDRO DEL-PUPPO

ACIONAMENTO MICROCONTROLADO DE UM MOTOR CC COM FRENAGEM REGENERATIVA

COMISSO EXAMINADORA:

___________________________________ Prof. Dr. Gilberto Costa Drumond Souza Orientador ___________________________________ Prof. Dr. Paulo Faria Santos Amaral Co-orientador ___________________________________ Prof. Dr. Jos Luiz de Freitas Vieira Examinador ___________________________________ Eng. Alex Teixeira Prado Examinador

Vitria - ES, 31 de agosto de 2007

AGRADECIMENTOS Agradeo a todos que de alguma forma ajudaram e acreditaram na realizao deste projeto, por mais complicado que tenho sido. Agradeo ao professor Gilberto pela orientao e aos professores Paulo Amaral, Jos Luiz, Arago e todos que de alguma forma contriburam com dicas e material didtico. Agradeo ao Engenheiro Pedro Federici Coelho pela grande ajuda no entendimento de microcontroladores. Agradeo tambm a todos na empresa onde trabalho que sempre incentivaram e me apoiaram em todos os momentos que eu precisava sair para fazer meu projeto. Enfim, agradeo a Deus por mais essa etapa vencida, e minha famlia pelo apoio em todos os momentos difceis.

LISTA DE FIGURAS Figura 2-1- Circuito do motor CC de excitao separada .........................................12 Figura 2-2 - Caracterstica Velocidade x Torque ......................................................13 Figura 3-1 (a) Chopper abaixador com carga RLE. (b) Circuitos equivalentes. .....15 Figura 3-2 Formas de onda para conduo contnua de corrente.............................16 Figura 3-3 Potncia mdia na carga normalizada em funo da razo cclica. .......18 Figura 3-4 Chopper elevador circuito equivalente. .............................................18 Figura 3-5 Formas de onda...................................................................................19 Figura 3-6 Chopper classe C - circuito bsico .......................................................21 Figura 3-7 Chopper classe C formas de onda e conduo das chaves e diodos....22 Figura 4-1 Circuito simplificado para controle do acionamento.............................26 Figura 4-2 Diagrama de blocos .............................................................................28 Figura 5-1 Algoritmo ............................................................................................33 Figura 6-1 - Bancada com prottipo em funcionamento ...........................................34 Figura 6-2 - Prottipo 1) Placa de fora 2) Placa de controle ................................35 Figura 6-3 - Operao em modo buck ciclo de trabalho em 50% (carga RL)......36 Figura 6-4 - Operao em modo buck ciclo de trabalho em 100% (RL) .............37 Figura 6-5 - Operao em modo buck ciclo de trabalho em 50% (carga motor) .38 Figura 6-6 - Operao em modo buck ciclo de trabalho em 100% (carga motor)38 Figura 6-7 - Operao em modo boost frenagem ...............................................39

SIMBOLOGIA
= fluxo por plo, Webers I a = corrente de armadura, A
V = tenso de armadura, V

Ra = resitncia do enrolamento de armadura,

m = velocidade da armadura, rad/seg

Te =torque desenvolvido pelo motor, N.m


K e = constante construtiva do motor VS = tenso de alimentao VO = tenso mdia na carga
I = corrente na carga

TCH = perodo de chaveamento


CH = chave

t1 = dT = t on = intervalo de tempo com CH fechada


t 2 = intervalo de tempo com CH aberta

I O = corrente mdia na armadura


d = razo cclica

GLOSSRIO CC Corrente contnua, DC: Direct Current. Chopper CC conversor de corrente contnua Chopper elevador conversor de corrente contnua que produz na sada uma tenso que maior que a tenso de alimentao, baseado na carga e desgarga de um indutor. Chopper abaixador conversor de corrente contnua que produz uma tenso na sada que varia de 0 a 100% da tenso de entrada atravs de uma chave comandada. Conversor buck - Chopper abaixador Conversor boost - Chopper elevador

RESUMO O objetivo deste trabalho foi projetar e construir um prottipo de um conversor CC-CC microcontrolado, capaz de produzir na sada uma tenso varivel de 0 a 100% da tenso de entrada, produzindo ao motora direta, e que seja capaz de realizar frenagem regenerativa direta, ou seja, operao em dois quadrantes. O conversor utiliza um microcontrolador para receber os sinais de referncia e de controle, para ento controlar a tenso na sada do conversor que resulte na corrente de armadura desejada. O circuito utiliza semicondutores do tipo MOSFET, e a estrutura de controle empregou, para permitir desenvolvimento e testes com segurana, uma malha externa de velocidade, com malha interna de corrente. Numa aplicao real de um veculo eltrico, usual que o controle seja de torque, o que corresponderia a malha de corrente, e neste caso, quem fecha a malha de velocidade o usurio. O processamento de informaes foi feito por um microcontrolador da Microchip, e o software foi desenvolvido em linguagem C utilizando o compilador PIC C compiler para transformar o programa em arquivo .hex compatvel com o microcontrolador. Com o projeto concludo, obteve-se o controle de torque, e consequentemente a velocidade de um motor CC, e realizao de frenagem regenerativa com o mximo possvel de recuperao de energia.

SUMRIO 1. 2. 2.1. 2.2. 3. 3.1. 3.2. 3.3. 4. 4.1. INTRODUO...........................................................................................11 O MOTOR CC ............................................................................................12 Equaes de velocidade e torque .........................................................12 Mtodos de Controle de Velocidade....................................................13 CONTROLE POR TENSO DE ARMADURA CHOPPERS ..........14 Chopper Abaixador (Buck) com carga RLE - Princpio de Operao ..14 3.1.1. Normalizao: ..................................................................................17 Chopper elevador (Boost) Princpio de Operao .............................18 Chopper abaixador/elevador Operao em dois quadrantes ..............20 O ACIONAMENTO PROPOSTO .............................................................25 O circuito simplificado ........................................................................25 4.1.1. Drive de tenso:................................................................................27 4.1.2. Filtros passa-baixa (FPB):.................................................................27 4.1.3. Amplificador: ...................................................................................27 4.1.4. Somador: ..........................................................................................27 4.1.5. Gate-drive IR2104:........................................................................27 4.2. 4.3. O sistema de controle ..........................................................................28 Operao do conversor........................................................................29 4.3.1 Acelerando Operao Buck............................................................29 4.3.2 Velocidade de cruzeiro - Cruise control ............................................29 4.3.3 Desacelerando Operao Boost (frenagem)....................................29 5. 6. 6.1. O SOFTWARE DE CONTROLE ..........................................................31 O PROTTIPO ..........................................................................................34 Formas de onda ...................................................................................35 6.1.1 Modo Buck com carga RL ................................................................35 6.1.2 Modo Buck com motor operando a vazio..........................................37 6.1.3 Modo Boost (frenagem) ....................................................................39 7. CONCLUSO.............................................................................................40

ANEXO A...............................................................................................................41 ANEXO B ...............................................................................................................53 ANEXO C...............................................................................................................54 REFERNCIAS BIBLIOGRFICAS..................................................................56

1. INTRODUO
O motor de corrente contnua muito usado em aplicaes onde ocorrem freqentes partidas e paradas, e que requerem um bom controle de velocidade. Por esses motivos e pela possibilidade de variar o torque de 0 a 100% do torque nominal em quaisquer faixas de velocidade, o motor CC muito utilizado em trao eltrica, em aplicaes tais como: locomotivas, carros eltricos, bondes, bicicletas eltricas, walk machines e outros. Neste projeto foi desenvolvido um prottipo de um conversor CC-CC que opera em dois quadrantes: ao motora direta e frenagem direta. O projeto utiliza uma configurao clssica desse tipo de conversor (buck-boost), e um sistema de controle baseado na operao simultnea das duas chaves tipo MOSFETS, possibilitando uma transio suave entre a ao motora e a frenagem. Inicialmente foi feito um apanhado geral sobre o motor CC de excitao separada com fluxo de campo constante, pois o caso que se assemelha a um motor CC de m permanente muito utilizado em veculos eltricos de baixa potncia. Em seguida foi mostrado as formas de controle do motor CC por variao da tenso, mostrando a operao dos dois tipos bsicos de conversores, buck-abaixador e boost-elevador, e do terceiro tipo (buck-boost) que incorpora os dois tipos citados. O buck-boost compe o conversor proposto no captulo3. No captulo 4 apresentado o software de controle, que utiliza um PIC16F876 como processador de informaes. O software foi desenvolvido utilizando o conceito de aritmtica fracionria e controle por ponto fixo. No ltimo captulo so mostrados os resultados obtidos e as formas de onda. O conversor dever ser capaz de controlar o torque e por conseqncia a velocidade desenvolvida pelo motor, e dever fazer frenagem regenerativa e dissipar a potncia da frenagem em um resistor atravs do chaveamento de um MOSFET, pois no h disponibilidade de uma fonte receptora para utilizar nos testes. Os testes foram feitos com uma carga RL e com um motor de 220 Vcc /0,9A/1800rpm.

2. O MOTOR CC
2.1. Equaes de velocidade e torque Tomou-se como base um motor CC de excitao separada (fig.2.1), mas com o fluxo de campo mantido constante para simular um motor CC de m permanente, muito usado em bicicletas eltricas e walk machines. A seguir sero apresentadas as equaes do motor CC sob esta condio de operao. A fig. 2.1 mostra o circuito do motor CC de excitao separada.

Ia

Ra

La

If

Vf

Figura 2-1- Circuito do motor CC de excitao separada

As equaes bsicas so:


E = K e m V = E + Ra I a Te = K e I a

(2.1) (2.2) (2.3)

Para o motor de excitao separada considerando-se fluxo constante, tem-se:


K e = K (constante)

(2.4)

Das equaes (2.1), (2.3) e (2.4), resulta:


E = K m
Te = KI a

(2.5) (2.6)

Usando as equaes (2.2), (2.5) e (2.6), obtm-se:


m =
V Ra Ia K K

(2.7)

13
m =
V Ra Te K K2

(2.8)

De acordo com (2.8) pode-se observar que a caracterstica Velocidade x Torque do motor CC com excitao separada uma linha reta, como mostrado na fig. 2.2. Na equao (2.6), pode-se observar que o torque varia linearmente com a corrente, portanto a caracterstica Velocidade x Corrente equivalente caracterstica Velocidade x Torque. Pode-se ento ter ampla variao de torque numa pequena faixa de velocidade.

Velocidade, p.u.

Wmx Te
1

Motor CC de excitao separada

0.5

0.5

Torque, p.u.
Figura 2-2 - Caracterstica Velocidade x Torque

2.2.

Mtodos de Controle de Velocidade A relao de Velocidade x Torque para fluxo constante, equao (2.8) mostra

que a velocidade pode ser controlada de duas formas: - Controle por tenso de armadura. - Controle por resistncia de armadura. O controle por resistncia de armadura apesar de ser simples e barato, no muito utilizado, pois dissipa muita potncia e, portanto, tem baixa eficincia. mnima e existem diversas tcnicas de controle. O controle por tenso de armadura o mais utilizado, j que a dissipao de potncia

14

3. CONTROLE POR TENSO DE ARMADURA CHOPPERS


Para a aplicao pretendida, onde a fonte de potncia uma bateria, faz-se necessrio o uso de um conversor CC-CC, denominado chopper. Um chopper pode ser considerado um equivalente do transformador em corrente contnua, porm com uma variao contnua da tenso de sada. Assim como o transformador, um chopper usado para abaixar ou aumentar a tenso. Os choppers, muito usados em controle de motores CC, possibilitam um controle de acelerao suave, tm alta eficincia, rpida resposta dinmica, so leves e de tamanho reduzido, e possibilitam realizar a frenagem regenerativa mesmo em baixas velocidades. So muito usados em frenagem regenerativa de motores CC, devolvendo energia para a fonte nas freqentes paradas, e nas aceleraes foradas por agentes externos. Tambm so usados em reguladores de tenso CC (fontes chaveadas). Para o controle de motores CC em malha aberta e em malha fechada, o chopper oferece uma grande vantagem em relao aos retificadores controlados: a alta freqncia de chaveamento da tenso de sada faz com que o ripple na corrente de armadura seja pequeno, e a regio de conduo descontnua no grfico Velocidade x Torque (proporcional tenso x corrente) tambm seja muito pequena. 3.1. Chopper Abaixador (Buck) com carga RLE - Princpio de Operao O chopper abaixador, tambm conhecido como chopper classe A, produz uma tenso na sada que varia de 0 a 100% da tenso de entrada e muito usado em fontes reguladas de potncia e principalmente no controle de velocidade de motores CC. O circuito do conversor buck mostrado na fig. 3.1. Quando a chave CH est fechada (intervalo de tempo t1) a tenso Vs alimenta a carga, e a corrente I1 cresce. Quando a chave CH est aberta (intervalo de tempo t2) a tenso na carga igual a zero, e a corrente (I2) de descarga do indutor flui pelo diodo de roda-livre. A figura 3.2 mostra as formas de onda para conduo contnua. Imn e Imx so determinadas em funo do mximo ripple de corrente desejado. A Tenso mdia na sada dada por:

15
VO = 1 T

v
O

t1

dt =

t1 VS = kVS T

(3.1)

Mas tambm pode ser escrita da seguinte forma:


VO = E + R.I O (j que a tenso mdia no indutor zero)

(3.2)

Corrente mdia:
IO = IS k
IS + VS CH VO + L D + R E I

(3.3)

(a) Chopper abaixador com carga RLE I1 + L VS Modo 1 (b) Circuitos equivalentes
Figura 3-1 (a) Chopper abaixador com carga RLE. (b) Circuitos equivalentes.

I2 L D + Modo 2 R E

R + E

Mximo ripple de corrente:


I = I mx I mn
I mx =
VS 4 fL

(3.4) (3.5)

Razo cclica:
k= t1 VO = T VS

(3.6)

16

VO VS t1 0 IS = I1 I mx I mn 0 I2 I mx I mn 0 I I mx IO I mn 0
Figura 3-2 Formas de onda para conduo contnua de corrente.

T t2 kT T t

kT

kT

A razo cclica k, pode variar de 0 a 1 variando-se t1 ou T. Consequentemente, a tenso de sada Vo pode variar de 0 a VS atravs da variao de k, controlando o fluxo de potncia. Existem duas formas de variao da razo cclica k: operao com freqncia constante e operao com freqncia varivel. Freqncia constante a freqncia f (ou perodo T ) de operao do chopper mantida constante, e o tempo de chave fechada (t1) variado. A largura de pulso variada e esse tipo de controle chamado Pulse-Width-Modulation (PWM).

17 Freqncia varivel a freqncia f de operao do chopper variada, e

ambos os tempos t1 e t2 so mantidos constantes. chamada modulao por freqncia. Esse tipo de controle gera muitas harmnicas e a implementao de filtros dificultada. Neste projeto ser utilizado o mtodo de modulao por largura de pulso-PWM. 3.1.1. Normalizao: Dividindo a equao 3.2 por Vs:
Vo E R.I o = + V S VS VS

(3.7)

Onde:
Vo =k VS

V E = a ; S = IN ; IN VS R

corrente mdia de normalizao

(3.8)

Da:
Io =k a IN

(3.9)

Da equao de potncia (P=VI) e das equaes 3.8 e 3.9, a potncia mdia normalizada pode ser escrita da seguinte forma:
Po V .I = o o = k (k a) V S .I N V S .I N

(3.10)

Com base na anlise das equaes 3.7 a 3.10, conclui-se que:


a 1 ka

para funcionamento correto do circuito. Para que se tenha corrente mdia no circuito.

(3.11) (3.12) (3.13)

Portanto:
a k 1

E a potncia mdia na carga satisfaz a seguinte equao, que representada graficamente na figura 3.3:
0 Po (1 a ) V S .I N

(3.14)

18
Po/Vs.In

1,0 (1-a)

k a 1,0

Figura 3-3 Potncia mdia na carga normalizada em funo da razo cclica.

3.2.

Chopper elevador (Boost) Princpio de Operao O Chopper elevador da figura 3.4, tambm conhecido como chopper classe B

ou boost, produz na sada uma tenso que maior que a tenso de alimentao, baseado na carga e descarga do indutor L atravs do chaveamento da chave CH. As formas de onda so mostradas na figura 3.5.
IS + VS b
Figura 3-4 Chopper elevador circuito equivalente.

L ICH CH

I D D1

Io + Va _ Carga

C1

19

IS I2 IS I1 0 I CH I2 I1 0 ID I2 I1 0 VCH Vo V S 0 t1 kT t1 kT T T t1 kT T

t1 kT T

t2 T t

t2 T t

t2 T t

t2 T
Figura 3-5 Formas de onda.

Durante o intervalo de tempo t1, a chave CH est fechada e ICH = IS a corrente de magnetizao do indutor. Durante o intervalo de tempo t2, a chave CH est aberta e IS=ID a corrente que flui pelo circuito formado pelo capacitor e pela carga. Devido s caractersticas da indutncia, a tenso se eleva rapidamente no momento que a chave CH abre, e a corrente decai de acordo com uma exponencial. No instante que a chave CH estiver abrindo, a corrente da fonte IS e a corrente da carga no so iguais. Na

20 ausncia do capacitor C1, o turn-off da chave CH forar as duas correntes terem o mesmo valor, ou seja, durante o turn-off o capacitor drena essa diferena de corrente. O capacitor C1 tambm serve para reduzir o ripple de tenso na carga. O diodo D1 previne contra correntes reversas que possam vir da carga para a fonte ou para a chave CH. Para entender melhor a ao step-up (elevador), o capacitor C1 assume um valor suficientemente grande para manter constante a tenso Va na carga. A tenso mdia na carga ser dada por:
Va = VS (1 k )

(3.15)

De acordo com a equao 3.15, teoricamente a tenso de sada Va pode ser escolhida de VS at , variando k de 0 a 1. Na prtica Va pode ser controlado de VS at uma tenso muito superior a VS, e este limite mximo para a tenso Va vai depender do capacitor C1, das caractersticas da carga e do prprio chopper (chaves, diodos, etc.). A ondulao de corrente dada por:
I =

VS .t1 VS .T .k = L L

(3.16)

Uma das grandes vantagens do chopper elevador o baixo ripple na corrente da fonte. muito utilizado nos carregadores de baterias de veculos eltricos, no acionamento de motores de corrente contnua de tenso maior que a da fonte disponvel, e em freios regenerativos de veculos eltricos como carros de golfe, trolleys, bicicletas eltricas e outros. 3.3. Chopper abaixador/elevador Operao em dois quadrantes Tambm conhecido como chopper classe C, o chopper abaixador/elevador muito utilizado no controle de servo motores e nas situaes que requerem uma transio suave entre a ao motora e a frenagem, e vice-versa. Uma estrutura muito utilizada a mostrada na figura 3.6. A chave CH1 e o diodo D2 constituem um chopper abaixador (chopper classe A) que opera durante a ao motora direta. A

21 chave CH2 e o diodo D1 constituem um chopper elevador (chopper classe B) que opera durante a frenagem regenerativa direta. Portanto o chopper classe C opera em dois quadrantes: ao motora direta (+V e +I) e frenagem regenerativa direta (+V e -I). Ambos os choppers so controlados simultaneamente, de forma que o fluxo de potncia pode ser invertido suavemente. Para isso as chaves CH1 e CH2 so fechadas alternadamente. As principais formas de onda so mostradas na figura 3.7, onde tambm so mostrados os intervalos de conduo de cada chave e de cada diodo. Durante o perodo T de chaveamento, CH1 est fechada no intervalo de tempo que vai de zero a kT, e a chave CH2 est fechada no intervalo de tempo que vai de kT a T. Para que no ocorra curto-circuito, as chaves CH1 e CH2 nunca podero estar fechadas no mesmo instante, por esse motivo introduzido um atraso (delay) entre o turn-off da chave CH1 e o turn-on da chave CH2, e vice-versa.

+ -

Figura 3-6 Chopper classe C - circuito bsico

Na figura 3.7, foi desconsiderado o intervalo de tempo entre o turn-off de uma chave o turn-on da chave complementar, visto que muito pequeno para ser representado nesta figura. Os sinais de controle das chaves CH1 e CH2 so respectivamente Vc1 e Vc2 , e assumido que as chaves conduzem somente quando o sinal de controle est em nvel alto. Esta figura mostra as formas de onda para operao motora (corrente positiva), e frenagem (corrente negativa) senda esta ltima

22 causada por um aumento de velocidade do motor, por exemplo, durante um declive, o que resulta numa diminuio da razo cclica.

Vc1 T t1 0 Vc2 t2 kT T T T t3 T t

0 Ia 0

kT T

kT Vo

V S E CH1 D2 CH1 D2 D2 D1

V S E t Conduo dos diodos e das chaves

Figura 3-7 Chopper classe C formas de onda e conduo das chaves e diodos

Com relao ao chopper classe C, para este modo de controle PWM, pode-se destacar quatro pontos: 1) Neste circuito a conduo descontnua no acontece, independentemente da freqncia de operao. A circulao da corrente de roda-livre se d no momento que CH1 est desligada e o diodo D2 est conduzindo, e isto esperado no intervalo de tempo kT t T , que tambm o intervalo de tempo que a chave CH2 recebe o sinal de controle. Se a corrente Ia chegar

23 a zero no intervalo de roda livre, a fora contra-eletromotriz ir imediatamente fazer com que a corrente flua na direo reversa passando pela chave CH2. Similarmente, quando CH2 est desligada e D1 conduzindo e a corrente chegar a zero, CH1 conduzir imediatamente porque Vc1 est em nvel alto e VS > E. 2) Desde que no exista conduo descontinua, a corrente estar fluindo todo o tempo. Assim, durante o intervalo de tempo t1, a armadura estar conectada fonte atravs de CH1 ou D1, consequentemente, a tenso aplicada nos terminais do motor ser igual a Vs e a taxa de variao de Ia ser positiva porque VS > E. Similarmente, durante o intervalo de tempo t3, a armadura do motor estar conectada a CH2 ou D2, consequentemente, a tenso aplicada nos terminais do motor ser zero e a taxa de variao de Ia ser negativa. Isso explica a natureza das formas de onda de VO e Ia. 3) Durante o intervalo de tempo t1, a corrente Ia que positiva flui por CH1,e quando D1 est em conduo a corrente negativa. A corrente na fonte flui somente nesses intervalos de tempo e igual a Ia. Durante o intervalo de tempo t3, a parte da corrente Ia que positiva flui por D2 e a parte que negativa flui por CH2. 4) A partir das formas de onda da figura 3.7:
Vo = kVS

(3.21)

E da equao bsica Vo = E + Ra I a , pode-se obter:


Ia = kVS E Ra

(3.22)

A equao 3.22 pode ser expressa da seguinte forma:


I a Ra E =k VS VS

k=

( I a Ra ) + E VS

(3.23)

24 A equao 3.22 mostra que a operao motora direta ocorre quando


E E < k , e que a frenagem regenerativa ocorre quando > k . A operao VS VS

a vazio acontece quando k =

E . VS

O mximo ripple de corrente pode ser dado pela equao 3.5, e no depende da velocidade do motor. Uma mudana na velocidade para um dado valor de k, somente muda o valor da corrente e no muda o ripple. Supondo que o conversor esteja operando a vazio, ento Ia mdio ser zero e sua forma de onda ser simtrica ao eixo do tempo. Um decrscimo na velocidade causar um acrscimo na corrente e a forma de onda de Ia se deslocar para cima. Quando Ia for maior que o mximo ripple, Ia ser sempre positiva e somente D2 ou CH1 estaro conduzindo. Embora CH2 esteja recendo sinal de controle em nvel alto, CH2 no conduzir devido polarizao reversa aplicada pelo diodo D2 em conduo. Desde que o ripple seja at 5% da corrente nominal, CH2 e D1 tero que conduzir somente quando o motor estiver operando em carga baixa. Similarmente, um incremento na velocidade poder produzir uma corrente Ia negativa e a forma de onda da corrente se deslocar para baixo. Enquanto a corrente for negativa, esta estar fluindo por CH2 e D1, e ento, CH1 e D2 no tem nenhuma chance de conduzir (aps o intervalo de tempo t3 fig.3.7). A discusso precedente mostra que durante a ao motora direta a corrente flui por CH1 ou por D2, e durante a frenagem regenerativa a corrente flui por CH2 ou D1.

25

4. O ACIONAMENTO PROPOSTO
O acionamento CC-CC proposto uma implementao do chopper abaixador/elevador ou chopper classe C, sendo as chaves do tipo MOSFETs, e o controle destas, feito pelo microcontrolador PIC16F876 da microchip. O microcontrolador recebe o sinal de referncia de velocidade e os sinais dos sensores de corrente e de tenso, previamente filtrados por filtros passa - baixa, para ento, usando um controlador PI digital, comandar o chaveamento dos MOSFETs via sadas PWM do PIC, fechando assim as malhas do circuito.

4.1. O circuito simplificado


Na figura 4.1 mostrado o circuito simplificado do acionamento proposto. O capacitor C1 alisa a tenso da fonte. Os resistores R1 e R2 formam um divisor de tenso para monitorao da tenso no capacitor C1, de forma que a energia a ser transferida do motor para a fonte, durante a frenagem, possa ser dissipada pelo resistor Rd atravs do comando da chave CH3. Esta monitorao da tenso no capacitor e dissipao de potncia pelo resistor R6 se d pelo fato da no disponibilidade de uma fonte receptora para testes do conversor. No momento que a tenso comear a subir alm da tenso na fonte, o divisor de tenso formado por R1 e R2 manda um sinal analgico que equivale a uma tenso ligeiramente acima da tenso da fonte e desta forma o microcontrolador comanda o fechamento da chave CH3 via sada digital a ser amplificada pelo drive de tenso. Os MOSFETs CH1 e CH2 possuem diodos intrnsecos D1 e D2, e constituem o conversor abaixador/elevador (chopper classe C) mostrado na figura 3.6 e descrito no item 3.3. Os resistores R3 e R4 formam um divisor de tenso para leitura da tenso nos terminais do motor (sensor de velocidade), que proporciona uma boa estimativa da velocidade como mostrado na equao 2.5.

26

R8

R6 Vs
+

CH1

D1 C2

C1
+

CH3

D3

CH2

D2

M Vo CC
+

Drive de tenso FPB3

Gate drive IR2104

FPB2 PWM1 +5V Referncia de velocidade POT1 0-5V R7 FPB4 3 20 8,19 9 10 5 21 13 4 0-5V FPB1 AMPLIFICADOR

PIC16F876
2 0-5V SOMADOR

+5V

CLK

Figura 4-1 Circuito simplificado para controle do acionamento.

O resistor R5 um resistor shunt de 0,05 Ohms e 3W, que constitui o sensor de corrente. Ele produz uma queda de tenso proporcional corrente, que devidamente amplificada e filtrada, proporcionar uma boa preciso quanto leitura da corrente. O capacitor C2 filtra as altas freqncias que podem influenciar no funcionamento dos MOSFETS CH1 e CH2. O resistor R8 utilizado para fins de teste do conversor durante o desenvolvimento do prottipo, limitando a corrente que pode fluir pelos MOSFETS protegendo o circuito contra altas correntes de falta. No entanto para uma boa proteo, se faz necessrio o uso de um circuito que detecte o curto-circuito e desligue a fonte num intervalo de tempo suficientemente pequeno, para que no ocorra a queima de algum componente. Essa proteo no foi implementada neste projeto.

27

4.1.1. Drive de tenso:


O drive de tenso constitudo por um transistor BC548 pnp, funcionando em corte ou em saturao. Quando em corte o transistor aplica 15V de uma fonte externa, no gate do MOSFET CH3 e este entra em saturao. Quando em saturao, o transistor aplica 0V e o MOSFET entra em corte. Desta forma, ser necessria uma lgica invertida para comandar o MOSFET CH3. D3 o diodo intrnseco do MOSFET CH3.

4.1.2. Filtros passa-baixa (FPB):


Os filtros passa-baixa utilizados tm freqncia de corte de 1,2kHz, e so necessrios para filtrar as altas freqncias da tenso e da corrente, de forma que o microcontrolador leia apenas a componente CC.

4.1.3. Amplificador:
usado para amplificar o sinal de corrente (na forma de tenso) para um patamar compatvel com o microcontrolador, j que o sinal lido nos terminais do resistor R5 varia de zero a aproximadamente 130mV e amplificado este varia de -2,5 a +2,5V.

4.1.4. Somador:
Utilizado para somar cerca de 2,5V ao sinal de corrente, j que este pode ter valores negativos, e o microcontrolador no recebe sinais negativos. O sinal de corrente que pode variar -2,5 a +2,5V, passa a variar de 0 a 5V, que agora compatvel com o microcontrolador e passa a ser tratado em software, em que 2,5V significa que a corrente igual a zero.

4.1.5. Gate-drive IR2104:


O gate-drive utilizado para acionamento dos MOSFETS o IR2104 da International Rectifier, que comanda os dois MOSFETS de uma s vez, permitindo nesse caso especfico, gerar o segundo sinal PWM que vai comandar o

28 MOSFET CH2 a partir do PWM1 e de uma entrada shutdown que estar sempre em nvel alto. Isso se deve ao fato que o segundo PWM simplesmente o complementar do primeiro com um tempo morto introduzido entre a descida de um e a subida do outro. O tempo morto introduzido pelo gate drive IR2104 e tem um valor fixo tpico de 520ns.

4.2. O sistema de controle


O sistema de controle ser composto de uma malha interna de corrente e uma malha externa de velocidade, como mostra a figura 4.2.
mf

Ke

Ec * m + e
mf
m

Kp+Ki/s
1

I* a
Imin

Imx

I* a + eIa
-

Kp

+ V* a
Vmin

Vmx

Kc

Va

MOTOR

I af
H 2(s)

Ia

H1(s)

Figura 4-2 Diagrama de blocos

*m a referncia de velocidade e mf a velocidade medida na forma de

tenso nos terminais do motor, filtrada por um filtro passa-baixa ativo de segunda ordem H2(s). O erro de velocidade em passa por um controlador PI e produz a corrente de referncia I*a , que devidamente limitada por software. Iaf a corrente medida em forma de tenso na sada do motor atravs de um resistor shunt de alta preciso, e filtrada por um filtro passa-baixa ativo de segunda ordem H1(s). Kp2 forma um controlador proporcional, que a partir do erro de corrente eIa somado tenso de armadura calculada, produz a tenso de referncia, que devidamente limitada via software e com a qual calculada a razo cclica de operao do conversor. Kc o ganho do conversor.

29
4.3. Operao do conversor

A principal aplicao do conversor proposto o acionamento de veculos eltricos, portanto, sero apresentadas a seguir as vrias situaes de operao do conversor de acordo com a figura 4.2 e com as situaes possveis para veculos motorizados.
4.3.1 Acelerando Operao Buck
* m > m e Ia 0
* Neste caso, o erro de velocidade em ser positivo e a corrente de referncia I a

ser positiva, indicando assim operao motora direta. O erro de corrente e Ia tambm ser positivo e multiplicado por uma constante determinar a tenso de referncia a partir da qual calculada a razo cclica.
4.3.2 Velocidade de cruzeiro - Cruise control
* m = m

e Ia > 0

Nesta situao o erro de velocidade em zero e o conversor opera com razo cclica constante.
4.3.3 Desacelerando Operao Boost (frenagem)
0 < * m < m

Neste caso, a velocidade de referncia (controlada pelo usurio) trazida para um patamar inferior velocidade do motor, fazendo com que o erro de velocidade seja
* negativo. No entanto a corrente de referncia I a calculada pelo controlador PI a

princpio ser positiva, mas decresce podendo sofrer inverso, e volta a subir para ento estabilizar de acordo com a razo cclica calculada, conforme descrito em 3.3 itens 1 e 4. Isso acontece porque a velocidade varia lentamente, ao passo que a corrente varia rapidamente. A mesma situao para o conversor acontece quando h um aumento de velocidade acima da velocidade de referncia (por exemplo: descendo uma ladeira),

30 porm essa situao fisicamente distinta daquela descrita anteriormente. Neste caso no a referncia que trazida para um patamar inferior velocidade do motor, mas sim a velocidade do motor que aumenta, aumentando a fora contra-eletromotriz e invertendo o fluxo de potncia.

31

5. O SOFTWARE DE CONTROLE
O software foi implementado em linguagem de programao C, utilizando o compilador PCW C compiler IDE verso 3.32, prprio para programao de microcontroladores das famlias 16F e 18C da microchip. Para a descarga do programa .hex no microcontrolador foi utilizado o software MPLAB IDE verso 7.5 e o programador PIC START Plus. A figura 4.1 mostra o algoritmo do software implementado. Inicializao Parte do software que inicializa o PIC configurando as sadas PWM, as entradas analgicas, sada digital e o timer de interrupo, alm de zerar todas as variveis e fazer uma pr-leitura das portas analgicas. A pr-leitura analgica necessria na inicializao, pois ao inicializar o programa propriamente dito feito uma mdia dos valores analgicos lidos anteriormente com os atuais, desta forma, se no fosse feita essa pr-leitura, o primeiro valor seria irreal e esse erro se propagaria medida que fossem feitas novas leituras. Background Loop Janela de tempo do software. Neste estgio o PIC fica esperando por um timer de interrupo interna para que todo o software seja executado. Depois que o software executado, o PIC espera at a prxima interrupo para execut-lo novamente. O timer de interrupo gerado internamente no PIC e nesse caso foi configurado para 1ms, e define tambm o tempo de amostragem dos sinais, j que os sinais sero lidos uma vez a cada execuo do software. Por uma questo de simplicidade, optou-se por utilizar um nico tempo de amostragem de 1 ms para ambas as malhas corrente e velocidade. A separao dinmica foi obtida com a seleo adequada dos ganhos dos controladores. (1) (2) inicializao. (3) Clculo da tenso de armadura. Neste estgio calculada a tenso de armadura utilizando o valor da corrente de armadura lida e devidamente tratada em software, o valor da tenso nos terminais do motor e o valor de software da resistncia Leitura das variveis analgicas. Clculo da mdia. A mdia feita com os valores atuais e os valores da

execuo anterior do software, exceto na primeira execuo, como j descrito na

32 da armadura. Para realizao dos clculos foi utilizado o conceito de aritmtica fracionria. (4) Clculo da velocidade do motor. Neste estgio, o clculo da velocidade feito multiplicando-se o valor da tenso calculado anteriormente pelo inverso da constante eltrica do motor. Para realizao dos clculos foi utilizado o conceito de aritmtica fracionria. (5) (6) Clculo do erro de velocidade. a diferena entre a velocidade de Controlador PI. Faz o controle proporcional e integral da corrente a referncia (valor lido) e a velocidade calculada em (4). partir do erro de velocidade, ou seja, um controle de corrente (torque) comandado por tenso (velocidade). composto por duas partes: controle proporcional (constante Kp1 multiplicada pelo erro de velocidade) e pelo controle integral (constante Ki multiplicada pelo tempo de amostragem e pelo erro de velocidade). O controle integral acumula seu valor anterior, de forma que a segunda parcela do PI torna-se um somatrio do valor atual com os valores anteriores. (7) (8) (9) Limitao por software da corrente de armadura. Clculo do erro de corrente. Clculo da tenso de referncia da armadura. um controlador

proporcional (constante Kp2 multiplicada pelo erro de corrente e somada com a tenso de armadura calculada) utilizado para obter-se a tenso de armadura que resulte na corrente desejada. (10) (11) (12) (13) (14) Limitao da tenso de armadura por software. Clculo da razo cclica. Clculo do tempo em nvel alto do PWM. Essa a varivel necessria Habilita o PWM Teste da tenso Vs nos terminais da fonte. Caso Vs seja maior que o

para habilitar o PWM.

valor nominal, condio prevista quando ocorre a frenagem, comandado o fechamento da chave CH3 (via sada digital) dissipando desta forma a energia da frenagem no resistor R6.

33 (15) Atualizao das variveis para ser feita a mdia na execuo seguinte, e

atualizao do erro de velocidade para clculo da parte integral do controlador PI na prxima execuo.
RESET

In icializao

" B ack g ro u n d L oop"

T in t

(1 )

L er en trad as an al g icas I a , V m , *m , VS C lcu lo d a m d ia I a k , V m k , *m k , VS k

V* a k = K p .e I a + E a 2 k k

(9 )

(2 )

V* > V a m x a k N

V* = Va m x a k (1 0 )

(3 )

E a k = V m k -R a . I a k

V *a k < Va m n N d = Va . 1 V t o n= d .f C H

V* = Va m n a k

(4 )

mk

= Eak k

(1 1 )

(1 2 )

(5 )

mk

*k m

mk

A tu aliza PW M
mk

(1 3 )

(6 )

I* = K p 1.e a k

mk

8 k= 0

K i.Ta m .e

V S k > V S m x

lig a fren ag em (1 4 )

I*a k > I a m x (7 ) N I*a k < I a m n N (8 )


e I a = I* a k - I ak k

I*a k = I a m x

N
VS k < V S m n

d eslig a fren ag em

I*a k = I a m n

N A tu a liza v ariv eis (1 5 )

Figura 5-1 Algoritmo

34

6. O PROTTIPO
Na figura 6.1 so mostrados os equipamentos utilizados para a realizao de testes com o prottipo: 1 Fonte de potncia; 2 Motor ; 3 Ampermetro para medio de corrente no resistor de frenagem; 4 Placa de controle; 5 Placa de fora; 6 Ponteira de tenso isolada; 7 Ampermetro para medio de corrente na carga; 8 Mdulo ponteira de corrente; 9 Carga RL utilizada para testes iniciais; 10 Programador PICstart plus; 11 Fonte simtrica -12V +12V; 12 Osciloscpio; 13 Computador;

Figura 6-1 - Bancada com prottipo em funcionamento

35

Figura 6-2 - Prottipo 1) Placa de fora 2) Placa de controle

6.1. Formas de onda 6.1.1 Modo Buck com carga RL

Teste feito com uma carga RL, onde: R=0 a 200; L=59mH; RL=18 A tenso de alimentao da fonte de 120Vcc. No caso do conversor operando em 50% do ciclo de trabalho (figura 6.3), variou-se a carga R de 200 a 40 (do ponto de vista da rede isso significa aumentar a carga) e observou-se a corrente variando de 0,6 a 3A sem variao no ciclo de trabalho do conversor. Isso mostra que a malha de corrente no funciona nessa situao, com qualquer ganho dos controladores, pois no h regulao de corrente. No entanto, para operao prxima aos 100% do ciclo de trabalho foi possvel observar uma resposta do sistema de controle da seguinte forma: com a referncia de velocidade em 100% observou-se o ciclo de trabalho em 100% e corrente na carga em torno de 2A (carga R com aproximadamente 60 ). Ao aumentar a carga R a razo cclica diminui, e ao diminuir novamente a carga R a razo cclica aumenta novamente, tentando manter constante a corrente na carga.

36 O sistema de controle perde capacidade de resposta com aumento da carga R acima da nominal, e quando o conversor est operando em 50% do ciclo de trabalho, devido s limitaes do controlador tipo P na ausncia de fcem . Os pequenos picos de corrente e tenso durante o chaveamento se devem corrente de recuperao reversa dos diodos intrnsecos dos MOSFETS.

Figura 6-3 - Operao em modo buck ciclo de trabalho em 50% (carga RL)

37

Figura 6-4 - Operao em modo buck ciclo de trabalho em 100% (RL)

6.1.2 Modo Buck com motor operando a vazio

Motor utilizado: VN=220Vcc; IN=0,9A; Ra=40; Ivazio=0,1A; Neste teste no foi possvel realizar uma variao de carga, pela no disponibilidade de equipamento adequado para teste com este motor. O teste foi feito com o motor operando a vazio com ciclo de trabalho em 50% (figura 6.5) e 100% (figura 6.6).

38

Figura 6-5 - Operao em modo buck ciclo de trabalho em 50% (carga motor)

Figura 6-6 - Operao em modo buck ciclo de trabalho em 100% (carga motor)

39
6.1.3 Modo Boost (frenagem)

Motor utilizado: VN=220Vcc; IN=0,9A; Ra=40; Ivazio=0,1A; Neste caso, o motor estava operando no modo buck com ciclo de trabalho em 100%, quando a referncia de velocidade trazida para prximo de zero. A figura 6.7 mostra a forma de onda obtida. No canal 1 mostrada a tenso no capacitor de entrada e o canal 2 mostra a corrente no motor. A forma de onda no alto da figura no canal 1 (tenso). Pode-se observar uma pequena variao da tenso no capacitor de entrada de 120Vcc para cerca de 125Vcc instantaneamente. Tambm pode-se observar a corrente negativa no motor em aproximadamente 0,5A. Os resultados obtidos com este teste foram satisfatrios, visto que uma variao de carga era impraticvel, e que o conversor foi projetado para operar com um motor de 120Vcc, IN=2,8A e Ra=3.

Figura 6-7 - Operao em modo boost frenagem

40

7. CONCLUSO
Os testes realizados no laboratrio de mquinas com o motor para o qual o prottipo foi projetado, no foram bem sucedidos pois existe alguma interferncia somente no laboratrio de mquinas. Os testes no LEPAC foram muito bons, mostrando o funcionamento do conversor buck durante a ao motora direta, e do conversor boost durante a frenagem regenerativa direta. Apenas foi possvel a realizao de testes com o motor operando a vazio e metade de sua velocidade nominal. Para operao do conversor no modo buck com carga RL e ciclo de trabalho em 50%, variou-se a carga e a razo cclica no variou, mostrando que para esta situao o sistema de controle no responde. No entanto, para operao prxima aos 100% do ciclo de trabalho foi possvel observar uma resposta do sistema conforme 6.1.1. No era de se esperar que houvesse uma boa resposta com carga RL, j que o conversor proposto para acionamento de um motor (carga RLE). Para testes do conversor em modo boost, a referncia de velocidade foi levada a 100% (com o motor operando a vazio) e depois de o motor estar com velocidade mxima a referncia foi trazida para prximo de zero. Desta forma observou-se uma corrente negativa fluindo do motor para a resistncia de dissipao conforme 6.1.3. Considerando a no disponibilidade de uma fonte receptora e interferncias existentes somente no laboratrio de mquinas, os resultados foram satisfatrios e so suficientes para demonstrar o funcionamento do prottipo, apenas no foi possvel fazer um ajuste fino de ganho do controlador PI e do controlador Proporcional.

41

ANEXO A
O software de controle em linguagem C que foi compilado e implementado no PIC. PARTE 1 Inicializao ("adress_v1+.h") #ifndef _ADRESSES__PIC__H__ #define _ADRESSES__PIC__H__ // Timer2 #locate TMR2=0x11 #locate T2CON=0x12 #locate PR2=0x92 // CCP1 #locate CCPR1L=0x15 #locate CCPR1H=0x16 #locate CCP1CON=0x17 // ADC #locate ADRESH=0x1E #locate ADCON0=0x1F #locate ADRESL=0x9E #locate ADCON1=0x9F #locate TXREG=0x19 #define Wait_Conversion() while(ADCON0 & 4) #define Start_Conversion() ADCON0 |= 4 unsigned int8 Vm_now, omega_mx_now, Ia_now, Vs_now; unsigned int8 Vm_ant, omega_mx_ant, Ia_ant, Vs_ant; unsigned int8 Vm_med, omega_mx_med, Ia_med, Vs_med; unsigned int8 Ia_ref, omega_m, Ia; unsigned int8 erro_omega, erro_Ia; unsigned int8 acao_proporcional, Ra_x_Ia_8, acao_integral_8; unsigned int8 Ea, Va_ref; unsigned int8 ton, Va_ref_aux; unsigned int16 Ra_x_Ia, Ia_16, Ea_16, omega_m_16, erro_Ia_16, Va_ref_16, ton_16; unsigned int16 erro_omega_16, acao_integral_16, erro_omega_ant_16; unsigned int16 acao_proporcional_16, acao_integral_ant, acao_integral, acao_integral_aux; #define POSITIVO 0

42 #define NEGATIVO 1 unsigned int8 sinais; #bit sinal_erro_omega = sinais.0 #bit sinal_erro_Ia = sinais.1 #bit sinal_Ia = sinais.2 #bit sinal_acao_integral_ant = sinais.3 #bit sinal_acao_integral = sinais.4 #bit sinal_Ia_ref = sinais.5 #define Ra 50 #define Kix 80 #define Kp1 130 #define Kp2 255 #define IA_MAX 235 //positivo #define IA_MIN 235 //negativo #define VA_MAX 255 #define VA_MIN 0 #define VS_MAX 225 #define VS_MIN 223 void Zera_Tudo() { Vm_now = 0; omega_mx_now = 0; Ia_now = 0; Vs_now = 0; Vm_ant = 0; omega_mx_ant = 0; Ia_ant = 0; Vs_ant = 0; Vm_med = 0; omega_mx_med = 0; Ia_med = 0; Vs_med = 0; omega_m = 0; acao_proporcional = 0; Ra_x_Ia_8 = 0 ; Ra_x_Ia = 0 ; Ia_16 = 0 ; Ea_16 = 0 ;

43 omega_m_16 = 0 ; erro_Ia_16 = 0 ; Va_ref_16 = 0 ; ton_16 = 0 ; erro_omega_16 = 0 ; acao_integral_16 = 0 ; erro_omega_ant_16 = 0 ; acao_proporcional_16 = 0 ; acao_integral_aux = 0; acao_integral_ant = 0; Va_ref_aux = 0; acao_integral = 0; sinal_erro_omega = POSITIVO; sinal_acao_integral_ant = POSITIVO; sinal_acao_integral = POSITIVO; sinal_Ia_ref = POSITIVO; sinal_Ia = POSITIVO; sinal_erro_Ia = POSITIVO; } void primeira_leitura() { SET_ADC_CHANNEL(0); delay_us(10); Start_Conversion(); Wait_Conversion(); Ia_ant = ADRESH >> 1; SET_ADC_CHANNEL(1); delay_us(10); Start_Conversion(); Wait_Conversion(); Vm_ant = ADRESH >> 1; SET_ADC_CHANNEL(2); delay_us(10); Start_Conversion(); Wait_Conversion(); Vs_ant = ADRESH >> 1; SET_ADC_CHANNEL(3); delay_us(10); Start_Conversion(); Wait_Conversion(); omega_mx_ant = ADRESH >> 1; } #endif //_ADRESSES__PIC__H__

PARTE 2 Programa principal // Acionamento Microcontrolado de um motor DC com frenagem regenerativa

44 #include <16F876A.h> #fuses HS,NOWDT,NOPROTECT,NOBROWNOUT #use delay(clock=20000000) #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, BRGH1OK) //Jumpers: 8to11, 7to12 #include "adress_v1+.h" #define RESOLUTION 128 int8 ciclos=0; main() { setup_ccp1(CCP_PWM); // Configure CCP1 as a PWM. The cycle time will be // (1/clock)*4*TMR2*(PR2+1).In this program // clock=20MHz and PR2=63(below) 63=003Fh. For the // possible selections the cycle time is: // (1/20000000)*4*1*256=51,2us or 19,531kHz // (1/20000000)*4*4*127=us or 9,692kHz ************ setup_timer_2(T2_DIV_BY_4, RESOLUTION, 1); setup_ADC_ports (RA0_RA1_RA3_ANALOG); // RA2 tambem setup_ADC (ADC_CLOCK_INTERNAL); set_tris_b(0); output_high(pin_b0); // inciar com frenagem desligada Zera_Tudo(); primeira_leitura(); set_pwm1_duty(0); setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); enable_interrupts(INT_TIMER1); enable_interrupts(GLOBAL); while(1) { } } #INT_TIMER1 //timer de interrupo em 1ms void timer1_isr() { set_timer1(64910); // Nint = 5.000.000 / (1/Tint) / 8 // ciclos_T1 = 65535 - Nint // set_timer1(ciclos_T1) output_high(pin_b7); // para ver a janela de tempo

45 // LEITURAS DAS VARIVEIS ATUAIS SET_ADC_CHANNEL(0); delay_us(10); Start_Conversion(); Wait_Conversion(); Ia_now = ADRESH >> 1; SET_ADC_CHANNEL(1); delay_us(10); Start_Conversion(); Wait_Conversion(); Vm_now = ADRESH >> 1; SET_ADC_CHANNEL(2); delay_us(10); Start_Conversion(); Wait_Conversion(); Vs_now = ADRESH >> 1; SET_ADC_CHANNEL(3); delay_us(10); Start_Conversion(); Wait_Conversion(); omega_mx_now = ADRESH >> 1; // Clculo da mdia Ia_med = Ia_ant + Ia_now; Vm_med = Vm_ant + Vm_now; Vs_med = Vs_ant + Vs_now; omega_mx_med = omega_mx_ant + omega_mx_now; // ACERTO DA CORRENTE if (Ia_med >= 130) { Ia = Ia_med - 130; sinal_Ia = POSITIVO; } else { Ia = 130 - Ia_med; sinal_Ia = NEGATIVO; } // CLCULO DA TENSO DE ARMADURA Ia_16 = (int16) Ia; // Casting (mudana de tipo) Ra_x_Ia = Ia_16*Ra; Ra_x_Ia = Ra_x_Ia >> 8; Ra_x_Ia_8 = (int8) Ra_x_Ia; // Casting if (sinal_Ia == POSITIVO) { if (Vm_med >= Ra_x_Ia_8) { Ea = Vm_med - Ra_x_Ia_8; }

46 else { Ea=5; } } else { Ea=255; } // CLCULO DA VELOCIDADE DO MOTOR omega_m = Ea; // CLCULO DO ERRO DA VELOCIDADE DO MOTOR if (omega_mx_med >= omega_m) { erro_omega = omega_mx_med - omega_m; sinal_erro_omega = POSITIVO; } else { erro_omega = omega_m - omega_mx_med; sinal_erro_omega = NEGATIVO; } // CONTROLE PROPORCIONAL E INTEGRAL //proporcional erro_omega_16 = (int16) erro_omega; acao_proporcional_16 = erro_omega_16 * Kp1; acao_proporcional_16 = acao_proporcional_16 >> 8 ; acao_proporcional = (int8) acao_proporcional_16; acao_integral_16 = erro_omega_16 * Kix; // aao integral // sinal de erro_omega = sinal de acao_integral_16

if ((sinal_erro_omega == POSITIVO) && (sinal_acao_integral_ant == POSITIVO)) { acao_integral = acao_integral_ant + acao_integral_16; sinal_acao_integral = POSITIVO; //Teste de overflow positivo if ((acao_integral < acao_integral_ant) || (acao_integral < acao_integral_16))

47 { acao_integral = 65535; } } if ((sinal_erro_omega == POSITIVO) && (sinal_acao_integral_ant == NEGATIVO)) { if (acao_integral_16 >= acao_integral_ant) { acao_integral = acao_integral_16 - acao_integral_ant; sinal_acao_integral = POSITIVO; } else { acao_integral = acao_integral_ant - acao_integral_16; sinal_acao_integral = NEGATIVO; } } if ((sinal_erro_omega == NEGATIVO) && (sinal_acao_integral_ant == POSITIVO)) { if (acao_integral_16 <= acao_integral_ant) { acao_integral = acao_integral_ant - acao_integral_16; sinal_acao_integral = POSITIVO; } else { acao_integral = acao_integral_16 - acao_integral_ant; sinal_acao_integral = NEGATIVO; } } if ((sinal_erro_omega == NEGATIVO) && (sinal_acao_integral_ant == NEGATIVO)) { acao_integral = acao_integral_ant + acao_integral_16; sinal_acao_integral = NEGATIVO; //Teste de overflow positivo if ((acao_integral < acao_integral_ant) || (acao_integral < acao_integral_16)) { acao_integral = 65535;

48 } } acao_integral_aux = acao_integral >> 8; acao_integral_8 = (int8) acao_integral_aux; sinal_acao_integral_ant = sinal_acao_integral; acao_integral_ant = acao_integral; //PI Ia_ref = acao_integral + acao_proporcional // sinal de erro_omega = sinal_acao_proporcional

if ((sinal_acao_integral == POSITIVO) && (sinal_erro_omega == POSITIVO)) { Ia_ref = acao_integral_8 + acao_proporcional; sinal_Ia_ref = POSITIVO; //Teste de overflow positivo if ((Ia_ref < acao_integral_8) || (Ia_ref < acao_proporcional)) { Ia_ref = 255; } } if ((sinal_acao_integral == POSITIVO) && (sinal_erro_omega == NEGATIVO)) { if (acao_integral_8 >= acao_proporcional) { Ia_ref = acao_integral_8 - acao_proporcional; sinal_Ia_ref = POSITIVO; } else { Ia_ref = acao_proporcional - acao_integral_8; sinal_Ia_ref = NEGATIVO; } } if ((sinal_acao_integral == NEGATIVO) && (sinal_erro_omega == POSITIVO))

49 { if (acao_integral_8 <= acao_proporcional) { Ia_ref = acao_proporcional - acao_integral_8; sinal_Ia_ref = POSITIVO; } else { Ia_ref = acao_integral_8 - acao_proporcional; sinal_Ia_ref = NEGATIVO; } } if ((sinal_acao_integral == NEGATIVO) && (sinal_erro_omega == NEGATIVO)) { Ia_ref = acao_integral_8 + acao_proporcional; sinal_Ia_ref = NEGATIVO; //Teste de overflow positivo if ((Ia_ref < acao_integral_8) || (Ia_ref < acao_proporcional)) { Ia_ref = 255; } } Ia_ref = Ia_ref >> 1; //PI erro_omega_16 = (int16) erro_omega; acao_integral_16 = erro_omega_16 * Kix; acao_integral_16 = acao_integral_16 >> 8 ; acao_integral = (int8)acao_integral_16; erro_omega_ant_16 = (int16) erro_omega_ant; acao_proporcional_16 = erro_omega_ant_16 * Kp1; acao_proporcional_16 = acao_proporcional_16 >> 8 ; acao_proporcional = (int8) acao_proporcional_16; Ia_ref = Ia_acumulado; // Clculo da ao INTEGRAL if (sinal_erro_omega == POSITIVO) { Ia_ref_aux = Ia_ref + acao_integral;

50 //Teste de overflow positivo if ((Ia_ref_aux < Ia_ref) || (Ia_ref_aux < acao_integral)) Ia_ref_aux = 255; } else // sinal negativo { Ia_ref_aux = Ia_ref - acao_integral; //Teste de overflow negativo if ((Ia_ref_aux > Ia_ref) || (Ia_ref_aux > acao_integral)) Ia_ref_aux = 0; } Ia_ref = Ia_ref_aux; // Clculo da acao PROPORCIONAL if (sinal_erro_omega_ant == POSITIVO) { Ia_ref_aux = Ia_ref - acao_proporcional; //Teste de overflow negativo if ((Ia_ref_aux > Ia_ref) || (Ia_ref_aux > acao_proporcional)) Ia_ref_aux = 0; } else // sinal negativo { Ia_ref_aux = Ia_ref + acao_proporcional; //Teste de overflow positivo if ((Ia_ref_aux < Ia_ref) || (Ia_ref_aux < acao_proporcional)) Ia_ref_aux = 255; } Ia_ref = Ia_ref_aux; // LIMITADOR DA CORRENTE DE REFERNCIA DA ARMADURA if (Ia_ref > IA_MAX) Ia_ref = IA_MAX; // if (Ia_ref < IA_MIN) Ia_ref = IA_MIN; // CLCULO DO ERRO DA CORRENTE DE ARMADURA if ((sinal_Ia == POSITIVO) && (sinal_Ia_ref == POSITIVO)) { if (Ia_ref >= Ia) { erro_Ia = Ia_ref - Ia; sinal_erro_Ia = POSITIVO; }

51 else { erro_Ia = Ia - Ia_ref; sinal_erro_Ia = NEGATIVO; } } if ((sinal_Ia == NEGATIVO) && (sinal_Ia_ref == NEGATIVO)) { if (Ia_ref <= Ia) { erro_Ia = Ia - Ia_ref; sinal_erro_Ia = POSITIVO; } else { erro_Ia = Ia_ref - Ia; sinal_erro_Ia = NEGATIVO; } } if ((sinal_Ia == POSITIVO) && (sinal_Ia_ref == NEGATIVO)) { erro_Ia = Ia_ref + Ia; sinal_erro_Ia = NEGATIVO; //Teste de overflow positivo if ((erro_Ia < Ia) || (erro_Ia < Ia_ref)) { erro_Ia = 255; } } if ((sinal_Ia == NEGATIVO) && (sinal_Ia_ref == POSITIVO)) { erro_Ia = Ia_ref + Ia; sinal_erro_Ia = POSITIVO; //Teste de overflow positivo if ((erro_Ia < Ia) || (erro_Ia < Ia_ref)) { erro_Ia = 255; } } // CLCULO DA TENSO DE REFERNCIA DA ARMADURA erro_Ia_16 = (int16) erro_Ia; Va_ref_16 = (Kp2 * erro_Ia_16);

52 Va_ref_16 = Va_ref_16 >> 8; Va_ref_aux = (int8) Va_ref_16; if (sinal_erro_Ia == POSITIVO) //sinal_erro_Ia = sinal_Va_ref_aux { Va_ref = Va_ref_aux + Ea; //Teste de overflow positivo if ((Va_ref < Va_ref_aux) || (Va_ref < Ea)) { Va_ref = 255; } } if (sinal_erro_Ia == NEGATIVO) { if (Ea >= Va_ref_aux) { Va_ref = Ea - Va_ref_aux; } else { Va_ref = 0; } } // LIMITADOR DA TENSO DE REFERNCIA DA ARMADURA if (Va_ref > VA_MAX) Va_ref = VA_MAX; if (Va_ref < VA_MIN) Va_ref = VA_MIN; // ATUALIZA PWM ton = Va_ref >> 1; //Alternativa mais rpida if (ton > 127) ton=127; set_pwm1_duty(ton); // FRENAGEM if (Vs_med > VS_MAX) output_low(pin_b0); if (Vs_med < VS_MIN) output_high(pin_b0); // ATUALIZA VALORES ANTERIORES Ia_ant = Ia_med >> 1; Vm_ant = Vm_med >> 1; Vs_ant = Vs_med >> 1; omega_mx_ant = omega_mx_med >> 1; output_low(pin_b7); // para ver a janela de tempo }

53

ANEXO B
Esquemtico feito no software Eagle 4.11 para roteamento das trilhas e confeco da placa de circuito impresso (somente para a placa de controle).

54

ANEXO C
Trilhas roteadas pelo Eagle 4.11 placa de controle.

Trilhas Lado dos componentes (lado de cima)

55

Trilhas Lado das soldas (lado de baixo)

56

REFERNCIAS BIBLIOGRFICAS
[1] [2] DUBEY, Gopal K. Power Semiconductor Controlled Drives. Prentice-Hall International. U.S.A. MOHAN, Ned UNDELAND Tore M. ROBBINS Willian P. Power
electronics, Converters, Applications and Design, 2 ed. John Willey & Sons,

Inc. U.S.A, 1995. [3] [4] [5] [6] BERLIN, Howard M. OP-Amp Circuits and principles. 1 ed. SAMS, U.S.A, 1991. BARBI, Ivo Apostila do professor BOSE B. K. Introduction to Microcomputer Control. General Electric Company MICROCHIP Datasheet microcontrolador PIC16F87X - [on line]. Disponvel em URL: http://www.microchip.com/. [capturado em outubro de 2006]. [7] [8] [9] MICROCHIP Datasheet gate drive IR2104 [on line]. Disponvel em URL: http://www.microchip.com/. [capturado em outubro de 2006]. KOSOW, Irving L. Mquinas Eltricas e Transformadores. 8 ed. Globo. So Paulo, 1989. UNIVERSIDADE FEDERAL DO ESPRITO SANTO. Biblioteca Central.
Normalizao e apresentao de trabalhos cientficos e acadmicos:guia para alunos, professores e pesquisadores da UFES. 2. ed. Vitria, 1997.

[10]

UNIVERSIDADE FEDERAL DO ESPRITO SANTO. Biblioteca Central.


Guia para normalizao de referncias bibliogrficas: NBR 6023. 2. ed.

Vitria, 1997.