# Como hacer el modelo matematico para un robot de 4 ruedas



## krusioluis (Abr 21, 2010)

Hola estoy haciendo un robot buscador de 4 ruedas estaba pensanso ponerle ruedas omnidireccionales pero debido a un cambio creo que lo voy a poner ruedas normales que funcionan con motores DC y con reductores y encoders, el asunto es que necesito determinar la posicion del carro de acuardo al voltaje de entrada a las ruedas si alguien sabe como hacer esos calculos o algun proyecto parecido "CON 4 RUEDAS" responderme este mensaje.


----------



## foso (Abr 21, 2010)

Krusioluis la verdad es que no entiendo bien como es la cuestión. Deberías expresarte un poco mejor, sobretodo con un proyecto tan poco común. Explicá mejor lo del voltaje de entrada a las ruedas.

Aca se te puede ayudar mucho siempre y cuando expreses bien la idea.


----------



## krusioluis (Abr 22, 2010)

La verdad es sobre la dinamica de un robot movil de 4 ruedas, estaba leyendo un libro el cual esta relacionado con funcion de transferencia de un motor con armadura,  se basa en dependiendo del voltaje de entrada que le das a las ruedas hallar su velocidad angular y con eso ya tengo su posicion pero no se como hacerlo soy nuevo en ese tema y por eso se me hace complicado hasta describirlo.


----------



## betodj (Abr 22, 2010)

¿has  trabajado ejemplos de funcion de transferencia con  matlab o simulink?


----------



## krusioluis (Abr 23, 2010)

No la verdad no e trabajado en matlab o simulink


----------



## Stark (Abr 24, 2010)

Puff un tema dificil te habras dado cuenta de los diseños matematicos de un solo motor electrico en los q tomas en cuenta el embobinado lo cual es una inductancia y una resistensia y sacar la fuerza electromotriz q generan y ademas no solo eso si no tambien la masa del rotor y de la carga para tener el momento ademas q no es lo mismo q un motor arranque sin carga a q arranque con varios gramos encima esto se hace para cada motor distribuyendo el peso del robot q en este caso son cuatro motores creo q es lo q haria realmente no se mucho pero es lo q se me ocurre determinar la carga q soporta cada motor y sacar el momento de inercia q tiene y calcular su posicion angular.


----------



## krusioluis (Abr 25, 2010)

bueno la verdad tienes razon sobre determinar la carga q soporta cada motor el momento de inercia y su posicion angular pero no se como hacerlo por eso recurro a este tema para ver si alguien sabe al respecto para que me pueda orientar para sacar esos datos.


----------



## tecnogirl (Abr 27, 2010)

krusioluis: Lo que dijiste en el post #3, lo que leiste es aplicable a cada una de las cuatro ruedas... Como asumo que no vas a construir un robot como el Mars Lander (imagen) te basta el modelo simplificado, para empezar. Saludos


----------



## macraig (May 5, 2010)

Un modelo matematico es solo una formula que describe las relaciones entre diferentes magnitudes fisicas. Asi por ejemplo, el modelo matematico que describe el flujo de electrones en un resistor, es llamado ley de ohm (creo q estaras familiarizado con el.)

El modelo matematico de la posicion de un motor en funcion del voltaje no es complicada. La funcion de transferencia del motor explica el cambio en la velocidad angular en funcion del voltaje aplicado (viene en la hoja de datos del motor, normalmente dada como un grafico titulado caracteristicas del motor, es una curva que relaciona la corriente con la velocidad angular). La posicion angular es simplemente la integral de la velocidad angular (la integral de esta curva).

w = f(I) => ø = Integral(f(I))

Que es lo que tu necesitas. Si quieres la posicion lineal, solo multiplica el angulo girado en radianes por el radio de la rueda. no te olvides de las reducciones en los engranajes. Sin embargo esta es solo una primera aproximacion, un modelo mas exacto tiene en cuenta la inercia del sistema, es decir toma en cuenta que un motor con carga tarda mas en alcanzar la velocidad nominal para un voltaje dado, que uno sin carga. Lo cual complica naturalmente mucho mas el asunto.

He de agregar que esto permite determinar la posicion del robot sin necesidad de sensores que informen acerca de cuanto se ha movido el robot en realidad. Es lo que se denomina un control de lazo abierto.

Sin embargo, un metodo mas facil y comunmente usado para determinar la posicion es sencillamente contar los pulsos en los encoders, que es lo que deberias hacer. Los encoders son sensores que informan acerca de la rotacion efectiva del motor. Es una manera de darle al robot informacion acerca del mundo. Por eso se llama un control de lazo cerrado (tu realimentas la informacion de los sensores, para controlar de mejor manera cuanto gira el motor).

PD. Me parece terrible que personas sin la menor idea de lo que estan hablando se metan a ingresar respuestas sin ton ni son, solamente haciendo mas dificil la lectura del post, y confundiendo mas al que realizo la pregunta en primer lugar.


----------



## wacalo (May 5, 2010)

macraig dijo:





> El modelo matematico de la posicion de un motor en funcion del voltaje no es complicada. La funcion de transferencia del motor explica el cambio en la velocidad angular en funcion del voltaje aplicado (viene en la hoja de datos del motor, normalmente dada como un grafico titulado caracteristicas del motor, es una curva que relaciona la corriente con la velocidad angular). La posicion angular es simplemente la integral de la velocidad angular (la integral de esta curva).


Ojalá existiera esa tal función de transferencia o ese gráfico, si así fuera no necesitaríamos más encoders ni nada por el estilo.
Debemos tener en cuenta antes de nada si el motor es sincrónico o asincrónico.
Si el motor es sincrónico, la velocidad es constante y no depende de la corriente consumida ni del voltage aplicado; un motor de este tipo gira a la frecuencia de sincronismo que le impone la red de energía o en el caso de un Stepper gira de acuerdo a la secuencia de pulsos que se le suministra, en caso de que la carga sea superior a la potencia que se le entrega al motor, este se sale de sincronismo y en ese caso ya no se puede saber nada sobre su velocidad.
En el caso de un motor asincrónico (motor de inducción más comun en la industria), la velocidad depende fundamentalmente de la carga y de la tensión de alimentación y no hay forma de saber “en forma exacta” cual es la velocidad angular.
Resumiendo: El modelo matemático de la posición angular “del eje” de un motor asincrónico (o motor de continua) en función del voltage no existe.

Luego dijo:





> _*Sin embargo esta es solo una primera aproximacion, un modelo mas exacto tiene en cuenta la inercia del sistema, es decir toma en cuenta que un motor con carga tarda mas en alcanzar la velocidad nominal para un voltaje dado, que uno sin carga. Lo cual complica naturalmente mucho mas el asunto.*_


La “carga” de un motor no es lo mismo que la inercia del sistema al que está conectado el eje del motor, la inercia solo requiere potencia en el arranque, en cambio la carga es la potencia que se le pide al motor durante el régimen permanente y, en casos especiales (arranque bajo carga) también durante el arranque.
Ejemplo: un sistema: motor + sierra sinfín de un aserradero – Es un sistema con arranque bajo carga por la inercia de los volantes, en cambio un sistema Motor + Compresor es un sistema de arranque bajo carga pero donde la única inercia es la masa del rotor del propio motor.

Finalmente dice: 





> He de agregar que esto permite determinar la posicion del robot sin necesidad de sensores que informen acerca de cuanto se ha movido el robot en realidad. Es lo que se denomina un control de lazo abierto.


Un control de lazo abierto se puede implementar únicamente con motores sincrónicos o motores PAP.


----------



## macraig (May 6, 2010)

Solo un par de aclaraciones:
La funcion de transferencia existe para cualquier sistema (cualquier  bloque con una entrada y una salida). Una funcion de transferencia  relaciona magnitudes de entrada con magnitudes en la salida. En el caso  del motor, si tu mides las velocidades de rotacion para diferentes  corrientes aplicadas, estas determinando la funcion de transferencia. 

Todo motor en consecuencia tiene una funcion de transferencia. (motores  sincronos y asincronos)
http://mechatronics.mech.northwestern.edu/design_ref/actuators/motor_theory.html
http://www.engin.umich.edu/group/ctm/examples/motor/motor.html
http://www.ce.rit.edu/~cockburn/courses/ce553_su02/labs/lab3_r1.pdf

Como dice el post anterior, hay una diferencia entre carga e inercia. La  carga es una fuerza no conservativa, es decir toma energia del motor y  la transforma en calor, mientras que la fuerza aplicada para vencer la  inercia es una fuerza conservativa. Es algo tambien a tomar en cuenta  cuando haces el modelo del robot. (sin embargo, para el modelo  matematico carga e inercia son equivalentes en el momento del arranque.)

El control de lazo abierto para fines practicos es extremadamente dificil, por que  modelar todas las posibles fuerzas que entran en juego, (friccion en los  ejes, en el piso, con carga, sin carga, etc) es muy complicado. Es por  eso que los controles de lazo cerrado son tan populares.


----------



## wacalo (May 6, 2010)

Por supuesto que existe "en teoría" una función de transferencia para cualquier sistema con entradas y salidas, el problema es que para que sea medianamente manejable se deben hacer un montón de simplificaciones ignorando algunos parámetros que hacen que la función resultante en el caso de un motor asincrónico sea poco menos que inservible si lo que se busca es la posición angular del eje del motor en un instante dado.

macraig dijo:





> En el caso del motor, si tu mides las velocidades de rotacion para diferentes corrientes aplicadas, estas determinando la funcion de transferencia.


No estamos hablando de velocidad en función de corriente o voltage, esta función es más o menos manejable y utilizable; de los que estamos hablando es de posición angular del eje del motor en función del voltage aplicado y esto ya es harina de otro costal. Si logras derivar una función que te dé la velocidad angular del eje de un motor asincrónico en función de la tensión aplicada, seguramente obtendrás una velocidad que tendrá un margen de error de no sé que porcentaje, ahora si integras esa velocidad para obtener el angulo girado ya estamos en un problema mayúsculo porque estarías integrando también el error.


----------



## macraig (May 7, 2010)

Hay tecnicas que te permiten manejar el error. Si el error es  determinable y no estocastico, entonces puede eliminarse  sistematicamente de la ecuacion. 

El modelo matematico puede siempre determinarse con el grado de error  deseado.


----------

