Ezequiel Zamora Vice-Rectorado De Planificacin Y Desarrollo Social Programa Ingeniera, Arquitectura Y Tecnologa UNELLEZ-Barinas
Barinas, Enero de 2013. Sistema de Simulacin Digital de un Pndulo Simple Integrantes: Espinoza Yomaly C.I.:19.517.173 Quintero Robert C.I.:19.070.394 Roa Nelson C.I.:19.070.968
Autores: Roa Nelson
2
NDICE PG.
INTRODUCCION.. OBJETIVOS PLANTEAMIENTO DEL PROBLEMA ANALISIS DE LA SITUACION Marco Terico DEFINICION DE VARIABLES. MEDICION.. REQUERIMIENTOS DEL SISTEMA. Requerimientos de Hardware Requerimientos de Software DESARROLLO.. Metodologa Realizacin e Implementacin del sistema.. Variables utilizadas en el cdigo fuente.. Libreras utilizadas. Clases y Mtodos Principales del programa. CONCLUSION PANTALLAS DEL SISTEMA DE SIMULACION DIGITAL DE PENDULO SIMPLE..
3 4 5 6 6 9 10 13 13 13 15 15 15 16 17 17 23
24
3
INTRODUCCION
Una de las reas de la informtica que ms est creciendo en los ltimos tiempos es la de la simulacin fsicamente, el pndulo simple es un sistema de sencilla funcionalidad y que consta de una masa colgada a un extremo de un hilo muy fino, el cual est sujeto a una superficie inmvil. La fundamentacin de este aparato radica principalmente en la capacidad de relacionar sus componentes fsicos con los factores de interaccin externa, como lo es la gravedad.
Este tipo de mecanismo es de mucha aplicabilidad en la vida del ser humano, entre ellos es importante destacar: un reloj de pndulo, una gra de demolicin, un pendiente, etc. Aunque su estructura y condiciones de ejecucin no son exactamente iguales a las de un pndulo simple, son tal vez los ejemplos ms ilustrados de este fundamento fsico.
Pndulo, dispositivo formado por un objeto suspendido de un punto fijo y que oscila de un lado a otro bajo la influencia de la gravedad. Los pndulos se emplean en varios mecanismos, como por ejemplo algunos relojes. En el pndulo ms sencillo, el llamado pndulo simple, puede considerarse que toda la masa del dispositivo est concentrada en un punto del objeto oscilante, y dicho punto solo se mueve en un plano. El movimiento del pndulo de un reloj se aproxima bastante al de un pndulo simple. El pndulo esfrico, en cambio, no est limitado a oscilar en un nico plano, por lo que su movimiento es mucho ms complejo.
4
OBJETIVOS
General:
Desarrollar un Sistema de simulacin Digital en tiempo real considerando al sistema pndulo simple.
Especficos:
Analizar que es un pndulo simple y como es su funcionamiento.
Comprender que es el movimiento de un pndulo.
Investigar el porqu de los diversos casos que presenta este movimiento.
Estudiar cada uno de sus componentes.
5
PLANTEAMIENTO DEL PROBLEMA
El control de un sistema no lineal (usando cualquier tcnica) a travs de un Sistema Digital en tiempo real, requiere de la seleccin del mejor tiempo de muestreo y del mejor resultado en calidad de respuesta respecto a una funcin de convergencia previamente establecida, para asegurar la estabilidad del sistema. Si se tiene en inters en emplear un sistema no lineal para probar nuevas tcnicas de control a nivel de simulacin en un Sistema Digital de tiempo real, se deben tomar en cuenta los tiempos de muestreo y de ejecucin tanto del propio sistema como de la ley de control, esto nos lleva a la siguiente pregunta, Cmo simular un sistema no lineal, en particular un sistema de pndulo simple, en un sistema digital de tiempo real?
6
ANALISIS DE LA SITUACION MARCO TEORICO
Llamamos pndulo simple a un ente ideal constituido por una masa puntual suspendido de un hilo inextensible y sin peso, capaz de oscilar libremente en el vaco y sin rozamiento.
Al separar la masa de su posicin de equilibrio, oscila a ambos lados de dicha posicin, realizando un movimiento armnico simple. En la posicin de uno de los extremos se produce un equilibrio de fuerzas.
El movimiento pendular es una forma de desplazamiento que presentan algunos sistemas fiscos como aplicacin prctica al movimiento armnico simple. A continuacin definiciones y caractersticas del movimiento pendular simple.
Pndulo: Llamamos pndulo a todo cuerpo que puede oscilar con respecto de un eje fijo.
Pndulo simple: El sistema fsico llamado pndulo simple est constituido por una masa puntual m suspendida de un hilo inextensible y sin peso que oscila en el vaci en ausencia de fuerza de rozamientos. Dicha masa se desplaza sobre un arco circular con movimiento peridico. Esta definicin corresponde a un sistema terico que en la prctica se sustituye por una esfera de masa reducida suspendida de un filamento ligero.
El periodo del pndulo resulta independiente de la masa del cuerpo suspendido, es directamente proporcional a la raz cuadrada de su longitud e inversamente proporcional a la aceleracin de la gravedad. 7
Otra definicin, es llamado as porque consta de un cuerpo de masa m, suspendido de un hilo largo de longitud l, que cumple las condiciones siguientes:
el hilo es inextensible su masa es despreciable comparada con la masa del cuerpo el ngulo de desplazamiento que llamaremos 0 debe ser pequeo
Como funciona: con un hilo inextensible su masa es despreciada comparada con la masa del cuerpo el ngulo de desplazamiento debe ser pequeo.
El pndulo simple, es decir, el movimiento de un grave atado a una cuerda y sometido a un campo gravitatorio constante, es uno de ellos. Al colocar un peso de un hilo colgado e inextensible y desplazar ligeramente el hilo se produce una oscilacin peridica.
El movimiento de un pndulo corresponde al tipo de movimiento llamado M. A. S., o sea, Movimiento vibratorio Armnico Simple.
Movimiento vibratorio armnico simple: es un movimiento vibratorio con aceleracin variable, producido por una fuerza que se origina cuando el cuerpo se separa de su posicin de equilibrio.
Oscilacin simple: es la trayectoria descrita entre dos posiciones extremas (arco AB).
Oscilacin completa o doble oscilacin: es la trayectoria realizada desde una posicin extrema hasta volver a ella, pasando por la otra extrema (arco ABA). 8
Angulo de amplitud o amplitud (alfa) es el ngulo formado por la posicin de reposo (equilibrio) y una de las posiciones extremas.
Elongacin (e): Distancia entre la posicin de reposo OR y cualquier otra posicin.
Mxima elongacin: distancia entre la posicin de reposo y la posicin extrema o de mxima amplitud.
9
DEFINICIN DE VARIABLES
Longitud del pndulo (l): es la distancia entre el punto de suspensin y el centro de gravedad del pndulo.
Masa (m): es la cantidad de materia de un cuerpo.
Tiempo de oscilacin simple (t): es el tiempo que emplea el pndulo en efectuar una oscilacin simple.
Perodo o tiempo de oscilacin doble (T): es el tiempo que emplea el pndulo en efectuar una oscilacin doble.
Frecuencia (f): Es el nmero de oscilaciones en cada unidad de tiempo. f=nmero de oscilaciones/tiempo.
Angulo: es la parte del plano comprendida entre dos semirrectas que tienen el mismo punto de origen.
Aceleracin de la gravedad (g):es la aceleracin con la cual se mueven los cuerpos al caer.
10
MEDICIN
Tomando en consideracin las variables anteriormente mencionadas, se puede realizar la medicin en el proceso del pndulo simple. Desde la posicin vertical en reposo (posicin de equilibrio), desplazar ligeramente la masa (m), dando origen tiempo de oscilaciones (t), lo cual se toma como referencia el tiempo que tarda desde el punto A al punto B; en cambio el periodo de oscilacin (T), se toma cuando el pndulo vuelve a ocupar la misma posicin de origen, es decir, se inicia en un punto A que se dirige a B y este vuelva a origen A.
A partir de estos procesos, ocurren otros sistemticamente, de manera integrada, que se especifica a continuacin:
La longitud del pndulo simple queda expresada:
El periodo del movimiento armnico de un pndulo simple (en aproximacin de pequeas oscilaciones) es:
La Aceleracin de gravedad, se expresa de la siguiente manera:
11
De manera terica el pndulo de longitud l y masa m=1, sin disipacin ni forzamiento satisface la siguiente ecuacin diferencial:
Tambin conocida como la ecuacin de Mathieu. Esta puede ser derivada de la conservacin de la energa mecnica. De la velocidad de la energa cintica se puede calcular la primera derivacin:
Esto nos da la velocidad en trminos del ngulo. Adems incluye el trmino del desplazamiento inicial como una constante.
El mtodo de Euler Semi-implcito es el que utilizaremos para resolver las ecuaciones anteriores. Este es una modificacin del mtodo de Euler para resolver la ecuacin de Hamilton, un sistema de ecuaciones diferenciales ordinarias que surgen en la mecnica clsica. El mtodo de Euler Semi-implcito puede ser aplicado a un par de ecuaciones de la forma:
Donde f, g son funciones dadas y x,v pueden ser vectores, o escalares.Estas ecuaciones diferenciales tienen que ser resueltas con la condicion inicial:
12
El metodo de Euler Semi-implcito produce una aproximacion discreta que se soluciona iterando
Donde t es la diferencia del tiempo (paso del tiempo) y tn = to + nt es el tiempo despues de n pasos. La diferencia con el metodo estandar de Euler es que el metodo Semi-implcito usa Vn + 1 en la ecuacion para Xn + 1, mientras que el estandra usa solamente Vn. Aplicando est mtodo con el paso del tiempo negativo para el calculo de (Xn, Vn) para (Xn +1, Vn + 1) y reorganizando, nos conduce a la segunda variante del metodo de Euler semi-implcito
que tiene propiedades similares.
El mtodo de Euler Semi-implcito es un integrador de primer orden, as como el mtodo estndar de Euler. Esto significa que se comete un error global del orden de t. Sim embargo, el metodo Semi-implcito es un integrador implcito a diferencia del metodo estndar. Como consecuencia, el metodo de Euler implcito casi semi-conserva la energa (cuando el hamiltoniano es independiente del tiempo.
13
REQUERIMIENTO DEL SISTEMA
Para el Sistema de Simulacin Digital de Pndulo Simple, se debe tomar en cuenta ciertos requerimientos tanto de Hardware como de Software, para poder ejecutar dicho sistema:
Requerimientos de Hardware:
Memoria RAM: minino 256 Mb, recomendado 512 Mb o ms. Espacio en Disco: Para la instalacin de la mquina virtual, se requieren 98 Mb de espacio libre en Disco Duro. Procesador: Como mnimo un procesar x86 a 370 MHz.
Requerimientos de Software:
Sistema Operativo:
Microsoft Windows 2000, XP (x86, x64), Server 2003 (x86, x64), Vista (x86, x64), Server 2008 (x86, x64), 7 (x86, x64).
Linux x86 o x64.
Mac OS V8 o superior.
Solaris x86 o x64.
14
Para ejecutar el programa es necesario tener instalado el entorno de ejecucin JAVA (JRE), para visualizar y modificar el cdigo fuente es necesario instalar el JAVA de Development Kit (JDK), junto con un entorno de desarrollo integrado (IDE, se recomienda ECLIPSE)
15
DESARROLLO METODOLOGA.
Este trabajo consisti en realizar un programa en Java para simular el funcionamiento de un pndulo simple. El mismo cuenta con una configuracin inicial, que puede ser modificada arrastrando con el puntero del ratn el pndulo. Dicho programa mostrara el movimiento oscilatorio armnico simple que se produce con variables como el ngulo, longitud del pndulo y aceleracin de la gravedad y a su vez mostrara tambin el periodo de oscilacin y tiempo de oscilacin.
REALIZACION E IMPLEMENTACION DEL SISTEMA
Para la realizacin del sistema se opt por el uso del lenguaje de programacin JAVA, el cual es un lenguaje de programacin orientado a objetos, muy robusto y multiplataforma, lo cual actualmente es una ventaja para la ejecucin de aplicaciones ya que cuenta con un gran soporte y puede ser ejecutado en cualquier sistema operativo.
Para hacer ms cmoda la realizacin del proyecto, tambin se utiliz ECLIPSE un entorno de desarrollo integrado (IDE), el cual es un proyecto de cdigo abierto que permite realizar todo tipo de proyectos utilizando el lenguaje de programacin antes mencionado.
A continuacin de proceder a dar una explicacin detallada de cmo se realiz la programacin del sistema de simulacin digital de un Pndulo simple:
16
Variables utilizadas en el cdigo fuente:
x, y: Variables que almacenan las coordenadas de posicin para dibujar en pantalla el pndulo.
longitud: almacena la distancia existente entre el punto de suspensin y el centro de gravedad del pndulo.
periodor: almacena el valor del clculo de un periodo de oscilacin completo del pndulo simple.
theta, thetapunto: variables utilizadas para calcular el ngulo de inclinacin del pndulo.
runing: utilizada para determinar el estado de ejecucin de nuestra simulacin.
starTime, stopTime: utilizadas para almacenar el tiempo de oscilacin del pndulo.
delta: utilizada para el clculo de los ngulos en la ecuacin diferencial.
bimg: almacena el buffer de la imagen que se dibujara en pantalla.
G: esta contiene el valor de la aceleracin de la gravedad, necesario para realizar algunos clculos.
ESCALA: escala en la cual dibujaremos nuestro pndulo 400:1.
17
Libreras Utilizadas: se utilizaron clases de la librera AWT de java que nos permiten trabajar con grficos 2D en pantalla basadas principalmente en componentes y contenedores. Tambin utilizamos algunas clases de la librera SWING que est diseada para trabajar con ventanas.
1. Clase principal: Esta clase contiene las variables globales iniciales, el mtodo main que ejecuta el programa, y todos los dems mtodos implementados.
La clase principal denominada Pendulo hereda todas las caractersticas del mtodo Jframe e implementa los mtodos MouseListener, MouseMotionListener, ActionListener que utilizaremos para determinar las acciones realizadas con el puntero del ratn y poder variar el funcionamiento de la simulacin.
public class Pendulo extends JFrame implements MouseListener, MouseMotionListener, ActionListener { /**Autores: Robert Quintero, Yomaly Espinosa, Nelson Roa * Simulacion de un pendulo simple utilizando el metodo numerico de euler */ 18
private double x, y, longitud = 0.4, theta = 0.28, thetapunto = 0, delta = 0.033, angulor, periodor; private boolean runing = false; private long startTime= 0; private long stopTime= 0;
private Image bimg;
private Timer t = new Timer(33, this); private static final double G = 0.8182; private static final int ESCALA = 400;
public static void main(String[] args) { new Pendulo(); }
2. Mtodo Pndulo: Crea la ventana del programa con tamao de 800x600 pixeles y nombre Pendulo Simple, calcula la posicin inicial de la punta del pndulo y agrega los mtodos que permiten capturar el comportamiento del mouse dentro de la ventana. Adems cuando el mtodo main hace uso de este mtodo cambia el estado de la variable runing a verdadero y comienza a almacenar en la variable starTime el tiempo que lleva en movimiento el pndulo.
public Pendulo() {
x = longitud * ESCALA * Math.sin(theta) + 400; y = longitud * ESCALA * Math.cos(theta) + 200;
3. Mtodo paint: este mtodo hace uso del objeto Graphics, incluido en la clase AWT de Java que nos permite dibujar en pantalla todo lo necesario para visualizar el pndulo, as como los dems datos de salida. Primeramente realizamos un condicional, si la variable bimg est vaca, creamos la imagen a mostrar en pantalla utilizando las variables de coordenadas anteriormente capturadas, asignndole los atributos necesarios.
Adems calculamos el periodo de oscilacin completo y el ngulo del pndulo, mediante el uso de las ecuaciones anteriormente descritas. Como el movimiento oscilatorio armnico simple es vlido para ngulos no tan amplios, creamos una condicional que nos limita el movimiento del pndulo a ngulos no mayores de 70.
public void paint(Graphics gComponent) { if (bimg == null) { bimg = createImage(getWidth(), getHeight()); }
Graphics2D g = (Graphics2D) bimg.getGraphics();
g.setColor(Color.lightGray); g.fillRect(0, 0, bimg.getWidth(null), bimg.getHeight(null)); g.setColor(Color.BLUE); Font letra = new Font("SansSerif", Font.ITALIC, 14); g.setFont(letra); g.drawLine(400, 200, (int) x, (int) y); g.drawLine(200, 200, 600, 200); g.fillOval((int) x - 15, (int) y - 15, 30, 30); g.fillOval(397, 197, 6, 6);
angulor = theta * 180 / Math.PI ;
if (angulor > 70 | angulor < -70) {
g.drawString("La Simulacion es Valida para angulos de menor Grado", 250, 290); }
4. Mtodo mover: este mtodo hace uso de las ecuaciones diferenciales de Euler para simular el movimiento del pndulo. Calculando el nuevo ngulo y la nueva longitud de la cuerda cuando varan las coordenadas X, Y al mover el pndulo con el mouse. Dibuja en pantalla dicho movimiento.
public void mover(int a, int b) { longitud = Math.sqrt(Math.pow(a - 400, 2.0) + Math.pow(b - 200, 2.0)) / ESCALA; theta = Math.asin((a - 400) / (longitud * ESCALA)); thetapunto = 0;
if (b < 200) { if (a < 400) theta = -Math.PI - theta; else theta = Math.PI - theta; } repaint(0, 0, 800, 600); }
5. Mtodo MouseClicked: Con este mtodo el programa captura las pulsaciones del mouse y genera un evento, cuando se hace click captura las coordenadas del puntero, si se est ejecutando el programa lo detiene y con las nuevas coordenadas, tomando en cuenta la condicional del ngulo.
21
public void mouseClicked(MouseEvent e) { if (angulor > 70 | angulor < -70) { t.stop(); } else {
this.runing= false; this.stopTime=System.currentTimeMillis(); t.stop(); x = e.getX(); y = e.getY(); mover((int) x, (int) y); t.start(); } }
6. Mtodo MouseReleased: Al soltar el click del ratn inicia el movimiento del pndulo y cambia el estado de las variables runing y startTime.
public void mouseReleased(MouseEvent e) { if (angulor > 70 | angulor < -70) { t.stop(); } else {
7. Mtodo MouseDragged: al mover el mouse dibuja en pantalla la nueva posicin del pndulo.
public void mouseDragged(MouseEvent e) { t.stop(); x = e.getX(); y = e.getY(); mover((int) x, (int) y); } 22
8. Mtodo actionPerformed: Este mtodo Realiza los clculos del movimiento del pndulo para el movimiento que se genera en cada clock del timer establecido cada 33 milisegundos y repinta la imagen en pantalla con la posicin nueva.
public void actionPerformed(ActionEvent e) { thetapunto = thetapunto - delta * Math.sin(theta) * G / longitud; theta = theta + delta * thetapunto; x = longitud * ESCALA * Math.sin(theta) + 400; y = longitud * ESCALA * Math.cos(theta) + 200; repaint(0, 0, 800, 600); }
23
CONCLUSIN
El pndulo simple es un sistema ideal, formado por una masa puntual, que cuelga de un hilo de masa despreciable, sujeto a un soporte sin rozamiento. Si separamos el pndulo ligeramente de su posicin de equilibrio, ste comienza a oscilar con movimiento armnico simple (MAS).
El movimiento armnico simple es peridico, es decir, el pndulo ocupa posiciones idnticas a intervalos de tiempo iguales. Cuando el pndulo vuelve a ocupar la misma posicin se dice que ha realizado una oscilacin completa, y se llama perodoT al intervalo de tiempo que emplea en realizar cada oscilacin.
La simulacin virtual elaborada puede ser de utilidad para el estudio del comportamiento del pndulo simple en el rea de la fsica y las matemticas.
24
Pantalla del Sistema de Simulacin Digital de Pndulo Simple