• Welcome to LusoRobótica - Robótica em Português.
 

Controlo de velocidade NGW100

Started by Deaftones, 03 de March de 2011, 18:30

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Deaftones

Boas pessoal!
Andei a ver alguns tópicos deste fórum e resolvi pedir uma ajuda, sendo a primeira vez que aqui participo.
Estou a fazer um projecto usando a NGW100, programando em C++ em que o bjectivo é controlar a rotação de um motor DC12V a partir de várias aplicações.
Já faço a aquisição de sinal (velocidade de rotação do motor), e recebo o valor de rotação desejada.
Para controlar o motor tinha um controlador proporcional com este código:
if(mot.get_act_speed() < mot.get_des_speed())
{
if(pwm>100)
{
pwm = 100;
}
else
{
pwm++;
}
value[1] = pwm;
write(fd1, value, 2);
}
if(mot.get_act_speed() > mot.get_des_speed())
{
if(pwm<1)
{
pwm = 1;
}
else
{
pwm--;
}
value[1] = pwm;
write(fd1, value, 2);
}

Mas este controlador não é eficiente em que testando, apresentava valores de histerese de cerca de 1000rpm.
Então pensei em fazer um controlador PID, mas estou com muitas dificuldades em tirar a "expressão matemática"/código para implementar este controlador.
Será que me podem ajudar?
Abraço

senso

Avr fanboy