Relación da velocidade dos motores coa tensión de alimentación

Para poder regular a velocidade dos motores do robot, para así poder realizar trazados rectos, é necesario obter a relación existente entre a tensión media aplicada a cada motor e a velocidade que este transmite a roda.
Como o control de velocidade dos motores realízase mediante Modulación de Anchura de Pulso (PWM) e esta está directamente relacionada coa tensión media aplicada aos motores, realízase unha proba variando o PWM e medindo a velocidade obtida en cada roda.

DATOS OBTIDOS
A velocidade dos motores exprésase como RPM roda e a Modulación de Anchura de Pulso que pode variar entre 0 e 255 por PWM.
A variación do PWM está entre 0 e 255 por que o xerador de PWM do microcontrolador ATMEGA328P-PU é de 8 bits o que nos da
8^2 =256 valores distintos para a codificación da sinal.
Os resultados pertencentes a PWM máis baixa, dependen moito da presión exercida polas rodas contra os motores.
As probas realizáronse alimentando o circuíto coa batería ao máximo nivel de carga, polo que o voltaxe entregado ao robot nunca descendeu por debaixo dos 5 V. As medidas foron tomadas co robot circulando nunha superficie de madeira pulida de 170cm.
Ambos motores teñen unha velocidade moi similar, polo que non é necesario realizar a linealización de ambos por separado.

A seguinte gráfica mostra a evolución das RPM (azul) e dos PWM (laranxa) da saída do motor con carga.

GRAFICA1

Como pode observarse, a evolución de ambas non é directamente equivalente, polo que se fai necesario analizar os datos con mais precisión. Para isto, elabórase unha gráfica onde se mostra a evolución das RPM respecto a os PWM, para a partir desta, obter a función característica necesaria.

A seguinte gráfica mostra a variación das RPM (Eixe vertical) respecto a variación dos PWM (Eixe horizontal).

GRAFICA2

Empregando a ecuación da recta: y=m⋅x+ b

A pendiente dados dous puntos: m= ( y 2 − y 1 ) / ( x 2 −x 1 )

E a función definida a anacos: f ( y)=m⋅x + b→ f (x )=( y−b)⋅(1/m) ; si a< y< l

Obténse a seguinte ecuación:

f (x )=0 ; si y=0→ Para 0 RPM fórzase PWM =0 para non descargar as baterías
f (x)_1 =( y −(−202))⋅(1/2.525); si 0<y≤101
f (x )_2 =( y−1,006)⋅(1/0.833): si 101<y≤151
f (x )_3 =( y −115)⋅(1/0.2); si 151<y≤155
f (x )_4 =( y−75)⋅(1/0.4); si 155<y

Con esta función definida a anacos é posible obter o porcentaxe PWM a aplicar nos motores, en función das RPM desexadas, sendo y=RPM e x=PWM

Función empregada no programa principal do robot:

int rpm_a_pwm(float rpm)//PASO DE RPM A PWM
{// En funcin do valor de rpm aplica unha ou outra formula para adaptarse a ecuacion achada no estudo do comportamento dos motores
 int pwm=0;
 if(rpm<1)
 {
  pwm=0;
 }
 else
 {
  if(rpm<=101)
  {
   pwm=(rpm+202)/2.525;
  }
  else
  {
   if(rpm<=151)
   {
    pwm=(rpm-1.006)/0.8333;
   }
   else
   {
    if(rpm<=155)
    {
     pwm=(rpm-115)/0.2;
    }
    else
    {
     pwm=(rpm-75)/0.4;
    }
   }
  }
 }
 return pwm;//Valor que devolve
}

Deixar un comentario