Análisis del problema de vibración de cuerdas mediante diferencias finitas adaptadas al entorno libre SCILAB Myriam Rocío PALLARES MUÑOZ Facultad de Ingeniería Civil Universidad Santo Tomás Bogotá, Colombia Wilson RODRÍGUEZ CALDERÓN Programa de Ingeniería Civil Universidad de La Salle Bogotá, Colombia Sandra Elodia OSPINA LOZANO Programa de Ingeniería Civil Universidad de La Salle Bogotá, Colombia RESUMEN El artículo aborda el estudio del problema de vibración de cuerdas, como un caso relativamente sencillo de un sistema físico sometido a un fenómeno transitorio. Se muestra brevemente la formulación analítica del problema donde se obtiene la ecuación diferencial parcial (EDP) con sus respectivas condiciones de frontera y condiciones iniciales. Esta EDP está asociada al desplazamiento de los puntos de la cuerda en el tiempo y bajo condiciones de frontera e iniciales conocidas es posible resolver el problema original desarrollando un algoritmo de diferencias finitas adaptado al problema. Dado que, el esquema numérico requiere una buena cantidad de cálculos se implementa un código en el software libre SCILAB bajo el sistema operativo LINUX, que además posee facilidades para el posproceso gráfico de los resultados mostrando así una herramienta eficiente que no requiere ningún tipo de inversión especial, debido al carácter libre del sistema de álgebra computacional (CAS) empleado. Los grupos de investigación de los autores vienen trabajando hace varios años con Software libre de alta calidad, pero poco explorados en nuestro medio, por lo que el artículo además pretende resaltar el uso de software libre como herramienta de modelación de problemas complejos en ingeniería, por supuesto siempre habrá que realizar una inversión importante de tiempo y de investigación en el desarrollo de códigos bajo herramientas nuevas para el analista pero de inmenso potencial en el análisis y diseño en ingeniería. Al final se concluye sobre la precisión de los resultados que valida el desarrollo correcto del modelador por diferencias finitas. Palabras Clave: Cuerdas (Strings), Diferencias finitas (Finite difference), Ecuaciones diferenciales parciales (Partial differential equations), SCILAB (SCILAB). 1. INTRODUCCIÓN [1,2] La ecuación de onda es ecuación diferencial parcial, de segundo orden e hiperbólica que describe adecuadamente problemas de valor inicial en vibración de cuerdas. El problema de cuerdas vibrantes ha sido estudiado por Jean le Rond d'Alembert, Leonhard Euler, Daniel Bernoulli, Joseph-Louis Lagrange y Hans-Tela, entre otros. El modelado de la vibración de cuerdas requiere no solo del entendimiento del modelo conceptual y matemático, sino también del modelo numérico y su adaptación a un código computacional, por tanto el artículo pretende resaltar la mística de la programación de soluciones numéricas con software libre de fácil acceso. 2. MOTIVACIÓN [1,2] Los aportes del artículo contemplan: la adaptación del método de diferencias finitas a diferentes condiciones iniciales para la vibración de una cuerda, el desarrollo de un código de computador en el software libre SCILAB y la manifestación de posibles aplicaciones en la validación/verificación de modelos físicos de laboratorio y en la didáctica de la enseñanza en ingeniería. Es bien sabido que los procesos de enseñanza-aprendizaje en buena medida requieren de la experimentación y modelación bien sea física y/o numérica y en ese orden de ideas el artículo busca resaltar el desarrollo de herramientas propias adaptadas a las necesidades y la disponibilidad de recursos que en la actualidad abundan en la web, sin embargo, esto requiere del trabajo particular en ellas bajo una curva de aprendizaje que en muchos casos es razonable respecto a los resultados que pueden obtenerse. 3. MARCO TEÓRICO [2,3,4] Si una cuerda se estira fuertemente entre dos soportes y se desplaza una cantidad en algún punto de la cuerda, la cuerda vibra. Las vibraciones producen un sonido, ya que el aire vibra al unísono con la cuerda. Para resolver este problema tomamos la ecuación de gobierno definida como: = (1) Esta ecuación es de segundo orden con respecto a x y a t. Para resolver la ecuación se requieren valores en la frontera (valores u y/o valores de las derivadas en los dos soportes) y dos condiciones iniciales (valores u y velocidades, ∂u/∂t en t=0 ). Esto se puede resolver numéricamente al sustituir las derivadas por aproximaciones por diferencias finitas, prefiriendo usar diferencias centrales en ambos casos. Si se hace esto, se obtiene. = −2 ∆ + −2 ∆ + (2) Donde los subíndices indican valores x y los superíndices indican valores t (si las condiciones en la frontera implican derivadas, estas serán aproximadas con diferencias en la forma común). Si se resuelve para el desplazamiento al final del paso de tiempo actual, se obtiene: ∆ ∆ = + ∆ ∆ +2 1− − Si esto se sustituye en la ecuación de la cuerda en vibración. Si ∆ / ∆ se iguala a la unidad, que es el valor máximo que evita inestabilidad, se genera una simplificación importante. = + ∆ = ∆ √ = (3) Se encuentra que satisface la ecuación diferencial parcial, ya que. "! ∆# ∆ = $ $# = ( ' ** + ( ) ** / en xi y t = 0 (5) −2 ∆ (6) Si esta ecuación se sustituye en la ecuación, se tiene (solo para t=0). = 1 2 % + % + ∆ (7) Así, el procedimiento es usar la ecuación (7) para el primer paso de tiempo; luego se usa la ecuación (4) para avanzar en el tiempo después de ese primer paso. La ecuación (4) no solo es estable sino que también puede proporcionar respuestas exactas. Solución de D’Alembert Para el problema de la cuerda en vibración la solución analítica se puede obtener rápidamente. Esta solución se denomina la solución de D’Alembert. Consideremos esta expresión para u(x,t) : , =' +( +) Donde F y G son funciones arbitrarias. −( (8) +( = '* + )* = '* − )* −( (10) −( (11) = ' ** + ) ** En estas ecuaciones (10) y (11) las primas indican derivadas de las funciones arbitrarias. Luego, al sustituir estas expresiones para las segundas parciales en la ecuación (9) de la cuerda en vibración, se observa que esa ecuación se satisface cuando ( = / . Esto significa que la solución de la ecuación (9) puede obtenerse si es posible encontrar funciones F y G que cumplan las condiciones iniciales y las condiciones en la frontera. Supóngase que se proporcionan las condiciones iniciales. ,0 = , ∂u/∂t Se conoce en t=0 ; es una de las condiciones iniciales; se denomina g(x). Así, puede escribirse: = + )* = (' * − () * (4) Esta ecuación muestra cómo es posible desplazare en el tiempo, para obtener un nuevo valor de u en el nodo i, se suman los dos últimos valores u calculados en nodos a la derecha y a la izquierda y se resta el valor en el nodo i en el paso anterior a eso. Esto está bien para el segundo paso de tiempo; se tienen los valores iniciales u (en t=0 ) y los del paso 1 (en t=∆t). También se tiene la información necesaria para todos los cálculos subsecuentes. ! +( = '* − Si se reconoce que la oscilación de la cuerda en vibración es una función periódica y que el “punto inicial” es simplemente un instante arbitrario en el que ocurre que se conoce el desplazamiento y la velocidad. Esto sugiere que los valores u en t=-∆r pueden obtenerse a partir de las velocidades iniciales especificadas. Si se usa una aproximación por diferencias centrales: (9) , ,0 = (12) La combinación , = 1 -, 2 + +( +, 2 3# 1 / 2( 2 3# −( . 0 10 (13) Es de la misma forma que la ecuación (8). Ciertamente satisface las condiciones en la frontera, ya que al sustituir t=0 en la ecuación (11) se obtiene u(x,0)=f(x) y al diferenciar con respecto a t se obtiene: 1 * -, ∗ ( + , * ∗ −( . = 0 2 (14) Para el primer término de la ecuación (13), y: 1 5 ( 2( + ( . − −( - − ( .6 = (15) (Cuando t=0) para el segundo término. Así queda demostrado que la solución al problema de la cuerda en vibración es proporcionada por la ecuación (13). En el caso que g(x) sea diferente de cero es conveniente usar para los cálculos una forma mas precisa basada en la solución de D´Álembert. Como se ha visto, la ecuación (7) es una forma para obtener los valores iniciales. No obstante, al estudiar la ecuación (13) se observa que hay una técnica alternativa. Si se sustituye t=∆t en esta ecuación y se recuerda que c∆t=∆x, para u(xi, ∆t) se obtiene: ,∆ = = 1 -, + ∆ + , 2 −∆ . 2 ∆2 1 + / 0 10 2( 2 ∆2 1 2 % + Caso 3: Una cuerda mide 9 unidades de longitud. Inicialmente la cuerda está en su posición de equilibrio (simplemente una recta entre los soportes). Se pone en movimiento al golpearla de modo que tenga una velocidad inicial dada por = ? > Se toma ∆x = 1 unidad y sea c2= Tg/w = 4. Cuando la razón c2 (∆t)2/(∆x)2 =1, el valor de ∆t=0.5 unidades de tiempo. Encuentre los desplazamientos al final de un ∆t. (16) 5. 0 10 La ecuación (16) difiere de la ecuación (7) sólo en el último término. Si g(x)= constante, los últimos términos son iguales, pero si g(x) no es constante, es necesario realizar la integración en la ecuación (16). Di cha integración puede hacerse por cualquier técnica de integración numérica como la regla del trapecio o la regla de Simpson. 4. ∆x=0.1 = 3sin< % 2 ∆2 1 + / 2( 2 ∆2 u(x,0)=sen(πx),0≤x≤1, y ∂u/∂t(x,0) =0, 0≤x≤1 PLANTEAMIENTO DEL PROBLEMA [3] Los casos abordados obedecen a posibilidades generales que pueden darse para el problema de cuerdas. Estos son: RESULTADOS Dado el límite en la extensión del texto de esta publicación solo se muestran la captura del programa SCILAB en LINUX donde se implementó el código para la modelación del problema de cuerdas (figura 1) y algunos resultados obtenidos para los casos mencionados donde se especifica la posición de un punto inicial de la cuerda que segmenta la misma en dos rectas, el siguiente donde se especifica una función de velocidad inicial y finalmente un caso donde se especifica una función de posición inicial de la cuerda. Dichos casos son clásicos en diversos textos de la literatura (ver ref. [3]), sin embargo, el aporte del artículo hace referencia al desarrollo de códigos propios en herramientas libres como SCILAB y bajo sistemas operativos de código abierto como LINUX, esto indudablemente provee un acceso sin restricciones a herramientas de alto desempeño en actividades de docencia e investigación, por otra parte es posible adaptar técnicas numéricas clásicas o nuevas a casos específicos de modelación como el de vibración de cuerdas. Caso 1: Una cuerda mide 80 cm de largo y pesa 1.0 gr. Se estira con una tensión de 40,000 gr. En un punto a 20 cm del extremo, se tira de la cuerda 0.6 cm con respecto a la posición de equilibrio y luego se suelta. Encuentre los desplazamientos a lo largo de la cuerda como una función del tiempo. Use ∆x=10cm. ¿en cuánto tiempo se completa un ciclo de movimiento? Caso 2: Considere el problema hiperbólico =4 Figura 1. Captura de corrida del código de modelación de cuerdas en SCILAB bajo LINUX. Con condiciones de frontera 0, = 1, = 0 para Y condiciones iniciales t>0, Figura 4. Movimiento de vibración de una cuerda especificando una función de posición inicial de la forma f(x)=Asen (πx). Cuerda con posicion de punto inicial 0.6 Al realizar comparaciones con soluciones analíticas las diferencias son mínimas y no superan el 2% de variación. 0.4 valor de u 0.2 6. CONCLUSIONES 0.0 • Los métodos numéricos, en especial la modelación mediante diferencias finitas dan una solución confiable a la ecuación de onda, de manera sencilla y a un costo computacional realmente bajo. -0.2 -0.4 • Al someter una cuerda a una fuerza externa esta vibra generando desplazamientos los cuales se dan en un determinado instante de tiempo y esto puede simularse simplemente adaptando métodos clásicos del análisis numérico a casos específicos. Los resultados obtenidos muestran la factibilidad del uso de herramientas libres como SCILAB bajo sistemas operativos muy competitivos como LINUX. -0.6 0 10 20 30 40 50 60 70 80 coordenada x Figura 2. Ejemplo de vibración de cuerda con punto de pulsación inicial (20,0.6). Superficie Cuerda con funcion velocidad inicial • Siempre debe tenerse en cuenta que las soluciones obtenidas por métodos numéricos son aproximadas, por tanto en todo caso se requiere de un buen juicio ingenieril y una conciencia sobre el orden de magnitud de los resultados. 5 3 • En el caso uno se encontró que los desplazamientos se reproducen cada 16 pasos de tiempo, donde cada paso empleado es igual a 0.000179 segundos. valor de u 1 -1 -3 -5 20 18 16 14 12 10 8 6 4 indice de tiempo 2 0 0 1 3 2 4 5 6 8 7 9 10 • La herramienta obtenida constituye un laboratorio virtual de experimentación muy sencillo que puede ser aplicado para la simulación de todo tipo de casos y el contraste con pruebas físicas en el futuro. coordenada x 7. Figura 3. Representación espacio temporal del comportamiento de vibración de la cuerda especificando una función de velocidad inicial de la forma g(x)=Asen (πx/L). REFERENCIAS [1] C. Bunks, J.P. Chancelier, F. Delebecque, C. Gomez, M. Goursat, R. Nikoukhah, S. Steer, Engineering and Scientific Computing with Scilab, Springer, 1999. [2] Chapra S.C., Canale R. P., Métodos numéricos para ingenieros, México: McGraw-Hill, 2007, pp. 364-375. Cuerda con funcion posicion inicial 1.0 0.8 [3] Curtis Gerald F., Wheatley Patrick O., Wheatley, Análisis Numérico con Aplicaciones, México: Pearson, 2005. 0.6 0.4 [4] J. H. Mathews, K. D. Fink, Métodos numéricos con Matlab, Madrid: Pearson, 2000. valor de u 0.2 0.0 -0.2 -0.4 -0.6 -0.8 -1.0 0.0 0.1 0.2 0.3 0.4 0.5 coordenada x 0.6 0.7 0.8 0.9 1.0