Modos normales de vibración de sistemas lineales homogéneos
Los sistemas que analizamos en esta página, están compuestos por masas puntuales unidas a muelles elásticos de masa despreciable. Cada elemento está situado entre dos puntos. El estado de cada punto está definido por un vector columna que especifica su desplazamiento y por la fuerza interna que actúa. Una matriz cuadrada de 2×2 relaciona dos puntos consecutivos del sistema.
Muelle elástico

Un muelle elástico de constante k une los puntos 1 y 2. Las fuerzas en ambos puntos son iguales F1=F2. La deformación del muelle, es x2-x1
Relacionamos x2 y F2 con x1 y F1 mediante una matriz 2×2
Denominaremos a esta matriz Ts
El vector columna de la izquierda es el estado del punto 2 y el de la derecha, el estado del punto 1. La matriz 2×2 relaciona los estados de dos puntos unidos por un elemento, en este caso el muelle
Partícula

Una partícula tiene la misma posición x2=x3. La fuerza neta que actúa sobre la partícula F3-F2 es igual al producto de su masa m por la aceleración
Si la partícula describe un Movimiento Armónico Simple de frecuencia angular ω, la aceleración es proporcional al desplazamiento y de sentido contrario a éste, -ω2x2.
Relacionamos el estado del punto 3, el vector columna (x3; F3) con el estado del punto 2, el vector columna (x2; F2) mediante una matriz 2×2
Denominaremos a esta matriz Tp
Una vez que hemos definido el concepto de estado y las matrices que relacionan el estado de dos puntos consecutivos que se unen mediante un muelle o una partícula, vamos a ver como se aplican a los sistemas que se estudian en la sección de osciladores acoplados del capítulo Oscilaciones
Partícula unida a un muelle elástico

El sistema más sencillo está formado por una partícula de masa m unida a un muelle elástico de constante k
Relacionamos los estados de los puntos 1, 2 y 3 de la siguiente manera:
Entre los puntos 1 y 2 hay un muelle elástico de constante k, relacionamos el estado del punto 2 con el estado del punto 1
Entre los puntos 2 y 3 hay una partícula de masa m, relacionamos el estado del punto 3 con el estado del punto 2.
Relacionamos el estado del punto 3 con el estado del punto 1
El producto de las matrices Tp·Ts da lugar a una matriz cuyo determinante es la unidad
Condiciones de contorno
Las condiciones de contorno son:
- x1=0, ya que el punto 1 es fijo
- F3=0, ya que el extremo 3 es libre
Lo que implica que
x3 es la deformación del muelle. El término entre paréntesis deberá ser cero, es decir, el resultado esperado, la frecuencia angular ω del MAS que describe una partícula de masa m unida a un muelle de constante k
Dos osciladores
Consideremos el sistema de la figura: el primer oscilador está formado por un muelle de constante k1, unido a una partícula de masa m1, el otro extremo del muelle (punto 1) está fijo. El segundo oscilador está formado por un muelle de constante k2, unido a una partícula de masa m2, el otro extremo del muelle (punto 3) está unido a la partícula de masa m1
Relacionamos los estados de los puntos 2-1 (muelle de constante k1), 3-2(partícula de masa m1), 4-3 (muelle de constante k2), 5-4 (partícula de masa m2). Finalmente, relacionamos los estados de los puntos extremos 5-1
Condiciones de contorno
Las condiciones de contorno son:
- x1=0, ya que el punto 1 es fijo
- F5=0, ya que el extremo 5 es libre
Lo que implica que el elemento de la matriz T22=0
En la página titulada Dos osciladores acoplados verticales calculamos las frecuencias de los modos normales de vibración del sistema formado por dos partículas de masas m1=2m y m2=m unidas a muelles elásticos de constante k1=k2=k
Frecuencias de los modos normales de oscilación
Utilizamos Math Symbolic de Matlab para realizar la multiplicación de matrices
syms k m w; Ts_1=[1,1/k;0,1]; Tp_1=[1,0;-2*m*w^2,1]; Ts_2=[1,1/k;0,1]; Tp_2=[1,0;-m*w^2,1]; T=Tp_2*Ts_2*Tp_1*Ts_1;
Comprobamos que el determinante de la matriz T es la unidad
>> det(T) ans =1
Utilizamos la función solve de MATLAB para calcular las raíces positivas de la ecuación T22=0.
>> solve(T(2,2)) ans = -(-(k*(2^(1/2) - 2))/(2*m))^(1/2) -((k*(2^(1/2) + 2))/(2*m))^(1/2) (-(k*(2^(1/2) - 2))/(2*m))^(1/2) ((k*(2^(1/2) + 2))/(2*m))^(1/2)
Amplitudes del MAS que describe de cada una de las partículas
- La amplitud de la primera partícula es x2=x3
- La amplitud de la segunda partícula es x4=x5
Calculamos x3 y x5 cuando el sistema oscila en el primer modo normal de frecuencia ω1, sabiendo que x1=0
En el apatado anterior, hemos deducido la relación entre el estado del punto 3 y el estado del punto 1 y la relación entre el estado del punto 5 y del punto 1. Teniendo en cuenta las condiciones de contorno x1=0, y asignando un valor arbitrario a F1=1. Las expresiones de x3 y x5 son, respectivamente
Utilizamos MATLAB para calcular x3 y x5 para el primer modo normal de vibración, para el ejemplo de sistema descrito en este apartado, asignado los valores a la constante k=1 y a la masa m=1. Añadimos el siguiente código al script anterior
... w1=subs((-(k*(-2^(1/2) - 2))/(2*m))^(1/2),{k,m},{1,1}); Vs_1=subs(Ts_1,k,1); Vp_1=subs(Tp_1,{m,w},{1,w1}); Vs_2=subs(Ts_2,k,1); Vp_2=subs(Tp_2,{m,w},{1,w1}); x5=[1,0]*(Vp_2*Vs_2*Vp_1*Vs_1)*[0;1]; x3=[1,0]*(Vp_1*Vs_1)*[0;1]; disp([double(x3), double(x5)])
1.0000 1.4142
Como podemos ver en las figuras al final de la página Dos osciladores acoplados verticales, para la frecuencia ω1=0.5412, las partículas oscilan en fase, y sus amplitudes están en la relación, x5 es , veces la amplitud x3
... w2=subs(((k*(2^(1/2) + 2))/(2*m))^(1/2),{k,m},{1,1}); Vs_1=subs(Ts_1,k,1); Vp_1=subs(Tp_1,{m,w},{1,w2}); Vs_2=subs(Ts_2,k,1); Vp_2=subs(Tp_2,{m,w},{1,w2}); x5=[1,0]*(Vp_2*Vs_2*Vp_1*Vs_1)*[0;1]; x3=[1,0]*(Vp_1*Vs_1)*[0;1]; disp([double(x3), double(x5)])
1.0000 -1.4142
Para el segundo modo de frecuencia ω2=1.3066, los osciladores están en oposición de fase, la relación de amplitudes es la misma que para la frecuencia anterior
Dos osciladores acoplados
Consideremos el sistema de dos osciladores: el primero está formado por un muelle de constante k1, unido a una partícula de masa m1, el otro extremo del muelle (punto 1) está fijo. El segundo oscilador está formado por un muelle de constante k3, unido a una partícula de masa m2, el otro extremo del muelle (punto 6) está fijo. Las dos partículas están unidas por un muelle de constante k2
Relacionamos los estados de los puntos 2-1 (muelle de constante k1), 3-2(partícula de masa m1), 4-3 (muelle de constante k2), 5-4 (partícula de masa m2), 6-5 (muelle de constante k3). Finalmente, relacionamos los estados de los puntos extremos 6-1
Condiciones de contorno
Las condiciones de contorno son:
- x1=0, ya que el punto 1 es fijo
- x6=0, ya que el extremo 6 es fijo
Lo que implica que el elemento de la matriz T12=0
En la página titulada Dos osciladores acoplados calculamos las frecuencias de los modos normales de vibración del sistema formado por dos partículas de masas m1=m2=m unidas a muelles elásticos de constante k1=k3=k, la constante del muelle que une las partículas es k2=K
Frecuencias de los modos normales de oscilación
Utilizamos Math Symbolic de Matlab para realizar la multiplicación de matrices
syms k m w K; Ts_1=[1,1/k;0,1]; Tp_1=[1,0;-m*w^2,1]; Ts_2=[1,1/K;0,1]; Tp_2=[1,0;-m*w^2,1]; Ts_3=[1,1/k;0,1]; T=Ts_3*Tp_2*Ts_2*Tp_1*Ts_1;
Comprobamos que el determinante de la matriz T es la unidad
>> det(T) ans =1
Utilizamos la función solve para calcular las raíces positivas de la ecuación T12=0.
>> solve(T(1,2)) ans = (m*(2*K + k))^(1/2)/m -(m*(2*K + k))^(1/2)/m (k^2*(m/k^3)^(1/2))/m -(k^2*(m/k^3)^(1/2))/m
Amplitudes del MAS que describe de cada una de las partículas
- La amplitud de la primera partícula es x2=x3
- La amplitud de la segunda partícula es x4=x5
Calculamos x3 y x5 cuando el sistema oscila en el primer modo normal de frecuencia ω1, sabiendo que x1=0
En el apatado anterior, hemos deducido la relación entre el estado del punto 3 y el estado del punto 1 y la relación entre el estado del punto 5 y del punto 1. Teniendo en cuenta las condiciones de contorno x1=0, y asignando un valor arbitrario a F1=1. Las expresiones de x3 y x5 son, respectivamente
Utilizamos MATLAB para calcular x3 y x5 para el primer modo normal de vibración, para el ejemplo de sistema descrito en este apartado, asignado los valores a la constante k=10 y a la constante K=0.5 a las masas de las partículas m=1. Añadimos el siguiente código al script anterior
... w1=subs(sqrt(k/m),{k,m},{10,1}); Vs_1=subs(Ts_1,k,10); Vp_1=subs(Tp_1,{m,w},{1,w1}); Vs_2=subs(Ts_2,K,0.5); Vp_2=subs(Tp_2,{m,w},{1,w1}); x5=[1,0]*(Vp_2*Vs_2*Vp_1*Vs_1)*[0;1]; x3=[1,0]*(Vp_1*Vs_1)*[0;1]; disp([double(x3), double(x5)])
0.1000 0.1000
Como podemos ver en el programa interactivo o utilizando el código MATLAB al final de la página Dos osciladores acoplados, para la frecuencia ω1=3.1623, las partículas oscilan en fase y sus amplitudes x3=x5 son las mismas
... w1=subs(sqrt((k+2*K)/m),{k,K,m},{10,0.5,1}); Vs_1=subs(Ts_1,k,10); Vp_1=subs(Tp_1,{m,w},{1,w1}); Vs_2=subs(Ts_2,K,0.5); Vp_2=subs(Tp_2,{m,w},{1,w1}); x5=[1,0]*(Vp_2*Vs_2*Vp_1*Vs_1)*[0;1]; x3=[1,0]*(Vp_1*Vs_1)*[0;1]; disp([double(x3), double(x5)])
0.1000 -0.1000
Para el segundo modo de frecuencia ω2=3.3166, los osciladores están en oposición de fase, las amplitudes son las mismas
Sistema de N partículas unidas a N+1 muelles elásticos
Consideremos un sistema formado por N partículas de masa m unidas a N+1 muelles elásticos de constante k. En la figura mostramos 10 partículas unidas a 11 muelles elásticos. Señalamos los 2N+2=22 puntos cuyo estado tenemos que determinar
Condiciones de contorno
Las condiciones de contorno son:
- x1=0, ya que el punto 1 es fijo
- x2N+2=0, ya que el extremo 2N+2 es fijo
Lo que implica que el elemento de la matriz T12=0
En la página titulada Modos normales de vibración (I) calculamos las frecuencias de los modos normales de vibración del sistema formado por N=2, 3 y 4, partículas de masas m unidas a muelles elásticos de constante k. Probamos con N=4
Frecuencias de los modos normales de oscilación
Utilizamos Math Symbolic de Matlab para realizar la multiplicación de matrices
syms k m w; N=4; %número de partículas Ts=[1,1/k;0,1]; Tp=[1,0;-m*w^2,1]; T=Ts*(Tp*Ts)^N;
Comprobamos que el determinante de la matriz T es la unidad
>> det(T) ans =1
Utilizamos la función solve para calcular las raíces positivas de la ecuación T12=0.
>> solve(T(1,2)) ans = -(-(k*(5^(1/2) - 3))/(2*m))^(1/2) -((k*(5^(1/2) + 3))/(2*m))^(1/2) -(-(k*(5^(1/2) - 5))/(2*m))^(1/2) -((k*(5^(1/2) + 5))/(2*m))^(1/2) (-(k*(5^(1/2) - 3))/(2*m))^(1/2) ((k*(5^(1/2) + 3))/(2*m))^(1/2) (-(k*(5^(1/2) - 5))/(2*m))^(1/2) ((k*(5^(1/2) + 5))/(2*m))^(1/2)
Amplitudes del MAS que describe de cada una de las partículas
- La amplitud de la primera partícula es q1=x2=x3
- La amplitud de la segunda partícula es q2=x4=x5
- La amplitud de la tercera partícula es q3=x6=x7
- La amplitud de la cuarta partícula es q4=x8=x9
Una vez que se han calculado las amplitudes qj con j=1,2,...N, de cada una de las partículas se normalizan de acuerdo a la siguiente fórmula
donde mj es la masa de cada partícula
Completamos el script anterior para calcular y representar las amplitudes de la oscilación de cada una de las partículas para la frecuencia del modo seleccionado
.... masa=1; %masa cte=1; %constante del muelle w1=sqrt((3-sqrt(5))/2); %frecuencia del primer modo normal Vs=subs(Ts,k,cte); Vp=subs(Tp,{m,w},{masa,w1}); q=zeros(N,1); suma=0; for j=1:N q(j)=[1,0]*(Vp*Vs)^j*[0;1]; suma=suma+masa*q(j)^2; end for j=1:N q(j)=q(j)/sqrt(suma); %amplitudes end stem(q) xlim([0,N+1]) xlabel('j') ylabel('q_j') title('Amplitudes de la oscilación')
Calculamos las amplitudes qj(ωr) con j=1,2,...N para la frecuencia ωr de un modo normal de vibración y las amplitudes qj(ωs) para la frecuencia ωs de otro modo normal de vibración r≠s. Comprobamos que se cumple que
Hemos calculado las amplitudes qj para la frecuencia del modo fundamental ω1. Duplicamos el código para calcular las amplitudes yj para el tercer modo de vibración ω3
syms k m w; N=4; %número de partículas Ts=[1,1/k;0,1]; Tp=[1,0;-m*w^2,1]; T=Ts*(Tp*Ts)^N; masa=1; %masa cte=1; %constante del muelle w1=sqrt((3-sqrt(5))/2); %frecuencia del primer modo Vs=subs(Ts,k,cte); Vp=subs(Tp,{m,w},{masa,w1}); q=zeros(N,1); suma=0; for j=1:N q(j)=[1,0]*(Vp*Vs)^j*[0;1]; suma=suma+masa*q(j)^2; end for j=1:N q(j)=q(j)/sqrt(suma); end w3=sqrt((3+sqrt(5))/2); %frecuencia del tercer modo Vs=subs(Ts,k,cte); Vp=subs(Tp,{m,w},{masa,w3}); y=zeros(N,1); suma=0; for j=1:N y(j)=[1,0]*(Vp*Vs)^j*[0;1]; suma=suma+masa*y(j)^2; end for j=1:N y(j)=y(j)/sqrt(suma); end suma=0; for j=1:N suma=suma+masa*q(j)*y(j); end disp(suma)
1.1102e-16
Sistema homogéneo
En esta página, hemos estudiado un sistema formado por partículas unidas a muelles elásticos. Calculamos mediante el procedimiento descrito en esta página:
- Las frecuencias de los modos normales de vibración
- Las amplitudes del MAS que describe cada una de las partículas para la frecuencia del modo seleccionado
El sistema más importante consta de N partículas de la misma masa m unidas a N+1 muelles de la misma constante k
La matriz T que relaciona los estados de los puntos extremos 1 y 2N+2 es
Se utiliza la función solve de MATLAB para calcular las raíces reales y positivas de la ecuación T12=0.
Para la frecuencia ω del modo normal de vibración seleccionado, se calculan las amplitudes qj del MAS que describe cada una de las partículas del sistema. Se normalizan y se representan gráficamente
En el siguiente script representamos las amplitudes qj de los dos primeros modos de vibración y de los dos últimos modos para un sistema de N=20 partículas, de masa m=4 unidas a muelles de constante k=1. En el título de cada uno de los gráficos aparece la frecuencia
syms k m w; N=20; %número de partículas masa=4; %masa cte=1; %constante del muelle Ts=[1,1/k;0,1]; Tp=[1,0;-m*w^2,1]; T=Ts*(Tp*Ts)^N; V=subs(T,{k,m},{cte,masa}); W=double(solve(V(1,2))); %complejas Wr=zeros(N,1); %reales j=1; for i=1:length(W) if real(W(i))>0 Wr(j)=real(W(i)); j=j+1; end end Wr=sort(Wr); %frecuencias disp(Wr) %amplitudes q=zeros(N,1); ventana=1; Vs=subs(Ts,k,cte); for s=[1,2,19,20] % modos seleccionados w1=Wr(s); %frecuencia del primer modo de vibración Vp=subs(Tp,{m,w},{masa,w1}); suma=0; for j=1:N q(j)=[1,0]*(Vp*Vs)^j*[0;1]; suma=suma+masa*q(j)^2; end for j=1:N q(j)=q(j)/sqrt(suma); end subplot(2,2,ventana) stem(q); xlim([0,N+1]) xlabel('j') ylabel('q_j') title(num2str(w1)) ventana=ventana+1; end
Frecuencias de los N=20 modos normales de vibración ordenadas de menor a mayor
0.0747 0.1490 0.2225 0.2948 0.3653 0.4339 0.5000 0.5633 0.6235 0.6802 0.7331 0.7818 0.8262 0.8660 0.9010 0.9309 0.9556 0.9749 0.9888 0.9972