Atenuación de la presión dinámica de las olas en función de la profundidad

Cuando medimos las olas con un sensor de presión ubicado a una profundidad específica, sabemos que la presión dinámica de las olas en movimiento se atenua con la profundidad. Por este motivo la serie de tiempo que medimos debe ser corregida para tener en cuenta las frecuencias que son atenuadas por la profundidad en el espectro. Según la teoría lineal de las olas, la variación vertical de la presión está dada por: $$p(k,z)= \dfrac{\cosh{k(h+z)}}{\cosh{kh}}\eta$$ donde $h$ es la profundidad de la columna de agua y $z$ es el punto donde se está midiendo la presión ($z=0$ en superficie y $z=-h$ en el fondo).


In [20]:
# importar librerias
from pylab import *
rcParams["font.size"] = 14

# definicion de variables
fig = figure(figsize=(7,5))
ax = fig.add_subplot(111)
for T in [2, 5, 8, 12]:
    f = 1./T
    w = 2.*pi*f
    h = 30
    z = linspace(0,-h,100)
    eta = 1
    
    # numero de onda
    g = 9.8
    k0 = (w**2)/g
    for cnt in xrange(100):
        k = (w**2)/(g*tanh(k0*h))
        k0 = k
    
    # funcion de transferencia
    p = cosh(k*(h+z))/cosh(k*h)*eta
    lab = "T =%.1f s; f = %.2f Hz; L = %.1f m" % (T, f, 1./k)
    ax.plot(p, z, lw=2, label=lab)
    ax.set_xlabel(u"Presión [m]")
    ax.set_ylabel("Profundidad [m]")
    ax.legend(loc=0)


Vemos que las frecuencias más altas (i.e. períodos más cortos) se atenuan más rápidamente que las frecuencias más bajas. Por ejemplo, para una profundidad de 30 m, no se pueden registrar olas de menos de 5 segundos con un sensor de presión.

Si queremos pasar de presión a superficie libre ($\eta$) usamos la funcion de transferencia definida como: $$K_p= \dfrac{\cosh{kh}}{\cosh{k(h+z)}}$$ Si el sensor se encuentra a una distancia $z_p$ del fondo, entonces $z=z_p-h$, así la función de transferencia queda definida como: $$K_p= \dfrac{\cosh{kh}}{\cosh{kz_p}}$$


In [21]:
fig = figure(figsize=(7,5))
for h in [3, 10, 30]:
    f = linspace(0.03, 0.5, 100)
    w = 2.*pi*f
    z = 0.5
    
    # Numero de onda
    g = 9.8
    k0 = (w**2)/g
    for cnt in xrange(100):
        k = (w**2)/(g*tanh(k0*h))
        k0 = k
    
    # Funcion de transferencia
    Kp = cosh(k*h)/cosh(k*z)
    Kp[Kp > 10] = 10
    ax = fig.add_subplot(111)
    ax.plot(f, Kp, lw=2, label="h = %.1f m; z = %.2f m " % (h, z))
    ax.set_xlabel("Frecuencia [Hz]"); ax.set_ylabel("Funcion de transferencia Kp [adim]")
    ax.legend(loc=0)


La corrección de la presión por profundidad se hace sobre el espectro de frecuencias, por lo tanto el espectro de elevación de la superficie libre, en función del espectro de presión está dado por: $$S_\eta(f) = K_p^2S_p(f)$$

La siguiente celda carga el archivo de estilo notebook.css

In [27]:
from IPython.core.display import HTML
HTML(open("../../assets/css/notebook.css", "r").read())


Out[27]: