Autor Tópico: Projeto - Smile  (Lida 132306 vezes)

Description:

0 Membros e 1 Visitante estão vendo este tópico.

Offline Rudolf Waller

  • Moderadores
  • Hobby
  • ******
  • Posts: 683
  • Sexo: Masculino
Projeto - Smile
« Resposta #105 Online: 29 de Maio de 2006, 12:34 »
Oi pessoal,

Há 2 sábados atrás montei os diodos controláveis em anti-paralelo com as bobinas, sendo que as chaves que controlam cada diodo individualmente são gerenciadas por firmware. Sem os diodos o motor assovia, com os diodos, mal se ouve um leve sussurro.

Enfim, vamos ao teste dinâmico: Com o TurboCNC coloquei o motor prá girar. Sem os diodos, mal chega a 3KHz (uma única fase acionada de cada vez). Com os diodos, a mesma coisa  :shock:

Putz, como assim? Não fez diferença??? Ishi, acho que o buraco é mais embaixo...

Na masmorra do Sir Jorge, chegamos a conclusão que a realimentação não estava aquelas coisas. Mudei a rotina e, aparentemente, melhorou. Estou chegando a conclusão que ainda falta mais alguma coisa. Algo deve ter passado desapercebido.

Me lembrei de uma frase que um amigo sempre falava: "Não é porque funciona que está certo".

No outro final de semana, a única coisa que fiz foi enviar umas fotos do sinal no dreno pro Sir Jorge no sábado de manhã. O comentário dele foi um espantado "credo...".

Fui pegar mais um café com leite e, passando na frente da TV onde minha filha estava assistindo um filme, não resisti e fiquei estatelado no sofé o final de semana inteiro. Foi bom que recuperei um pouco do bagaço :)

Nestes dias todos fiquei pensando o que pode estar acontecendo e resolvi colocar um display para me indicar run-time o que está se passando com o rapaz.

Agora o driver está mais invocado. Tem até display LCD :) Não no driver, mas no emulador. Terminei a ligação (e o teste) no sábado a noite.

Ontem fui começar os testes e vi que as rotinas (ou o circuito) do display não estavam tão certos assim. Resolvi arrumar a casa antes de seguir. Resumindo: fiquei o dia todo e não consegui :(

Chamo as rotina a cada 100ms para mostrar o valor da tensão num trimpot de ajuste. Muitas vezes o cursor se posiciona no lugar errado ou então escreve caracteres que não tem nada a ver com o enviado.

Pena que não posso ler o bit D7 do display. Ele pode me indicar se o display está ocupado executando alguma tarefa ou se já está livre. Tenho certeza que resolveria tudo.

Tentei colocar delay de monte, aumentar o tempo de acesso dos sinais, e nada...

Quem sabe sejam as tensões envolvidas, já que uso um shift register (74HC595) para gerar o dados e outro para os 2 sinais de controle (R/W está sempre para escrita). Estes CIs e o display estão com 5V e o driver com 3,3V.

Conversando com mestre Arnaldo, ele me deu algumas idéias para verificar o que pode estar acontecendo, como oscilar o sinal num dos pinos (D3, por exemplo) e verificando se o sinal falha.

Às vezes fico impressioando como algo tão simples pode dar tanta canseira! Um reles display!!!

Como já dizia Murphy, "nada é tão simples como parece"...

Abraços,
Rudolf

Offline ShopCNC

  • ShopCNC
  • CNCMASTER
  • ******
  • Posts: 1110
  • Sexo: Masculino
  • ShopCNC
    • ShopCNC
  • Cidade - UF: Varginha - MG
  • Nome:: ShopCNC
  • Profissão: E-Commerce
Projeto - Smile
« Resposta #106 Online: 29 de Maio de 2006, 15:31 »
É a historia do molho e o peixe ...

Eu passo mais tempo tentando otimizar meu computador do que usando ele para algo util, e isto porque ele veio para facilitar a vida, imaginem se fosse o contrario ... heheheheee

Mas mudando para o que interessa, voce conseguiu resolver o display ?

Offline Rudolf Waller

  • Moderadores
  • Hobby
  • ******
  • Posts: 683
  • Sexo: Masculino
Projeto - Smile
« Resposta #107 Online: 29 de Maio de 2006, 16:31 »
Citação de: "Mac_RC"
É a historia do molho e o peixe ...

Grande Reinaldo!

É isso aí. Prorroguei o máximo possível a montagem do display.
Citar

Mas mudando para o que interessa, voce conseguiu resolver o display ?

Neca de pitibiriba...

O display ficou mais inteligente do que eu gostaria: ele faz o que ELE quer, e não o que mando ele fazer...

Abraços,
Rudolf

Offline ShopCNC

  • ShopCNC
  • CNCMASTER
  • ******
  • Posts: 1110
  • Sexo: Masculino
  • ShopCNC
    • ShopCNC
  • Cidade - UF: Varginha - MG
  • Nome:: ShopCNC
  • Profissão: E-Commerce
Projeto - Smile
« Resposta #108 Online: 29 de Maio de 2006, 16:34 »
Eu acho que estes displays tem uma forte ligaçao com a terra patria (Japao) ...

Ja tive alguns problemas onde eles insistiam em escrever em japones, eu mandava em portugues e ele traduzia para o japones ...

Depois de muitos cabelos a menos descobri um curto entre trilhas no barramento de dados ... nao sei se foi isto, ou matei o japones com a faquinha, esfregando a placa por todos os lados, mas que parou ... parou.

Abraços
Reinaldo

Offline F.Gilii

  • Administrador
  • CNCMASTER
  • *******
  • Posts: 13796
  • Sexo: Masculino
  • Consultoria, Automação e Construção de Máquinas
  • Cidade - UF: Atibaia - SP
  • Nome:: Fabio Gilii
  • Profissão: Tec. Mecanica de Precisão
Projeto - Smile
« Resposta #109 Online: 29 de Maio de 2006, 18:16 »
Coitado dos Japonezinhos das placas...

Voces são um bando de desalmados...

Offline ShopCNC

  • ShopCNC
  • CNCMASTER
  • ******
  • Posts: 1110
  • Sexo: Masculino
  • ShopCNC
    • ShopCNC
  • Cidade - UF: Varginha - MG
  • Nome:: ShopCNC
  • Profissão: E-Commerce
Projeto - Smile
« Resposta #110 Online: 29 de Maio de 2006, 20:08 »
A culpa é dos xing lings ... :D

Offline Rudolf Waller

  • Moderadores
  • Hobby
  • ******
  • Posts: 683
  • Sexo: Masculino
Projeto - Smile
« Resposta #111 Online: 30 de Maio de 2006, 19:23 »
Oi pessoal,

Esta madrugada tive uma idéia do que poderia estar acontecendo com o display LCD. Tive que me segurar prá não levantar e verificar se procede.

Resolvi sair mais cedo do trabalho prá fazer o teste.

Resultado? O display está funcionando sem falhar nenhuma vez :)

Péraí, guarda os fogos de artifícios mais um pouco! NÃO FIZ ABSOLUTAMENTE NADA PARA FUNCIONAR :shock: Cuméquié?

Primeiro liguei o driver: funcionou! Já fiquei sem entender...
Liguei o interruptor do osciloscópio: continuou funcionando!
Liguei a luminária (lâmpada fluorescente gera ruído prá tudo quanto é lado): idem!
Liguei o computador: ibidem
Antes de jogar tudo pela janela (passei o domingo todo tentando achar o problema), liguei o cabo paralelo e rodei o CodeWarrior (emulador do DSP). Quem sabe pode ser isso... Continuou funcionando!

Ainda bem que ninguém está vendo minha cara de tacho  :oops:

Essa fiquei sem saber... Faz uns 15 minutos que tá rodando sem falhar nenhum caracter, antes mal passava da inicialização do dito cujo!

Vou fazer de conta que tá tudo certo, não parar de cruzar os dedos, e tocar prá frente.

Mas que fiquei sem entender, isso fiquei  :roll:

Abraços,
Rudolf

Offline F.Gilii

  • Administrador
  • CNCMASTER
  • *******
  • Posts: 13796
  • Sexo: Masculino
  • Consultoria, Automação e Construção de Máquinas
  • Cidade - UF: Atibaia - SP
  • Nome:: Fabio Gilii
  • Profissão: Tec. Mecanica de Precisão
Projeto - Smile
« Resposta #112 Online: 30 de Maio de 2006, 21:37 »
Mas afinal,

Qual foi a idéia mirabolante que populou sua mente durante a madrugada mal dormida???

Acho que esse display está possuído!

Offline Rudolf Waller

  • Moderadores
  • Hobby
  • ******
  • Posts: 683
  • Sexo: Masculino
Projeto - Smile
« Resposta #113 Online: 31 de Maio de 2006, 12:24 »
Citação de: "fgilii"
Mas afinal,

Qual foi a idéia mirabolante que populou sua mente durante a madrugada mal dormida???

Mestre Fabio,

pensei numa maneira de geral um delay grande, sem atrapalhar em nada o funcionamento do restante do sistema.

Num sistema multi-tarefa, cada tarefa é executada num tempo extremamente pequeno. Se uma tarefa tem que fazer cálculos demorados, a tarefa tem que dividir este cálculo numa série de pequenas operações.

No driver, além de multi-tarefa, o sistema é em tempo-real, ou seja, cada tarefa é executada a cada x tempo, independente do tempo de execução das outras tarefas.

Atualmente existe uma tarefa que lê um trimpot a cada 100ms para configurar a corrente das bobinas, a tarefa do LED que é executada a cada 10ms, e assim por diante. Para facilitar, o ciclo de kernel ficou em 10ms, ou seja, cada tarefa é executada a cada múltiplo de 10ms (era de 1ms, mas preferi aumentar para dar uma folga maior). Como regra do jogo, o tempo de execução total (somadas todas as tarefas) não pode ultrapassar este ciclo de 10ms, pois atrasaria as tarefas que vão começar no próximo ciclo, encavalando o processamento.

Como eu queria dar um delay maior na escrita do display (uns 10 a 20ms), isso iria atrapalhar o funcionamento geral. Isso é muito perceptivo no LED, por exemplo, que pisca mais devagar ou pode até congelar. A idéia que tive foi como dar delays imensos (somente para testar o que poderia estar acontecendo com o dito cujo), sem atrapalhar em nada as demais tarefas.
Citar

Acho que esse display está possuído!

Deve estar, sim. Creio que está possuido de uma solda fria ou algum mal-contato em algum fio, já que não é software (eu acho).

O lado bom é que tive tempo prá ficar sozinho com a super Cida, já que os meninos estavam no cinema assistindo X-Men :)

Abraços,
Rudolf

Offline F.Gilii

  • Administrador
  • CNCMASTER
  • *******
  • Posts: 13796
  • Sexo: Masculino
  • Consultoria, Automação e Construção de Máquinas
  • Cidade - UF: Atibaia - SP
  • Nome:: Fabio Gilii
  • Profissão: Tec. Mecanica de Precisão
Projeto - Smile
« Resposta #114 Online: 01 de Junho de 2006, 09:48 »
Rudolf,

Tenho certeza que voce já deve ter visto este link, e se não me engano fui até eu que te mandei...
Mas na dúvida, vai de novo...

http://www.cs.uiowa.edu/~jones/step/current.html

Offline Rudolf Waller

  • Moderadores
  • Hobby
  • ******
  • Posts: 683
  • Sexo: Masculino
Projeto - Smile
« Resposta #115 Online: 01 de Junho de 2006, 13:07 »
Citação de: "fgilii"

Tenho certeza que voce já deve ter visto este link, e se não me engano fui até eu que te mandei...
Mas na dúvida, vai de novo...

http://www.cs.uiowa.edu/~jones/step/current.html

Mestre Fabio,

Já tinha visto, sim. Brigadão, novamente.

Aproveitando, o anterior que você deixou neste forum (que eu não conseguia ler) é muito completo. Valeu!!!

Abraços,
Rudolf

Offline Rudolf Waller

  • Moderadores
  • Hobby
  • ******
  • Posts: 683
  • Sexo: Masculino
Projeto - Smile
« Resposta #116 Online: 05 de Junho de 2006, 12:04 »
Oi pessoal,
 
Consegui resolver o problema do display. Na semana passada ele me deu um baile. Passei o domingo inteiro tentando entender por que ele estava maluco. Na terça a noite ele funcionou como se não tivesse acontecido nada. Ontem ele tomou tento (como dizem em Minas).
 
O circuito do display usa 2 shift register (conversor serial / paralelo) 74HC595. Como mestre Arnaldo sugeriu, coloquei uma onda quadrada numa das saídas. ÊPA! Cadê o pulso que falhou ali? Vai dizer que o rato comeu? E cadê o rato? De novo esta estória???
 
Como estes CIs trabalham com 5V e o driver com 3,3V, poderia ser incompatibilidade de nível de sinal (Arnaldo 2x0). Coloquei um diodo em série com a alimentação dos CIs para não ter um desnível tão grande. Não é que funcionou de cara (Arnaldo 3x0)? Fico bobo com a sapiência do povo. Apenas falam: "Tenta isso". Nem perco mais meu tempo. Apenas tento e corro pro abraço. Deixei os CIs com alimentação de uns 4,3V e o display propriamente dito com 5V. Ficou todo mundo feliz :)
 
Acho o display e seu filhinho LED ferramentas muito bacana. Mostra no ato como está um determinado sinal ou variável, sem interferir no funcionamento do conjuto. Cada vez que eu parava o emulador, alterava o sinal ou gerava uma corrente absurda no motor. Agora, tá tudo beleza :)
 
Display a postos, vamos ao que interessa: Como estão os sinais que estão chegando no DSP? Putz!!! Mesmo sem a fonte do motor ligado aparece um sinal de 0,2V em Rsense. Justifica um monte de coisas. Moleza tirar isso: Assim que o driver liga, ele mede este sinal e desconta o valor das próximas leituras. Agora, sim! Por que a corrente medida oscila tanto? O PID está uma nhaca! Dou um tapa aqui, outro ali usando cola, durepox, esparadrapo. A rotina de controle da corrente vai melhorando, apesar das soluções serem bem meia boca. Nada de teoria, apenas gambiarra, mesmo :) Só quero ver se estou indo na direção certa. Agora, sim! O valor configurado da corrente é o que o amperímetro que está em série com a bobina mostra. Aí entendi porque não conseguia acertar o valor. Até que enfim!
 
Liguei o TurboCNC prá ver como o driver se comporta. Aí foi uma festa pros olhos! Para efeito de comparação, todos os testes foram feitos com Nema23 alimentado por 35V @ 1A por fase, passo cheio e somente uma única fase alimentada de cada vez. Do lado do TurboCNC, configurava a freqüência máxima de jog e aceleração de 9000Hz/s. Exceto quando especificado, somente foram utilizados os parâmetros supra citados (parece até nota de manual técnico).
 
Nestas condições, o motor girou com 4500Hz (1350 rpm) na boa :) Só para constar: motor sem carga e com torque que era uma piada. Fiz um teste rápido e girou a 7000Hz (2100rpm) a 93V.
 
O driver já está ficando um rapazinho :)
 
Hoje cedo fiz uma alteração para que o seja gerada uma corrente com 1A durante 1ms e 0A durante 1ms. Idealmente falando seria uma onda quadrada de corrente. Queria ver como estava o controle de corrente. Quanto menor este tempo, melhor está sendo feito o controle da corrente. O tempo para chegar na corrente especificada foi de 500ms, muito lerdo para o meu gosto. Fiz mais algumas regulagens no PID para tentar melhorar isso, mas sem muita diferença prática. Foi mais uma questão de tirar alguns curativos e passar mertiolate noutros :) Penso em colocar um PID que ajusta os parâmetros de acordo com o motor e a fonte. Mas isso é tarefa prá outra hora. Haja teoria...
 
Trocando umas idéias com Sir Jorge (sempre solícito, por sinal), fiz um teste com o motor do Mestre Fabio Gilii. É um Nema34 com 3,1A/fase. Nas mesmas condições anteriores, consegui girar a 5200Hz (1560 rpm). Aí vi que um dos resistores do snubber começou a fumar. Tirei todos fora, fiquei sem nenhum snubber. Seguindo minha intuição, coloquei o dedo num fet. Estava bem quente, mas quão quente estava? Quando chegou nos 115ºC desliguei tudo. Putz! 3A e já tá assim? Tá certo, tá sem snubber... Outra pendência a ser resolvida... Daqui em diante fiz todos os testes sem snubber nenhum.
 
Já que estamos nesta situação, vamos testar o circuito do diodo chaveável. Chegou a prova de fogo :) Este circuito tem um diodo em anti-paralelo com a bobina que pode ser colocado ou retirado do driver pelo DSP. Aliás, ele é o diodo mais mal visto de qualquer driver. Já perdi as contas de quantas vezes me mandaram tirá-lo :) Como sou teimoso, vamos aos números, usando sempre o mesmo critério, só que com o motor do mestre Fabio (35 @ 3,1A/fase):
 
Sem os diodos, girou a 5200Hz (1560 rpm). Com os diodos, girou a 5400Hz (1620 rpm). Esperava mais... Por outro lado, este circuito é mais difícil de controlar, e como o PID não está lá estas coisas, a performance ainda deve melhorar bastante.
 
O que mais gostei veio a seguir. Com o motor parado, sem o circuito do diodo os mosfet passaram de 115ºC e dizem que o motor chega fácil aos 90ºC. Com o circuito, os mosfet ficaram a 25ºC e o motor, 31ºC (medidos após uns 15 minutos). Isso com 3,1A por fase :-O
 
Sem alterar absolutamente nada a não ser tirar o circuito da jogada, a corrente na bobina despencou para 0,35A e a temperatura do fet e do motor aumentou um pouco (esqueci de anotar os valores). Ou seja, passando 0,35A neste driver tem torque melhor (5400Hz x 5200Hz) do que 3A num driver convencional. Nada mal...
 
Aí resolvi abusar. Desculpe, mestre Fabio, não resisti. Xinga muito, não, tá? Já que o motor estava muito fresquinho, coloquei 5A nele :-O Ele girou a 5800Hz (1740rpm) e parado ficou com 34ºC. O fet nem morno estava. Assim que desliguei o circuito do diodo, a corrente caiu para 1A e a temperatura no motor subiu para 36ºC. Me lembrei de um comentário de um colega, que comparou um motor sob um chopper a um "forno de indução". Acho que faz sentido...
 
Se eu medi tudo certo, acho que o motor alimentado por uma linestep ou uma phase driver deve ficar mais frio que um alimentado por um chopper. Será?
 
Então fiquei pensando... Nesta situação, a temperatura é o fator limitante da corrente que posso jogar num motor? Será???
 
Abraços,
Rudolf

Offline F.Gilii

  • Administrador
  • CNCMASTER
  • *******
  • Posts: 13796
  • Sexo: Masculino
  • Consultoria, Automação e Construção de Máquinas
  • Cidade - UF: Atibaia - SP
  • Nome:: Fabio Gilii
  • Profissão: Tec. Mecanica de Precisão
Projeto - Smile
« Resposta #117 Online: 05 de Junho de 2006, 13:23 »
Grande Mestre Rudolf,

Não fico bravo não - só estou curioso para entender "como" que os fabricantes de motores medem ou controlam suas criaturas...
Explico melhor: o fabricante "X" diz que seu motor modelo tal é para 3A por fase.
Muito bem. Mas será que é possível então alimentar este motor com mais "cavalaria", tipo uns 30% a mais em corrente? (de 3 para 4A por exemplo)
Qual será o impacto disso nas fases? e na temperatura?

O que será que acontece? E os problemas inerentes à este aumento?
Será que se alimentar com mais corrente só quando o motor estiver girando, não melhoraria a performance?

Perguntas, conjecturas, noites mal dormidas...isso me mata!

Sobre a temperatura, eu tenho em algum lugar um texto muito interessante escrito se não me engano pelo dono da "Gecko Drive" que diz que se pode usar a temperatura do motor para determinar se este motor está sendo alimentado com a corrente ideal...

Assim que encontrar eu posto aqui pois além de muito interessante, traz informações que podem te ajudar.

Gerber

  • Visitante
Projeto - Smile
« Resposta #118 Online: 05 de Junho de 2006, 14:59 »
Salve Rudolfh,

Grandes resultados heim!!! :P
É muito bom quando começamos a ver os resultados de um trabalho feito com tanto empenho, parabéns.
Atualmente estou usando drivers pic steper e os resultados são bem parecidos com os que você já conseguiu, meus motores também estão trabalhando entre 26º e 30º, também com o frio que anda fazendo né...

Abraços
Gerber

Offline Rudolf Waller

  • Moderadores
  • Hobby
  • ******
  • Posts: 683
  • Sexo: Masculino
Projeto - Smile
« Resposta #119 Online: 05 de Junho de 2006, 21:09 »
Citação de: "fgilii"

Não fico bravo não - só estou curioso para entender "como" que os fabricantes de motores medem ou controlam suas criaturas...
Explico melhor: o fabricante "X" diz que seu motor modelo tal é para 3A por fase.
Muito bem. Mas será que é possível então alimentar este motor com mais "cavalaria", tipo uns 30% a mais em corrente? (de 3 para 4A por exemplo)
Qual será o impacto disso nas fases? e na temperatura?

Ave Fabio,

A minha dúvida em relação a corrente máxima x temperatura é um pouco mais megalomaníaca :) Se um motor de 3A ficou gelado com 5A (67% a mais), qual a corrente que eu poderia colocar nele para chegar na temperatura aceitável (90^, por exemplo)? 15A?  :shock: Imagina os ganhos que teremos... 8)

Antes que você questione a minha sanidade, não pretendo fazer isso com seu motor :)

Estava pensando agora no ônibus... Por que seu motor e o fet ficaram tão frios? Aí me lembrei da equação da potência (P=UI). Para não aprofundar tanto, vamos imaginar um chopper trabalhando com ciclo de trabalho de 50%. Metade do tempo a corrente é o dobro e na outra metade, zero. Como P=RI^2, na primeira metade a potência foi 4 vezes maior. Na segunda foi zero. Na média, a potência deve ser 2 vezes maior do que no nosso driver, sendo que a corrente é a mesma. Isso sem contar que R aumenta com a temperatura, aumentando mais ainda a potência dissipada na primeira metade do tempo e os efeitos da freqüência de chaveamento do fet sobre a bobina. Do lado do fet, creio que a energia que ele precisa fornecer à bobina é somente para compensar a energia que é transformada em calor, já que a maioria deve ficar no campo magnético. Deve ser por isso que a corrente despencava quando tirava o diodo.

Um dia quero colocar 3A contínuos, vindos diretamente de uma fonte regulável, no seu motor e comparar a temperatura com a que medi ontem.

Devo estar enganado, já que é um raciocínio extremamente simplista. Deixei de lado um monte de fatores.

Citar

O que será que acontece? E os problemas inerentes à este aumento?
Será que se alimentar com mais corrente só quando o motor estiver girando, não melhoraria a performance?

Sim, aumenta. Testei isso outro dia. Pretendo repetir (e quantificar) a experiência quando o PID estiver redondo. Além do aumento da corrente em função da rotação, o driver poderia corrigir a corrente para cada ângulo do micro passo para manter o torque constante (conversamos sobre isso páginas atrás).
Citar

Perguntas, conjecturas, noites mal dormidas...isso me mata!

Nem me lembre destas noites mal dormidas :) Sem contar que idéias e dicas que recebo durante a semana só vou conseguir testar no sábado...
Citar

Sobre a temperatura, eu tenho em algum lugar um texto muito interessante escrito se não me engano pelo dono da "Gecko Drive" que diz que se pode usar a temperatura do motor para determinar se este motor está sendo alimentado com a corrente ideal...

Assim que encontrar eu posto aqui pois além de muito interessante, traz informações que podem te ajudar.

Gostaria muito de ler este texto. Já pensou se o driver conseguisse ajustar a corrente dinamicamente, sem que o usuário tenha que configurá-la? Acho difícil chegar neste ponto, mas são os sonhos que nos levam adiante :)

Abraços,
Rudolf

 

/** * */