You are on page 1of 59

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Projeto, Montagem e Caracterizao de Motor Linear de Im Permanente


ES952 Trabalho de Graduao II
Fevereiro de 2009

Orientador: Prof. Dr. Luiz Otvio Saraiva Ferreira DMC/FEM/UNICAMP Aluno: Hugo Sakai Idagawa RA: 024034

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Agradecimentos:

Agradeo ao meu orientador, Prof. Dr. Luiz Otvio Saraiva Ferreira, que me guiou ao longo do desenvolvimento deste trabalho.

Ao Prof. Dr. Pablo Siqueira Meirelles pela sua co-orientao neste trabalho. Ao Geraldo Paladini Salustiano pela construo do prottipo do motor linear. Ao Marclio Messias da Silveira pela ajuda durante a confeco da eletrnica do motor.

Aos meus colegas do Laboratrio do Departamento de Mecnica Computacional (FEM UNICAMP) pelos diversos momentos de descontrao.

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

RESUMO:
Em diversas aplicaes de engenharia necessrio o uso de movimento linear, assim o uso de um motor linear nesses casos oferece a perspectiva de simplificao do projeto em relao aos sistemas acionados com motores rotativos, devido inexistncia de um sistema de converso do movimento rotativo em linear (engrenagens, correias, etc). Nesse contexto foi realizado esse trabalho que teve como objetivo o projeto e a caracterizao de um motor linear, baseado no modelo desenvolvido pela Philips. Esse tipo de motor possui um projeto de montagem bastante simples e adequado para aplicaes que no excedam os 500mm. Palavras-chave: motor linear, movimento linear, motor Philips

ii

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Sumrio
Lista de Figuras................................................................................................................v Lista de Tabelas..............................................................................................................vi 1. Introduo....................................................................................................................1 2. Apresentao do motor................................................................................................5 2.1. Desempenho e limitaes....................................................................................5 2.2. Modelo eletromagntico.......................................................................................5 2.2.1. Campo magntico efetivo.............................................................................7 2.2.2. Campo nos ncleos de ferro........................................................................8 2.3. Modelo mecnico..................................................................................................9 3. Projeto do motor........................................................................................................10 3.1. Dimensionamento do enrolamento:....................................................................11 3.2. Clculo do campo efetivo BE:.............................................................................12 3.3. Clculo da corrente mxima Imx:.....................................................................13 3.4. Clculo da fora de trao do motor:..................................................................13 4. Bancada de Testes....................................................................................................15 4.1. Controle e Comando...........................................................................................15 4.2. Acionamento.......................................................................................................15 4.3. Aquisio............................................................................................................15 5. Mtodos Experimentais.............................................................................................17 5.1. Caracterizao eltrica.......................................................................................17 5.2. Caracterizao eletromagntica.........................................................................17 5.3. Caracterizao mecnica...................................................................................18 6. Resultados.................................................................................................................19 6.1. Propriedades eltricas........................................................................................19 6.2. Propriedades eletromagnticas..........................................................................20 6.3. Propriedades mecnicas....................................................................................21 6.4. Modelos finais.....................................................................................................23

iii

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO 7. Aplicao...................................................................................................................24 8. Concluses................................................................................................................25 9. Referncias Bibliogrficas.........................................................................................26 10.Apndices.................................................................................................................27 11.Anexo........................................................................................................................52

iv

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Lista de Figuras
Figura 1: Ilustrao do processo "imaginrio" de obteno de um motor linear..............1 Figura 2: Classificao dos motores lineares segundo a sua fonte de excitao............2 Figura 3: Classificao dos motores lineares segundo a sua geometria.........................3 Figura 4: Diagrama esquemtico do motor linear da Philips............................................4 Figura 5: Circuito eltrico equivalente do motor...............................................................5 Figura 6: Representao dos campo magnticos do motor. Fonte [6]............................6 Figura 7: Visualizao dos campos considerados no modelo do motor. Fonte [6]..........8 Figura 8: Diagrama de foras agindo sobre o motor........................................................9 Figura 9: Estrutura do motor linear................................................................................10 Figura 10: Disposio do enrolamento..........................................................................11 Figura 11: Prottipo do motor linear...............................................................................14 Figura 12: Motor linear com sua instrumentao: (1) Encoder, (2) Ponte H, (3) PIC....16 Figura 13: Medidas experimentais para determinar Ra e reta de ajuste.......................19 Figura 14: Curvas de decaimento da tenso sobre Rs, para determinao de La........20 Figura 15: Visualizao das linhas de campo para diferentes posies do cursor........20 Figura 16: Curva do motor deslocando-se a uma velocidade constante de 348 mm/s..21 Figura 17: Dados experimentais para a determinao da massa do cursor..................22 Figura 18: Resposta em malha fechada do sistema, sem controlador (esquerda) e com controlador, Kp=6 (direita).............................................................................................24

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Lista de Tabelas
Tabela 1: Dimenses do motor linear............................................................................11 Tabela 2: Enrolamento e caractersticas dos fios..........................................................12 Tabela 3: Propriedades dos ms..................................................................................12 Tabela 4: Corrente mxima (Imx) para cada enrolamento...........................................13 Tabela 5: Fora de trao resultante.............................................................................14

vi

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Captulo 1

Introduo
Em diversas aplicaes de engenharia necessrio utilizar-se de diferentes tipos de acionamentos (hidrulicos, pneumticos e eltricos) para produzir movimento o qual ser empregado para realizar diferentes tarefas, como o posicionamento de peas e o transporte/deslocamento de cargas. Dentro desse grupo de acionamentos esto os acionamentos eltricos, onde se encontram as mquinas eltricas que so dispositivos capazes de converter energia eltrica em energia mecnica (motores) ou vice-versa (geradores). Assim como os diferentes tipos de acionamento, os motores tambm podem ser classificados em dois grupos com base no tipo de movimento que produzem: os motores rotativos e os motores lineares, que so o foco de estudo desse trabalho. Os motores lineares pertencem ao grupo de mquinas eltricas que convertem diretamente a energia eltrica em energia mecnica sob a forma de movimento de translao. Assim, diferentemente dos motores rotativos, os motores lineares so capazes de produzir um movimento linear, sem a necessidade de acoplamentos mecnicos como correias ou conjuntos de engrenagens, o que resulta em maior preciso, maior acelerao e maior repetibilidade no posicionamento de sua parte mvel. Alm disso, ao reduzir o nmero de partes mveis no sistema, menos peas sofrero desgaste e, conseqentemente, menos tempo de manuteno ser necessrio. Apesar de serem menos comuns que os motores rotativos, os motores lineares esto sendo utilizados para vrias aplicaes como na propulso de trens Maglev [1], posicionamento de peas em linhas de fabricao e em mquinas CNC. Um motor linear pode ser visto com um motor rotativo tradicional que teve o seu estator cortado radialmente e depois desenrolado (Figura 1). A parte mvel normalmente conhecida como cursor (forcer) ou secundrio (no caso de motores lineares de induo) e a parte fixa chamada de pista ou primrio (tambm para o caso de motores lineares de induo).

Figura 1: Ilustrao do processo "imaginrio" de obteno de um motor linear

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO O funcionamento desses motores semelhante ao dos motores rotativos, no qual uma fora eletromagntica decorrente da interao entre a corrente no enrolamento do motor e um campo magntico produz o deslocamento do cursor. Dessa forma, a fora e a velocidade de deslocamento que o motor produz podem ser consideradas como fatores de desempenho para esse tipo de motor. Atualmente existem motores lineares com diferentes estruturas e tecnologias de construo [2, 3, 4], cada uma visando atender requisitos de desempenho diferentes. Apesar dessa grande variedade, possvel classificar os motores lineares segundo duas caractersticas: a sua fonte de excitao e a sua geometria [5]. Segundo sua fonte de excitao, os motores lineares podem ser divididos em trs grandes grupo: motores lineares de induo (ou assncronos), motores lineares sncronos e motores lineares DC, sendo que esses ltimos ainda podem ser subdivididos em motores DC com escova, sem escova e de passo (Figura 2).

Motor Linear

Induo

Sncrono

DC

Com escova

Sem escova

Passo

Figura 2: Classificao dos motores lineares segundo a sua fonte de excitao Os motores lineares de induo funcionam pelo mesmo princpio da gaiola de esquilo dos motores rotativos de induo: um campo magntico produzido pelo primrio do motor ir induzir correntes no seu secundrio. A interao desse campo com as correntes provocar o aparecimento de uma fora no sentido de propagao do campo magntico, que impulsionar o motor para frente. Esse tipo de motor apresenta alta velocidade de deslocamento e fora de trao praticamente constante ao longo de todo o seu curso, porm no ideal onde o posicionamento seja um requisito essencial do projeto. Para os outros dois motores, a excitao ocorre por uma fonte independente como ms permanentes ou bobinas. A diferena entre um motor sncrono e um DC a forma de onda de sua fonte de alimentao: o primeiro apresenta uma forma de senoidal (fonte AC), enquanto o segundo uma forma de onda quadrada (fonte DC). Dentre os motores DC, os motores com escova possuem bom desempenho em termos de fora e velocidade, alm de no necessitarem de dispositivos externos para serem operados, devido utilizao de escovas para realizar a comutao de seus 2

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO enrolamentos. A grande desvantagem desse motor o seu custo de construo e manuteno, pois os enrolamentos devem percorrer todo o curso do motor e suas escovas sofrem desgaste durante a operao. J os motores sem escova apresentam as mesmas caractersticas de desempenho que os motores lineares com escova, porm utilizam-se de uma eletrnica externa para realizar a comutao dos enrolamentos, o que aumenta a confiabilidade do sistema. O ltimo tipo de motor linear DC o motor linear DC de passo, o qual ideal para aplicaes onde uma alta resoluo no deslocamento seja necessria e onde deseja-se tambm o controle de posicionamento em malha aberta; porm esse tipo de motor possui uma limitao em sua velocidade e fora de trao, sendo indicado para deslocar pequenas cargas. Segundo a sua geometria, os motores lineares podem ser divididos em: planos (flat), de canal em U e tubulares. Alm disso, os motores planos e os de canal em U ainda podem ser divididos de acordo com a construo de seus cursores em: slotless ironless (ou aircore), slotless iron e slotted iron [5] (Figura 3).

Motor Linear

Tubular

Canal em U

Plano

Slotless ironless

Slotless iron

Slotted iron

Figura 3: Classificao dos motores lineares segundo a sua geometria Cada uma das configuraes acima foi desenvolvida com o objetivo de prover diferentes condies de desempenho (velocidade, acelerao, fora, suavidade no movimento, preciso no posicionamento, etc), tornando-se necessrio, assim, fazer um estudo mais aprofundado para se realizar a escolha do motor adequado para cada tipo de aplicao. Um outro tipo de motor linear desenvolvido nos laboratrios da Philips foi proposto por L. Honds e K.H. Meyer [6], em 1982, cuja configurao est esquematizada pela Figura 4. A grande vantagem desse motor a sua construo extremamente simples: sua pista de deslocamento formada por trs ncleos de ferro, o qual somente o ncleo central possui um enrolamento, e o seu cursor constitudo por dois ms permanentes cada um localizado entre dois ncleos de ferro. Neste motor o ncleo de ferro central possui duas vezes a largura dos ncleos externos, garantindo assim, que a densidade de fluxo magntico seja igual nos trs ncleos. 3

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

A ncleos de ferro B ms permanentes C enrolamento de cobre B A A A

Figura 4: Diagrama esquemtico do motor linear da Philips Com base no trabalho desenvolvido por L. Honds e K.H. Meyer, ser construdo um prottipo desse motor, o qual passar por uma srie de testes com o objetivo de caracteriz-lo e validar, assim, o seu modelo matemtico.

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Captulo 2

Apresentao do motor
Neste captulo sero discutidas as principais caractersticas do motor, suas limitaes e os fatores que podem influenciar no seu desempenho. Alm disso, sero apresentados os modelos eletromagntico e mecnico, que sero utilizados no dimensionamento e caracterizao do prottipo do motor.

2.1. Desempenho e limitaes


O projeto desse motor visa garantir uma fora de trao constante ao longo de todo o seu curso e um deslocamento do cursor bastante suave. Em razo do enrolamento estar presente no ncleo central, no h necessidade de se fornecer corrente s partes mveis, o que simplifica ainda mais a sua fabricao. Embora esse motor no tenha um limite terico para o seu curso mximo, na prtica ele no adequado para aplicaes cujo curso total exceda 500 mm, pois as suas dimenses e peso tornam a sua fabricao economicamente invivel.

2.2. Modelo eletromagntico


Da mesma forma que nos motores rotativos, pode-se simplificar o modelo eltrico do motor como sendo um circuito formado por uma resistncia (Ra), uma indutncia (La) e uma fora contra-eletromotriz (Fcem) em srie (Figura 5).

Figura 5: Circuito eltrico equivalente do motor O comportamento do circuito acima pode ser descrito pela Equao 1 abaixo, a qual relaciona a tenso de entrada com os parmetros Ra, La e Fcem. Da mesma forma que nos motores rotativos, espera-se que a fora contra-eletromotriz do motor linear seja uma funo das velocidade de deslocamento do seu cursor.

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO V t =Ra i t L a di t F cem (1) dt

O circuito eltrico apresentado anteriormente importante pois a partir dele podese calcular a corrente que circula pelo motor e a sua constante de tempo eltrica. Esses dois parmetros so teis no dimensionamento da eletrnica que ser utilizada para acionar o motor. Alm do circuito eltrico equivalente do motor, necessrio conhecer o seu modelo eletromagntico, pois atravs dele que ser possvel calcular a fora produzida pelo motor em funo da corrente que circula por seu enrolamento e da interao dos campos dos ms permanentes. Essa relao obtida aplicando-se o princpio da Fora de Lorentz (Equao 2) na regio do campo magntico efetivo (BE) do motor (Figura 6). dF =I dl B (2)

Figura 6: Representao dos campo magnticos do motor. Fonte [6] Ao aplicar a Equao 2, algumas simplificaes no modelo foram consideradas, como a no influncia do campo disperso (BGE) e do campo de retorno (BG) sobre a fora resultante. Aps essas simplificaes, a equao final para o clculo da fora ser dado pela Equao 3 a seguir:

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

F=

lm wIB E b (3) l

onde: lm = comprimento dos ms [m] l = metade do comprimento total do motor [m] w = nmero de espiras no enrolamento I = corrente no enrolamento [A] BE = campo magntico efetivo [T] b = altura dos ncleos de ferro [m] A partir da Equao 3, observa-se que a fora resultante pode ser facilmente obtida a partir dos parmetros construtivos do prprio motor. Um ltimo parmetro necessrio para o clculo da fora sobre os ms o do campo magntico efetivo (BE), o qual deve ser assumido constante por todo o curso do motor para que a fora de trao tambm seja constante durante deslocamento de seu cursor.

2.2.1.

Campo magntico efetivo

De forma semelhante ao clculo da fora resultante do motor, algumas simplificaes foram levadas em considerao, pois considerou-se apenas a influncia dos campos uniformes gerados pelos ims permanentes e entre os ncleos de ferro para o clculo do campo magntico efetivo BE. Sob essas condies, o campo BE ser dado pela Equao 4 abaixo:

B E=

Br (4) 1 1 M 1 G E

onde: Br = campo remanente do m [T] G = permeabilidade do fluxo de retorno [Wb/A] E = permeabilidade do espaamento entre os ms e o ncleo central [Wb/A] M = permeabilidade do fluxo dentro dos ms [Wb/A] O valor das permeabilidades magnticas G, E e M so obtidas a partir das equaes abaixo:

G =

Br l m b 0 r l m b 0 r 2 l b (5) ; E = (6) ; M = .. (7) E Hc dm

onde: 0 = permeabilidade do vcuo (4.10-7 H/m) r = permeabilidade relativa do meio = distncia entre ferros [m] E = distncia entre os ms e o ncleo central [m] 7

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO Br = campo remanente do m [T] l = metade do comprimento total do motor [m] lm = comprimento dos ms [m] b = altura das barras de ferro [m] HC* = campo coercitivo aparente [kA/m] dm = espesura dos ms [m]

Figura 7: Visualizao dos campos considerados no modelo do motor. Fonte [6]

2.2.2.

Campo nos ncleos de ferro

Apesar do campo magntico existente nos ncleos de ferro no influenciar diretamente na fora que o motor ir proporcionar, o seu conhecimento importante para se calcular a corrente mxima (Imx) nos enrolamentos que ir fazer com que os ncleos atinjam a saturao magntica. A partir desse ponto, um aumento da corrente no motor no ser acompanhado por um igual aumento no campo magntico efetivo e, conseqentemente, no resultar em um aumento da fora do motor. O campo induzido total nos ncleos de ferro (BT) igual soma da induo devida aos ms (Bc) com a induo devida ao enrolamento (BI) e pode ser obtido aplicando-se a Equao 8 abaixo:

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

B T = B C B I =

lm w I l 0 (8) BE a 4a

onde: lm = comprimento dos ms [m] BE = induo magntica efetiva [T] a = largura dos ncleos de ferro [m] w = nmero de espiras no enrolamento I = corrente no enrolamento [A] l = metade do comprimento total do motor [m] 0 = permeabilidade do vcuo (4.10-7 H/m) = distncia entre os ncleos de ferro [m]

2.3. Modelo mecnico


Mecanicamente, o motor foi modelado como uma massa (cursor) submetida a uma fora de trao F e a uma fora de atrito, a qual foi considerada proporcional velocidade de movimentao do cursor (atrito viscoso). Sob essas condies, o movimento do cursor se resume ao movimento de um sistema massa-amortecedor (Figura 8) e pode ser representado pela Equao 9.

Figura 8: Diagrama de foras agindo sobre o motor

F motor =m

d x dx (9) 2 B dt dt

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Captulo 3

Projeto do motor
As principais caractersticas que influem no dimensionamento do motor estudado so: a fora que atua nos ms permanentes, o campo efetivo do motor e o campo nos ncleos de ferro. A Figura 9 esquematiza as principais variveis utilizadas no processo de dimensionamento do motor.

2l a BE
E

2a
dm

BE lm

Figura 9: Estrutura do motor linear Para um prottipo inicial do motor, partiu-se de ncleos de ferro com 100 mm (2l) de comprimento e utilizou-se ms de Neodmio de grau 28 (NdFeB 28). Na Tabela 1 encontram-se todas as dimenses do motor que sero utilizadas na especificao do seu enrolamento e no clculo de sua fora de trao.

10

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO Tabela 1: Dimenses do motor linear
Grandeza Largura dos ncleos laterais (a) Comprimento total dos ncleos (2l) Altura dos ms e dos ncleos (b) Espao entre ncleos () Comprimento dos ms (lm) Espessura dos ms (dm) Distncia entre os ms e o ncleo central (E) Espessura do enrolamento (dw) Valor 25 mm 100 mm 25 mm 14 mm 25 mm 8 mm 3 mm 6 mm

3.1. Dimensionamento do enrolamento:


Para se dimensionar o enrolamento do motor, deve-se especificar o nmero de espiras e o tipo de fio de cobre utilizado. Para isso, considerou-se que os fios de cobre estaro distribudos conforme a Figura 10 e, em seguida, calculou-se a rea ocupada por uma pequena regio do enrolamento:

Clculo da rea LH:

L=2 d ' d' H =h2 =d ' 1sen 60o 2 A= LH =2d ' 2 1sen60o
Atravs da Figura 10, observa-se que dentro da regio LH passam 4 fios de cobre (3 inteiros mais 2 metades), assim, possvel estimar o nmero de voltas do enrolamento 11

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO conhecendo-se a rea disponvel e o dimetro do fio de cobre. No caso do motor projetado, a rea disponvel para o enrolamento de 600 mm2 (2l *dw) e, para o dimetro do fio, utilizou-se a especificao AWG. A Tabela 2 apresenta o nmero de voltas do enrolamento para diferentes fios, juntamento com as caractersticas dos mesmos. Tabela 2: Enrolamento e caractersticas dos fios
AWG 18 17 16 15 14 13 12 Dimetro interno (mm) Dimetro externo (mm) 1,024 1,150 1,290 1,450 1,628 1,829 2,052 1,075 1,207 1,395 1,509 1,692 1,886 2,111 Corrente mx. (A) 2,5 3,2 3,7 4,8 6,0 7,5 9,5 N de voltas (w) 555 440 350 280 225 180 145

Antes de se fazer a escolha do tipo de fio, necessrio conhecer a fora resultante que cada enrolamento ir produzir e a corrente Imx que ir produzir a saturao dos ncleos de ferro.

3.2. Clculo do campo efetivo BE:


Para o clculo do campo efetivo, utilizou-se a Equao 4 e as propriedades dos ms de Neodmio apresentadas na Tabela 3. Tabela 3: Propriedades dos ms
Grandeza Campo remanente (Br) Campo coercitivo aparente (HC*) Valor 1,08 T 804 kA/m

Resultados dos clculos:

M =1,05. 10 7 Wb / A ; G =1,68 . 10 7 Wb / A ; E =1,96 . 10 7 Wb / A B E =0,50 T

12

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

3.3. Clculo da corrente mxima Imx:


No clculo da corrente mxima Imx utilizou-se a Equao 8 e considerou-se que a saturao magntica dos ncleos igual a 2,16 T (saturao magntica do ferro), obtendo-se assim, a equao abaixo:

I mx =

3698,8 (10) w

De acordo com a Equao 10 acima, a corrente mxima no enrolamento depende do nmero de espiras (w). Assim, a partir da Tabela 2 possvel determinar-se a corrente mxima para cada enrolamento possvel no motor: Tabela 4: Corrente mxima (Imx) para cada enrolamento
AWG 18 17 16 15 14 13 12 Corrente mx. suportada N de pelo fio (A) voltas (w) 2,5 3,2 3,7 4,8 6,0 7,5 9,5 555 440 350 280 225 180 145 Imx (A) 6,7 8,4 10,6 13,2 16,4 20,6 25,5

Pela Tabela 4, percebe-se que a corrente na bobina limitada pela corrente suportada pelo prprio fio e no corrente que ir provocar a saturao magntica dos ncleos. Dessa forma, a saturao magntica dos ncleos no representa um empecilho ao funcionamento do motor.

3.4. Clculo da fora de trao do motor:


Conhecendo-se o nmero de voltas no enrolamento e a corrente de alimentao, possvel calcular a fora produzida pelo motor a partir da Equao 3. A Tabela 5, apresenta os valores da fora para os diferentes enrolamentos, utilizando-se uma corrente de alimentao igual a 3A e 5A:

13

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO Tabela 5: Fora de trao resultante
AWG 18 17 16 15 14 13 12 Fora (N) p/ I = 3A --8,25 6,56 5,25 4,22 3,38 2,72 Fora (N) p/ I = 5A --------7,03 5,63 4,53

Devido fonte de alimentao ser capaz de fornecer uma corrente mxima de 6A, optou-se por projetar o motor para funcionar com uma corrente de 3A. Assim, os enrolamentos que iro resultar na maior fora de trao utilizam os fios AWG 17 e 16. Finalmente, escolheu-se o fio AWG 16 para se realizar o enrolamento, pois o mesmo capaz de suportar uma corrente mxima maior que o AWG 17, dando uma margem de segurana maior para o projeto. Durante a construo do motor, por razes tcnicas, o enrolamento no pode ser feito com a mesma configurao apresentada pela Figura 10. Entre cada camada do enrolamento, teve de ser adicionado uma fina pelcula de papel, o que reduziu o fator de empacotamento do enrolamento. No final, o enrolamento ficou com 286 espiras, reduzindo a fora do motor para 5,36N, para uma corrente de 3A.

Figura 11: Prottipo do motor linear 14

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Captulo 4

Bancada de Testes
Aps a construo do motor, procedeu-se a montagem de uma instrumentao necessria para a realizao dos ensaios no motor, a qual pode ser dividida em 3 partes: uma primeira parte responsvel pelo controle e comando do motor, uma segunda parte responsvel pelo acionamento do motor e uma ltima parte encarregada de realizar a aquisio de dados.

4.1. Controle e Comando


O elemento principal da instrumentao foi construdo a partir do microcontrolador PIC 18F452, sendo responsvel pela comunicao com todos os demais instrumentos. Ele o responsvel por requisitar a posio atual do motor para o encoder, enviar um comando de acionamento do motor para a ponte H e, finalmente, enviar essas informaes ao usurio. A comunicao do PIC com o usurio feita atravs da porta serial (RS232), podendo ser operado atravs de um programa do tipo Hyperterminal. Durante o funcionamento do motor, por ser necessrio realizar a aquisio em tempo real, o PIC foi programado para operar com um intervalo de amostragem de 8ms.

4.2. Acionamento
Para o acionamento do motor, optou-se por construir uma ponte H, a qual receberia os comandos do PIC sob a forma de um sinal PWM por dois diferentes canais, cada um permitindo que o motor se desloque para uma direo. O sinal PWM utilizado, possui um perodo de 1ms e possui uma resoluo de 10bits.

4.3. Aquisio
Para a aquisio da posio do motor, foi construdo um encoder linear a partir de um mouse ps/2. Embora exista a vantagem de se obter diretamente o valor da posio ao se utilizar o mouse, existe a dificuldade de se programar o protocolo ps/2 no PIC, alm de existir a limitao do tempo mnimo de aquisio, limitado pela velocidade desse protocolo (8ms). A leitura do encoder foi feita a partir de uma pista impressa com resoluo de 0,4mm. Alm do encoder, um gaussmetro foi utilizado para a medio dos campos 15

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO magnticos do motor.

(1)

(2)

(3)

Figura 12: Motor linear com sua instrumentao: (1) Encoder, (2) Ponte H, (3) PIC

16

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Captulo 5

Mtodos Experimentais
Neste captulo sero discutidos os mtodos empregados para a determinao das principais caractersticas eltricas, eletromagnticas e mecnicas dos motor.

5.1. Caracterizao eltrica


Utilizando-se da Equao 1, possvel determinar as constantes do modelo eltrico do motor. Ao se manter o cursor do motor preso, a fora contra-eletromotriz se reduzir a zero, eliminando-se assim, uma varivel da equao. Semelhantemente, quando o motor atingir o regime permanente, sua corrente ir se estabilizar e o termo da indutncia La tambm ir desaparecer. Dessa forma, possvel determinar Ra aplicandose uma tenso conhecida no motor e medindo-se a corrente que passa por seus enrolamentos. O valor de Ra ser dado pela relao entre a tenso e a corrente medidas. Considerando-se ainda a Equao 1 e mantendo o cursor do motor preso, o valor da indutncia ser obtido atravs da medio da resposta transiente do circuito. Para isso, adiciona-se uma resistncia Rs,de valor conhecido, em srie com o motor e mede-se a queda de tenso sobre a mesma. Com esse dado em mos, pode-se determinar graficamente a constante de tempo do motor (tempo necessrio para que a tenso caia a 37% do seu valor inicial) e assim, calcular o valor de La atravs da Equao 11 abaixo: = La (11) Ra R s

5.2. Caracterizao eletromagntica


Para a caracterizao eletromagntica do motor, ser utilizado um gaussmetro para medir os diferentes campos existentes no motor. Os campo magnticos de interesse para validar o modelo eletromagntico do motor so o campo efetivo (B E) e o campo de retorno (BG). Para esses dois campos, seus valores sero medidos com o cursor em diferentes posies e com o motor sob diferentes tenses de alimentao. Devido a inexistncia de uma instrumentao para medir a fora exercida pelo motor, o campo efetivo medido diretamente pelo gaussmetro ser utilizado para estimar a fora produzida pelo motor.

17

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

5.3. Caracterizao mecnica


Partindo-se da equao de movimento do motor (Equao 9), deve-se inicialmente determinar o coeficiente de atrito viscoso B do sistema. Para isso, deve-se colocar o motor em movimento de forma que a sua velocidade esteja constante. Assim, elimina-se o termo da acelerao e pode-se determinar esse coeficiente conhecendo-se a forma que o motor est produzindo e a sua velocidade (Equao 12). B= F motor (12) V

Com o valor do coeficiente de atrito disponvel, pode-se determinar a massa do motor pois a relao entre a massa e o coeficiente de atrito estabelece a taxa de decaimento da velocidade do cursor do motor (sistema de primeira ordem). Assim, de forma semelhante determinao da indutncia, a massa do motor obtida medindo-se a constante de tempo mecnica do motor (obtida a partir do decaimento da velocidade) e aplicando-se, em seguida, a Equao 13 abaixo: = m (13) B

18

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Captulo 6

Resultados
6.1. Propriedades eltricas
Seguindo-se o procedimento definido no captulo anterior, calculou-se Ra a partir de uma seqncia de medidas para a tenso e a corrente no motor. Em seguida realizou-se o ajuste linear dos dados, obtendo-se assim o valor de Ra a partir da inclinao da reta de ajuste (Figura 13).

Tenso (V) x Corrente (A)

Tenso (V)

Experimental Regressao linear

0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5

Corrente (A)

Figura 13: Medidas experimentais para determinar Ra e reta de ajuste. Ao realizar a regresso linear dos dados, o valor de Ra obtido foi de (1,110,04) utilizando-se um intervalo de confiana igual a 95%. ,

Da mesma forma que na determinao da resistncia do enrolamento, trs seqncias de medidas foram tomadas para a determinao de La. A diferena entre elas est na tenso de alimentao a qual foi submetido o motor (Figura 14). Nestes testes, a resistncia em srie (RS) utilizada possua um valor de 27,82 .

19

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


2.50 2.00
Tens o (V)

T axa de decaimento da T enso

4.00 3.00

Taxa de decaimento

5.00 4.00 3.00


Tenso (V)

Taxa de decaimento

1.50 1.00 0.50 0.00 0.070 0.090 0.110 0.130 0.150


Tempo ( s )
Tenso (V)

2.00 1.00 0.00 0.070 0.090 0.110 0.130


Tempo (s)

2.00 1.00 0.00 0.100 0.120 0.140 0.160 0.180 0.200


Tempo (s)

Figura 14: Curvas de decaimento da tenso sobre Rs, para determinao de La.

A partir dos dados experimentais obtidos e utilizando-se a Equao 11, o valor da indutncia do motor obtido foi de (0,2620,090) H. Durante a medio da fora contra-eletromotriz, percebeu-se que ela no possui a mesma relao que nos motores rotativos, pois ela apresentava sempre o mesmo valor de 1,0V independentemente da tenso de alimentao e da velocidade de deslocamento do motor.

6.2. Propriedades eletromagnticas


Utilizando-se o software de elementos finitos FEMM possvel realizar uma avaliao qualitativa das linhas de campo magntico, atravs da observao da densidade de linhas de campo para diferentes posies do cursor do motor (Figura 15).

Figura 15: Visualizao das linhas de campo para diferentes posies do cursor 20

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO Pela Figura 15 nota-se que existe uma concentrao muito maior de linhas de campo na regio dos ms do que no resto dos ncleos, o que valida a hiptese de que o campo de retorno (BG) tem pouca influncia sobre a fora resultante. Outra observao relevante a de que existe a mesma densidade de linhas de campo na regio do campo efetivo para diferentes posies do m, o que justifica a afirmao de que a fora de trao do motor praticamente constante ao longo de todo o seu curso. Experimentalmente, isso tambm foi comprovado ao ser realizado uma srie de medies nessas regies do campo. Para o caso do campo efetivo BE, obteve-se o valor de 0,40 T para qualquer posio do cursor, e para o campo de retorno B G, obteve-se o valor de 0,020 T, o que representa apenas 5% do valor do campo efetivo. J o valor do campo efetivo corresponde a 80% do valor terico calculado (0,50 T).

6.3. Propriedades mecnicas


Inicialmente foi determinado o valor do coeficiente de atrito viscoso do motor. Para isso o motor foi alimentado de forma que o seu cursor apresentasse um deslocamento em velocidade constante (Figura 16). Essas condies foram obtidas alimentando-se o motor com uma tenso de 2,1 V, o que produziu uma fora de 2,54 N. Em seguida, aplicou-se a Equao 12 utilizando os valores de fora e velocidade conhecidos, o que resultou em um valor de (7,30,4) Ns/m.

60 50 40
Posio (m m )

Posio (mm) x Tempo (s)

30 20 10 0 -10 0.000 0.020 0.040 0.060 0.080


T em po (s)
Experimental Curva de ajuste

0.100

0.120

0.140

0.160

Figura 16: Curva do motor deslocando-se a uma velocidade constante de 348 mm/s Para o clculo da massa do cursor, o procedimento descrito no captulo 5 no foi possvel de ser adotado em razo de o cursor parar de se deslocar muito rapidamente e, como a taxa de amostragem do encoder baixa, no houve pontos suficientes para 21

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO determinar a constante de tempo mecnica do sistema. Dessa forma, o problema foi resolvido supondo que a fora de atrito sobre o cursor era constante e igual obtida anteriormente (2,54N). Isso pode ser considerado pois, devido ao curso limitado do motor, no h tempo suficiente para que ele acelere e atinja velocidades altas para provocar uma diferena significativa da fora de atrito. Sob essa condio, o modelo do motor fica simplificado a apenas uma massa submetida a uma fora de trao. O valor da massa definido pela relao entre essa fora resultante e a sua acelerao. Para a determinao da massa do cursor, realizou-se uma srie de aquisies com o motor submetido a diferentes tenses (Figura 17). Em seguida, os dados foram ajustados por uma curva do tipo ax2, a partir da qual poderia ser obtido o valor da acelerao, bastando simplesmente realizar a derivada segunda dessa curva.

50 40
Posio (mm)

Posio (mm) x Tempo (s)

50 40
Posio (mm)

Posio (mm) x Tempo (s)

30 20 10 0 -10 0.000 0.020 0.040 0.060


Tempo (s)

30 20 10 0 -10 0.000 0.020 0.040


Tempo (s)

0.080

0.100

0.120

0.060

0.080

0.100

50 40
Posio (mm)

Posio (mm) x Tempo (s)

30 20 10 0 -10 0.000 0.010 0.020 0.030 0.040 0.050 0.060 0.070 0.080 0.090
Tempo (s)

Figura 17: Dados experimentais para a determinao da massa do cursor

A partir dos dados experimentais, foi possvel obter o valor de (0,3280,075) Kg para a massa do cursor, a qual era estimada em cerca de 0,300 Kg.

22

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

6.4. Modelos finais


Com todas as constantes do motor determinadas, possvel escrever as diferentes equaes que modelam o seu comportamento: Modelo eltrico: V =1,1i0,262 di (14) dt d2 x dx 7,3 (15) 2 dt dt

Modelo mecnico:

F =1,43i=0,328

As duas equaes acima ainda podem ser acopladas de forma a obter a relao entre a posio do cursor e a tenso de entrada. Para isso, basta aplicar a Transformada de Laplace na Equaes 14 e 15 e as igualar de forma a eliminar a varivel de corrente i. Aps essa operao, a equao resultante, sob forma de uma funo de transferncia representada pela Equao 16 abaixo: P s= x 1,43 = (16) 2 V 0,328 s 7,3 s 0,262 s1,1

A funo de transferncia acima importante pois permite que todo o sistema seja simulado levando-se em conta as suas caractersticas eletromagnticas e mecnicas, permitindo que a posio seja determinada com base no real sinal de controle do motor (a tenso entre seus terminais).

23

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Captulo 7

Aplicao
A partir da Equao 16 possvel implementar um controle de posio em malha fechada para o motor linear. Por se tratar de um sistema super-amortecido, ele estvel em malha fechada e no precisa de um controlador para seguir o sinal de referncia, conforme pode ser observado pela Figura 18. Assim, apenas um controlador proporcional (Kp) suficiente para melhorar os requisitos de desempenho do sistema controlado, como a reduo do tempo de estabilizao e a ausncia de overshoot.

Figura 18: Resposta em malha fechada do sistema, sem controlador (esquerda) e com controlador, Kp=6 (direita)

24

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Captulo 8

Concluses
Neste trabalho, foi projetado um motor linear, baseado no modelo desenvolvido pela Philips, e sua instrumentao. Em seguida, procedeu-se a sua caracterizao, que consistiu em ensaios e medies de seus campos magnticos, suas caractersticas eltricas, sua massa e seu coeficiente de atrito. Ao final dos testes, foi possvel obter um modelo que poderia ser utilizado para uma aplicao de controle de posio do motor. Apesar de a instrumentao utilizada ter sido suficiente para demonstrar o funcionamento do motor e a realizao de alguns testes de caracterizao, ela mostrouse bastante limitada para a determinao da constante mecnica do motor. Assim, seria interessante realizar uma outra srie de testes com o motor utilizando-se uma instrumentao mais adequada. Os resultados dos testes foram satisfatrios de forma que foi possvel comprovar a suposio de que a fora de trao do motor constante por todo o deslocamento do cursor e a de que o campo de retorno tem pouca influncia no clculo dessa fora.

25

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Referncias Bibliogrficas
1 2 3 4 5 6 R.J. Kaye and E. Masada, Comparison of Linear Synchronousand Induction Motors, Colorado MagLev Project 2004. H2W Technologies Inc., Linear Motors Basics, 2006. R.A.D. Oliveira, Desenho e Construo de um Motor Linear de Induo de Baixa Velocidade, Universidade Nova de Lisboa, 2000. B.C. Murphy, Design and Construction of a Precision Tubular Linear Motor and Controller, Texas A&M University, 2003. S. Chevailler, Comparative Study and Selection Criteria of Linear Motors, cole Polytechnique Fdrale de Lausanne, 2006. L. Honds and K.H. Meyer, A Linear DC Motor with Permanent Magnets, Philips tech. Rev., 40, 329-337, 1982, No. 11/12, pp. 329-337.

26

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Apndices
Desenhos de fabricao do motor linear:

27

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

28

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

29

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

30

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

31

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

32

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

33

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO Listagem do cdigo fonte do microcontrolador PIC:

#include <p18cxxx.h> #include <timers.h> #include <usart.h> #include <stdlib.h> #include <stdio.h> #include <pwm.h> #include <math.h> #include <delays.h> #pragma config WDT = OFF #pragma config OSC = XT // mudar para HS se cristal 20MHz e XT para cristal de 4MHz // Definio das portas utilizadas pelo ps/2 #define CLK_PS2 PORTDbits.RD0 #define DATA_PS2 PORTDbits.RD1 // Definio dos estados do processo principal #define MENU_INICIAL 0 #define ESPERA_COMANDO 1 #define OPCAO1 2 #define OPCAO2 3 #define OPCAO3 4 #define OPCAO4 5 #define OPCAO5 6 #define OPCAO6 7 #define TESTANDO 100 200 201 202 203

#define ENTRADA_DADOS1 #define ENTRADA_DADOS2 #define ENTRADA_DADOS3 #define ENTRADA_DADOS4

// Definico dos estados para a mquina de entrada de dados #define Mw 0 #define Mwn 1 #define Mwnn 2 #define Mwnnn 3 // Definio dos tipos de menu #define MENU0 0 #define MENU1 1 #define MENU2 2 #define MENU3 3 #define MENU4 4 #define MENU5 5

34

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


#define MENU6 #define MENU7 #define MENU8 #define MENU9 6 7 8 9

// Definio da resoluo do encoder (em pulsos/mm) #define RESOLUCAO 1.5 // Resoluo para fita de 0,40mm unsigned int PWM_Duty_cycle, n; Comando, valor[4]; // Duty cicle do PWM (apenas 10bits so usados) // Valor de aquisio atual // Comando recebido pela serial // Comando recebido pela entrada de dados // Estado do processo principal // Estado para a entrada de dados // Varivel para o perodo do PWM // Sentido de movimentao do motor // Qual encoder foi escolhido (X ou Y) // Posio dentro da matriz de dados // Modo que indica se o motor move-se sozinho // Indica se o encoder est ou no sendo testado

char

unsigned char STT_Comando, STT_Dados, Periodo_PWM, SENTIDO, ENCODER, DADO, TRACKING, TEST_ENCODER, CONTROLE; float Posicao, Velocidade, Posicao_desejada, kp, Erro_atual, Erro_anterior, Erro_acumulador;

// Posio atual do motor // Velocidade atual do motor // Posio para a qual o motor deve se mover // ganho do controlador // Erro atual na posio do motor // Erro anterior na posio do motor // Integral do erro

#pragma udata bank1=0x100 int Dados_posicao[128]; #pragma udata bank2=0x200 int Dados_posicao2[128];

// Matriz das posies - parte1

// Matriz das posioes parte2

// Prottipos das funes usadas na rotina de interrupo. void high_isr(void); void low_isr (void); void Init_ps2 (void); void Escreve_ps2 (char data); char Recebe_ps2 (void); // Funes das mquinas de estado void MaqComando (void); void EntradaDados (void);

35

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

// Funes utilizadas pelas mquinas de estado void DisplayMenuInicial (char menu); void MotorMalhaAberta (void); void MoverMotor (void); void EnviarDados (void); void Transmite (char DADO_TX); char Recebe (void);

// Definio dos vetores de interrupo #pragma code high_vector=0x08 void interrupt_high(void) { _asm GOTO high_isr _endasm }

#pragma code low_vector=0x18 void interrupt_low(void) { _asm GOTO low_isr _endasm }

#pragma code /* retorno seo de cdigo */ /************************************************************************************* INCIO DA FUNO PRINCIPAL *************************************************************************************/ void main( void) { PORTA = 0x00; TRISA = 0xDB; PORTB = 0x00; TRISB = 0x0C; PORTC = 0x00; TRISC = 0xB9; PORTD = 0x00; TRISD = 0x03;

// RD0 e RD1 so usados pelo ps/2 // RD0 = clk // RD1 = data

PORTE = 0x00; TRISE = 0x00; /* Inicializao da porta serial com velocidade de 19200 */ OpenUSART(USART_TX_INT_OFF& USART_RX_INT_OFF& USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, 12 ); // para 9600 usar 25 com cristal de 4MHz

36

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

/*-------------- INICIALIZAO DOS PROCESSOS ------------------------------*/ STT_Comando = MENU_INICIAL; STT_Dados = Mw; SENTIDO = 0; ENCODER = 0; Periodo_PWM = 249; // Perodo de 250 Hz para cristal de 4 Mhz PWM_Duty_cycle = 500; // Duty cycle de 2ms DADO = 0; TRACKING = 0; TEST_ENCODER = 0; n = 0; Posicao = 0.0; Erro_atual = 0.0; Erro_anterior = 0.0; Erro_acumulador = 0.0; CONTROLE = 0; /* Gerenciamento das interrupes */ RCONbits.IPEN = 1; // Habilita a checagem por prioridade de interrupo INTCONbits.GIEH = 1; // Habilitao das interrupes de alta prioridade INTCONbits.GIEL = 1; // Habilitao das interrupes de baixa prioridade INTCON2bits.TMR0IP = 1; IPR1bits.TMR1IP = 0; IPR2bits.TMR3IP = 1; // Coloca a interrupo do TIMER0 em alta prioridade // Coloca a interrupo do TIMER1 em baixa prioridade // Coloca a interrupo do TIMER3 em alta prioridade

/* Configurao dos TIMERS */ OpenTimer1( TIMER_INT_ON & T1_16BIT_RW & T1_SOURCE_INT & T1_PS_1_8 & T1_OSC1EN_OFF); WriteTimer1(65536-1000); Delay100TCYx(10); Init_ps2(); kp=5.0; /*---------------------- Lao Principal infinito ------------------------------------*/ while (1) {} } /************************************************************************************* FIM DA FUNO PRINCIPAL *************************************************************************************/ //***************************************************************************** /* ROTINA DE SERVIO DA INTERRUPCO DO TIMER0. //******************************************************************************

37

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


// Funes das interrupes #pragma interrupt high_isr void high_isr (void) { // interrupo de alta prioridade unsigned char status; signed char mx; signed char my; float buffer; char ack; if (INTCONbits.TMR0IF) { WriteTimer0(65536-62); INTCONbits.TMR0IF = 0; Escreve_ps2(0xEB); ack = Recebe_ps2(); status = Recebe_ps2(); mx = Recebe_ps2(); my = Recebe_ps2(); // Se o TIMER0 gerou um pedido de interrupo // delay de 0.008s (+atrasos);

// Pede dados para o encoder // ignora ack // byte de status // leitura x // leitura y

// Coloca em buffer qts mm o motor moveu-se desde a ltima leitura do encoder //buffer = (ENCODER) ? (float)mx : (float)my; buffer = (float) my; buffer = buffer*RESOLUCAO; // Atualiza a posio e erro Posicao = Posicao + buffer; //Erro_anterior = Erro_atual; //Erro_atual = Posicao_desejada - Posicao; if (n < 128) Dados_posicao[DADO] = ((int) (Posicao * 100.0)); else Dados_posicao2[DADO] = ((int) (Posicao * 100.0)); n++; DADO++; /* if (CONTROLE) { temp = kp*Erro_atual; if (temp > 0) { SetDCPWM2((int)temp); SetDCPWM1(0);

38

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


} else { SetDCPWM1((int)temp); SetDCPWM2(0); } } */ if (Posicao > 50.0) { ClosePWM2(); ClosePWM1(); CloseTimer2(); PORTCbits.RC1 = 0; PORTCbits.RC2 = 0; if (!my) { CloseTimer0(); // Desabilita o timer0 OpenTimer1( TIMER_INT_ON & T1_16BIT_RW & T1_SOURCE_INT & T1_PS_1_8 & T1_OSC1EN_OFF); WriteTimer1(65536-25000); } } } }

// // //

#pragma interruptlow low_isr void low_isr (void) { // interrupo de baixa prioridade float buffer; char status; char mx; char my; char ack; if (PIR1bits.TMR1IF) //gerou interrupo do TIMER1 { WriteTimer1(65536-1000); PIR1bits.TMR1IF = 0; if (TEST_ENCODER == 0) { teste++; if (teste > 49) // verificar se o LED pisca a cada 1s

39

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


{ PORTBbits.RB1 = !PORTBbits.RB1; teste=0; } MaqComando(); EntradaDados(); } else { Escreve_ps2(0xEB); ack = Recebe_ps2(); status = Recebe_ps2(); mx = Recebe_ps2(); my = Recebe_ps2(); buffer = (float)my; if (buffer) { buffer = (buffer*RESOLUCAO); Posicao= Posicao + buffer; buffer = buffer *100.0; fprintf(_H_USART, "buffer: %d Pos: %d", (int)buffer,(int) (Posicao*100.0)); Transmite (0x0D); Transmite (0x0A); } } } } // Pede dados para o encoder // ignora ack // byte de status // leitura x // leitura y

//******************************************* // Funo para inicializar a comunicao PS/2 //******************************************* void Init_ps2 (void) { TRISD = 0x00; CLK_PS2 = 1; DATA_PS2 = 1; Escreve_ps2(0xFF); Recebe_ps2(); Recebe_ps2(); Recebe_ps2(); Escreve_ps2(0xE8); Recebe_ps2(); // Envia comando de reset // Byte1 de ack - ignorado // Byte2 de ack - ignorado // Byte3 de ack - ignorado

40

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


Escreve_ps2(0x00); Recebe_ps2(); Escreve_ps2(0xF0); Recebe_ps2(); Delay100TCYx(1); } // Envia comando de operao remota // Byte1 de ack - ignorado // Delay de 100us

//************************************* // Funo para enviar dados para o PS/2 //************************************* void Escreve_ps2 (char data) { char i; char paridade = 1; DATA_PS2 = 1; CLK_PS2 = 1; TRISD = 0x03; Delay100TCYx(3); TRISD = 0x02; CLK_PS2 = 0; Delay100TCYx(3); TRISD = 0x00; DATA_PS2 = 0; Delay10TCYx(1); /* bit de start enviado */ TRISD = 0x01; // Delay de 10us

// Delay de 300us

// Delay de 300us

// Coloca o clock como entrada e data como sada

/* espera o PS/2 gerar o clock */ while (CLK_PS2) ; for (i=0; i < 8; i++) { if (data & 0x01) DATA_PS2 = 1; else DATA_PS2 = 0; while (CLK_PS2 == 0) ; while (CLK_PS2)

41

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


; paridade = paridade ^ (data & 0x01); data = data >> 1; } /* paridade */ if (paridade) DATA_PS2 = 1; else DATA_PS2 = 0; while (CLK_PS2 == 0) ; while (CLK_PS2) ; /* bit de parada */ DATA_PS2 = 1; Delay100TCYx(5); TRISD = 0x03; while (DATA_PS2) ; while (CLK_PS2) ; while ((CLK_PS2 == 0) || (DATA_PS2 == 0)) ; // Termina a transmisso TRISD = 0x02; CLK_PS2 = 0; }

//

// Delay de 50us

//********************************** // Funo para receber dados do PS/2 //********************************** char Recebe_ps2 (void) { char data = 0x00; char bit1 = 0x01; char i; TRISD = 0x03; Delay10TCYx(5); while (CLK_PS2)

// Delay de 50us

42

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


; Delay1TCY(); Delay1TCY(); Delay1TCY(); Delay1TCY(); Delay1TCY();

// Delay de 1us // Delay de 1us // Delay de 1us // Delay de 1us // Delay de 1us // Delay total de 5us // bit de start

while (CLK_PS2 == 0) ; for (i=0; i < 8; i++) { while (CLK_PS2) ; if (DATA_PS2) data = (data | bit1);

// leitura dos 8bits de dados

while (CLK_PS2 == 0) ; bit1 = bit1 << 1; } while (CLK_PS2) ; while (CLK_PS2 == 0) ; while (CLK_PS2) ; while (CLK_PS2 == 0) ; TRISD = 0x02; CLK_PS2 = 0; return data; } // ignora bit de paridade

// ignora bit de stop

// termina a transmisso

//******************************************* // Funo que transmite caractere pela serial //******************************************* void Transmite (char DADO_TX) { while (BusyUSART()) {}; putcUSART( DADO_TX ); }

43

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


//**************************************** // Funo que recebe caractere pela serial //**************************************** char Recebe (void) { if ( DataRdyUSART() ) return ReadUSART(); // L caractere na porta serial else return 0x00; }

//************************************************************ // Funo que aciona o motor em malha aberta e faz a aquisicao //************************************************************ void MotorMalhaAberta (void) { CloseTimer1(); // Desabilita o timer do menu Init_ps2(); // Inicializa o protocolo de comunicao PS/2 // Inicializa os contadores DADO = 0; n = 0; Transmite (0x0D); Transmite (0x0A); Transmite (0x0D); Transmite (0x0A); putrsUSART ("Posicao (*100.0mm):"); Transmite (0x0D); Transmite (0x0A); Delay100TCYx(10); //delay para impedir o atraso com o resto dos timers // Inicializao do TIMER0, responsvel pela leitura do encoder OpenTimer0( TIMER_INT_ON & T0_16BIT & T0_SOURCE_INT & T0_PS_1_128 ); WriteTimer0( 65536-62 ); if (SENTIDO == 0) { PORTCbits.RC1 = 1; PORTCbits.RC2 = 0; } else if (SENTIDO == 1) { PORTCbits.RC1 = 0; PORTCbits.RC2 = 1; } }

44

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


//*************************************************** // Funo que movimenta o motor para posio desejada //*************************************************** void MoverMotor (void) { CloseTimer1(); // Desabilita o timer do menu Init_ps2(); // Inicializa o protocolo de comunicao PS/2 // Inicializa os controles DADO = 0; n = 0; CONTROLE = 1; // Inicializao do TIMER0, responsvel pela leitura do encoder OpenTimer0( TIMER_INT_ON & T0_16BIT & T0_SOURCE_INT & T0_PS_1_128 ); WriteTimer0( 65536-780 ); OpenTimer2( TIMER_INT_OFF & T2_PS_1_16 ); OpenPWM2(78); OpenPWM1(78); SetDCPWM1(0); SetDCPWM2(0); /* if (SENTIDO == 0) { OpenPWM2(155); ClosePWM1(); } else if (SENTIDO == 1) { OpenPWM1(155); ClosePWM2(); }

// PWM com perodo de 2,5ms

// PWM com perodo de 2,5ms

*/ }

//*************************************** // Funo que envia os dados da aquisio //*************************************** void EnviarDados (void) { int i = 0; CloseTimer1(); DADO = 0; // Desabilita o timer do menu

Transmite (0x0D); Transmite (0x0A); Transmite (0x0D); Transmite (0x0A); putrsUSART ("Posio(*100mm): Velocidade:(*100mm/s)");

45

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


Transmite (0x0D); Transmite (0x0A); for (i=0; i<= n; i++) { if (i == 128) DADO = 0; if (i > 127) // Acabou o banco de memria 1 fprintf(_H_USART, "%-d", Dados_posicao2[DADO]); else fprintf(_H_USART, "%-d", Dados_posicao[DADO]); Transmite (0x0D); Transmite (0x0A); DADO++; } DADO = 0; n = 0; // Reinicializa o TIMER1 OpenTimer1( TIMER_INT_ON & T1_16BIT_RW & T1_SOURCE_INT & T1_PS_1_8 & T1_OSC1EN_OFF); WriteTimer1(50000); }

//************************************* // Funo para exibio do menu inicial //************************************* void DisplayMenuInicial (char menu) { if (menu == MENU0) // Menu Inicial { putrsUSART ("\n\nMenu:"); Transmite (0x0D); Transmite (0x0A); Transmite (0x0D); Transmite (0x0A); putrsUSART ("1) Configurar PWM"); Transmite (0x0D); Transmite (0x0A); putrsUSART ("2) Acionar Motor - malha aberta"); Transmite (0x0D); Transmite (0x0A); putrsUSART ("3) Desligar Motor"); Transmite (0x0D); Transmite (0x0A); putrsUSART ("4) Configurar Encoder"); Transmite (0x0D); Transmite (0x0A); putrsUSART ("5) Selecionar posio de parada (mm * 10)"); Transmite (0x0D); Transmite (0x0A); putrsUSART ("6) Ler dados da aquisio"); Transmite (0x0D); Transmite (0x0A); Transmite (0x0D); Transmite (0x0A); putrsUSART ("Opo: "); } else if (menu == MENU1) // Configurar PWM {

46

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


Transmite (0x0D); Transmite (0x0A); Transmite (0x0D); Transmite (0x0A); putrsUSART ("Configurar PWM:"); Transmite (0x0D); Transmite (0x0A); Transmite (0x0D); Transmite (0x0A); putrsUSART ("1) Mover para esquerda"); Transmite (0x0D); Transmite (0x0A); putrsUSART ("2) Mover para direita"); Transmite (0x0D); Transmite (0x0A); putrsUSART ("Opo: "); } else if (menu == MENU2) // Configurar Encoder { Transmite (0x0D); Transmite (0x0A); Transmite (0x0D); Transmite (0x0A); putrsUSART ("Configurar Encoder:"); Transmite (0x0D); Transmite (0x0A); Transmite (0x0D); Transmite (0x0A); putrsUSART ("1) Encoder X"); Transmite (0x0D); Transmite (0x0A); putrsUSART ("2) Encoder Y"); Transmite (0x0D); Transmite (0x0A); putrsUSART ("3) Testar Encoder"); Transmite (0x0D); Transmite (0x0A); Transmite (0x0D); Transmite (0x0A); putrsUSART ("Opo: "); } }

//******************************************************************************************* // MQUINAS DE ESTADOS //******************************************************************************************* // Mquina de estado para exibio do menu inicial e opes de comando void MaqComando (void) { if (STT_Comando < 200) Comando = Recebe(); switch (STT_Comando) { case (MENU_INICIAL): DisplayMenuInicial(MENU0); STT_Comando++; break; case (ESPERA_COMANDO): if (Comando == '1') { DisplayMenuInicial(MENU1); STT_Comando++; } else if (Comando == '2') {

47

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


STT_Comando = OPCAO2; } else if (Comando == '3') { STT_Comando = OPCAO3; } else if (Comando == '4') { DisplayMenuInicial(MENU2); STT_Comando = OPCAO4; } else if (Comando == '5') { Transmite (0x0D); Transmite (0x0A); STT_Comando = ENTRADA_DADOS4; } else if (Comando == '6') { EnviarDados(); STT_Comando = MENU_INICIAL; } break;

// Posio de parada

case (OPCAO1): // Configurao do PWM if (Comando == '1') { SENTIDO = 0; STT_Comando = MENU_INICIAL; } else if (Comando == '2') { SENTIDO = 1; STT_Comando = MENU_INICIAL; } break; case (OPCAO2): // Acionar motor STT_Comando = MENU_INICIAL; MotorMalhaAberta(); break; case (OPCAO3): // Desligar motor ClosePWM2(); ClosePWM1(); STT_Comando = MENU_INICIAL; break; case (OPCAO4): if (Comando == '1') // Configurao Encoder

48

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


{ ENCODER = 0; STT_Comando = MENU_INICIAL; } else if (Comando == '2') { ENCODER = 1; STT_Comando = MENU_INICIAL; } else if (Comando == '3') { Init_ps2(); Transmite (0x0D); Transmite (0x0A); TEST_ENCODER = 1; STT_Comando = TESTANDO; } break; } }

// Mquina de estado para entrada de dados void EntradaDados(void) { Comando = Recebe(); if (STT_Comando > 199) { if (STT_Comando == ENTRADA_DADOS1) { switch (STT_Dados) { case (Mw): if (Comando == 0) break; valor[1] = Comando; STT_Dados = Mwn; break; case (Mwn): if (Comando == 0) break; valor[2] = Comando; STT_Dados = Mwnn; break; case (Mwnn): if (Comando == 0) break; valor[0] = '0'; valor[3] = Comando; Periodo_PWM = atob(valor); STT_Dados = Mw; STT_Comando = MENU_INICIAL; // Perdo do PWM (3 dgitos)

49

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO


break; // fim do switch

} // fim do if

if (STT_Comando == ENTRADA_DADOS2) { switch (STT_Dados) { case (Mw): if (Comando == 0) break; valor[0] = Comando; STT_Dados = Mwn; break; case (Mwn): if (Comando == 0) break; valor[1] = Comando; STT_Dados = Mwnn; break; case (Mwnn): if (Comando == 0) break; valor[2] = Comando; STT_Dados = Mwnnn; break; case (Mwnnn): if (Comando == 0) break; valor[3] = Comando; PWM_Duty_cycle = atoi(valor); STT_Dados = Mw; STT_Comando = MENU_INICIAL; break; } // fim do switch // fim do if

// Duty cycle do PWM (4 dgitos)

if (STT_Comando == ENTRADA_DADOS3) { switch (STT_Dados) { case (Mw): if (Comando == 0) break; valor[0] = Comando; STT_Dados = Mwn; break; case (Mwn): if (Comando == 0) break; valor[1] = Comando; STT_Dados = Mwnn; break;

// Tempo do PWM (4 dgitos)

50

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

case (Mwnn): if (Comando == 0) break; valor[2] = Comando; STT_Dados = Mwnnn; break; case (Mwnnn): if (Comando == 0) break; valor[3] = Comando; TEMPO_PWM = atoi(valor); STT_Dados = Mw; STT_Comando = MENU_INICIAL; break; } // fim switch // fim do if // Posio de parada (3 dgitos)

if (STT_Comando == ENTRADA_DADOS4) { switch (STT_Dados) { case (Mw): if (Comando == 0) break; valor[1] = Comando; STT_Dados = Mwn; break; case (Mwn): if (Comando == 0) break; valor[2] = Comando; STT_Dados = Mwnn; break;

} } }

case (Mwnn): if (Comando == 0) break; valor[0] = '0'; valor[3] = Comando; //Posicao_desejada = ((float)(atoi(valor))/10.0); Posicao_desejada = 40.0; STT_Dados = Mw; Transmite (0x0D); Transmite (0x0A); STT_Comando = MENU_INICIAL; MoverMotor(); break; } // fim do switch // fim do if // fim do if geral

51

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE ENGENHARIA MECNICA ENGENHARIA DE CONTROLE E AUTOMAO

Anexo
Circuito da ponte-H utilizada no acionamento do motor.

Fonte: http://robota.das.ufsc.br/mediawiki/index.php/H-bridge-5a.

52

You might also like