Rampa de aceleração e desaceleração.

Eletrônica de Potência, Eletrotécnica, Motores, Geradores, etc....

Moderadores: 51, guest2003

Rampa de aceleração e desaceleração.

Mensagempor Eduardo Augusto » 15 Dez 2015 10:46

Olá amigos!
Estou travado no desenvolvimento de uma rotina, não consigo sair do lugar, e gostaria do suporte de vocês.
Bem como posso explicar...
O usuário deve informa ao sistema as variáveis de frequência inicial , frequência final , tempo inicial e tempo final da seguinte forma:

cpp code
struct rampa{
unsigned int Finicial;
unsigned int Ffinal;
unsigned int deltaFreq;

unsigned int Tinicial;
unsigned int Tfinal;
unsigned int deltaTempo;
}ramp;

void configRampa(unsigned int Finicial, unsigned int Ffinal, unsigned int Tinicial, unsigned int Tfinal)
{
ramp.Finicial = Finicial; ramp.Ffinal = Ffinal;
ramp.deltaFreq = (Finicial-Ffinal);

ramp.Tinicial = Tinicial; ramp.Tfinal = Tfinal;
ramp.deltaTempo = (Tinicial-Tfinal);
}


Daí acho os valores de delta frequência e tempo....Sendo o tempo em ms e a frequência em Hz...

Daí apos o usuário configurar essas variáveis e colocar o sistema em modo de operação, um timer programado para 1ms vai gerar via interrupção o clock da rampa e ai penso que,uma equação vai proporcionalmente, a partir do valor de Finical e Ffinal incrementar uma variável que sera minha variável de saída. Minha saída tem de ser em frequência e proporcional. Não estou conseguindo enxergar como modelar isso, quanto mais procuro saber mais dou um nó.

Tenho quase que certeza que a desaceleração seja o mesmo contudo decrementando a variável de saída.
Não é possível dormir com todas mulheres do mundo, mas deve-se fazer o esforço.
Avatar do usuário
Eduardo Augusto
Byte
 
Mensagens: 105
Registrado em: 03 Mar 2014 08:57
Localização: São Paulo, SP

Re: Rampa de aceleração e desaceleração.

Mensagempor andre_luis » 15 Dez 2015 11:37

Isso tá cheirando á uma regra-de-três, mas não vi nenhuma conta de divisão acima.
De qualquer modo, tem como anexar um gráfico mostrando melhor ó que seria esperado da saída ?
"Por maior que seja o buraco em que você se encontra, relaxe, porque ainda não há terra em cima."
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Re: Rampa de aceleração e desaceleração.

Mensagempor MOR_AL » 15 Dez 2015 12:41

Tá me cheirando a equação de uma reta (proporcional).
Como o uC é uma péssima calculadora, eu acrescentaria a decisão:
Se n for igual a N, então T(N) = Tf e F(N) = Ff
MOR_AL
Você não está autorizado a ver ou baixar esse anexo.
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Re: Rampa de aceleração e desaceleração.

Mensagempor Djalma Toledo Rodrigues » 15 Dez 2015 12:49

Não da para entender bem voce fala em ms em Hz depois aceleração e des...
Se cogitas em Rampa de aceleração ou desaceleração pressupõem-se inércia. quem entender há?

Não entendo, não compreendo, essas consultas, aqui falando em geral, há de ser Projetos Ultra-secretos...

Mas vamos ao caso:

Quando for assim antes de partir logo pro programa imagine, se pergunte, como uma pessoa procederia.
Faça um Fluxograma do Procedimento Lógico dessa pessoa
No Fluxograma já deverá estar solucionado
passe para o Programador.

Dj.
Editado pela última vez por Djalma Toledo Rodrigues em 15 Dez 2015 13:03, em um total de 1 vez.
Avatar do usuário
Djalma Toledo Rodrigues
Dword
 
Mensagens: 2334
Registrado em: 03 Ago 2008 13:22

Re: Rampa de aceleração e desaceleração.

Mensagempor Eduardo Augusto » 15 Dez 2015 13:01

Desculpa a explicação nas coxas, não tem segredo nenhum, é que não soube explicar mesmo. Trata-se de um projeto de um inversor v/f de até 4cv.

Portanto a rampa pode ser de tempo de 100ms a até 10min. Por isso o clock de 1ms pelo timer.

Bem vamos lá o gráfico final serial um trapézio como o abaixo,
Eu pensei em usar um interpolação linear, pois tenho os limites de x e y e acho conseguiria achar os valores intermediários mas ainda estou me enrolando. :?

untitled.png

Moral tenho quase certeza que seja isso, um função de reta, tentarei implementar.
Você não está autorizado a ver ou baixar esse anexo.
Não é possível dormir com todas mulheres do mundo, mas deve-se fazer o esforço.
Avatar do usuário
Eduardo Augusto
Byte
 
Mensagens: 105
Registrado em: 03 Mar 2014 08:57
Localização: São Paulo, SP

Re: Rampa de aceleração e desaceleração.

Mensagempor brasilma » 15 Dez 2015 13:14

Olá Eduardo,

Creio que o cálculos para os incrementos da rampa seriam feitos dividindo-se o delta de frequência pelo delta de tempo em mS.

E a partir da frequência inicial a cada ciclo de interrupção de 1 mS você adiciona o valo obtido no cálculo anterior.

Creio que a base seja essa...
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Re: Rampa de aceleração e desaceleração.

Mensagempor Eduardo Augusto » 15 Dez 2015 14:06

brasilma escreveu:Olá Eduardo,

Creio que o cálculos para os incrementos da rampa seriam feitos dividindo-se o delta de frequência pelo delta de tempo em mS.

E a partir da frequência inicial a cada ciclo de interrupção de 1 mS você adiciona o valo obtido no cálculo anterior.

Creio que a base seja essa...


Calma lá deixa eu ver se eu entendi!
O usuario informa Finicial = 5, Ffinal = 60, TInicial = 0, Tfinal 3s (3000ms).
Dai eu teria um DeltaF de 55Hz e um DeltaT de 3000. Daí a cada interrupção eu poderia fazer
Código: Selecionar todos
return ((DeltaF/DeltaT))+ValorAnterior;
?

Brasilma fiz umas simulações aqui no excel e funcionou como o esperado, contudo no final da rampa eu estou com o valor de DeltaF, no caso 55 e não 60.
Não é possível dormir com todas mulheres do mundo, mas deve-se fazer o esforço.
Avatar do usuário
Eduardo Augusto
Byte
 
Mensagens: 105
Registrado em: 03 Mar 2014 08:57
Localização: São Paulo, SP

Re: Rampa de aceleração e desaceleração.

Mensagempor brasilma » 15 Dez 2015 14:25

Isso,

Ffinal = 60Hz - Finicial = 5Hz => 55Hz;
Tfinal = 3000mS - TInicial = 0 => 3000mS

3000mS / 55Hz = 54.5mS

A cada 54 ou 55 ciclos* de interrupção de 1mS você incrementa 1Hz na frequencia.
*(a rotina pode usar arredondamento para o valor e usar o valor da frequência final informada pelo usuário como limite)

Você precisará prever limites para as grandezas para não ocorrer problema de divisão ou coisas absurdas como uma aceleração/desaceleração acima de determinados limites.

Para não ocorrer este problema que relatou, deixa como parâmetro para o encerramento da rotina de rampa que o valor da frequência seja igual ao que o usuário informou (como sugeri), ok? (creio que o parâmetro de frequência seja mais relevante (ou observável) que o tempo da rampa)
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Re: Rampa de aceleração e desaceleração.

Mensagempor MOR_AL » 15 Dez 2015 18:47

Eduardo Augusto escreveu:
brasilma escreveu:Olá Eduardo,

Creio que o cálculos para os incrementos da rampa seriam feitos dividindo-se o delta de frequência pelo delta de tempo em mS.

E a partir da frequência inicial a cada ciclo de interrupção de 1 mS você adiciona o valo obtido no cálculo anterior.

Creio que a base seja essa...


Calma lá deixa eu ver se eu entendi!
O usuario informa Finicial = 5, Ffinal = 60, TInicial = 0, Tfinal 3s (3000ms).
Dai eu teria um DeltaF de 55Hz e um DeltaT de 3000. Daí a cada interrupção eu poderia fazer
Código: Selecionar todos
return ((DeltaF/DeltaT))+ValorAnterior;
?

Brasilma fiz umas simulações aqui no excel e funcionou como o esperado, contudo no final da rampa eu estou com o valor de DeltaF, no caso 55 e não 60.


Se você tentar seguir o que eu postei, vai ver que você chegou a 55 e não 60, porque não computou o valor inicial na reta.
Sua reta parte da origem (0,0). Daí só tem o coeficiente angular (o m). Faltou o coeficiente linear, que desloca a reta, deixando de partir da origem.
Estude mais um pouquinho a minha postagem anterior, que você chega lá.
Em tempo:
Se for para simular o gráfico que você postou, ele é formado por uma sequência de três retas. A primeira com coeficiente angular positivo. A segunda com coeficiente angular nulo. A terceira com coeficiente angular negativo.

A equação geral da reta é:

y = m (x - x0) + y0, onde

y é o valor da vertical, dados os demais valores.
m é o coeficiente angular. É o que você calculou e eu mostrei antes. É o Df / DT.
x0 e y0 são os valores (conhecidos) de um ponto pertencente à reta.
x é o valor que você escolhe, para achar o y.

Ex:

Uma equação de reta que parra pelos pontos (1,2) (x0 = 1 e y0 = 2) e (3,4) (x1 = 3 e y1 = 4)

Solução:

m = (y1 - y0) / (x1 - x0) = (4 - 2) / (3 - 1) = 2 / 2 = 1.

então a equação da reta é:
y = m (x - x0) + y0
Substituindo os valores:
y = 1 * (x - 1) + 2 = x - 1 + 2 = > y = x + 1
Agora vamos ver se essa equação de reta passa pelos pontos x0, y0 e x1, y1
Para x0 = 1, o valor de y TEM que dar 2

y = 1 + 1 = 2. Ok!

Agora vamos ver se a reta passa pelo ponto (x1 = 3 e y1 = 4).
entro com x = 3 e y TEM que dar 4.
y = 3 + 1 = 4. Ok!

... E se x for igual a zero?

y = 0 + 1 => y = 1, então a reta também passa pelo ponto (0,1)

Agora você pode substituir y pela frequência e o x pelo tempo. Veja minha postagem anterior, que você vai entender.
Espero ter ajudado.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ


Voltar para Eletrotécnica

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x