Você está na página 1de 24

Maestría en Ciencias Físicas

Fundamentos Teóricos de la Computación [31/01/2018]

EL OSCILADOR AMORTIGUADO EN MATLAB Y SIMULINK

MATOS FRANCO, Richard1; PEREYRA DIAZ, Jose2.


Universidad Nacional de Trujillo, Universidad Cesar Vallejo1; Universidad Nacional de Trujillo-Perú2

Resumen: El presente trabajo, busca resolver el problema del oscilador armónico de tres maneras
diferentes en el MATLAB. La primera forma es conociendo la solución de la
ecuación diferencial para el oscilador amortiguado y tabulándola. La segunda forma fue
desarrollada usando el SIMULINK que es una herramienta incorporada dentro del
propio MATLAB, y en la tercera forma, empleamos el método de Runge-Kutta4,
conocido como RK4. Del análisis se puede decir que los tres métodos son soluciones a
nuestro problema de estudio de manera aproximada.

I. INTRODUCCION
A. Péndulo Simple
Consideremos un móvil sobre una pista sin rozamiento enganchado a un muelle fijo tal como
muestra la figura 01. La fuerza aplicada sobre el móvil viene dada por la ley de Hooke Fx(x)
= -kx. Entonces la ecuación de movimiento es 𝑚𝑥⃛ = 𝐹𝑥 = −𝑘𝑥 o
𝑘
𝑥⃛ = − 𝑥 = −𝜔2 𝑥 (01)
𝑚
Donde hemos introducido la contante

𝑘
𝜔=√
𝑚

La cual como veremos es la frecuencia angular con la que el móvil oscilará. Aunque la
ecuación (01) está en el contexto de un móvil que está sujeto a un muelle y que se mueve
a lo largo del eje x, es aplicable a muchas situaciones oscilantes diferentes en muchos
sistemas de coordenadas diferentes. En el caso de un monopatín que oscila en la parte
interna de un cascaron esférico inferior, el ángulo 𝜙 con relación al centro del casquete,
está gobernado por la misma ecuación, 𝜙̈ = −𝜔2 𝜙. La ecuación (01) es llamada la ecuación
del oscilador armónico simple.

Figura 01: Un móvil de masa m que oscila en el extremo de un muelle.


Las soluciones exponenciales
La ecuación (01) es una ecuación diferencial de segundo orden, lineal y homogénea, y por
ello tiene dos soluciones independientes. Estas soluciones se pueden escoger de varias
maneras, pero quizás la más conveniente sea esta:
𝑥(𝑡) = 𝑒 𝑖𝜔𝑡 𝑦 𝑥(𝑡) = 𝑒 −𝑖𝜔𝑡

1
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

Como se puede comprobar fácilmente, estas dos funciones satisfacen (01). Mas aun
cualquier múltiplo constante de cualquiera de las soluciones es también una solución y
también lo es cualquier suma de tales múltiplos. Por tanto, la función
𝑥(𝑡) = 𝐶1 𝑒 𝑖𝜔𝑡 + 𝐶2 𝑒 −𝑖𝜔𝑡 (02)
Es también una solución para cualesquiera dos constantes C1 y C2. (Que cualquier
combinación lineal de soluciones como estas sea solución se conoce como principio de
superposición y juega un papel crucial en muchas ramas de la física). Cualquier solución se
puede expresar de la forma (02) mediante una elección adecuada de los coeficientes C1 y
C2.

Las soluciones seno y coseno


Las funciones exponenciales (02) son tan sencillas de manejar que (02) muchas veces es la
mejor forma de la solución. Sin embargo, esta forma si tiene una desventaja. Sabemos, por
supuesto, que x(t) es real, mientras que las dos exponenciales en (02) son complejas. Esto
significa que los coeficientes C1 y C2 deben escogerse con cuidado para asegurar que el
propio x(t) sea real.
De la fórmula de Euler 𝑒 𝑖𝜃 = 𝑐𝑜𝑠𝜃 + 𝑖𝑠𝑒𝑛𝜃, sabemos que las dos exponenciales se pueden
escribir como:
𝑒 𝑖𝜔𝑡 = 𝑐𝑜𝑠𝜔𝑡 + 𝑖𝑠𝑒𝑛𝜔𝑡
Sustituyendo en (02) y reagrupando encontramos que:
𝑥(𝑡) = (𝐶1 + 𝐶2 ) cos(𝜔𝑡) + 𝑖(𝐶1 − 𝐶2 )𝑠𝑒𝑛(𝜔𝑡)
𝑥(𝑡) = 𝐵1 cos(𝜔𝑡) + 𝐵2 𝑠𝑒𝑛(𝜔𝑡) (03)
donde B1 y B2 son simplemente nuevos nombres para los coeficientes de la ecuación anterior,
𝐵1 = 𝐶1 + 𝐶2 𝑦 𝐵2 = 𝑖(𝐶1 − 𝐶2 ) (04)
La forma (03) puede tomarse como la definición del movimiento armónico simple (o MAS):
cualquie8tr movimiento que sea una combinación de un seno y un coseno de esta forma se
llama armónico simple. Como las funciones cos(ωt) y sen(ωt) son reales, el requerimiento
de que x(t) sea real significa simplemente que los coeficientes B1 y B2 deben ser reales.
Podemos identificar fácilmente los coeficientes B1 y B2 en términos de las condiciones
iniciales del problema. Claramente t=0, en (03) implica que x(0) = B1. Esto es, B1 es justo
la posición inicial x(0) = xo. Análogamente, diferenciando (03), podemos identificar que
ωB2 como la velocidad inicial vo.
Si comenzamos la oscilación tirando del móvil hacia x = xo y dejándolo libre desde el
reposo (vo = 0), entonces B2 = 0 en (03) y solo el termino del coseno perdura, así que:
𝑥(𝑡) = 𝑥0 cos(𝜔𝑡) (05)
Si lanzo el móvil desde el origen (xo = 0) dándole un toque en t = 0, solo perdura el término
del coseno, y
𝑣0
𝑥(𝑡) = sen(𝜔𝑡) (05)
𝜔
Estos dos casos simples están ilustrados en la figura 02. Advertimos que ambas soluciones,
como la solución general (03), son periódicas porque tanto el seno como el coseno lo son.

2
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

Como el argumento de ambos, seno y coseno, es ωt, la función x(t) se repite después del
tiempo τ para el cual ωτ = 2π. Esto es, el periodo es
2𝜋 𝑚
𝜏= = 2𝜋√ (06)
𝜔 𝑘

Figura 02: (a) Cuando un móvil se libera desde xo en t = 0 las oscilaciones siguen una
curva coseno. (b) Si el móvil es empujado desde el origen en t = 0, las oscilaciones siguen
una curva con pendiente inicial vo. En cualquiera de los dos casos el periodo de las
oscilaciones es τ.

B. Péndulo Amortiguado
Consideremos ahora que en nuestro oscilador hay una fuerza resistiva que amortiguara las
oscilaciones. Existen varias posibilidades para la fuerza resistiva. El rozamiento de
deslizamiento ordinario es aproximadamente constante en magnitud, pero siempre dirigido
en el sentido opuesto a la velocidad. La resistencia que opone un fluido, tal como aire o
agua, depende de la velocidad de una manera complicada. Sin embargo, es mejor suponer
que la fuerza resistiva es proporcional a la velocidad. Aquí supusimos que la fuerza resistiva
es proporcional a v; específicamente, 𝒇 = −𝑏𝒗.
Consideremos entonces un objeto en una dimensión, tal como un móvil enganchado a un
muelle, que esta sometido a la fuerza de la ley de Hooke, −𝑘𝑥, y a una fuerza resistiva −𝑏𝑥̇ .
La fuerza neta sobre el objeto es −𝑏𝑥̇ − 𝑘𝑥, y la segunda ley de Newton dice
𝑚𝑥̈ + 𝑏𝑥̇ + 𝑘𝑥 = 0 (07)
Para resolver esta ecuación es conveniente dividir entre m y después introducir otras dos
contantes que renombramos la constante b/m como 2γ
𝑏
2𝛾 = (08)
𝑚
Este parámetro γ, se que puede denominar constante de amortiguamiento, es simplemente
una forma conveniente de caracterizar la resistencia de la fuerza de amortiguamiento.
Renombramos la constante k/m como ωo2, esto es,

𝑘
𝜔𝑜 = √ (09)
𝑚

Desde ahora en adelante usaremos la notación ωo para denotar la frecuencia natural del
sistema, la frecuencia a la cual oscilaría si no hubiera una fuerza resistiva, como la que da
(09). Con estas notaciones, la ecuación (07) para el oscilador amortiguado se convierte en

𝑥̈ + 2𝛾𝑥̇ + 𝜔𝑜2 𝑥 = 0 (10)

3
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

La ecuación (08) es otra ecuación de segundo orden, lineal, homogénea. Por lo tanto, si por
cualquier motivo podemos encontrar dos soluciones independientes, x1(t) y x2(t) por ejemplo,
entonces cualquier solución debe tener la forma C1x1(t) + C2x2(t).
Se puede encontrar una solución de la forma
𝑥(𝑡) = 𝑒 𝑟𝑡 (11)
Para la cual
𝑥(𝑡) = 𝑟𝑒 𝑟𝑡 𝑦 𝑥(𝑡) = 𝑟 2 𝑒 𝑟𝑡
Sustituyendo en (10) vemos que nuestra suposición (11) satisface (10) si y solo si
𝑟 2 + 2𝛾𝑟 + 𝜔𝑜2 = 0 (12)
[una ecuación auxiliar a veces llamada ecuación auxiliar para la ecuación diferencial (10)].
Las soluciones de esta ecuación son, por supuesto 𝑟 = −𝜔 ± √𝛾 2 − 𝜔02 . Por consiguiente,
definimos las dos contantes

𝑟1 = −𝛾 + √𝛾 2 − 𝜔02
(13)
𝑟2 = −𝛾 − √𝛾 2 − 𝜔02

Entonces las dos funciones 𝑒 𝑟𝑡 y 𝑒 𝑟𝑡 son dos soluciones independientes de (10) y la solución
general es:
𝑥(𝑡) = 𝐶1 𝑒 𝑟1 ∙𝑡 + 𝐶2 𝑒 𝑟2 ∙𝑡 (14)

√𝛾2 −𝜔02 ∙𝑡 −√𝛾 2 −𝜔02 ∙𝑡


𝑥(𝑡) = 𝑒 −𝛾∙𝑡 (𝐶1 𝑒 + 𝐶2 𝑒 ) (15)

Oscilación Subamortiguada (γ = 0)
Si no hay amortiguamiento, entonces la constante de amortiguamiento γ es cero, la raíz
cuadrada en los exponentes de (15) es justo iωo, y nuestra solución se reduce a

√𝛾2 −𝜔02 ∙𝑡 −√𝛾2 −𝜔02 ∙𝑡


𝑥(𝑡) = 𝐶1 𝑒 + 𝐶2 𝑒

Si reemplazamos √𝛾 2 − 𝜔02 = 𝜔, se obtiene


𝑥(𝑡) = 𝐶1 𝑒 𝜔∙𝑡 + 𝐶2 𝑒 −𝜔∙𝑡 (16)
La solución familiar para el oscilador armónico.

Amortiguamiento débil (γ < 0)


Supongamos ahora que la constante de amortiguamiento γ es pequeña. Específicamente,
supongamos que
𝛾 < 𝜔𝑜 (17)
Una condición a veces denominada subamortiguamiento. En este caso, la raíz cuadrada en
os exponentes de (15) es de nuevo imaginaria, y podemos escribir

√𝛾 2 − 𝜔02 = 𝑖√𝜔02 − 𝛾 2 = 𝑖𝜔1

Donde

4
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

𝜔1 = √𝛾 2 − 𝜔02 (18)

El parámetro ω1 es una frecuencia, la cual es menor que la frecuencia natural ωo. En el caso
importante de amortiguamiento muy débil (𝛾 ≪ 𝜔), ω1 está muy cerca de γ de ωo. Con esta
notación, la solución (15) se convierte en
𝑥(𝑡) = 𝑒 −𝛾𝑡 (𝐶1 𝑒 𝜔1 ∙𝑡 + 𝐶2 𝑒 −𝜔1 ∙𝑡 ) (19)
Esta solución es el producto de dos factores. El primero, 𝑒 −𝛾𝑡 es una exponencial decreciente,
que va disminuyendo gradualmente hacia cero. El segundo factor tiene exactamente la forma
(16) de oscilaciones subamortiguadas, excepto que la frecuencia natural ωo, se sustituye por
la frecuencia ω1, de alguna manera mas baja. Podemos reescribir el segundo factor como:
𝑥(𝑡) = 𝐴𝑒 −𝛾𝑡 cos(𝜔1 𝑡) (20)
Esta solución describe claramente el movimiento armónico simple de la frecuencia ω1 con
una amplitud que decrece exponencialmente 𝐴𝑒 −𝛾𝑡 , como se muestra en la Figura 03.

Figura 03. Las oscilaciones subamortiguadas se pueden entender como oscilaciones


armónicas simples con una amplitud que decrece exponencialmente 𝐴𝑒 −𝛾𝑡 . Las curvas a
trazos son las envolventes, ±𝐴𝑒 −𝛾𝑡 .

Amortiguamiento Fuerte
Supongamos que la constante de amortiguamiento es grande. Específicamente supongamos
que
𝛾 > 𝜔𝑜 (21)
Una condición que a veces denominamos sobreamortiguamiento. En este caso, la raíz
cuadrada en los exponentes de (15) es real y nuestra solución es

−(𝛾−√𝛾 2 −𝜔02 )∙𝑡 −(𝛾+√𝛾 2 −𝜔02 )∙𝑡


𝑥(𝑡) = 𝐶1 𝑒 + 𝐶2 𝑒 (22)
Aquí tenemos dos funciones exponenciales reales, las cuales disminuyen a medida que pasa
el tiempo (porque los coeficientes de t en ambos exponentes son negativas). En este caso, el
movimiento esta tan amortiguado que no completa oscilaciones auténticas. La figura 04
muestra un caso típico en el que el oscilador es empujado desde O en t = 0, se mueve hasta
un desplazamiento máximo y luego se mueve otra vez hacia atrás aún más despacio; solo
vuelve al origen en el limite 𝑡 → ∞ . El primer término del segundo miembro de (22)
disminuye tan lentamente que el segundo, porque el coeficiente en su exponente es el menor

5
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

de los dos. Por consiguiente, el movimiento a largo plazo está dominado por este primer
término.

Figura 04: El movimiento sobreamortiguado en el que el oscilador es empujado desde el


origen en el instante t = 0. Se mueve hasta un desplazamiento máximo y después vuelve
atrás hacia O asintóticamente cuando 𝑡 → ∞.

Amortiguamiento Critico (γ = ωo)


La frontera entre subamortiguamiento y superamortiguamiento se denomina
amortiguamiento crítico y ocurre cuando la constante de amortiguamiento es igual a la
frecuencia natural, γ = ωo. Cuando γ = ωo las dos soluciones que encontramos en (15) son
la misma solución, a saber
𝑥(𝑡) = 𝑒 −𝛾𝑡 (23)
[esto sucedió porque las dos soluciones de la ecuación auxiliar (12) coinciden cuando γ =
ωo]. Este es un caso en el que nuestra intuición, al buscar una solución de la forma x(t) =
ert, falla a la hora de encontrar dos soluciones de la ecuación de movimiento, y tenemos que
usar algunos otros métodos para encontrar una segunda solución. Afortunadamente, en este
caso, nos es difícil hallar una segunda solución: cómo se puede comprobar fácilmente, la
solución
𝑥(𝑡) = 𝑡𝑒 −𝛾𝑡 (24)
Es también una solución de la ecuación de movimiento (10) en el caso especial en que γ =
ωo. Por lo tanto, la solución general para el caso de amortiguamiento critico es
𝑥(𝑡) = 𝐶1 𝑒 −𝛾𝑡 + 𝐶2 𝑡𝑒 −𝛾𝑡 (25)
Observamos que ambos términos contienen el mismo factor exponencial 𝑒 −𝛾𝑡 .

C. Simulink
Simulink proporciona un entorno grafico al usuario que facilita enormemente el análisis, diseño
y simulación de sistemas (de control, electrónicos, dinámicos, etc.), al incluir una serie de rutinas
que resuelven los cálculos matemáticos de fondo, junto con una sencilla interfaz para su uso.
Proporciona un entorno de usuario grafico que permite dibujar los sistemas como diagramas de
bloques tal y como se haría sobre un papel.
Es un entorno de programación de más alto nivel de abstracción que el lenguaje interpretado
Matlab (archivos con extensión .m). Simulink genera archivos con extensión .mdl (de model").

Simulink viene a ser una herramienta de simulación de modelos o sistemas, con cierto grado de
abstracción de los fenómenos físicos involucrados en los mismos. Se hace hincapié en el análisis
de sucesos, a través de la concepción de sistemas (cajas negras que realizan alguna operación).
El conjunto de componentes incluidos junto al programa Simulink, incluye bibliotecas de fuentes
de señal, dispositivos de presentación de datos, sistemas lineales y no lineales, conectores y

6
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

funciones matemáticas. En caso de que sea necesario, se pueden crear nuevos bloques a medida
por el usuario.

Figura 05: Ventana principal de trabajo de Simulink y la ventana de la Librería Browser,


donde se encuentran los bloques para armar dibujar los circuitos que permiten simular los
sistemas de estudio.

Figura 06: Circuito elaborado en Simulink formado por un generador de Señal (Signal
Generator), un sumador (Add), integrador (Integrator), una ganancia (Gain con valor de
-2 y un Osciloscopio (Scope). A la derecha se observa la grafica obtenida en el Oscilador
al aplicarle una señal al circuito.

7
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

D. Runge-Kutta
Probablemente uno de los procedimientos numéricos mas populares, así como mas preciso,
usado para obtener soluciones aproximadas para un problema con valores iniciales y’ = f(x,
y), y(xo) = yo es el método de Runge-Kutta de cuarto orden. Como el nombre lo indica
existen métodos de Runge Kutta de diferentes órdenes.

Método de Runge Kutta


En esencia, los métodos de Runge-Kutta son generalizaciones de la forma básica de Euler,
en que la función pendiente se reemplaza por un promedio ponderado de pendientes en el
intervalo 𝑥𝑛 ≤ 𝑥 ≤ 𝑥𝑛+1 . Es decir,
𝑦𝑛+1 = 𝑦𝑛 + ℎ ⏟
(𝑤1 𝑘1 + 𝑤2 𝑘2 + ⋯ + 𝑤𝑛 𝑘𝑛 )
(26)
𝑝𝑟𝑜𝑚𝑒𝑑𝑖𝑜 𝑝𝑜𝑛𝑑𝑒𝑟𝑎𝑑𝑜
Aquí los pesos wi, i = 1, 2, …, m, son constantes que generalmente satisfacen w1+w2+…+wm
= 1, y cada ki, i = 1, 2, …, m es la función f evaluada en un punto seleccionado (x,y) para
el que 𝑥𝑛 ≤ 𝑥 ≤ 𝑥𝑛+1 . Veremos que las ki se definen recursivamente. El numero m se llama
el orden del método. Observe que al tomar m=1, w1 = 1 y k1 = f(xn, yn), se obtiene la
conocida formula de Euler yn+1 = yn + hf(xn, yn). Por esta razón se dice que el método de
Euler es un método de Runge-Kutta de primer orden.

Método de Runge-Kutta de Cuarto Orden


Un procedimiento de Runge-Kutta de cuarto orden consiste en determinar parámetros de
modo que la formula
𝑦𝑛+1 = 𝑦𝑛 + ℎ(𝑤1 𝑘1 + 𝑤2 𝑘2 + 𝑤3 𝑘3 + 𝑤4 𝑘4 ) (27)
Donde
𝑘1 = 𝑓(𝑥𝑛 , 𝑦𝑛 )
𝑘2 = 𝑓(𝑥𝑛 + 𝛼1 ℎ, 𝑦𝑛 + 𝛽1 ℎ𝑘1 )
𝑘3 = 𝑓(𝑥𝑛 + 𝛼2 ℎ, 𝑦𝑛 + 𝛽2 ℎ𝑘1 + 𝛽3 ℎ𝑘2 )
𝑘4 = 𝑓(𝑥𝑛 + 𝛼3 ℎ, 𝑦𝑛 + 𝛽4 ℎ𝑘1 + 𝛽5 ℎ𝑘2 + 𝛽6 ℎ𝑘3 )
Concuerda con el polinomio de Taylor de cuatro. Esto da como resultado un sistema de 11
ecuaciones con 13 incógnitas. El conjunto de valores usado con más frecuencias para los
parámetros produce el siguiente resultado.

𝑦𝑛+1 = 𝑦𝑛 + (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 )
6
𝑘1 = 𝑓(𝑥𝑛 , 𝑦𝑛 )
1 1
𝑘2 = 𝑓 (𝑥𝑛 + ℎ, 𝑦𝑛 + ℎ𝑘1 ) (28)
2 2
1 1
𝑘3 = 𝑓 (𝑥𝑛 + ℎ, 𝑦𝑛 + ℎ𝑘2 )
2 2
1
𝑘4 = 𝑓 (𝑥𝑛 + ℎ, 𝑦𝑛 + ℎ𝑘3 )
2
Mientras que las otras formular de cuarto orden se deducen con facilidad, el algoritmo
resumido en (28) que es muy usado y reconocido como una invaluable herramienta de

8
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

cálculo, se denomina el método de Runge-Kutta de cuarto orden o método clásico de Runge-


Kutta. De aquí en adelante, se debe considerar a (28), cuando se use la abreviatura método
RK4.

Método de Runge-Kutta de Cuarto Orden en Ecuaciones de Orden Superior


Un problema con valores iniciales de segundo orden

𝑦" = 𝑓(𝑥, 𝑦, 𝑦′); 𝑦(𝑥𝑜 ) = 𝑦𝑜 ; 𝑦′(𝑥𝑜 ) = 𝑢𝑜 (29)

Se puede expresar como un problema con valores iniciales para un sistema de ecuaciones
diferenciales de primer orden. Si y’ = u, la ecuación diferencial en (29) se convierte en el
sistema
𝑦′ = 𝑢
(30)
𝑢′ = 𝑓(𝑥, 𝑦, 𝑢)
Puesto que y’(xo) = u(xo), las condiciones iniciales correspondientes para (30) son El sistema
(30) se puede resolver de forma numérica mediante la simple aplicación de un método
numérico a cada ecuación diferencial de primer orden en el sistema. Así el método de Runge-
Kutta de cuarto orden o método RK4, seria:

𝑦𝑛+1 = 𝑦𝑛 + 6 (𝑚1 + 2𝑚2 + 2𝑚3 + 𝑚4 )
ℎ (31)
𝑢𝑛+1 = 𝑢𝑛 + 6 (𝑘1 + 2𝑘2 + 2𝑘3 + 𝑘4 )

Donde
𝑚1 = 𝑢𝑛 ; 𝑘1 = 𝑓(𝑥𝑛 , 𝑦𝑛 )
1 1 1 1
𝑚2 = ℎ(𝑢𝑛 + ℎ𝑘1 ); 𝑘2 = 𝑓 (𝑥𝑛 + ℎ, 𝑦𝑛 + ℎ𝑘1 , 𝑢𝑛 + ℎ𝑚1 )
2 2 2 2
1 1 1 1
𝑚3 = ℎ(𝑢𝑛 + ℎ𝑘2 ); 𝑘3 = 𝑓 (𝑥𝑛 + ℎ, 𝑦𝑛 + ℎ𝑘2 , 𝑢𝑛 + ℎ𝑚1 )
2 2 2 2
𝑚4 = ℎ(𝑢𝑛 + ℎ𝑘3 ); 𝑘4 = 𝑓(𝑥𝑛 + ℎ, 𝑦𝑛 + ℎ𝑘3 , 𝑢𝑛 + ℎ𝑚3 )
En general, se puede expresar cada ecuación diferencial de n-ésimo orden y(n) = f(x, y, y’,
…, y(n-1)) como un sistema de n ecuaciones diferenciales de primer orden usando sustituciones
y = u1, y’ = u2, y’’=u3, … , y(n-1) = un.

II. MATERIALES Y METODOS


A. Materiales.
Para el presente trabajo, se necesitó los siguientes materiales.
✓ Una laptop
• Marca : LENOVO
• Modelo : Z51
• Sistema Operativo : Windows 8.1 Pro, 64 bits.
• Procesador : Intel ® Core™ i3-5005U CPU @ 2.00 GHz
• Memoria Ram : 4096 MB
• Disco Duro : 512 GB

9
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

✓ El programa MATLAB R2014a


▪ Sistemas Operativos : De Windows XP (x64) en Adelante.
▪ Procesador : Cualquier procesador Intel
▪ Espacio en disco : 1 GB solo para MATLAB, 3-4 GB
▪ RAM : 1024 MB (se recomiendan al menos 2048 MB)
✓ Libros.
✓ Hojas y lapiceros.

B. Métodos
Para desarrollar este trabajo, seguimos los siguientes pasos para cada modo de solución:
Conociendo la Solución:
El caso más común para oscilaciones con amortiguamiento débil, corresponde a la solución
de mediante la ecuación
𝑥(𝑡) = 𝐴𝑒 −𝛾𝑡 cos(𝜔1 𝑡) (20)
Para ello, como ya conocemos la solución, simplemente tabularemos, dándole los valores
para cada valor de t.
1. Inicio
2. Var real: tf, h, Yo, m, b, k.
3. Escribir Datos: (tiempo final, pasos, Amplitud Inicial, masa, coeficiente disipativo,
constante de resorte)
Leer (tf, h, Yo, m, b, k).
4. Calcular
Gamma←b/(2*m).
5. Calcular matriz
t = [0: h: tf].
6. Calcular Matriz Exponencial.
funexp←exp(-gamma*t).
7. Calcular frecuencia de amortiguamiento w.
w←sqrt((k/m) - ((b*b)/(4*m*m))).
8. Calcular matriz solución Y.
Y←Yo.*funexp.*cos(w*t).
9. Calcular matriz Velocidad V
V←-Yo*(gamma*cos(w*t))-w*sen(w*t)).*funexp.
10. Calcular matriz Momento
P←m*V.
11. Graficar t vs. Y
12. Graficar t vs. V
13. Graficar Y vs. P
14. Fin

10
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

function OscilacionAmortiguada()
%tf tiempo final
%h tamaño de pasos
%Y0 amplitud inicial
%m masa del cuerpo oscilante
%b constante disipativa
%k constante del resorte o longitud del péndulo
%phi ángulo de fase
tf=input('Ingrese tiempo final en segundos: ');
h=input('Ingrese intervalos de tiempo en segundos: ');
Y0=input('Ingrese amplitud inicial en cm: ');
m=input('Ingrese masa del cuerpo oscilante kg: ');
b=input('Ingrese constante disipativa: ');
k=input('Ingrese constante del resorte o longitud del péndulo N/m: ');
gamma=b/(2*m);
t=[0:h:tf]';
funexp=exp(-gamma*t);
w=sqrt((k/m)-(b^2)/(4*m^2));
Y=Y0*funexp.*cos(w*t);
%Matriz velocidad
V=-Y0*(gamma*cos(w*t)+w*sin(w*t)).*funexp;
%Matriz Momentos
P=m*V;
subplot(1,3,1)
plot(t,Y)
title('Grafico 01: Posición vs. Tiempo')
xlabel('Tiempo (s)')
ylabel('Posición (cm)')
subplot(1,3,2)
plot(t,V)
title('Grafico 02: Velocidad vs. Tiempo')
xlabel('Tiempo (s)')
ylabel('Velocidad (cm/s)')
subplot(1,3,3)
plot(Y,P)
title('Grafico 03: Posición vs. Momento')
xlabel('Posición (cm)')
ylabel('Momento (kg cm/s)')
Código Fuente del Programa conociendo la solución para el caso de amortiguamiento
débil

Figura 07: Valores solicitados por el programa. Podemos verificar que, por los valores
ingresados, el comportamiento es de tipo de amortiguamiento débil.

11
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

Grafico A. Las gráficas muestran el comportamiento de un oscilador amortiguado en el


caso de tener un amortiguamiento débil, su Posición vs. Tiempo; Velocidad vs. Tiempo y
Posición vs. Momento (diagrama de fase).

Grafico B. Para las mismas condiciones anteriores, con la diferencia en que la constante
disipativa b es igual a cero (Sin efecto disipativo) lo cual seria un movimiento oscilatorio
subamortiguado (γ=0) o armónico simple.

12
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

Desarrollo por SIMULINK


Para desarrollar la ecuación diferencial (07) empleando SIMULINK, diseñamos un circuito
considerando cada uno de los términos.
1. En la barra de Menú, seleccionamos la opción Tools, pestaña Library Browser.

Figura 08: Ventana principal de Simulink, la barra superior es a barra de Menu.

2. En la ventana de la Library Browser, verificamos que, en la parte izquierda, se encuentre


en la opción Simulink ► Commonly Used Block. Una vez allí, seleccionamos la opción
CONSTANT (constante) y trasladamos tres veces el bloque (son tres constantes en
nuestra ecuación diferencial; masa, coeficiente de amortiguamiento y la constante de
rigidez del resorte)

Figura 09: La figura muestra la ventana de la Librería Browser y su lista de bloques.


Seleccionamos los bloques y los ubicamos en la ventana principal.

3. La ecuación (07) se puede escribir despejando 𝑥̈


𝑏 𝑘
𝑥̈ = − 𝑥̇ − 𝑥 (07. 𝑎)
𝑚 𝑚
Por lo tanto, debemos considerar los bloques que nos ayuden a hacer la división de
cada par de constantes, entonces consideramos dos bloques de multiplicación para las
constantes y unimos las constantes con cada entrada de los bloques.

13
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

Figura 10: La unión de los bloques simplemente se efectuó al colocar el puntero sobre
la entrada de cada bloque multiplicador hasta la salida de cada bloque constante.

4. Por defecto, cada bloque toma a cada numero y los multiplica, pero podemos antes
invertir un numero (en este caso el valor de la masa divide a los otros coeficientes) y
luego multiplicar con el sobrante, para ello hacemos doble clic en cada bloque y luego
le ponemos el signo de división “/” segundo el orden del valor donde se ingresó dicho
número.

Figura 11: La ventana de configuración del bloque producto.

14
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

5. Como ambas constantes se multiplican por sus funciones (𝑥̇ y 𝑥) consideramos dos
bloques mas para multiplicar a cada nueva constante obtenida en los dos productos
anteriores

Figura 12: La unión con los nuevos bloques productos

6. Una vez obtenido los nuevos productos debemos sumar y obtener la función 𝑥̈ ,

Figura 13: ubicación del bloque sumador, al igual que en el bloque productos, también
se puede configurar el bloque sumador haciendo doble clic, el cambio de un signo “+”
por un “-” implica en el recuadro de Number Imputs cambia el signo en la parte
entrante.

7. La función 𝑥̇ es la primera integral de 𝑥̈ , entonces a la salida del sumador debemos


hacerlo pasar por un bloque Integrador; y 𝑥 será la integral de 𝑥̇ por lo tanto
debemos hacerlo pasar por otro bloque integral para obtener 𝑥.

15
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

Figura 14: Los bloques Integrator se encuentran en la librería Simulink ►Continous.

8. Para poder rotar un bloque, le dimos click izquierdo y seleccionamos la opción Rotate
& Flip y luego se puede aplicar una rotación horaria o anti horaria. Otra forma es
seleccionar el bloque y presionar control R para una rotación horaria.

Figura 15: Colocamos los bloques Integradores y luego los rotamos para que se nos
hiciera más fácil poder conectarlos entre sí y con los demás bloques. Cada rotación se
hace a 90° de su posición original.

9. Unimos los integradores y multiplicamos a cada uno de ellos con sus contantes
uniéndolos en las entradas de los bloques de multiplicación

16
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

Figura 16: Unimos las partes faltantes de nuestro circuito.

10. Para poder graficar la posición vs. tiempo, debemos incluir un bloque que nos ayude a
graficarlo, en este caso es SCOPE. Un SCOPE para la posición y otro para la velocidad.
Un bloque SCOPE grafica la dependencia de una variable en el tiempo.

Figura 17: Los bloques Scope se encuentran en la librería de Simulink ► Sinks a estos
bloques los conectamos a la salida del integrador de la velocidad y de la posición.

11. En la implementación del diagrama de fase, necesitamos graficar la posición vs. el


momento, para calcular el momento, multiplicaremos la masa por la velocidad
añadiendo el bloque de masa y el bloque de multiplicación

17
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

Figura 18: Ubicación de los bloques constante y multiplicador para obtener el momento
(masa por velocidad).

12. Luego añadimos el bloque XY GRAPH que grafica dos variables diferentes al tiempo.

Figura 19: Ubicación del bloque XYGraph, el cual unimos con la salida del momento
y la posición.

13. Nuestro circuito que describe al sistema quedo del siguiente modo.

18
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

Figura 20: Acabado final del sistema.

14. Para darle las condiciones iniciales hacemos doble clic en cada bloque integrador,
recordando que la primera integral es la velocidad y la segunda es la posición

15. Ahora presionamos el botón verde en la parte superior para poder correr programa, y
luego hicimos doble clic en cada uno de los Scope.

Figura 21: Graficas correspondientes a los valores de masa 0.5, coeficiente de


disipación -0.1, constante de rigidez -0.5; y condiciones iniciales de velocidad Inicial 0
y posición inicial 3. Observamos que las graficas son las mismas que las obtenidas con
la función solución para el caso de amortiguamiento débil.

19
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

16. Luego consideramos el caso cuando el coeficiente de disipación es cero.

Figura 22: Graficas correspondientes a los valores de masa 0.5, coeficiente de


disipación 0, constante de rigidez -0.5; y condiciones iniciales de velocidad Inicial 0 y
posición inicial 3. Observamos que las gráficas son las mismas que las obtenidas con
la función solución para el caso de subamortiguamiento.

Solución por Método de Runge-Kutta de Cuarto Orden


Para desarrollar el problema del oscilador amortiguado por el método de Runge-Kutta de
cuarto orden, empleamos el siguiente algoritmo.

1. Inicio
2. Var real: tf, h, Yo, Vo, m , b, k.
3. Escribir Datos: (tiempo final, pasos, Amplitud Inicial, velocidad inicial, masa,
coeficiente disipativo, constante de resorte)
Leer (tf, h, Yo, Vo, m, b, k).
4. Calcular
Gamma←b/(2*m).
5. Calcular matriz
t = [0: h: tf].
6. Calcular numero de elementos de la matriz t
n←cantidad de elementos de t
7. Definir matriz Posicion
Y←zeros(n,1)
8. Definir matriz V
V←zeros(n,1)
9. Asignar primero elemento a Y
Y(1,1) ←Yo
10. Asignar primer elemento a V
V(1,1) ←Vo
11. Desde i←1 hasta n

20
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

k1←h*Y(i,1);
m1←V(i,1);
k2←-h*(2*g*(V(i,1)+0.5*m1)+wo*(Y(i,1)+0.5*k1));
m2←h*(V(i,1)+0.5*k1);
k3←-h*(2*g*(V(i,1)+0.5*m2)+wo*(Y(i,1)+0.5*k2));
m3←h*(V(i,1)+0.5*k2);
k4←-h*(2*g*(V(i,1)+m3)+wo*(Y(i,1)+k3));
m4←h*(V(i,1)+k3);
k←(k1+2*k2+2*k3+k4)/6;
m← (m1+2*m2+2*m3+m4)/6;
Y(i+1,1) ←Y(i,1)+m;
V(i+1,1) ←V(i,1)+k;
12. Fin desde
13. Calcular Matriz Momento
P←masa*V
14. Graficar Posición vs. Tiempo
15. Graficar Velocidad vs. Tiempo
16. Graficar Posición vs. Momento
17. Fin

function RungeKuttaOscilAmortiguadoDZ()
%tf tiempo final
%h tamaño de pasos
%Y0 amplitud inicial
%V0 velocidad inicial
%m masa del cuerpo oscilante
%b constante disipativa
%k constante del resorte o longitud del péndulo
tf=input('Ingrese tiempo final: ');
h=input('Ingrese intervalos de tiempo: ');
Y0=input('Ingrese amplitud inicial: ');
V0=input('Ingrese velocidad inicial: ');
masa=input('Ingrese masa del cuerpo oscilante: ');
b=input('Ingrese constante disipativa: ');
ko=input('Ingrese constante del resorte o longitud del péndulo: ');
g=b/(2*masa);%factor gamma
wo=ko/masa;
t=[0:h:tf]';
n=length(t);
Y=zeros(n,1);
Y(1,1)=Y0;
V=zeros(n,1);
V(1,1)=V0;
for i=1:n-1
k1=h*Y(i,1);
m1=V(i,1);
k2=-h*(2*g*(V(i,1)+0.5*m1)+wo*(Y(i,1)+0.5*k1));
m2=h*(V(i,1)+0.5*k1);
k3=-h*(2*g*(V(i,1)+0.5*m2)+wo*(Y(i,1)+0.5*k2));
m3=h*(V(i,1)+0.5*k2);
k4=-h*(2*g*(V(i,1)+m3)+wo*(Y(i,1)+k3));
m4=h*(V(i,1)+k3);
k=(k1+2*k2+2*k3+k4)/6;
m=(m1+2*m2+2*m3+m4)/6;

21
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

Y(i+1,1)=Y(i,1)+m;
V(i+1,1)=V(i,1)+k;
end
P=masa*V;%Matriz de Momentos masa por velocidad
subplot(1,3,1)
plot(t,V(:,1))
title('Tiempo vs Velocidad')
xlabel('Tiempo (s)')
ylabel('Velocidad (cm/s)')
subplot(1,3,2)
plot(t,Y(:,1))
title('Tiempo vs Posición')
xlabel('Tiempo (s)')
ylabel('Posición (cm)')
subplot(1,3,3)
plot(Y(:,1), P)
title('Tiempo vs Posición')
xlabel('Posición (cm)')
ylabel('Momento (cm/s)')

Figura 23: Valores solicitados por el programa. Podemos verificar que, por los valores
ingresados, el comportamiento es de tipo de amortiguamiento débil.

Grafico C. Las gráficas muestran el comportamiento de un oscilador amortiguado en el


caso de tener un amortiguamiento débil, su Posición vs. Tiempo; Velocidad vs. Tiempo y
Posición vs. Momento (diagrama de fase) empleando el método de Runge-Kutta.

22
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

Grafico D. Para las mismas condiciones anteriores, con la diferencia en que la


constante disipativa b es igual a cero (Sin efecto disipativo) lo cual sería un movimiento
oscilatorio subamortiguado (γ=0) o armónico simple.

III. DISCUSIONES
Consideramos los casos amortiguamiento débil, porque fijamos la solución en nuestro programa
de referencia, el cual tiene como caso limite cuando b=0 (γ = 0) la oscilación subamortiguada.

Comparamos el Gráficos C y las figura 21 con la figura A, para el caso de amortiguamiento


débil (esto es para, γ < 0), nos dimos cuenta por inspección rápida que el grafico C y la figura
21 difieren del grafico A, porque las crestas son de mayor tamaño que las crestas de la solución
esto es debido a que los otros dos gráficos son obtenidos por métodos numéricos, los cuales
llevan son soluciones aproximadas y van sumando los errores debido a los procesos recursivos
como es en el bucle for para el caso del Método Ringe-Kutta de cuarto orden.

Sin embargo, cuando comparamos el Gráficos D y la figura 22 con la figura B, en el caso de


subamortiguamiento (γ = 0) observamos que la figura 22 (empleando el Simulink) es
prácticamente idéntica a la grafica A, pero el grafico D, muestra un comportamiento inusual
donde la amplitud en vez de mantenerse constante, se incrementa en cada periodo de oscilación,
este comportamiento es el típico caso cuando existe una fuerza adicional llamada fuerza de
restitución. Estos resultados se deben a que a medida que se va haciendo mas interacciones, los
errores van incrementando porque ya no tiene un factor adicional que le ayude a disminuir
como era el coeficiente de restitución, es decir, que ahora su incremento sería mucho más alto.

En el simulink, empleamos el método Runge-Kutta45 (por defecto) a fin de poder comparar con
la gráfica de la función solución.

23
Maestría en Ciencias Físicas
Fundamentos Teóricos de la Computación [31/01/2018]

IV. CONCLUSIONES
A pesar que el Simulink es una herramienta incluida en el Matlab, nos da una mayor
aproximación a la función solución que el Método de RK4 elaborado para este caso, donde se
aprecia la falla de dicho método en el caso de la oscilación subamortiguada.
Mientras mas iteraciones se haga (caso del bucle for, if, while) mayor será el incremento de los
errores y por lo tanto nuestros resultados difieren del valor esperado.
Se sugiere para otros estudios, considerar los otros casos en cada algoritmo que nos permita
comprar dichos métodos a fin de poder verificar, así como también diferentes valores de
parámetros incluidos los tamaños de pasos.

V. REFERENCIAS
[01] Burden, R. Douglas, J.; (2002), Análisis Numérico. Editorial Thomson; Séptima edición;
Ciudad de México, México.
[02] Gekeler, A.; (2008). Mathematical Methods for Mechanics A Handbook with MATLAB
Experiments. Editorial Springer; Primera edición; Heidelberg, Alemania.
[03] Gilat, A.; (2005); Matlab: Una introducción con ejemplos prácticos; Editorial Reverte;
Segunda edición, Barcelona, España.
[04] Joyanes, L.; (2008); Fundamentos de Programación: Algoritmos, estructura de datos y
objetos; Editorial Mc Graw Hill, Cuarta edición; Madrid, España.
[05] Raffo, E.; (2011); Métodos Numéricos para ciencias e ingeniería con Matlab. Editorial;
Editorial Raffo; Segunda edición; Lima, Perú.
[06] Ramírez J.; Fecha de consulta: 29/01/2018. Recuperado de:
http://www.ugr.es/~javierrp/master_files/Seminario%20de%20Matlab.pdf.
[07] Universidad de Granada; Fecha de consulta: 28/01/2018. Recuperado de:
http://www.esi2.us.es/~jaar/Datos/RegAuto/Practica3.pdf.
[08] Taylor, J.; (2013); Mecánica Clásica; Editorial Reverte; Primera edición; Barcelona,
España.
[09] Vásquez, L. Jiménez S. Aguirre, C. Pascual, J.; (2009); Métodos Numéricos para la Física
y la Ingeniería, Editorial Mc Graw Hill; Primera edición; Doosan, Corea del Sur.
[10] Zill D; (2009); Ecuaciones Diferenciales con aplicaciones de modelado; Editorial Cengage
Learning; Novena edición; Ciudad de México, México.

24

Você também pode gostar