Proyecto de Computación en Matlab
May 27, 2022 | Author: Anonymous | Category: N/A
Short Description
Download Proyecto de Computación en Matlab...
Description
ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO FACULTAD DE MECÁNICA ESCUELA DE INGENIERÍA AUTOMOTRIZ COMPUTACIÓN II
INFORME DEL PROYECTO FINAL ANDRÉS FLORES DÍAZ 2014
- 2015 1
ÍNDICE 1. OBJETIVOS………………………………………………………………………………………… ……………….3 1.1 Objetivo General………………………………………………………………………………………….3 1.2 Objetivos Específicos…………………………………………………………………………………...3 2. INTRODUCCIÓN…………………………………………………………………………………… …………….3 3. PROGRAMA UTILIZAR……………………………………………………………………………………..3
A
4. MARCO TEÓRICO…………………………………………………………………………………………… …..4 4.1 ¿Qué es ………………………………………………………………………………………..4
MATLAB?
4.1.1 Historia……………………………………………………………………………….. ………..4 4.2 ¿Qué es una ……………………………………………………………………………………….4 4.2.1 Componentes GUI……………………………………………………………5
de
GUI?. una
4.2.2 Funcionamiento de una GUI. ……………………………………………………….6 4.2.3 Manejo de datos entre la aplicación y el archivo .m…………………….6 4.3 Caída Libre…………………. ……………………………………………………………………………….8 4.4 Movimiento Parabólico……………………………………………………………………………….9 2
5. PROCEDIMIENTO………………………………………………………………………………… ……………10 6. DESARROLLO …………………………………….…….11
MATEMÁTICO………………………………..
7. CONCLUSIONES…………………………………………………………………………………… …………..12 8. BIBLIOGRAFÍA……………………………………………………………………………………… ……………12 9. ANEXOS……………………………………………………………………………………………… …………….13 8.1 Anexo A………………………………………………………………………………………………………. 13 8.2 Anexo B………………………………………………………………………………………………………. 14 8.3 Anexo C………………………………………………………………………………………………………. 14 8.4 Anexo D………………………………………………………………………………………………………. 15 8.5 Anexo E………………………………………………………………………………………………………. 15
1. OBJETIVOS 1.1 Objetivo General: 3
- Realizar un programa en MATLAB que resuelva cualquier ejercicio de caída libre o de movimiento parabólico. 1.2 Objetivos Específicos: - Crear una GUI donde se resuelvan dichos ejercicios. - Determinar la altura máxima, el tiempo de vuelo, la velocidad final y el alcance horizontal del movimiento por medio de 3 datos iniciales. - Graficar el movimiento del proyectil y obtener los datos del procedimiento.
2. INTRODUCCIÓN Matlab es una herramienta donde podemos realizar diferentes cálculos matemáticos, físicos, estadísticos entre otras. En esta ocasión realizaremos un ejercicio de cinemática, para ser más específicos de movimiento parabólico o también llamado lanzamiento de proyectiles, o incluso de caída libre utilizando un ángulo de 90°. Estos lanzamientos son una combinación de los dos movimientos que previamente ya estudiamos en la materia que trata a física que son el Movimiento Rectilíneo Uniforme (MRU) y el Movimiento Rectilíneo Uniformemente Variado (MRUV). Al decir que es una combinación de los dos, nos referimos que para resolver cualquier ejercicio de estos temas, vamos a utilizar las fórmulas anteriormente dadas y traducirlas al lenguaje de MATLAB, y para ello utilizaremos los conocimientos que hemos recibido durante este semestre.
3. PROGRAMA A UTILIZAR - MATLAB
4. MARCO TEÓRICO 4
4.1 ¿Qué es MATLAB? MATLAB es una herramienta de software matemático que ofrece un entorno de desarrollo integrado con un lenguaje de programación propio (lenguaje M). Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware. 4.1.1 Historia Fue creado por el matemático y programador de computadoras Cleve Moler en 1984, surgiendo la primera versión con la idea de emplear paquetes de subrutinas escritas en Fortran en los cursos de álgebra lineal y análisis numérico, sin necesidad de escribir programas en dicho lenguaje. El lenguaje de programación M fue creado en 1970 para proporcionar un sencillo acceso al software de matrices LINPACK y EISPACK sin tener que usar Fortran. En 2004, se estimaba que MATLAB era empleado por más de un millón de personas en ámbitos académicos y empresariales. 4.2 ¿Qué es una GUI? La interfaz gráfica de usuario, conocida también como GUI (del inglés Graphical User Interface) es un tipo de interfaz de usuario que utiliza un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Como en una GUI las acciones se realizan mediante manipulación directa, el usuario no tiene que crear un script, digitar algún comando en la línea de comandos o comprender los detalles de cómo se realizan las tareas para poder hacer alguna actividad con la aplicación. El editor permite construir interfaces arrastrando y soltando componentes en el área de diseño de la GUI. Todas las GUI’s creadas con guide empiezan con una función inicial (callback) que se invoca cuando se invoca la interfaz. La operación automática de guardado (save) genera un fichero .m y un fichero .fig. El fichero .fig contiene el diseño del GUI en binario y el fichero .m contiene el código que controla el GUI. La interfaz que se desarrollará consiste en permitir al usuario seleccionar entre tres conjuntos de datos y mostrarlos según tres tipos de gráficos. Para ello se insertarán los componentes adecuados desde la paleta de componentes (Push Buttons, Panel, Static Text box, Pop-up Menu, y 5
Axes). Se puede redimensionar el tamaño de la interfaz en modo diseño, aunque después se puede modificar haciendo uso de Tools. 4.2.1 Componentes de una GUI Los componentes de una GUI de Matlab son:
La siguiente tabla muestra la descripción de los componentes:
Cada uno de los elementos de GUI, tiene un conjunto de opciones (Property Inspector) que nos permite personalizar cada elemento.
6
4.2.2 Funcionamiento de una GUI Una aplicación GUIDE consta de dos archivos: .m y .fig. El archivo .m es el que contiene el código con las correspondencias de los botones de control de la interfaz y el archivo .fig contiene los elementos gráficos. Cada vez que se adicione un nuevo elemento en la interfaz gráfica, se genera automáticamente código en el archivo .m. Para ejecutar una Interfaz Gráfica, si la hemos etiquetado con el nombre curso.fig, simplemente ejecutamos en la ventana de comandos >> curso. O haciendo click derecho en el m-file y seleccionando la opción RUN. Para ello utilizaremos las propiedades de un control, primero crearemos un botón y luego activamos el inspector de propiedades. Como se ha mencionado las propiedades varían dependiendo del control a usar, a continuación se explican los más comunes: - Background Color .- Cambia el color del fondo del control. - Callback .- La propiedad más importante del control, ya que le dice al control que hacer cuando este se active. - Enable .- Activa o desactiva un control. - String .- En el caso de botones, cajas de texto, texto estático; es el texto que muestra el control. - Tag .- Otra de las propiedades más importantes ya que con este es posible regresar datos o identificar al control. 4.2.3 Manejo de datos entre la aplicación y el archivo .m 7
Todos los valores de las propiedades de los elementos (color, valor, posición, string…) y los valores de las variables transitorias del programa se almacenan en una estructura, los cuales son accedidos mediante un único y mismo identificador para todos éstos. Tomando el programa listado anteriormente, el identificador se asigna en: handles.output = hObject; handles, es nuestro identificador a los datos de la aplicación. Esta definición de identificador es salvada con la siguiente instrucción: guidata(hObject, handles); guidata, es la sentencia para salvar los datos de la aplicación. Es la función que guarda las variables y propiedades de los elementos en la estructura de datos de la aplicación, por lo tanto, como regla general, en cada subrutina se debe escribir en la última línea lo siguiente: guidata(hObject,handles); Esta sentencia nos garantiza que cualquier cambio o asignación de propiedades o variables quede almacenado. Por ejemplo, si dentro de una subrutina una operación dio como resultado una variable diego para poder utilizarla desde el programa u otra subrutina debemos salvarla de la siguiente manera: handles.diego=diego; guidata(hObject,handles); La primera línea crea la variable diego a la estructura de datos de la aplicación apuntada por handles y la segunda graba el valor. Sentencias GET y SET La asignación u obtención de valores de los componentes se realiza mediante las sentencias get y set. Por ejemplo si queremos que la variable utpl tenga el valor del Slider escribimos: utpl= get(handles.slider1,'Value'); Notar que siempre se obtienen los datos a través de los identificadores handles. Para asignar el valor a la variable utpl al statictext etiquetada como text1 escribimos: 8
set(handles.text1,'String',utpl);
4.3 Caída Libre Se denomina caída libre al movimiento de un cuerpo bajo la acción exclusiva de un campo gravitatorio. Esta definición formal excluye a todas las caídas reales influenciadas en mayor o menor medida por la resistencia aerodinámica del aire, así como a cualquier otra que tenga lugar en el seno de un fluido. El concepto es aplicable también a objetos en movimiento vertical ascendente sometidos a la acción desaceleradora de la gravedad, como un disparo vertical; o a cualquier objeto (satélites naturales o artificiales, planetas, etc.) en órbita alrededor de un cuerpo celeste. Ejemplos de caída libre deportiva los encontramos en actividades basadas en dejar caer una persona a través de la atmósfera sin paracaídas durante un cierto trayecto. Leyes fundamentales de la Caída Libre a) Todo cuerpo que cae libremente tiene una trayectoria vertical b) La caída de los cuerpos es un movimiento uniformemente acelerado c) Todos los cuerpos caen con la misma aceleración. Formulas
9
Velocidad inicial: normalmente es la velocidad que se le imprime inicialmente a un objeto para ponerlo en movimiento. En este caso como no se le da una fuerza sino solo se deja caer la Vo es igual a cero. Velocidad final: Es la velocidad que alcanzara el objeto cuando llega al punto final de la caída. Tiempo: Es lo que se demora el cuerpo en caer. Altura: la altura es la medida de longitud de una trayectoria o desplazamiento, siempre y cuando la medida se tomada como punto de refencia la vertical. 4.4 Movimiento Parabólico Se denomina movimiento parabólico al realizado por un objeto cuya trayectoria describe una parábola. Se corresponde con la trayectoria ideal de un proyectil que se mueve en un medio que no ofrece resistencia al avance y que está sujeto a un campo gravitatorio uniforme. El movimiento parabólico puede ser analizado como la composición de dos movimientos rectilíneos: un movimiento rectilíneo uniforme horizontal y un movimiento rectilíneo uniformemente acelerado vertical. Tipos de Movimiento Parabólico - Movimiento de Media Parábola o Semiparabólico (lanzamiento horizontal) - Movimiento Parabólico Completo Características
10
- Conociendo la velocidad de salida (inicial), el ángulo de inclinación inicial y la diferencia de alturas (entre salida y llegada) se conocerá toda la trayectoria. - Los ángulos de salida y llegada son iguales. - La mayor distancia cubierta o alcance se logra con ángulos de salida de 45º. - Para lograr la mayor distancia fijado el ángulo el factor más importante es la velocidad. - Se puede analizar el movimiento en vertical independientemente del horizontal. Fórmulas
5. PROCEDIMIENTO 1. Realizar un script sencillo donde podamos ver cómo serán los pasos para poder hallar nuestras incógnitas. (Ver foto en anexo A) 2. Abrir una nueva GUI y trabajar en ella hasta obtener todos los botones y textos que deseemos poner en el programa. 3. Para ello vamos a crear una nueva figura y agregamos un Static Box en el centro para el título que diga “CAÍDA LIBRE Y MOVIMIENTO PARABÓLICO”. 4. Abajo ponemos un panel para los DATOS. En él irán 7 Static Box y en medio 3 Text Box para ingresar los datos y al lado un Push Button que diga “CALCULAR”. 11
5. Debajo de estos controles ponemos otros dos paneles que digan “RESULTADOS” y “PROCEDIMIENTO”. En el primero irán 13 Static Text (1 título, 8 textos y 4 salidas de datos) y en el segundo 52 Static Text (7 títulos, 33 textos, 11 salidas de datos y 1 texto con mi nombre) 6. Luego agregamos 2 Push Buttons uno al lado del panel de resultados que diga “GRAFICAR” y otro dentro del panel procedimiento que diga “VER DATOS”. 7. Finalmente agregamos un panel más con fondo de otro color para poder distinguir y dentro de este un Axis para que aparezca la gráfica del movimiento que se realizará y guardamos el archivo como: gui_proyecto_final_andres_flores_1642.fig. 8. En el primer Static Text cambiamos sus propiedades con el Inspector de Propiedades y modificamos el String para el título. De ahí los 3 Text Box dejamos en blanco con la misma propiedad String, Seguimos de esa forma para los 3 paneles hacemos lo mismo asignamos los títulos correspondientes a los Static Text y a los Push Button. Y obtendremos nuestra interface completa. (Ver foto en anexo B) 10. Ahora vamos a editar el callback del botón CALCULAR y agregamos los códigos necesarios para que capture los 3 datos que se ingresen (con el GET) y devuelva los 4 datos en el panel RESULTADOS (con el SET). Para ello hay que considerar agregar un identificador a cada Tag de cada control, esto es, poner un nombre a cada control para luego llamarlo e identificarlo. 11. Luego editamos el callback del botón VER DATOS y hacemos el mismo procedimiento es decir que capture los 3 primeros datos y obtenga los 11 valores en el panel PROCEDIMIENTO. 12. Finalmente editamos el callback del botón GRAFICAR y de la misma forma ponemos los mismos códigos para que capture los datos iniciales y poder graficar. Para ello usamos el comet para hacer una gráfica animada y utilizamos 2 plot para obtener la curva de la trayectoria y la altura máxima de la misma. 13. Ya con todos los parámetros realizados solo nos queda correr el programa para verificar si todo funciona con normalidad. (Ver foto en anexo C) 6. DESARROLLO MATEMÁTICO - Ingresar los datos iniciales Yo = Altura Inicial Vo = Velocidad inicial theta = Ángulo
= 45 m = 20 m/s = 30 °
- Calcular los datos básicos antes de usar las fórmulas 12
Vox=Vo*cos(theta) Voy=Vo*sin(theta) g=-9.81
= 17.32 m/s = 10 m/s = - 9.81 m/s2
- Reemplazar los valores en las fórmulas ya sea directamente o despejando Altura Máxima
Voy 2 Ymax= +Yo 2g
= 50.09 m
Tiempo de vuelo tv = ts + tc Vy = (Voy) - (g)*(ts)
ts=
Voy −g
= 1.01 s
y = (0.5*g)*(tc^2) t c=
√ 2∗Ymax
= 3.19 s
g
tv = ts + tc
= 4.20 s
Velocidad Final Vfx = Vox Vfy = g*tc
= 17.32 m/s = - 31.3 m/s
V f =√ Vfx +Vfy 2
2
Alcance Horizontal x = Vox * tv
= 35.81 m/s
= 73 m
6. CONCLUSIONES - Este programa sirve para realizar cualquier ejercicio que se proponga de caída libre o de movimiento parabólico.
13
- La GUI puede ser muy útil para realizar programas que la mayoría de las personas puedan entender así no sepan utilizar MATLAB. - El programa puede ser utilizado para otros fines como la enseñanza de dichos movimientos en escuelas y colegios. - El proyecto puede ser muy innovador para las personas que se les dificulta la física - Este programa lo puede utilizar cualquier persona que quiera aprender lo que es este movimiento.
7. BIBLIOGRAFÍA - Tomado de http://es.slideshare.net/miguelataurima/creacin-de-interfacesgrficas-con-matlab-guide. 23/01/15. - Tomado de http://www.mathworks.com/discovery/matlab-gui.html. 23/01/15 - Tomado de https://www.youtube.com/watch?v=4btijpLtPxM. 23/01/15 - Tomado de http://es.wikipedia.org/wiki/Ca%C3%ADda_libre. 23/01/15 Tomado 23/01/15
de
http://es.wikipedia.org/wiki/Movimiento_parab%C3%B3lico.
8. ANEXOS 8.1 Anexo A 14
% Proyecto Final de Computación % Nombre: Andrés Flores Díaz % Curso: 3ro "A" % Fecha: 23/01/15 % Movimiento Parabólico % Un cuerpo será lanzado desde una altura Yo con velocidad Vo y un ángulo % theta con la horizontal. Yo=input('Ingrese el valor de la altura inicial: '); Vo=input('Ingrese el valor de la velocidad inicial: '); theta=input('Ingrese el valor del ángulo en grados: '); % Dados estos datos se puede calcular el alcance horizontal, la altura % máxima, la velocidad final antes de tocar el suelo y el tiempo de vuelo % del proyectil cuando llega al suelo. % Pero primero debemos encontrar los datos que vayamos a utilizar antes % de emplear las fórmulas para luego simplemente reemplazarlas Vox=Vo*cosd(theta); Voy=Vo*sind(theta); g=-9.81; % Ya con esto dado podemos utilizar las fórmulas para calcular: % La altura máxima disp(' ') disp(' LA ALTURA MÁXIMA') altura_maxima=sym('Ymax=(Voy^2)/(-2*g)+Yo') Ymax=(Voy^2)/(-2*g)+Yo % El tiempo de vuelo disp(' EL TIEMPO DE VUELO') tiempo_de_vuelo=sym('tv=ts+tc') tiempo_de_subida=sym('Vy=Voy-gt') tiempo_de_subida=sym('ts=Voy/-g') ts=Voy/-g; tiempo_de_caida=sym('y=0.5*g*t^2') tiempo_de_caida=sym('tc=sqrt(2*Ymax/g)') tc=sqrt((2*Ymax)/(-g)); tv=ts+tc % La velocidad antes de tocar el piso disp(' LA VELOCIDAD FINAL') velocidad_final_en_x=sym('Vfx=Vox') Vfx=Vox; velocidad_final_en_y=sym('Vfy=-g*tc') Vfy=-g*tc; velocidad_final=sym('Vf=sqrt((Vfx^2)+(Vfy^2))') Vf=sqrt((Vfx^2)+(Vfy^2)) % El alcance horizontal disp(' EL ALCANCE HORIZONTAL') alcance_horizontal=sym('x=Vox*tv') x=Vox*tv
8.2 Anexo B
15
8.3 Anexo C
16
8.4 Anexo D Se deja caer un objeto desde un edificio de 50m. Calcule el tiempo de caída y su velocidad
8.5 Anexo E Un proyectil se lanza con una velocidad de 15m/s en un ángulo de 45° desde un edificio de 30m. Calcule el tiempo de caída, su velocidad, la altura máxima y su alcance.
17
18
View more...
Comments