Autor Tema: Rampa de aceleracion y desaceleracion  (Leído 15366 veces)

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

Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
Rampa de aceleracion y desaceleracion
« en: 20 de Febrero de 2008, 06:24:54 »
Hola pues soy nuevo en el foro y con ganas de aprender,he estado trabajando en un posicionador como proyecto,y elproblema en mi proyecto es que no se komo hacerle para que cuando se acerque al punto deseado baya disminuyendo su velocidad y si esta muy lejos del punto deseado su velocidad sea mayor...espero alguien me pueda ayudar por que no tengo la menor idea de como resolver este problema  :( -------  gracias y un saludo  :-/

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Rampa de aceleracion y desaceleracion
« Respuesta #1 en: 20 de Febrero de 2008, 06:53:57 »
Bienvenido solozener:

Creo que necesitas aportar más información para que se te pueda ayudar. Con posicionador ¿te refieres a un brazo robot?

Si aportas más detalles será más fácil indicarte qué tipo de sensor o qué código necesitas.

Saludos

Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
Re: Rampa de aceleracion y desaceleracion
« Respuesta #2 en: 20 de Febrero de 2008, 12:53:12 »
Bueno primeramente gracias :-/,si la idea mas o menos seria la de realizar un brazo posicionador para poner cds en un lector ...pero como base estoy utilizando el mecanismo de la impresora para desplazarle en un eje...el problema de ke kuando yega al punto deseado yega muy fuerte y todo se balancea  :D ,Un saludo

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Rampa de aceleracion y desaceleracion
« Respuesta #3 en: 20 de Febrero de 2008, 12:58:48 »
Yo utilizaría un encoder óptico para conocer en todo momento la posición del brazo y actuar sobre su velocidad angular en consecuencia.

Aquí http://www.dte.upct.es/personal/jsuardiaz/docencia/Sensores/Downloads/Transparencias/Tema%206.pdf tiene un documento interesante sobre este asunto

Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
Re: Rampa de aceleracion y desaceleracion
« Respuesta #4 en: 20 de Febrero de 2008, 14:51:13 »
agradeciendo tu ayuda jfmateos2,hasta ahorita posiciono el brazo komo lo comentas con encoder como los del mouse ..pero yo creo lo ke me faya es como hacer la subrutina en ensamblador o la teoria de como podria  hacer la rampa para cuando se acerque al punto deseado no yegue tan rapido :(..
he intentado con pwm pero no he conseguido asemejar un poco a una rampa  :D
y como no tengo ni idea de como saver que tan lejos  o cerca esta del punto que valor deberia tener el pwm no me ha funcionado :lol:


el micro con el cual estoy implementando el control es un 877

Gracias jfmateos2 por tu ayuda

Desconectado andros

  • PIC16
  • ***
  • Mensajes: 111
Re: Rampa de aceleracion y desaceleracion
« Respuesta #5 en: 20 de Febrero de 2008, 15:17:15 »
deberías implementar un controlador PID, su error en estado estable es poco (error con respecto a la posición), y hace precisamente lo que dices (cuando su comportamiento es de primer orden), acelera cuando está lejos, y disminuye la velocidad cuando está cerca.

Creo que en el foro hay rutinas que implentan el controlador.

Saludos

P.D: Si estoy equivocado en algo me lo hacen saber, gracias.
Andros!

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: Rampa de aceleracion y desaceleracion
« Respuesta #6 en: 20 de Febrero de 2008, 15:35:48 »
¿deduzco que estás usando un servo como motor, verdad?

Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
Re: Rampa de aceleracion y desaceleracion
« Respuesta #7 en: 20 de Febrero de 2008, 19:23:03 »
estoy usando un motor de CD sin reductora para moverlo  :-/

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: Rampa de aceleracion y desaceleracion
« Respuesta #8 en: 26 de Febrero de 2008, 12:22:34 »
Empieza por un control proporcional (P), tu señal de control es Up(%)=(Error/Banda)*100 donde el Error=Set_Point - Valor_Actual y la Banda=(x%)*Set_Point, la Banda es la distancia a partir de la cual el control comienza a trabajar hasta llegar al Set Point, a medida que te vas acercando el Set Point el Error va disminuyendo y la accion Proporcional tambien de esta manera veras que llegaras al set point de "forma suave", el x% escógelo de un valor apropiado digamos x=20 por ejemplo y parte de ahi.

El Up(%) es el porcentaje de Duty Cycle de tu señal de PWM que enviaras desde el pic.

Espero te sirva de algo y repasa bastante sobre la teoria PID.

Javicho.

Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
Re: Rampa de aceleracion y desaceleracion
« Respuesta #9 en: 22 de Marzo de 2008, 05:04:28 »
Pues muchas gracias por las ideas,y perdon por no haber podido conectarme pero kortaron mi fon... :D
Y regresando con lo del control gracias por sus respuestas
pero javicho no me quedan claros algunos detalles


aque te refieres con "banda",y la divicion de (error/banda) la tendria que implementar con el micro???

gracias

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: Rampa de aceleracion y desaceleracion
« Respuesta #10 en: 22 de Marzo de 2008, 10:36:44 »
Hola SOLOZENER:

Si partes de que el brazo se encuentra muy alejado del punto deseado (en tu caso la lectora de cds) entonces podrias darle al motor el 100% de ciclo util, esto es porque se supone que te encuentras a una distancia muy lejana (por exagerar) de tu punto de destino o "Set Point". Pero debe haber un punto en el cual el ciclo util debe comenzar a bajar "proporcionalmente" a la distancia que existe entre el Set Point y la posición actual del brazo.

Entonces la distancia a partir de la cual quieres que tu brazo comienze a bajar la velocidad para no llegar muy rapido al Set Point se le llama Banda Proporcional y esta banda lo debes escoger de un valor adecuado dependiendo de las caracteristicas de tu propio sistema, que tan inercial es. Las formulas las coloqué en el post anterior.

Javicho.

Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
Re: Rampa de aceleracion y desaceleracion
« Respuesta #11 en: 22 de Marzo de 2008, 17:15:00 »
gracias por las respuestas javicho..

pero por lo que entiendo yo debo de fijar un punto en el cual empieze a desacelerar conforme al error ,pero entonces siempre seria la desaceleracion en el mismo punto ..pero de donde toma los cds para ponerlos en el cd-rom puede tener 200 posiciones pocibles de donde tomar algun cd
pero el problema seria cuantas rampas diferentes tendria que programar..o solo para cada cd ajustaria el punto para detenerse

javicho otra pregunta abusando de tu gentileza :-),al empezar a trabajar sobre el pwm y mi motor ,me ha sucedido que el motor solo zumba y no se muebe..que estoy haciendo mal???
estoy usando el modulo ccp/pwm del 877 pero no se que pase o por que solo zumba ??


gracias javicho

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: Rampa de aceleracion y desaceleracion
« Respuesta #12 en: 23 de Marzo de 2008, 23:13:05 »
Que tipo de motor usas? que frecuencia? tal vez estas configurando mal el mosfet o transistor que dispara tu motor, tal vez estas enviando un pequeño ciclo util por eso no se mueve, tal vez debido al motor a tu transistor o mosfet le está llegando tensiones positivas (cuando el pwm envia 1 logico para disparar) y tensiones negativas igual al negativo de tu fuente (cuando el pwm envia 0 logico). Seria mejor que lo veas con un osciloscopio.

error ,pero entonces siempre seria la desaceleracion en el mismo punto ..pero de donde toma los cds para ponerlos en el cd-rom puede tener 200 posiciones pocibles de donde tomar algun cd

No entendí lo de las 200 posiciones.

Javicho.

Desconectado SOLOZENER

  • PIC10
  • *
  • Mensajes: 16
Re: Rampa de aceleracion y desaceleracion
« Respuesta #13 en: 26 de Marzo de 2008, 03:30:20 »
Pues uso un motor de c.d desos pequeños de juguete con una reductora,para su control y pwm uso un driver l293b a una frecuencia de 250 hz...cuando el ccpr1l=0 se escucha un sumbido asta ya despues de muchos incrementos del ccpr1l empieza a dejar de escucharse el zumbido y poco despues empieza a moverse el motor   :-/


y con respecto a las 200 posiciones es porque tengo una torre de cd's de donde se ba a tomar el cd seleccionado,,,estoy tratando de hacer algo asi komo una rocola  :D pero un poco estlizada con mecanica y cables  :D

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Re: Rampa de aceleracion y desaceleracion
« Respuesta #14 en: 26 de Marzo de 2008, 06:39:28 »
En principio, lo mas estandar seria que modelizaras el motor de CC, obtuvieses sus ecuaciones de estado y diseñases un controlador, junto con un observador de estado. Fijate que simple lo digo jajaj pero no lo es (aunque nosotros lo hemos hecho hace unas semanas).

Bien te comento... segun lo poco que se de controladores y PIDs, yo creo que lo mejor es que diseñes un PID digital en un PIC (analogicos ni de coña!!), y vayas cambiando ("sintonizando" en la jerga) los parametros Kp,Ki,Kd hasta que consigas lo que deseas.

La referencia del PID sería la posicion X donde quieres que este el posicionador, el error seria la medicion del encoder (digitalizada claro), y la salida seria una señal analogica (mediante un DAC) al L293B. Asi de simple. El diseño es muy simple (un PIC y un conversor D/A), y la programacion tambien, pues hay demasiados ejemplos en internet sobre PIDs en micros (incluidos los pics). Lo mas dificil y tedioso será ajustar esos 3 parametros, pero seguro que con un poco de paciencia y documentacion sobre sintonizacion de PIDs lo haces en una tarde.

La gran ventaja de diseñar el PID en soporte digital es que los 3 parametros no son 3 posiciones e-x-a-c-t-a-s de los potenciometros, sino 3 floats que programas comodamente en el PIC en un pimpampum. Si te pones mas elegante y para acelerar las cosas, puedes meterle una consola RS232 para cambiar los valores de sintonia "on the fly", y enviarle referencias de posicion para ver el comportamiento. Yo desdeluego lo haria.

Un saludo!
« Última modificación: 26 de Marzo de 2008, 06:44:42 por manex_1987 »