Autor Tema: Problemas con sensor y enoder  (Leído 2872 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
Problemas con sensor y enoder
« en: 21 de Abril de 2008, 17:34:01 »
 :-/ pues les cuento trabajando en un posicionador lineal e decidido ponerle un encoder incremental con un sensor de barrera...
y para saber cuantos pulsos yeba uso un pic16f877 y una pantalla lcd... pero el problema es que apenas arranca el motor y el contador se dispara rapidamente contando pulsos que no concuerdan con  el encoder :(,y no se por k o de donde salen los pulsos ,ya que si muevo el motor con la mano lentamente si cuenta los 60 pulsos que necesito.

el encoder que uso tiene 12 ranuras y el conteo de los pulsos lo ago por interrupcion de RB0...

espero alguien me pueda ayudar gracias :-/

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: Problemas con sensor y enoder
« Respuesta #1 en: 21 de Abril de 2008, 17:37:41 »
el contador se dispara rapidamente contando pulsos que no concuerdan con  el encoder

Que quieres decir con que no concuerdan? El motor es tan lento como para reconocer una vuelta y la cantidad de pulsos de encoder que se han dado? Que ley de control usas para llegar a 60 pulsos?

salu2

Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
Re: Problemas con sensor y enoder
« Respuesta #2 en: 22 de Abril de 2008, 11:36:48 »
Uso solamente la proporcional para el control,pero el problema es que el que el encoder solo da 5 vueltas osea 60 pulsos ,pero cuando enciendo el motor por alguna razon cuenta muchas mas ranuras que 60,como si fuera ruido pero no se que pueda ser,ya que el conteo lo ago por el pin RB0 por interrupcion en flanco de bajada

gracias

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: Problemas con sensor y enoder
« Respuesta #3 en: 23 de Abril de 2008, 02:13:48 »
Lo mas probable es que sea ruido, tal vez en tu rutina de test del encoder no le estas poniendo un delay antirebote, este delay debe ser tal que no sobrepase el tiempo en el que el encoder pase de un estado a otro; también podrias darle energia paulatina al motor por pwm incrementando de a poco el ciclo útil hasta alcanzar la velocidad que desees.

Javicho.

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: Problemas con sensor y enoder
« Respuesta #4 en: 23 de Abril de 2008, 13:30:52 »
Puedes explicar brevemente que hardware lleva el encoder? Un encoder no tiene porque dar una señal cuadrada perfecta; generalmente se opta por poner un inversor schmitt o sino un comparador con un potenciometro.

El conjunto motor+encoder es generalmente modelado como un sistema de 2º orden. Luego, si le metes una referencia constante, la respuesta oscilará hasta llegar a la referencia.

Has probado con valores de K bajos?

Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
Re: Problemas con sensor y enoder
« Respuesta #5 en: 26 de Abril de 2008, 11:50:16 »
gracias de nuevo por sus respuestas,la subrutina para contar los pulsos la ago por interrupcion del rb0,o ke me aconsejarian ??
hacerlo mejor como una subrutina y poder ponerle el retardo que komenta javicho???


y como hardware del encoder es incremental de 130 ranuras y un sensor que ba el receptor frente al emisor con una resistencia de 100 ohms en emisor y 10kilohms en receptor la salida del sensor la paso atraves de un lm358 y de la salida del lm al pin rb0 del pic16f877

Gracias por sus respuestas. :-/

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: Problemas con sensor y enoder
« Respuesta #6 en: 26 de Abril de 2008, 11:56:49 »
Has ajustado diferentes valores de K? Si el valor es bastante alto, el sistema tendrá sobreimpulsos, y te medirá muchisimos pulsos mas de lo que son...

Quetal si pruebas a controlarlo con un PD?

Lo de RB0 esta bien. Tambien puedes probar con un timer que en vez de ser incrementado por el oscilador interno, sea incrementado por los flancos de un pin externo.

Por otra parte... como has configurado la salida de la señal de control? Como afecta ésta al motor cuando es positiva y cómo cuando es negativa? Tienes en cuenta que cuando el motor gira en sentido contrario, el encoder ha de decrementar la posicion en vez de incrementarla?

Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
Re: Problemas con sensor y enoder
« Respuesta #7 en: 27 de Abril de 2008, 00:17:38 »
manex_1987
no entiendo tu pregunta  de que komo he configurado la salida de señal de control?,y la de como afecta ésta al motor cuando es positiva y cómo cuando es negativa?
y para hacer que el motro gire en sentido contrario lo hago invirtiendo dos pines en un l298 haci logro que retroceda y envez de decrementar la cuenta ,empiezo una nueva cuenta con el encoder

gracias :-/

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: Problemas con sensor y enoder
« Respuesta #8 en: 27 de Abril de 2008, 07:57:15 »
Ok, pero el motor lo alimentas con PWM? O es un control on-off?

No se, mi planteamiento es el siguiente. Si ponemos una referencia de 60 pulsos (quieres que de exactamente una vuelta), y si la ley de control es esta: out=K*(Medicion-Referencia), entonces, suponiendo la posicion inicial como "0" y K=1 (por probar), tendras -60 a la salida, que lo puedes traducir a PWM como te apetezca.

Segun vayas recibiendo pulsos por RB0, incrementas o decrementas la posicion, dependiendo de hacia donde estamos moviendo el motor. Asi, segun se acerque el posicionador a su posicion objetivo (1 vuelta) ira decelerando, pues el error sera menor. Si se pasa de la posicion, el error sera positivo, por lo que movera el motor hacia el otro lado, y asi sucesivamente hasta estabilizarse en 60.


Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
Re: Problemas con sensor y enoder
« Respuesta #9 en: 28 de Abril de 2008, 03:04:10 »
 :-/la señal de pwm se la aplico al  enable del l298,

ahora aprovechandome de tu ayuda el encoder lineal que tengo tiene 130 ranuras y el sensor ya cuenta bien las 130 ,pero ahora el problema es que si kiero ir al punto mas lejos (130 cm) y con la Kp funciona y yega al punto komo kiero pero cuando kiero 10 cm el motor nisikiera se mueve ,y no tengo idea de como ajustar la ganancia :( ,si debo de hacer comparaciones por cada intervalo para saber por cuanto multiplicar el error o como hacerle?

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: Problemas con sensor y enoder
« Respuesta #10 en: 28 de Abril de 2008, 05:11:40 »
Lo de Kp, si no quieres optar por hacerlo analiticamente (un coñazo), puedes hacerlo experimentalmente.

El encoder has de leerlo al menos 5 veces por constante de tiempo del motor. Antes que calcular ésta (experimentalmente, se necesitaria un tacometro analogico y cierta maña), puedes decidirte por un tiempo razonable. Los motores tienden a estabilizarse en milisegundos... no se que motor llevas pero bueno, leyendo el encoder cada ms o asi, yo creo que andaras bien.

Lees el encoder, haces Ref-Medida, y lo multiplicas por Kp. Y eso, mediante una buena tabla lookup, o una multiplicacion, lo conviertes en señal PWM.