Autor Tópico: Como calcular período e quantidade de pulsos?  (Lida 15038 vezes)

Description:

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

Offline ivan braga

  • Se os fatos não se encaixam na teoria, modifique os fatos. Albert Einstein
  • Novato
  • *
  • Posts: 36
  • Sexo: Masculino
Como calcular período e quantidade de pulsos?
« Online: 17 de Janeiro de 2011, 06:12 »
Olá a todos.

Bom, o que às vezes parece ser a parte mais simples torna-se o mais complicado de se compreender.

Vamos aos fatos.

Estou terminando o projeto de uma controladora para motores de passo bipolar, até ai nada de muito complicado, porem o problema surgiu quando estava fazendo uma programa de comunicação entre a controladora e o pc.

Na parte que diz respeito à comunicação via porta paralela estão as seguintes configurações:
  •   Passos por volta - 1/1 até 1/32 o que dará ate 6400 passos por volta
  •   Corrente do motor
  •   Controle da temperatura da controladora
  •   E mais algumas “frescurites”

A complicação apareceu justamente nas “frescurites”, enquanto estava usando o programa que fiz para o desenvolvimento e configuração da controladora, não tive nenhuma duvida.

Porem quando quis entender como os programas usados para controle das CNCs fazem a rampa de aceleração acontecer, ai sim deu “M”, não que isto seja necessário para minha controladora, mais queria que o programa de configuração também informasse os parâmetros usados pelo Mach e TCNC para a rampa de aceleração, afim de facilitar a vida de alguns usuários.

Usarei como parâmetros da minha duvida, frequências bem baixas e também dispensarei momentaneamente o que se refere à cinemática do deslocamento.

EX:
  •   Velocidade Inicial = 1Hz
  •   Velocidade Final =10Hz
  •   Aceleração =2Hz
  •   Largura do Pulso da velocidade  Inicial = 1s (Ton+Toff)
  •   Largura do Pulso da velocidade  Final =   0,1s (Ton+Toff)
  •   Largura do Pulso da Aceleração   0,5s (Ton+Toff)
  •   Tempo para aceleração = 4,5s
  •   Tempo entre o maior e o menor Pulso = 0,9s   

Deixando de lado a mecânica, quero entender como calcular a quantidade de pulsos e a largura de cada um deles.

Visto que temos uma velocidade variável, ou seja, o 1º pulso deverá ter 1s e o ultimo deverá ter 0,1s, ou estou errado?

Quantos pulsos podem e ou devem ser dados, e como calcular a largura de cada um deles???

Sinceramente, já estou a mais de uma semana tentando entender isto, já fiz e refiz cálculos que parecem não ter fim e não cheguei a lugar nenhum, nada do que faço me dá um resultado satisfatório e coerente.

Por mais que eu tente, não consigo deixar isso de lado enquanto não entender a logica para resolver essa duvida, pois nas infinidades de cálculos que já fiz, provavelmente passou despercebida a resposta e 'engoli barriga'.

Abraços e aguardo sugestões.

Ivan B.
« Última modificação: 17 de Janeiro de 2011, 06:28 por ivan braga »

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
Re:Como calcular período e quantidade de pulsos?
« Resposta #1 Online: 17 de Janeiro de 2011, 09:33 »
Ivan,

A largura dos pulsos é fixa - a velocidade é relacionada à frequencia que estes pulsos são enviados.

Posso estar errado porque eletronica não é meu forte, mas penso que se voce tem um pulso de 0,1s, a máxima frequencia de envio deste pulso será de 600Hz (60/0,1)

Normalmente a largura dos pulsos é bem menor do que esta que voce exemplificou - dê uma olhada em algum datasheet de algum integrado para motor de passo e verá que o "duty cycle" é bem mais curto - por exemplo algo em torno de 4us (microsegundos).

Há ainda outros tempos necessários para ao correto funcionamento do drive e não só o Ton e o Toff, e são estes tempos que de certa forma limitam a frequencia máxima de envio dos pulsos, ou que faz com que o motor comece a perder passos (claro que há outras imlicações que influencial a perda de passos e que limitam a frequencia de pulsos que pode ser transmitidas).

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Como calcular período e quantidade de pulsos?
« Resposta #2 Online: 17 de Janeiro de 2011, 10:42 »
Posso estar errado porque eletronica não é meu forte, mas penso que se voce tem um pulso de 0,1s, a máxima frequencia de envio deste pulso será de 600Hz (60/0,1)

Normalmente a largura dos pulsos é bem menor do que esta que voce exemplificou - dê uma olhada em algum datasheet de algum integrado para motor de passo e verá que o "duty cycle" é bem mais curto - por exemplo algo em torno de 4us (microsegundos).

Corrigindo, para um pulso de 0,1 s de Toff e 4 us de Ton, a frequência máxima seria de 1/(0,1+4x10-6), ou aproximadamente 10 Hz.

O ciclo de trabalho seria de 4x10-6 / (0,1+4x10-6), aproximadamente 4x10-5 ou então 0,004%

Offline kelmer

  • Novato
  • *
  • Posts: 55
  • Sexo: Masculino
  • Cidade - UF: Juiz de Fora - MG
Re:Como calcular período e quantidade de pulsos?
« Resposta #3 Online: 17 de Janeiro de 2011, 10:43 »
Estou estudando esse mesmo problema para controle de motores de passo diretamente pelo microcontrolador, para tarefas simples.
Embora esteja apenas começando a quebrar a cabeça, concordo com o Gilli, que a largura do pulso é fixa, e a cada pulso a controladora vai variando as fases do motor que estão ligadas e as que estão desligadas, mantendo um estado até que receba outro pulso.
Aumentando a frequência dos pulsos de forma linear, tem-se a aceleração desejada.



Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Como calcular período e quantidade de pulsos?
« Resposta #4 Online: 17 de Janeiro de 2011, 10:45 »
Na verdade a largura de tempo Ton é fixa, mas a frequência varia, pois Toff varia.

No caso do L297, Ton varia e Toff é fixa.


« Última modificação: 17 de Janeiro de 2011, 11:29 por minilathe »

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
Re:Como calcular período e quantidade de pulsos?
« Resposta #5 Online: 17 de Janeiro de 2011, 11:13 »
Extraído do datasheet do L297:

http://www.guiacnc.com.br/w2box/data/Fabio%20Gilii/coisas/tempo.PNG
Como calcular período e quantidade de pulsos?


Para haver um passo o tempo de duração do pulso será Ts + Th, onde Ts = Setup Time (1us) e Th = Hold Time (4Us).

O tempo total do pulso "para ser reconhecido como pulso" é de 0,5 uS, e este é o menor sinal que pode ter para funcionar - o resto é consequencia disso.

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Como calcular período e quantidade de pulsos?
« Resposta #6 Online: 17 de Janeiro de 2011, 11:28 »

O Ts é o tempo para a lógica interna L297 "entender" os sinais CW/CCW e Half/Full Step.

Com relação aos valores de Ton e Toff, o primeiro é variável e o segundo é fixo (no mínimo 0,5 us). O que eu falei relativo ao ciclo de trabalho deve ser corrigido, pois considerei Ton (e não Toff) fixo, sem ler o catálogo do L297.

Porém, o raciocínio é o mesmo, e deve ser alterado para:

Com clock de 10Hz e Toff de 4us, o ciclo de trabalho será aproximadamente 1 - 0,00004 = 0,99996 ou 99,996%.
 
 

Offline ivan braga

  • Se os fatos não se encaixam na teoria, modifique os fatos. Albert Einstein
  • Novato
  • *
  • Posts: 36
  • Sexo: Masculino
Re:Como calcular período e quantidade de pulsos?
« Resposta #7 Online: 17 de Janeiro de 2011, 17:43 »
Antes de tudo, obrigado a todos pelo retorno.

Acho que não me fiz entender muito bem, desculpe-me por isso, vou tentar esclarecer.

Coloquei Ton e Toff, dentro do mesmo período para facilitar o entendimento e acabei complicando.

Fabio e minilathe

Não tenho duvidas no que se refere ao acionamento do motor de passo, nem do seu controle, sei que o mais comum é configurar o Ton do Mach e do Tcnc com 5us. Tambem sei que o que varia é o Toff.

Vou detalhar o exemplo.

O raciocino mais lógico seria:

    1º pulso => Ton=0.5us + Toff=0.999995s =>1s
    2º pulso => Ton=0.5us + Toff=0.899995s =>0.9s
    3º pulso => Ton=0.5us + Toff=0.799995s =>0.8s
    4º pulso => Ton=0.5us + Toff=0.699995s =>0.7s
    5º pulso => Ton=0.5us + Toff=0.599995s =>0.6s
    6º pulso => Ton=0.5us + Toff=0.499995s =>0.5s
    7º pulso => Ton=0.5us + Toff=0.399995s =>0.4s
    8º pulso => Ton=0.5us + Toff=0.299995s =>0.3s
    9º pulso => Ton=0.5us + Toff=0.199995s =>0.2s
   10º pulso => Ton=0.5us + Toff=0.099995s =>0.1s

  O que daria 10 pulsos, que somados daria 5.5s e não 4.5 como no inicio do raciocino. 


   

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
Re:Como calcular período e quantidade de pulsos?
« Resposta #8 Online: 17 de Janeiro de 2011, 18:22 »
Ivan,

Pelo que eu entendo, não se configura nada de Ton ou Toff... a coisa é feita internamente.

No Mach3, Turbocnc e outros programas o que se configura são os tamanhos dos pulsos completos -  e apenas para exemplificar usaria o gráfico do L297 porque é claro e existe, então seria a soma do Ts + Th, e a quantidade de passos para um determinado deslocamento.

É o programa quem vai calcular quantos pulsos serão necessários para fazer o deslocamento de uma determinada medida.

Então por exemplo, se o deslocamento desejado é de 1mm, e e digamos que para haver este deslocamento são necessários 10 pulsos, o programa gera um trem de pulsos contento estes dez pulsos apenas, e cada pulso dura os 5us que teriam sido informados nas janelas de configuração.

A velocidade de deslocamento é que irá manda na frequencia que estes dez pulsos serão gerados...

Supondo que eu queira mover em 1 mm e em um segundo, o trem de 10 pulsos terá duração de 1 segundo - se eu quiser aumentar a velocidade - envio os mesmos dez pulsos na metade do tempo (0,5s) e terei dobrado de velocidade de deslocamento, mas a contagem de pulsos é a mesma...

A velocidade de deslocamento será calculada levando em conta a quantidade de pulsos para que haja um deslocamento conhecido - seja uma unidade como o milimetro por exemplo mais o tempo que se deseja executar este deslocamento.

O tempo para o deslocamento é calculado levando-se em conta a máxima velocidade e a aceleração - em alguns programas como o Turbocnc, há velocidade mínima e máxima.

Veja - estou comparando com os programas, mas não sei se é esta sua intenção - apenas o fiz para melhor entendimento.
« Última modificação: 17 de Janeiro de 2011, 18:26 por F.Gilii »

Offline ivan braga

  • Se os fatos não se encaixam na teoria, modifique os fatos. Albert Einstein
  • Novato
  • *
  • Posts: 36
  • Sexo: Masculino
Re:Como calcular período e quantidade de pulsos?
« Resposta #9 Online: 18 de Janeiro de 2011, 01:23 »
Fabio.

Concordo com quase tudo que você escreveu, discordando apenas neste trecho.
Citar
, e cada pulso dura os 5us que teriam sido informados nas janelas de configuração.

Vamos considerar o trem de pulsos "mal desenhado" abaixo tendo exato 1seg e sendo caracterizado como "pulso" de uma rampa de descida outra.

Na primeira linha digo que tenho uma frequencia de 5Hz, pois como descrito nesta fonte ""http://pt.wikipedia.org/wiki/Frequ%C3%AAncia""

Frequência é uma grandeza física ondulatória que indica o número de ocorrências de um evento (ciclos, voltas, oscilações, etc) em um determinado intervalo de tempo.
Alternativamente, podemos medir o tempo decorrido para uma oscilação. Este tempo em particular recebe o nome de período (T). Desse modo, a frequência é o inverso do período.


o mesmo evento se repete 5 vezes em 1seg.

Na segunda linha digo que tenho uma frequencia de 6Hz, pois o mesmo evento se repete 6 vezes em 1seg.

Na terceira linha digo que tenho uma frequencia de 10Hz, pois o mesmo evento se repete 10 vezes em 1seg.

      |--------------------1seg---------------------|
      |          _         _         _        _         _    |               
      |  ____| |____| |____| |____| |____| |   |
      |        _       _       _       _       _       _    |
      |  ___| |___| |___| |___| |___| |___| |   |
      |     _   _    _   _    _   _    _   _    _   _    |
      |  _| |_| |_| |_| |_| |_| |_| |_| |_| |_| |   |

Tudo isso desprezando o Ton e Toff, pois isto e irrelevante, estou apenas demonstrando  o conceito de "frequencia" e "pulso".

Exatamente, como escrevi anteriormente, compreendo e concordo.
Citar
Supondo que eu queira mover em 1 mm e em um segundo, o trem de 10 pulsos terá duração de 1 segundo - se eu quiser aumentar a velocidade - envio os mesmos dez pulsos na metade do tempo (0,5s) e terei dobrado de velocidade de deslocamento, mas a contagem de pulsos é a mesma...


Ainda usando o desenho.

Sei que as frequencias usadas são baixas, é apenas para esclarecer, não vou configurar o Mach nem o Tcnc com elas, ao contrario, o que quero entender é como chegar a este trem de pulsos.

Ainda com o exemplo da primeira mensagem, digamos que configurei o Tcnc desta forma:
  •   Velocidade Inicial = 1Hz
  •   Velocidade Final =10Hz
  •   Aceleração =2Hz
E ele chegou a este trem de pulso, 6 pulsos no tempo de 1seg, e como pode ser visto, os pulsos são decrescentes.

      |--------------------1seg---------------------    |
      |            _           _         _       _     _   _    |               
      | ______| |_____| |____| |___| |__| |_| |   |

Com um osciloscópio ligado a porta paralela, vejo um sinal muito próximo disso.  O problema é que meu osciloscópio é analógico, se fosse digital seria muito mais fácil compreender esta duvida. 

Minha intenção e apenas compreender como chegar a um numero especifico de passos, sei que eu na condição de usuário de qualquer um destes programas não tenho que me preocupar com numero de passo, pulsos e bichos do gênero, mais como trabalho com programação de MCUs, não consigo deixar de pensar em como fazer.
Citar
Veja - estou comparando com os programas, mas não sei se é esta sua intenção - apenas o fiz para melhor entendimento.
« Última modificação: 18 de Janeiro de 2011, 01:30 por ivan braga »

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
Re:Como calcular período e quantidade de pulsos?
« Resposta #10 Online: 18 de Janeiro de 2011, 09:31 »
Ivan,

O que eu entendo é que o trem de pulsos é fixo no tempo, então numa rampa de aceleração, a frequencia varia a cada amostra de tempo.

Imaginando que para chegar à vel. máxima eu demore digamos 10 segundos (por exemplo apenas), a cada segundo o trem de pulsos terá uma frequencia fixa, variando na relação de velocidade x tempo...

Supondo que eu começe de velocidade zero e vá até velocidade 10 num tempo de 10 segundos, no primeiro segundo a frequencia é 1/10 da frequencia máxima, depois 2/10, depois 3/10 e assim por diante até a máxima frequencia.

Eu não tenho como medir isso até porque eletronica não é meu forte, mas me baseio pelo que ouço nos acionamentos que faço com alguns drives e em determinadas ocasiões.

Claro - o ideal seria ter a capacidade de analisar a coisa com equipamento adequado.

Pena que eu não posso ajudar mais que as minhas impressões.

Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Como calcular período e quantidade de pulsos?
« Resposta #11 Online: 18 de Janeiro de 2011, 11:29 »
Ivan,

Com relação ao acionamento, o que importa em primeiro lugar é a quantidade de pulsos, pensando na CNC como um controlador de posição (x, y, z, r, ...). Em segundo lugar vem as restrições desse controle de posição, que são a velocidade e a aceleração máxima, que são os "batentes", ou parâmetros na geração dos pulsos. As restrições servem para que o sistema a ter sua posição controlada (que inclui: driver do motor, motor, estrutura, spindle, ferramenta, peça) se "comporte bem", não perdendo passos, evitando frequências de ressonância, etc. Mas o objetivo básico do software CNC é o controle de posição, que depende basicamente da quantidade de pulsos, num sistema CNC baseado em motor de passo.

Para controlar, ou limitar, a frequência, basta controlar a taxa de envio dos pulsos pela porta de saída do controlador da CNC. Daí, se pode definir a aceleração e a frequência máxima. É simples assim!!

Ou então, acho que ainda não entendi sua dúvida...

Offline ivan braga

  • Se os fatos não se encaixam na teoria, modifique os fatos. Albert Einstein
  • Novato
  • *
  • Posts: 36
  • Sexo: Masculino
Re:Como calcular período e quantidade de pulsos?
« Resposta #12 Online: 19 de Janeiro de 2011, 15:12 »
Fabio,

Este também é meu pensamento sobre a duvida que postei, o que está difícil é saber como chagar a um determinado numero de pulsos e a duração de cada um deles.

Supondo que eu começe de velocidade zero e vá até velocidade 10 num tempo de 10 segundos, no primeiro segundo a frequencia é 1/10 da frequencia máxima, depois 2/10, depois 3/10 e assim por diante até a máxima frequencia.

minilathe,

Sei de tudo que você escreveu, esta não é meu questionamento.

Vamos esquecer totalmente o conceito referente as maquinas.

Supondo que eu queira fazer um gerador de funções, e uma desta funções é gerar em trem de pulsos de ondas quadradas com um duty cycle de 50% que varie de 0 a 10Hz com uma aceleração de 1Hz.

Este citado trem de pulsos terá que se iniciar de 0Hz e ir até 10Hz. E terá uma rampa de aceleração de 1Hz, logo (10Hz-0Hz)/1Hz=10seg, sendo assim no meu 1º segundo tenho 1 pulso que durará tambem 1seg, Já no meu 2º seg terei 2 pulsos, porem estes pulsos não podem ter a mesma largura, ou seja, se cada um tiver 0.5seg de largura(entenda que para facilitar quando falo de largura me refiro sempre a Ton e Toff do pulso em evidencia), o 1º pulso do 2º seg teve uma rampa de aceleração em relação ao único pulso do 1º seg, porem o 2º pulso do 2º seg não teve nenhuma aceleração em relação ao 1ºpulso do 2º seg.

Como no 3º seg eu terei "possivelmente" 3 pulsos e em teoria já estarei entrando na casa dos 3Hz, 1seg/3Hz=0.333...seg. Então voltando a confusão do parágrafo acima, meu 2º pulso do 2º seg terá que ter um tempo entre >0.5seg e 0.333seg< para poder apresentar uma aceleração em relação ao seu anterior.

Sei os parágrafos acima parecem confusos, porem lendo com atenção acho que agora da para entender meu questionamento.

Se ainda não fui claro, tentarei de outra maneira.
Citar
Ou então, acho que ainda não entendi sua dúvida...

Obrigado pelas respostas de todos. 


 



Offline minilathe

  • How to ask questions - The Smart Way...
  • Moderadores
  • CNCMASTER
  • ******
  • Posts: 4295
  • Sexo: Masculino
  • http://science-lakes.com/article43-html.html
  • Cidade - UF: Rio de Janeiro - RJ
  • Nome:: Gil Pinheiro
  • Profissão: Engenheiro e professor universitário
Re:Como calcular período e quantidade de pulsos?
« Resposta #13 Online: 19 de Janeiro de 2011, 17:57 »
Supondo que eu queira fazer um gerador de funções, e uma desta funções é gerar em trem de pulsos de ondas quadradas com um duty cycle de 50% que varie de 0 a 10Hz com uma aceleração de 1Hz.

Este citado trem de pulsos terá que se iniciar de 0Hz e ir até 10Hz. E terá uma rampa de aceleração de 1Hz,

Acho que a idéia inicial deve ser refeita. Ao invés de um gerador de sinais, vamos imaginar um contador de passos. Para o qual queremos enviar 100 pulsos. Porém, a frequência máxima é de 10 Hz e a aceleração de 2Hz por segundo.

É importante frisar que: na prática a coisa não seria implementada assim!!!

Mas para compreender, podemos fazer uma analogia com a cinemática, utilizando as seguintes equações:

f = f0 + a * t    .... (Eq. 1)

N = N0 + f0 * t + 0,5 * a * t 2    .... (Eq. 2)

Saindo de 0 Hz e N0 = 0,

Em t = 1 s, teremos:
f = 0 + 2 * 1 = 2 Hz
N = 0 + 0 + 0,5 * 2 * 1 = 1 passo

Em t = 2 s, teremos:
f = 2 + 2 * 1 = 4 Hz
N = 1 + 2 * 2 + 0,5 * 2 * 4 = 9 passos

Em t = 3 s, teremos:
f = 4 + 2 * 1 = 6 Hz
N = 9 + 4 * 3 + 0,5 * 2 * 9 = 30 passos

Em t = 4 s, teremos:
f = 6 + 2 * 1 = 8 Hz
N = 30 + 6 * 4 + 0,5 * 2 * 16 =  70 passos

Em t = 5 s, teremos:
f = 8 + 2 * 1 = 10 Hz (chegou ao limite máximo, não aumentar mais a frequência!! "Zerar" a aceleração!!)
N = 70 + 8 * 5 + 0,5 * 2 * 25 = .... limitar em 100 passos

« Última modificação: 20 de Janeiro de 2011, 13:13 por minilathe »

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
Re:Como calcular período e quantidade de pulsos?
« Resposta #14 Online: 19 de Janeiro de 2011, 18:56 »
de 9 passos em 2 segundos pula para 30 passos em 3s?

Acho que tem coisa errada aí...

 

/** * */