# Programación Ingeniería Mecánica UPB: Grupo 1420 03
## Integrantes

* Laura Garcés Céspedes, Estudiante Ing.Mecánica
* Angela Orrego Otálvaro, Estudiante Ing.Mecánica
* Daniela Toro Medina, Estudiante Ing.Mecánica

## Resumen

A través de este programa se buscará analizar la posición, velocidad y aceleración de un mecanismo cuatro barras manivela corredera. El programa tomara como variables de entrada la tierra en y, y la longitud de las barras que serán ingresadas por el usuario en metros (m), al igual que la velocidad angular inicial. Con estos datos el programa calculará en que posición queda el mecanismo al igual que la velocidad y aceleración con la que se mueve en determinado momento. Los resultados se presentarán en formas de gráficas para facilitarle el análisis de movimiento al usuario.

## Introducción
### Mecanismos

Los mecanismos son elementos destinados a transmitir y transformar fuerzas y movimientos desde un elemento motriz (motor) a un elemento conducido. Están conformados por barras que son elementos rigidos cuya funcion es transmitir el movimiento y pares que son las conexciones o articulaciones entre dos o mas piezas, estos pueden ser de revoluta y prismáticos.

#### Revoluta

Restringen los desplazamientos, solo permiten la rotación del elemento

#### Prismático

Permiten el desplazamiento lineal mas no la rotación de la pieza.
Para facilitar el análisis de un mecanismo se usan diagramas cinemáticos que son representaciones simplificadas donde lo más importante son las longitudes de las barras y la ubicación de los pares.

## Análisis del mecanismo

El elemento de estudio es un mecanismo de cuatro barras y cuatro pares (3 revoluta, 1 prismático). La barra de entrada que transmite el movimiento es una manivela conectada a tierra que gira 360° gracias a un motor que rota a velocidad constante, por lo tanto la aceleración de entrada del mecanismo es cero; esta barra le transmite movimiento a una tercera barra que se encarga de generar el desplazamiento del par prismático que también esta conectado a tierra.

## Diseño de la solución

El análisis de cualquier mecanismo se puede hacer de dos formas; un método gráfico en la cual se usan instrumentos de dibujo como escuadras, compás y transportador, debido a que este método es largo ya que el mecanismo cambia totalmente su posición y centros instantáneos de rotación en cada instante, este método es viable usarlo cuando solo se quiere analizar el estado del mecanismo en unas pocas posiciones; la segunda forma es por medio de un análisis teórico en el cual se debe partir de un diagrama en el cual las barras del elemento están representadas en forma de vectores (diagrama de vectores). Usando esta representación se deben construir una ecuación de cierre vectorial que es la expresión matemática de la posición del mecanismo en la que cada vector debe de estar escrito en sus componentes en X y Y. Por física se sabe que la velocidad es la derivada con respecto al tiempo de la posición y que la aceleración es la derivada con respecto al tiempo de la velocidad, por lo tanto las ecuaciones que expresan la velocidad y la aceleración del mecanismo se hallan derivando el numero de veces que sea necesario la ecuación de posición planteada.
Para facilitar la solución de las ecuaciones, se usan herramientas computacionales como Matlab en donde es posible realizar simulaciones del movimiento al solucionar los sistemas de ecuaciones por medio de métodos numéricos (Newton-Raphson) y ciclos "for", también es importante identificar las variables de entrada del mecanismo, los parámetros (lo que nunca cambia) y las variables de salida (lo que cambia en el mecanismo) para verificar que si se obtienen sistemas de ecuaciones con el mismo numero de incógnitas y ecuaciones.
| Parámetros | Variables de entrada | Variables de salida |
| $r1y,r2,r3$ | ${\theta _{2}},{\dot {{\theta }_{2}}},{\ddot {{\theta }_{2}}}$ | $r1x,{\dot {r1x}},{\ddot {r1x}},{{\theta }_{3}},{\dot {{\theta }_{3}}},{\ddot {{\theta }_{2}}}$ |

### Ecuación de cierre vectorial

Para el mecanismo 4 barras de estudio, la ecuación de cierre vectorial es:
${r}_{1}y+{r}_{1}x+{r}_{3}-{r}_{2}=0$.

#### Posición

Descomponiendo la ecuación de cierre vectorial en las componentes correspondientes a cada vector del diagrama y organizando cada vector en forma matricial, la expresión correspondiente a la posición es:
${\begin{bmatrix}{r}_{1}x\\{r}_{1}y\end{bmatrix}}+{\begin{bmatrix}{r}_{3}cos{{\theta }_{3}}\\{r}_{3}sin{{\theta }_{3}}\end{bmatrix}}-{\begin{bmatrix}{r}_{2}cos{{\theta }_{2}}\\{r}_{2}sin{{\theta }_{2}}\end{bmatrix}}={\begin{bmatrix}0\\0\end{bmatrix}}$

#### Velocidad

Al derivar la ecuación de posición con respecto al tiempo, se obtiene la siguiente expresión para la velocidad:
${\begin{bmatrix}{\dot {{r}_{1}x}}\\0\end{bmatrix}}+{\begin{bmatrix}-{r}_{3}{\dot {{\theta }_{3}}}sin{{\theta }_{3}}\\{r}_{3}{\dot {{\theta }_{3}}}cos{{\theta }_{3}}\end{bmatrix}}-{\begin{bmatrix}-{r}_{2}{\dot {{\theta }_{2}}}sin{{\theta }_{2}}\\{r}_{2}{\dot {{\theta }_{2}}}cos{{\theta }_{2}}\end{bmatrix}}={\begin{bmatrix}0\\0\end{bmatrix}}$

#### Aceleración

Al derivar la ecuación de velocidad o lo que es lo mismo, derivando la ecuación de posición dos veces con respecto al tiempo, se obtiene la siguiente expresión para la aceleración:
${\begin{bmatrix}{\ddot {{r}_{1}x}}\\0\end{bmatrix}}+{\begin{bmatrix}-{r}_{3}{\dot {{\theta }_{3}}}^{2}cos{{\theta }_{3}}-{r}_{3}{\ddot {{\theta }_{3}}}sin{{\theta }_{3}}\\-{r}_{3}{\dot {{\theta }_{3}}}^{2}sin{{\theta }_{3}}+{r}_{3}{\ddot {{\theta }_{3}}}cos{{\theta }_{3}}\end{bmatrix}}-{\begin{bmatrix}-{r}_{2}{\dot {{\theta }_{2}}}^{2}cos{{\theta }_{2}}-{r}_{2}{\ddot {{\theta }_{2}}}sin{{\theta }_{2}}\\-{r}_{2}{\dot {{\theta }_{2}}}^{2}sin{{\theta }_{2}}+{r}_{2}{\ddot {{\theta }_{2}}}cos{{\theta }_{2}}\end{bmatrix}}={\begin{bmatrix}0\\0\end{bmatrix}}$
Para la solución de este mecanismo en particular se crearon 3 funciones en Matlab para la posición, velocidad y aceleración, cada una con las formulas anteriormente planteadas, después se le dio solución a dichas funciones por medio del comando "fsolve" y se pusieron dentro de un ciclo "for" el cual permite realizar el análisis del mecanismo en todas las posiciones que puede tomar y no solo en una.

## Descripción del software

Se desarrollo un software con una interfaz sencilla con el cual se busca que las personas que deseen realizar un análisis de un mecanismo manivela-corredera de 4 barras con solo saber las dimensiones de las barras que componen el elemento, puedan realizar un calculo de la rápido de la posición, velocidad y aceleración del mecanismo.
Cuando el usuario corre el programa se encuentra con el diagrama cinemático del mecanismo en el cual puede ver las barras que componen el elemento y de este modo tiene una guía para saber a que barras corresponden las dimensiones que debe ingresar en cada uno de los campos de la interfaz.
Debido a que la velocidad de un mecanismo depende de su posición y la aceleración depende de la posición y la velocidad, el análisis teórico de cualquier elemento requiere que se solucione la posición primero, después la velocidad y por ultimo la aceleración, sin embargo con este software se busca que el usuario dependiendo de sus necesidades pueda elegir realizar el análisis de velocidad sin necesidad de hacer el de posición primero, todos los pasos necesarios para obtener la velocidad ya se encuentran dentro del código, lo mismo sucede con la aceleración. Sin embargo, estos cálculos no tienen que ser vistos por el usuario antes de obtener lo que realmente desea.

### Manual de usuario

1) Ingresar los parámetros geométricos del mecanismo. A la izquierda de cada casilla que debe llenar el usuario se encuentra la descripción de que es lo que debe ingresar en dicho recuadro y con el diagrama cinemático se tiene una ayuda gráfica para identificar a que barra corresponde cada dimensión.
2) Presionar el botón posición, velocidad o aceleración dependiendo de lo que desee el usuario. Al presionar este botón, se presentaran dos gráficas una para el análisis de la corredera (r1x) y otra que corresponde al ángulo θ entre la corredera y la barra 3.
3) Presionar el botón limpiar gráfico para limpiar el área de gráficos de la interfaz.
4) Si se desea ver los resultados de otra variable de salida del mecanismo, presionar de nuevo alguno de los botones de posición, velocidad y aceleración para ver las gráficas correspondientes a dicha variable.
5) Al presionar el botón salir aparece una ventana emergente en la cual al presionar "Si" el programa se cierra y si se presiona "No" el programa se queda en la interfaz para seguir usándola.

## Resultados

A continuación se muestran los resultados de posición, velocidad y aceleración de un mecanismo obtenidos con el software.
* Posición
* Velocidad
* Aceleración

## Conclusiones y trabajo futuro

1) Cuando el ángulo de entrada es de 180°, la distancia de la tierra en X será igual a la sumatoria de la longitud de las barras 2 y 3. Mientras que cuando este ángulo toma el valor de 360°, esta distancia sera igual a la longitud de la barra más larga.
2) La identificación de variables y parámetros es el paso más importante antes de comenzar a darle solución a los sistemas de ecuaciones ya que nos indican el tamaño del sistema y si este tiene solución o no.
3) La solución teórica de un mecanismo solo es posible hacerla si se cuenta con métodos numéricos que permitan solucionar sistemas de ecuaciones no lineales.
4) Para realizar un análisis teórico a un mecanismo se debe solucionar primero la posición de este, después la velocidad y por ultimo la aceleración debido a que estas dos ultimas dependen de los resultados obtenidos en posición.
5) La implementación de softwares de programación como Matlab ayudan a solucionar los sistemas de ecuaciones que rigen el movimiento de un mecanismo, ademas de esto son una excelente herramienta para realizar simulaciones y predecir el comportamiento del elemento.

### Trabajo futuro

1) Darle la oportunidad al usuario de ingresar los parámetros geométricos del mecanismo en diferentes unidades (pulgadas, pies, centímetros, milímetros, etc) al igual que las unidades de velocidad y que el programa realice las operaciones necesarias para convertir las unidades y al final obtener resultados acordes a las unidades ingresadas por el usuario.
2) Generarle al usuario la posibilidad de elegir entre diferentes mecanismos con diferentes números de barras y no solo una manivela-corredera de 4 barras.
3) Generar un campo para que el usuario ingresando un angulo especifico de entrada pueda obtener el dato exacto de posición, velocidad y aceleración del elemento.
4) Crear opciones que le permitan al usuario ver las 3 gráficas de posición, velocidad y aceleración de un elemento del mecanismo en lugar de tener que verlas cada una por separado, ademas de esto permitirle guardar las imágenes obtenidas en su computador.
5) Mejorar el código de solución de las funciones para que se ejecute más rápidamente el programa.