Componentes y tecnología electrónica, regulación, automatización, domótica, inmótica y edificio inteligente. Protocolo KNX, X10, EIB, LON, DALI, DMX, Zigbee, Powerline…
por
#230894
Hola, estoy desarrollando una aplicación para un máquina con varios ejes hidraúlicos. Necesito un poco de precisión en los movimientos y no tengo problemas con el controlador (PID adaptativo), pero si tengo problemas con el generador de trayectorias, concretamente el planificador de la trayectoria. Es tan simple como mover un pistón hidraúlico con un perfil de velocidades que introduce el usuario. El mando lo programo en C y ensamblador. ¿Alguien puede darme alguna pista de como implementar algún algoritmo para planificar la trayectoria?

Gracias.
por
#289764
Yo hice algo parecido hace ya tiempo, no se si exactamente igual.
Para generar las trayactorias, primero dibujaba esa "trayactoria" en autocad. El dibujo lo exportaba como archivo de plotter HPGL, eso es un archivo de texto donde aparacen las coordenadas x,y de todos los puntos que autocad ha usado para generar la "trayectoria".
Después en alto nivel, con visual basic, formateaba ese archivo de coordenadas y las iba mandando en paquetes de x,y a un microcontrolador, un 8951 quiero recordar.
El micro lo programe en bajo nivel, un compilador de C a ensamblador, y las coordenadas las iba transformado a diferentes niveles de tensión que aplicaba a dos servomotores x,y que iban acelerando/decelerando para ir siguiendo la trayectoria. La posición la conocia en cada momento el micro por unos encoders que acoplé en cada eje.

Espero que sirva de algo la idea básica.
Avatar de Usuario
por
#289990
sergioxmc escribió:Yo hice algo parecido hace ya tiempo, no se si exactamente igual.
Para generar las trayactorias, primero dibujaba esa "trayactoria" en autocad. El dibujo lo exportaba como archivo de plotter HPGL, eso es un archivo de texto donde aparacen las coordenadas x,y de todos los puntos que autocad ha usado para generar la "trayectoria".
Después en alto nivel, con visual basic, formateaba ese archivo de coordenadas y las iba mandando en paquetes de x,y a un microcontrolador, un 8951 quiero recordar.
El micro lo programe en bajo nivel, un compilador de C a ensamblador, y las coordenadas las iba transformado a diferentes niveles de tensión que aplicaba a dos servomotores x,y que iban acelerando/decelerando para ir siguiendo la trayectoria. La posición la conocia en cada momento el micro por unos encoders que acoplé en cada eje.

Espero que sirva de algo la idea básica.

:majesty
por
#290001
¿Qué tal andas de inglés?. No se si es lo que buscas, pero en http://ww1.microchip.com/downloads/en/AppNotes/00532c.pdf, en el apéndice E habla de una función para generar una trayectoria (interpolación lineal de un eje) a una velocidad determinada. Un saludo.
por
#290560
Alfadeko, no he leido la nota técnica, pero con solo ver el esquema que aparece en la primera página creo que es lo que hablamos. Exactamente ese sistema es el que usé en lo comentado en el comentario anterior.

saludos.
por
#290585
Hola sergioxmc.
Hace unos tres años intenté hacer un servo DC con un PIC18F4520 (Que era el que tenía montado en mi entrenador) y un puente L293.
Tenía un encoder incremental TTL sobre un pequeño motor DC de escobillas de 24V, 50W.
La documentación de Microchip fué de gran ayuda, pero dejé el tema por falta de tiempo (nació mi segundo hijo y se acabaron los hobbies). Conseguí leer el encoder con un pequeño circuíto convirtiendo las señales A,B en pulsos "UP" - "DOWN" a velocidades de unas 3000 rpm (1024 pulsos de encoder) y metiéndolas en entradas de Timers.

La verdad es que sabiendo de qué hablo, me quito el sombrero con tu trabajo. :majesty
por
#290611
Alfadeko escribió:Hola sergioxmc.
Hace unos tres años intenté hacer un servo DC con un PIC18F4520 (Que era el que tenía montado en mi entrenador) y un puente L293.
Tenía un encoder incremental TTL sobre un pequeño motor DC de escobillas de 24V, 50W.
La documentación de Microchip fué de gran ayuda, pero dejé el tema por falta de tiempo (nació mi segundo hijo y se acabaron los hobbies). Conseguí leer el encoder con un pequeño circuíto convirtiendo las señales A,B en pulsos "UP" - "DOWN" a velocidades de unas 3000 rpm (1024 pulsos de encoder) y metiéndolas en entradas de Timers.

La verdad es que sabiendo de qué hablo, me quito el sombrero con tu trabajo. :majesty


Te lo agradezco, aunque me paso com a ti, por falta de tiempo solo me pude quedar en un control proporcional, me hubiera gustado afinar aunque sea con el integral...quizá después de la jubilación...
Palabras clave
Temas similares

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

Permisos de mensaje

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro