Modos de vibración de una membrana rectangular

Vamos a estudiar las oscilaciones transversales de una membrana rectangular de lados a y b.

La ecuación diferencial del movimiento ondulatorio es

2 Ψ t 2 = c 2 ( 2 Ψ x 2 + 2 Ψ y 2 )

Condiciones iniciales y de contorno

Con las siguientes condiciones iniciales:

t=0{ Ψ(x,y,0)= Ψ 0 (x,y) Ψ(x,y,t) t | t=0 = Ψ ˙ 0 (x,y)

y de contorno:

La deformación Ψ(x,y,t) de la membrana en su contorno es nula para cualquier instante t

Modos de vibración

Supondremos que la solución de la ecuación diferencial del movimiento ondulatorio se puede expresar como producto

Ψ(x,y,t)=Φ(x,y)·T(t)

Introducciendo Ψ(x,y,t) en la ecuación diferencial del movimiento ondulatorio

Φ(x,y)· d 2 T d t 2 = c 2 ( T(t) 2 Φ x 2 +T(t) 2 Φ y 2 ) 1 T(t) d 2 T d t 2 = c 2 Φ(x,y) ( 2 Φ(x,y) x 2 + 2 Φ(x,y) y 2 )= ω 2

Como el miembro izquierdo depende solamente de t y el derecho solamente de x e y, entonces, igualamos ambos a una constante que denominaremos -ω2.

d 2 T d t 2 + ω 2 ·T=0 2 Φ x 2 + 2 Φ y 2 + ω 2 c 2 Φ=0

Aplicamos el método de separación de variables a la segunda ecuación diferencial

Φ(x,y)=H(x)·W(y) W d 2 H d x 2 +H d 2 W d y 2 + ω 2 c 2 H·W=0

Dividimos entre el producto H·W.

1 H d 2 H d x 2 = 1 W ( d 2 W d y 2 + ω 2 c 2 W )= q 2

Como el miembro izquierdo depende solamente de x y el derecho solamente de y, entonces, igualamos ambos a una constante que denominaremos -q2.

d 2 H d x 2 + q 2 H=0 d 2 W d y 2 +( ω 2 c 2 q 2 )W=0 d 2 W d y 2 + r 2 W=0

Las dos ecuaciones diferenciales tienen soluciones conocidas

H(x)= C x cos( qx )+ D x sin( qx ) W(y)= C y cos( ry )+ D y sin( ry )

Las condiciones de contorno imponen que los cuatro lados de la membrana estén fijos en todo momento:

H(0)=0 H(a)=0 } C x =0sin(qa)=0q= mπ a W(0)=0 W(b)=0 } C y =0sin(rb)=0r= nπ a Φ mn (x,y)= H m (x)· W n (y)=sin( mπ a x )·sin( nπ b y )m,n=1,2,3...

Para cada par de valores m y n tenemos la frecuencia del modo de vibración ωm,n

ω 2 c 2 = q 2 + r 2 ω mn 2 = c 2 ( m 2 π 2 a 2 + n 2 π 2 b 2 )

Los primeros modos de vibración de una membrana rectangular. Las líneas en color rojo señalan los nodos, los puntos de la membrana que no vibran para un modo particular. Más abajo, veremos la representación en 3D de los distintos modos (m,n) de vibración

m=2; %modo de vibración m,n
n=1;

%Dimensiones de la placa rectangular a=1, b=1
[x,y] = meshgrid(0:0.01:1);
z = sin(m*pi*x).*sin(n*pi*y);
surf(x,y,z)
xlabel('x')
ylabel('y')
zlabel('z')
title('Modos de vibración de una membrana rectangular')

La solución de la ecuación diferencial dependiente del tiempo es tambien conocida

T mn (t)= A mn cos( ω mn t)+ B mn sin( ω mn t)

La solución de la ecuación diferencial correspondiente al modo m, n de vibración de la membrana es

Ψ mn (x,y,t)= Φ mn (x,y) T mn (t)= sin( mπ a x )·sin( nπ b y )( A mn cos( ω mn t)+ B mn sin( ω mn t) )

En este script cremos una animación. Cada imagen generada (frame) se guarda en el vector F.

m=2; %modo de vibración m,n
n=1;
[x,y] = meshgrid(0:0.01:1);
j=0;
P=2/sqrt(m^2+n^2); %periodo de las oscilaciones
for t=0:P/20:P
    z = sin(m*pi*x).*sin(n*pi*y)*sin(2*pi*t/P);
    surf(x,y,z)
    xlabel('x')
    ylabel('y')
    zlabel('z')
    axis([0 1 0 1 -1 1]);
    j=j+1;
    F(j) = getframe;
end

Mediante el comando movie reproducimos la animación cuatro veces.

>> movie(F,4)

Alternativamente, podemos crear un fichero de imágenes GIF que muestran una animación

m=2; %modo de vibración m,n
n=1;
[x,y] = meshgrid(0:0.01:1);

P=2/sqrt(m^2+n^2); %periodo de las oscilaciones
fichero = 'placa_r.gif';
for t=0:P/20:P
    z = sin(m*pi*x).*sin(n*pi*y)*sin(2*pi*t/P);
    surf(x,y,z)
    xlabel('x')
    ylabel('y')
    zlabel('z')
    axis([0 1 0 1 -1 1]);
    
   frame=getframe;
    im = frame2im(frame);
    [imind,cm] = rgb2ind(im,256);
    if t==0
        imwrite(imind,cm,fichero,'gif','DelayTime',0,'loopcount',inf);
    else
        imwrite(imind,cm,fichero,'gif','DelayTime',0,'writemode',
'append');
    end
end

Solución completa

La solución general que satisface las condiciones de contorno es la superposición

Ψ(x,y,t)= m=1 n=1 Ψ mn (x,y,t) = m=1 n=1 sin( mπ a x )·sin( nπ b y )( A mn cos( ω mn t)+ B mn sin( ω mn t) )

Esta ecuación describe todos los posibles modos de vibración de la membrana. La vibración particular que experimenta la membrana está únicamente determinada por las condiciones iniciales, que a su vez determinan los valores de las constantes Amn y Bmn.

Ψ(x,y,0)= Ψ 0 (x,y) Ψ(x,y,0)= m=1 n=1 sin( mπ a x )·sin( nπ b y ) A mn A mn = 4 ab 0 a 0 b Ψ 0 (x,y)sin( mπ a x )·sin( nπ b y )dx·dy Ψ(x,y,t) t | t=0 = Ψ ˙ 0 (x,y) Ψ ˙ 0 (x,y)= m=1 n=1 sin( mπ a x )·sin( nπ b y ) ω mn B mn B mn = 4 ab ω mn 0 a 0 b Ψ ˙ 0 (x,y)sin( mπ a x )·sin( nπ b y )dx·dy

Consideremos una membrana cuadrada de lado a, que en el instante inicial t=0, tiene la forma

ψ 0 (x,y)=Axy(ax)(ay)

Representamos la función z=xy(a-x)(a-y)

a=1; %lado del cuadrado
x=0:0.02:a;
y=0:0.02:a;
[X,Y]=meshgrid(x,y);
Z=(X.*Y).*((a-X).*(a-Y));
mesh(X,Y,Z);
xlabel('X')
ylabel('Y')
zlabel('Z')
view(60,64)

Como la membrana está en reposo en el instante t=0, los coeficientes Bmn=0. Calculamos los coeficientes Amn

A mn = 4 a 2 0 a 0 a Axy(ax)(ay)sin( mπ a x ) sin( nπ a y )dx·dy= 4A a 2 ( 0 a x(ax)sin( mπ a x )dx )( 0 a y(ay)sin( nπ a y )dy )

Integramos por partes

x(ax)sin( mπ a x )dx = a mπ x(ax)cos( mπ a x )+ a mπ (a2x)cos( mπ a x )dx = a mπ x(ax)cos( mπ a x )+ a mπ { a 2 mπ sin( mπ a x )2( x a mπ sin( mπ a x )+ a 2 m 2 π 2 cos( mπ a x ) ) }= a mπ x(ax)cos( mπ a x )+ a 3 m 2 π 2 sin( mπ a x )2 a 2 m 2 π 2 xsin( mπ a x )2 a 3 m 3 π 3 cos( mπ a x )

Evaluamos la integral entre los límites, superior a e inferior 0

0 a x(ax)sin( mπ a x )dx =2 a 3 m 3 π 3 cos( mπ )+2 a 3 m 3 π 3 cos( 0 )={ 0,m=par 4 a 3 m 3 π 3 ,m=impar

Los coeficientes Amn valen

A mn = 4A a 2 ( 0 a x(ax)sin( mπ a x )dx )( 0 a y(ay)sin( nπ a y )dy )= 4A a 2 { 0,m,n=par ( 4 a 3 m 3 π 3 )( 4 a 3 n 3 π 3 ),m,n=impar

La solución de la ecuación diferencial del movimiento ondulatorio con las condiciones de contorno especificadas (bordes fijos) y la froma inicial de la membrana en reposo es

Ψ(x,y,t)= 64A a 4 π 6 n=0 m=0 sin( (2m+1)π a x )sin( (2n+1)π a y ) ( 2m+1 ) 3 · ( 2n+1 ) 3 cos( cπ a t ( 2m+1 ) 2 + ( 2n+1 ) 2 )

Comprobamos que la forma inicial de la membrana se obtiene para t=0. Tomaremos n, m=10 términos del desarrollo en serie

function membrana_1
    a=1; %membrana cuadrada
    c=1; %velocidad ondas
    t=0; %forma inicial de la membrana
    
    x=0:0.02:a;
    y=0:0.02:a;
    [X,Y]=meshgrid(x,y);
    Z=onda(X,Y);
    mesh(X,Y,Z);
    xlabel('X')
    ylabel('Y')
    zlabel('Z')
    view(60,64)

    function z=onda(x,y)
        z=0;   
        for n=0:10
            for m=0:10
            z=z+sin((2*m+1)*x*pi/a).*sin((2*n+1)*y*pi/a)*
cos(c*pi*t*sqrt((2*m+1)^2+(2*n+1)^2)/a)/((2*m+1)^3*(2*n+1)^3);
            end
        end
        z=z*64*a^4/pi^6;
    end
end

La frecuencia angular mínima ω 00 = cπ a 2 , para n, m=0, el periodo máximo es 2π/ω00. Creamos un fichero GIF para producir una animación de la vibración de la membrana durante este tiempo

function membrana_2
    a=1; %membrana cuadrada
    c=1; %velocidad ondas
    tFin=sqrt(2); %tiempo final
    
    x=0:0.02:a;
    y=0:0.02:a;
    [X,Y]=meshgrid(x,y);
    fichero = 'placa_t.gif';
    for t=0:0.1:tFin
        z=onda(X,Y, t);
        surf(x,y,z)
        xlabel('x')
        ylabel('y')
        zlabel('z')
        axis([0 1 0 1 -0.065 0.065]);
        frame=getframe;
        im = frame2im(frame);
        [imind,cm] = rgb2ind(im,256);
        if t==0
            imwrite(imind,cm,fichero,'gif','DelayTime',0,'loopcount',tFin);
        else
            imwrite(imind,cm,fichero,'gif','DelayTime',0,'writemode','append');
        end
    end

    function z=onda(x,y, t)
        z=0;   
        for n=0:10
            for m=0:10
            z=z+sin((2*m+1)*x*pi/a).*sin((2*n+1)*y*pi/a)*
cos(c*pi*t*sqrt((2*m+1)^2+(2*n+1)^2)/a)/((2*m+1)^3*(2*n+1)^3);
            end
        end
        z=z*64*a^4/pi^6;
    end
end

Referencias

M. M. Smirnov. problemas de ecuaciones de la física matemática. Editorial Mir Moscú. 1976. Problema 122, enunciado, pág. 41, solución, pág. 111