Вы находитесь на странице: 1из 28

MODELOS MATEMÁTICOS I

PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN


UN PERFIL TRANSVERSAL DE PLAYA

PRÁCTICA DE PROPAGACIÓN
DE OLEAJE EN UN PERFIL
TRANSVERSAL DE PLAYA
Índice general
Práctica de propagación de oleaje en un perfil transversal de playa ........................................... 1
Conocimientos previos .............................................................................................................. 3
Propagación de oleaje ............................................................................................................... 3
Longitud de onda ...................................................................................................................... 4
El método de Newton-Raphson para hallar raíces de una ecuación f(x)=0 .......................... 4
Interpretación geométrica ................................................................................................ 4
Formulación del método ................................................................................................... 5
Algoritmo........................................................................................................................... 5
Aplicación al caso de la longitud de onda ......................................................................... 6
Código Matlab ................................................................................................................... 6
EJERCICIO 1........................................................................................................................ 7
Modelización de la propagación de oleaje en diferencias finitas ............................................. 8
Diferencias finitas .................................................................................................................. 9
Introducción ...................................................................................................................... 9
Discretización del dominio ................................................................................................ 9
Aproximación por diferencias finitas .............................................................................. 11
Aplicación al perfil transversal de una playa ................................................................... 12
Código.............................................................................................................................. 13
Resultados ....................................................................................................................... 16
Preguntas ........................................................................................................................ 18
Pérdidas de energía..................................................................................................................... 19
Rotura del oleaje ..................................................................................................................... 19
Modelización numérica ....................................................................................................... 20

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 1 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

Código MATLAB ............................................................................................................... 20


Introducción de datos reales....................................................................................................... 21
Otras optimizaciones................................................................................................................... 28

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 2 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

Conocimientos previos
Se deben repasar los conceptos de derivada y serie de Taylor. También los referentes a rectas
tangentes en geometría analítica. También deben conocerse los rudimentos de Matlab®.

Propagación de oleaje
Prescindiendo de pérdidas de energía debidas a rotura del oleaje, fricción con el fondo, etc., la
ecuación que gobierna la propagación de una ola hacia la costa, en teoría lineal, indica que el
flujo de energía es constante, es decir:

�����������⃗
𝐸𝐸 · 𝐶𝐶𝑔𝑔 = ������⃗
𝑐𝑐𝑐𝑐𝑐𝑐

Por tanto, su gradiente es nulo:

�����������⃗
∇�𝐸𝐸 · 𝐶𝐶𝑔𝑔 � = 0

Derivando en las dos direcciones:

𝜕𝜕�𝐸𝐸 · 𝐶𝐶𝑔𝑔 � 𝜕𝜕�𝐸𝐸 · 𝐶𝐶𝑔𝑔 �


+ =0
𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕
Si se supone que la playa es cilíndrica, no hay variación longitudinal, por lo que la derivada
respecto de y se anula, y se puede escribir:

𝜕𝜕�𝐸𝐸 · 𝐶𝐶𝑔𝑔 �
=0
𝜕𝜕𝜕𝜕
Por otra parte, la energía por unidad de superficie de ola es:
1
𝐸𝐸 = 𝜌𝜌𝜌𝜌𝜌𝜌²
8
Y la celeridad de grupo:
C 2 · 𝑘𝑘 · 𝑑𝑑
𝐶𝐶𝑔𝑔 = 𝑛𝑛 · 𝐶𝐶 = �1 + �
2 𝑠𝑠𝑠𝑠𝑠𝑠ℎ(2 · 𝑘𝑘 · 𝑑𝑑)
Siendo k el número de onda:
2𝜋𝜋
𝑘𝑘 =
𝐿𝐿
Y d, la profundidad.

La longitud de onda, L, se puede aproximar mediante la ecuación de dispersión en teoría lineal:

𝑔𝑔𝑔𝑔²
𝐿𝐿 = 𝑡𝑡𝑡𝑡𝑡𝑡ℎ(𝑘𝑘𝑘𝑘)
2𝜋𝜋
Imagínese una costa cuyo fondo presenta una pendiente m = 0.025. ¿Cómo se puede resolver
la propagación del oleaje en dicha costa?

La profundidad se puede calcular como:

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 3 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

𝑑𝑑 = 𝑥𝑥 · 𝑚𝑚
Por tanto, el perfil de la costa será el mostrado en la figura siguiente:

25

20

15
Profundidad [m]

10

0
0 100 200 300 400 500 600 700 800 900 1000

Distancia horizontal [m]

Longitud de onda
La ecuación de dispersión se ha de evaluar en cada punto, dado que depende de la profundidad.
Por otro lado, su resolución no puede ser directa, debiendo emplearse un método de
aproximaciones sucesivas. Se aprovechará este hecho para introducir el método de Newton-
Raphson.

El método de Newton-Raphson para hallar raíces de una ecuación f(x)=0


Interpretación geométrica
La ecuación de la recta tangente que pasa por el punto �𝑝𝑝𝑛𝑛 , 𝑓𝑓(𝑝𝑝𝑛𝑛 )�, según se muestra en la
figura siguiente, es:

𝑦𝑦 − 𝑓𝑓(𝑝𝑝𝑛𝑛 ) = 𝑓𝑓′(𝑝𝑝𝑛𝑛 )(𝑥𝑥 − 𝑝𝑝𝑛𝑛 )

Haciendo y = 0, x = pn+1, se obtiene la expresión que se demostrará en el apartado siguiente:


𝑓𝑓(𝑝𝑝𝑛𝑛−1 )
𝑝𝑝𝑛𝑛 = 𝑝𝑝𝑛𝑛−1 −
𝑓𝑓′(𝑝𝑝𝑛𝑛−1 )

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 4 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

Formulación del método


El método de Newton para hallar las raíces de la ecuación f(x) = 0, es el más conocido, y a
menudo, el más efectivo.

Sea f(x) una función continuamente diferenciable dos veces en el intervalo [a, b], lo cual se
expresa: 𝑓𝑓 ∈ 𝐶𝐶 2 [𝑎𝑎, 𝑏𝑏].

Sea 𝑥𝑥̅ ∈ [𝑎𝑎, 𝑏𝑏] una aproximación a la raíz p tal que:

𝑓𝑓′(𝑥𝑥) ≠ 0

|𝑥𝑥̅ − 𝑝𝑝| → 0

Expresamos el desarrollo de Taylor de primer grado para f(x) en torno a 𝑥𝑥̅ :

(𝑥𝑥 − 𝑥𝑥̅ )2
𝑓𝑓(𝑥𝑥) = 𝑓𝑓(𝑥𝑥̅ ) + (𝑥𝑥 − 𝑥𝑥̅ )𝑓𝑓 ′ (𝑥𝑥̅ ) + 𝑓𝑓′′(𝑥𝑥̅ )
2
Aquí sustituimos x = p, y, considerando:
𝑓𝑓(𝑝𝑝) = 0

(𝑝𝑝 − 𝑥𝑥̅ )² ≈ 0
0 ≈ 𝑓𝑓(𝑥𝑥̅ ) + (𝑝𝑝 − 𝑥𝑥̅ )𝑓𝑓 ′ (𝑥𝑥̅ )
Y despejando p, tenemos:
𝑓𝑓(𝑥𝑥̅ )
𝑝𝑝 ≈ 𝑥𝑥̅ −
𝑓𝑓′(𝑥𝑥̅ )
El método de Newton consiste en tomar una aproximación inicial, 𝑥𝑥̅ , y a continuación obtener
una aproximación más refinada mediante la formulación anterior. Es decir, se trata de
acercarnos a la raíz p por medio de la fórmula recursiva:
𝑓𝑓(𝑝𝑝𝑛𝑛−1 )
𝑝𝑝𝑛𝑛 = 𝑝𝑝𝑛𝑛−1 −
𝑓𝑓′(𝑝𝑝𝑛𝑛−1 )
Debe tomarse siempre un valor inicial tal que tanto el valor de la función como el de su derivada
segunda, particularizados para dicho valor, tengan el mismo signo, es decir:

𝑓𝑓(𝑝𝑝0 ) · 𝑓𝑓′′(𝑝𝑝0 ) > 0


El método de Newton converge siempre que tomemos un valor inicial p0 lo bastante cercano al
valor p de la raíz.

Algoritmo
Para hallar una solución aproximada de f(x) = 0, dada una aproximación inicial p0.

Entrada: aproximación inicial p0; tolerancia EPS; cantidad máxima de iteraciones N;

Salida: solución aproximada p ó mensaje de fracaso.

1. Contador i = 1

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 5 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

2. Repetir el bucle 3-6 hasta que i = N


𝑓𝑓(𝑝𝑝 )
3. 𝑝𝑝𝑖𝑖 = 𝑝𝑝𝑖𝑖−1 − 𝑓𝑓′(𝑝𝑝𝑖𝑖−1 )
𝑖𝑖−1
4. Si |𝑝𝑝𝑖𝑖 − 𝑝𝑝𝑖𝑖−1 | < 𝐸𝐸𝐸𝐸𝐸𝐸, finalizar el bucle, y el resultado es p = pi
5. Si |𝑝𝑝𝑖𝑖 − 𝑝𝑝𝑖𝑖−1 | > 𝐸𝐸𝐸𝐸𝐸𝐸, aumentar el contador i = i+1 y continuar el bucle
6. Redefinir pi = pi-1
7. Final: si no se ha logrado la convergencia, lanzar un mensaje de error

Aplicación al caso de la longitud de onda


La ecuación de dispersión en teoría lineal se puede escribir como:

𝑔𝑔𝑇𝑇 2 2𝜋𝜋𝜋𝜋
𝐿𝐿 − 𝑡𝑡𝑡𝑡𝑡𝑡ℎ � �=0
2𝜋𝜋 𝐿𝐿
La incógnita a resolver es L. Todos los demás valores son constantes. Es decir:

𝑔𝑔𝑇𝑇 2 2𝜋𝜋𝜋𝜋
𝑓𝑓(𝑥𝑥) = 𝑥𝑥 − 𝑡𝑡𝑡𝑡𝑡𝑡ℎ � �
2𝜋𝜋 𝑥𝑥
Es posible calcular la derivada con la ayuda de Matlab, si no se recuerda la derivada de tanh(x):

>> syms x d g T
>> f = x-(g*T^2/(2*pi))*tanh(2*pi*d/x) ;
>> g = diff(f,x)
g=
1 - (T^2*d*g*(tanh((2*pi*d)/x)^2 - 1))/x^2
>> pretty(g)
2 / / 2 pi d \2 \
T d g | tanh| ------ | - 1 |
\ \ x / /
1 - ------------------------------
2
x
>>
Es decir:
2𝜋𝜋𝜋𝜋
𝑇𝑇 2 · 𝑑𝑑 · 𝑔𝑔 �𝑡𝑡𝑡𝑡𝑡𝑡ℎ² � 𝑥𝑥 � − 1�
′ (𝑥𝑥)
𝑓𝑓 =1−
𝑥𝑥²
Código Matlab
El código Matlab® que se ha escrito para resolver el problema es el siguiente:

function L = londa(d, T, eps, p, N)


%% Función LONDA
% Cálculo de la longitud de onda por el método de Newton-Raphson
%
% Variables
%
% d : Profundidad

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 6 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

% g : Aceleración de la gravedad (= 9.8182 m/s²)


% T : Periodo del oleaje
% p : Valor inicial de la longitud de onda
% eps : Error máximo admitido
% N : Número máximo de iteraciones
% p_i : Iteración de L
% p_im1 : Iteración anterior de L

%% INICIALIZAR
g = 9.8182;
p_im1 = p;

%% ITERACIONES
for i=1:N
f = p_im1 - (g*T^2/2/pi)*tanh(2*pi*d/p_im1);
fp = 1-(T^2*d*g*((tanh(2*pi*d/p_im1))^2-1))/p_im1^2;
p_i = p_im1-f/fp;
if abs(p_i - p_im1) < eps
L = p_i;
i = N;
else
p_im1 = p_i;
end
end

Imagínese que se desea calcular la longitud de onda en profundidades indefinidas de una ola de
periodo T = 10 s, con un error de 0.001 m y un máximo de 50 iteraciones. Después, se calculará
también en d = 3.0 m. Se comienza a calcular con p0 = 156 m.

>> londa(5000,10,0.001,156,10)
ans =
156.2615
>> londa(3,10,0.001,156,10)
ans =
53.1790
>>
Para calcular L0 se ha dado una profundidad muy grande, con objeto de estar seguros de que se
trata de profundidades indefinidas.
EJERCICIO 1
Utilizando la función “londa”, escribir un código que proporcione, para una ola de T = 15.20 s,
los valores de la longitud de onda entre d0 y d = 3.0 m. Graficar la solución.

El gráfico a obtener se muestra en la figura siguiente.

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 7 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

LONGITUD DE ONDA EN TEORÍA LINEAL PARA T = 15.20 s


400

350

300

Longitud de onda [m]


250

200

150

100

50
0 50 100 150 200 250

Profundidad [m]

Modelización de la propagación de oleaje en diferencias finitas


Se ha dicho que la ecuación (simplificada) que gobierna la propagación del oleaje es:

𝜕𝜕�𝐸𝐸 · 𝐶𝐶𝑔𝑔 �
=0 [1]
𝜕𝜕𝜕𝜕
En esta ecuación está implícita la longitud de onda y el periodo del oleaje, a través del cálculo
de la celeridad de grupo, Cg, como se ha visto anteriormente.

Si desarrollamos completamente la ecuación anterior, se obtiene:

4𝜋𝜋
1 1 · 𝑑𝑑 𝑔𝑔𝑔𝑔 2𝜋𝜋𝜋𝜋
𝜕𝜕 �8 ρgH² · 2 �1 + 𝐿𝐿 � 2𝜋𝜋 𝑡𝑡𝑡𝑡𝑡𝑡ℎ � 𝐿𝐿 ��
4𝜋𝜋
𝑠𝑠𝑠𝑠𝑠𝑠ℎ � 𝐿𝐿 · 𝑑𝑑�
=0
𝜕𝜕𝜕𝜕
Esta es la ecuación más sencilla que podemos emplear para analizar la propagación del oleaje
en un perfil transversal a la costa. Se observa que la única variable desconocida es H (la altura
de ola), dado que el resto de las variables son conocidas en cada punto (ya sea por ser dato,
como d, o por poderse calcular, como L). En otras palabras, podría escribirse la ecuación anterior
como:

𝜕𝜕(𝐻𝐻² · K)
=0 [2]
𝜕𝜕𝜕𝜕
Siendo
4𝜋𝜋
1 1
𝐾𝐾 = ρg · �1 + 𝐿𝐿 · 𝑑𝑑 �
𝑔𝑔𝑔𝑔
𝑡𝑡𝑡𝑡𝑡𝑡ℎ �
2𝜋𝜋𝜋𝜋

8 2 4𝜋𝜋
𝑠𝑠𝑠𝑠𝑠𝑠ℎ � · 𝑑𝑑� 2𝜋𝜋 𝐿𝐿
𝐿𝐿
un valor que conocemos a lo largo del perfil, mediante los conocimientos anteriormente
desarrollados.

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 8 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

La cuestión es cómo resolver la ecuación [1] por métodos numéricos. Se verá a continuación el
método de diferencias finitas.

Diferencias finitas
Introducción
Los métodos de Diferencias Finitas nos permiten obtener soluciones numéricas aproximadas a
Problemas de Valores Iniciales y de Contorno (modelos Matemáticos avanzados en Ingeniería)
resolviendo un sistema de ecuaciones lineales que se obtiene sustituyendo las derivadas que
aparecen en las ecuaciones diferenciales de gobierno por cocientes de diferencias y obligando
a la solución discreta así obtenida a satisfacer las condiciones iniciales y de contorno.

Los métodos de Diferencias Finitas pueden resultar adecuados para resolver Problemas elípticos
(por ejemplo, problemas de equilibrio) y parabólicos (por ejemplo, de difusión) aunque con
geometrías de los dominios y condiciones de contorno sencillas.

Estos métodos nos proporcionan soluciones discretas es decir valores de la solución buscada en
un número finito de puntos del dominio del problema.

Discretización del dominio


La primera tarea que se ha de realizar es discretizar el dominio de cálculo, es decir, la zona
espacial en la que se desea resolver el problema. Por ejemplo, si se tiene en cuenta la batimetría
de la Figura 1, que se supone continua en todo el dominio, la sustituiremos por una malla, cuyos
nodos tendrán la propiedad de sus coordenadas (x,y,z) en los puntos mostrados en la Figura 2
(donde se cortan las líneas azules, verticales y horizontales). Se muestra un detalle en la Figura
3.

Existen diferentes aplicaciones en el mercado para obtener esta digitalización. Normalmente, el


software comercial de modelos matemáticos suele traer su propio mallador, ya sea para
elementos finitos o para diferencias finitas.

Tabla 1 Batimetría real

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 9 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

Figura 1 Batimetría digitalizada

Figura 2 Detalle de la malla digitalizada

Dependiendo de la complejidad del modelo, las mallas pueden ser cuadradas si sus celdas lo son
(∆x = ∆y) o rectangulares (∆x ≠ ∆y). También las celdas pueden ser exactamente iguales (malla
estructurada), o variar a lo largo del dominio (en cuyo caso se tendrá una malla no estructurada);
en modelos más avanzados, esto suele utilizarse para refinar la malla donde se prevé la
existencia de mayores gradientes en la variable que deseamos resolver. De momento, se
emplearán únicamente mallas estructuradas cuadradas.

En general, se designan las filas con el subíndice “j” y las columnas, con el “i” (Figura 4). Es decir,
el índice “i” crece a lo largo de las filas y el índica “j” lo hace a lo largo de las columnas.

Así, en dicha malla, tomando como base el punto 2, de coordenadas de malla (i,j), aumentando
una fila se tendrá el punto 5, de coordenadas de malla (i, j+1). Las coordenadas métricas serán
función de las coordenadas de malla. Así, para el ejemplo de la Figura 4, admitiendo que x1 = 0
e y1 = 0, se tendrán los valores que muestra la Tabla 1. Es decir, cada punto tiene sus
coordenadas (i,j) que lo sitúan en la malla y sus coordenadas (x,y,z), que lo sitúan en el mundo.
Los valores zi,j de cada punto serán, en este caso, las profundidades de la batimetría discretizada.

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 10 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

Figura 3 Esquema de una malla cuadrada estructurada

PUNTO COORDENADAS X Y
DE MALLA
0 0,0 0 0
1 i-1, j (i-1)·∆x j·∆y
2 i, j i·∆x j·∆y
3 i+1, j (i+1)·∆x j·∆y
4 i, j-1 i·∆x (j-1)·∆y
5 i, j+1 i·∆x (j+1)·∆y
Tabla 1 Coordenadas de los puntos de la malla

Así, parece obvio que:

𝑥𝑥𝑖𝑖 = 𝑥𝑥𝑖𝑖−1 + ∆𝑥𝑥


𝑦𝑦𝑗𝑗 = 𝑦𝑦𝑗𝑗−1 + ∆𝑦𝑦

Aproximación por diferencias finitas


Supóngase una función u, dependiente de x e y, que se representará como u(x,y). Esta función
es continua y derivable en un dominio D (por ejemplo, en la zona definida por la malla
discretizada que se ha empleado en el ejemplo anterior). Se empleará la notación

𝑢𝑢𝑖𝑖,𝑗𝑗 = 𝑢𝑢�𝑥𝑥𝑖𝑖 , 𝑦𝑦𝑗𝑗 � [3]


Si la función u(x,y) es analítica en el dominio, se podrá desarrollar en serie de Taylor:

𝜕𝜕𝜕𝜕(𝑥𝑥, 𝑦𝑦) 2
𝜕𝜕 2 𝑢𝑢(𝑥𝑥, 𝑦𝑦)
𝑢𝑢(𝑥𝑥𝑖𝑖 + ∆𝑥𝑥, 𝑦𝑦) = 𝑢𝑢(𝑥𝑥𝑖𝑖 , 𝑦𝑦) + ∆𝑥𝑥 � � + (∆𝑥𝑥) � � +⋯
𝜕𝜕𝜕𝜕 𝑥𝑥=𝑥𝑥𝑖𝑖 𝜕𝜕𝑥𝑥 2 𝑥𝑥=𝑥𝑥𝑖𝑖
𝑛𝑛
𝜕𝜕 𝑛𝑛 𝑢𝑢(𝑥𝑥, 𝑦𝑦)
+ (∆𝑥𝑥) � �
𝜕𝜕𝑥𝑥 𝑛𝑛 𝑥𝑥=𝑥𝑥𝑖𝑖

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 11 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

En el desarrollo en serie de Taylor, pueden despreciarse los términos de índice n > 1, sin más
que hacer ∆x lo suficientemente pequeño, con lo cual:
𝜕𝜕𝜕𝜕(𝑥𝑥, 𝑦𝑦)
𝑢𝑢(𝑥𝑥𝑖𝑖 + ∆𝑥𝑥, 𝑦𝑦) ≈ 𝑢𝑢(𝑥𝑥𝑖𝑖 , 𝑦𝑦) + ∆𝑥𝑥 � �
𝜕𝜕𝜕𝜕 𝑥𝑥=𝑥𝑥𝑖𝑖
1
Así, en el punto �𝑖𝑖 + , 𝑗𝑗� puede aproximarse la derivada como:
2

𝜕𝜕𝜕𝜕(𝑥𝑥, 𝑦𝑦) 𝑢𝑢𝑖𝑖+1,𝑗𝑗 − 𝑢𝑢𝑖𝑖,𝑗𝑗


� � 1 ≈ [4]
𝜕𝜕𝜕𝜕 𝑖𝑖+ ,𝑗𝑗 ∆𝑥𝑥
2
Y la denominamos centrada en el punto xi+1/2,j, yj.

De forma similar es posible centrar la aproximación en otros lugares, siempre en el entorno de


∆x.

Y la derivada parcial respecto de y se aproxima de manera análoga:


𝜕𝜕𝜕𝜕(𝑥𝑥, 𝑦𝑦) 𝑢𝑢𝑖𝑖,𝑗𝑗+1 − 𝑢𝑢𝑖𝑖,𝑗𝑗
� � ≈
𝜕𝜕𝜕𝜕 𝑖𝑖,𝑗𝑗+
1 ∆𝑦𝑦
2
Las derivadas segundas se pueden aproximar de la misma forma, simplemente teniendo en
cuenta que:

𝜕𝜕²𝑢𝑢(𝑥𝑥, 𝑦𝑦) 𝜕𝜕 𝜕𝜕𝜕𝜕(𝑥𝑥, 𝑦𝑦)


= � �
𝜕𝜕𝜕𝜕² 𝜕𝜕𝜕𝜕 𝜕𝜕𝜕𝜕
Así, se obtendrá:

𝜕𝜕²𝑢𝑢(𝑥𝑥, 𝑦𝑦) 𝑢𝑢𝑖𝑖+1,𝑗𝑗 − 2𝑢𝑢𝑖𝑖,𝑗𝑗 + 𝑢𝑢𝑖𝑖−1,𝑗𝑗


� � ≈
𝜕𝜕𝜕𝜕² 𝑖𝑖,𝑗𝑗
(∆𝑥𝑥)2
Y análogamente:

𝜕𝜕²𝑢𝑢(𝑥𝑥, 𝑦𝑦) 𝑢𝑢𝑖𝑖,𝑗𝑗+1 − 2𝑢𝑢𝑖𝑖,𝑗𝑗 + 𝑢𝑢𝑖𝑖,𝑗𝑗−1


� � ≈
𝜕𝜕𝜕𝜕² 𝑖𝑖,𝑗𝑗
(∆𝑦𝑦)2
Es decir:

El Método de Diferencias finitas convierte el problema de resolver una ecuación diferencial en


resolver un sistema de ecuaciones lineales.

Aplicación al perfil transversal de una playa


La ecuación [1] gobierna el problema de forma simple. Se puede escribir como sigue:

𝜌𝜌𝜌𝜌 𝜕𝜕�𝐻𝐻² · C𝑔𝑔 �


=0
8 𝜕𝜕𝜕𝜕
Aproximándola en diferencias finitas, según la ecuación [3]:

𝜕𝜕𝜕𝜕(𝑥𝑥, 𝑦𝑦) 𝐻𝐻²𝐶𝐶𝐶𝐶𝑖𝑖+1 − 𝐻𝐻²𝐶𝐶𝐶𝐶𝑖𝑖


� � 1≈ ≈0
𝜕𝜕𝜕𝜕 𝑖𝑖+ ∆𝑥𝑥
2

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 12 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

Obsérvese que, dado que se va a trabajar en un perfil transversal de playa, no existe más que
una coordenada; Por ello desaparece “j”.

Finalmente:

𝐻𝐻²𝑖𝑖 𝐶𝐶𝐶𝐶𝑖𝑖
𝐻𝐻𝑖𝑖+1 = �
𝐶𝐶𝐶𝐶𝑖𝑖+1
Con esta primera aproximación, no se disipa ninguna energía, por lo que la ola no rompe. En un
ejercicio posterior se añadirá la disipación de energía.

Código MATLAB
%% EJERCICIO 1

%% INICIALIZAR
clc;
clear all;
close all;
commandwindow;

T = 15.20;
H_0 = 5.0;
m = 0.025;
Dx = 5.0;

%% PERFIL DE PLAYA

%% CÁLCULOS

i = 1;
x(1) = 0;
L_0 = 1.56*T^2;
d_1 = L_0/1.5;
L(1) = L_0;
d(1) = d_1;
[Cg(1), C(1)] = CelGrup(d_1,T,L(1));
H(1) = H_0;
dc = d_1;

while dc > 0
i = i + 1;

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 13 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

x(i) = x(i-1) + Dx;


d(i) = d_1 - m*x(i);
dc = d(i);
end
N = size(x,2);

for i = 2:N
if d(i)>0
L(i) = londa(d(i), T, 0.001, L(i-1), 10);
[Cg(i), C(i)] = CelGrup(d(i),T,L(i));
H(i) = sqrt((H(i-1))^2*Cg(i-1)/Cg(i));
else
L(i) = 0;
Cg(i) = 0;
C(i) = 0;
H(i)= 0;
end
end

%% DIBUJO

plot(x,-d)
grid on;
xlabel('Distancia [m]')
ylabel('Profundidad [m]')
titulo = sprintf('PERFIL TRANSVERSAL m = %3.3f', m);
title(titulo)

figure
[hAx,hLine1,hLine2] = plotyy(x,L,x,-d);
grid on;
xlabel('Distancia [m]')
ylabel(hAx(1),'Longitud de onda [m]')
ylabel(hAx(2),'Profundidad [m]')
titulo = sprintf('LONGITUD DE ONDA EN TEORÍA LINEAL PARA T = %3.2f s', T);
title(titulo)

figure
%[hAx,hLine1,hLine2] = plotyy([x,x],[C,Cg],x,-d);
plot(x,C,x,Cg);
grid on;
xlabel('Distancia [m]')
ylabel('Celeridad [m/s]')
%ylabel(hAx(1),'Celeridad [m/s]')
%ylabel(hAx(2),'Profundidad [m]')

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 14 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

titulo = sprintf('CELERIDAD EN TEORÍA LINEAL PARA T = %3.2f s', T);


title(titulo)
legend('C','Cg')

figure
[hAx,hLine1,hLine2] = plotyy(x,H,x,-d);
grid on;
xlabel('Distancia [m]')
ylabel(hAx(1),'H [m]')
ylabel(hAx(2),'Profundidad [m]')
titulo = sprintf('ALTURA DE OLA EN TEORÍA LINEAL PARA T = %3.2f s', T);
title(titulo)

function L = londa(d, T, eps, p, N);


%% Función LONDA
% Cálculo de la longitud de onda por el método de Newton-Raphson
%
% Variables
%
% d : Profundidad
% g : Aceleración de la gravedad (= 9.8182 m/s²)
% T : Periodo del oleaje
% p : Valor inicial de la longitud de onda
% eps : Error máximo admitido
% N : Número máximo de iteraciones
% p_i : Iteración de L
% p_im1 : Iteración anterior de L

%% INICIALIZAR
g = 9.8182;
p_im1 = p;

%% ITERACIONES
for i=1:N
f = p_im1 - (g*T^2/2/pi)*tanh(2*pi*d/p_im1);
fp = 1-(T^2*d*g*((tanh(2*pi*d/p_im1))^2-1))/p_im1^2;
p_i = p_im1-f/fp;
if abs(p_i - p_im1) < eps
L = p_i;
i = N;
else
p_im1 = p_i;
end
end

function [Cg, C] = CelGrup(d, T, L);

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 15 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

%% CELGRUP
% Cálculo de la celeridad de grupo y celeridad de fase
%
% Variables
% d : Profundidad [m]
% T : Periodo [s]
% L : Longitud de onda [m]

%% CALCULO

C = L/T;
k = 2*pi/L;
n = (1/2)*(1+2*k*d/sinh(2*k*d));
Cg = n*C;

Resultados
Se muestran a continuación los resultados obtenidos.
PERFIL TRANSVERSAL m = 0.025
50

-50
Profundidad [m]

-100

-150

-200

-250
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

Distancia [m]

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 16 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

LONGITUD DE ONDA EN TEORÍA LINEAL PARA T = 15.20 s


400 100

300 0

Longitud de onda [m]

Profundidad [m]
200 -100

100 -200

0 -300
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

Distancia [m]

CELERIDAD EN TEORÍA LINEAL PARA T = 15.20 s


25

C
Cg

20

15
Celeridad [m/s]

10

0
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

Distancia [m]

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 17 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

ALTURA DE OLA EN TEORÍA LINEAL PARA T = 15.20 s


30 200

20 0

Profundidad [m]
H [m]

10 -200

0 -400
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

Distancia [m]

Figura 4 Altura de ola significante a lo largo del perfil

Preguntas
1. Con los conocimientos de Matlab® que has adquirido, ¿qué cambios harías al código
para introducir un perfil transversal real?
2. ¿Cuál sería el paso a dar a continuación para obtener un modelo matemático más
próximo a la realidad?

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 18 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

Pérdidas de energía
Probablemente has contestado a la pregunta 2 del apartado anterior que la gráfica resultante
de altura de ola significante que muestra la Figura 4 es bastante irreal. En efecto, no se ha
considerado la pérdida de energía debido a la rotura del oleaje.

Vamos a considerar la rotura del oleaje y a introducirla en el modelo mediante una función que
vamos a denominar “breaker”.

Rotura del oleaje


Lo primero que se hará es saber si la ola está o no rota. Hemos calculado la altura de ola a lo
largo del perfil transversal de la playa, pero sin considerar pérdidas de energía. Existen múltiples
criterios de rotura del oleaje y en función del que escojamos, el resultado será diferente.

Vamos a tomar, por ejemplo, el de Battjes (1975), que dice que el índice de rotura es:
0.21

𝐻𝐻𝑏𝑏 𝑡𝑡𝑡𝑡𝑡𝑡𝑡𝑡
= 1.14 ⎛ ⎞
𝑑𝑑𝑏𝑏 𝐻𝐻0 [5]

⎝ 𝐿𝐿0 ⎠

En esta ecuación, tanβ hace referencia a la pendiente de la playa en el punto de cálculo.

Entonces, si la relación H/d es mayor o igual que el índice de rotura, la ola rompe.

En ese caso, calcularemos la pérdida de energía mediante la ecuación siguiente:


𝜕𝜕𝜕𝜕 𝜅𝜅
= − (𝐹𝐹 − 𝐹𝐹𝑠𝑠 )
𝜕𝜕𝜕𝜕 𝑑𝑑 [6]

En esta ecuación, κ es un coeficiente de decay, que hay que ajustar, F es el flujo de energía del
oleaje, que como sabemos es F = E·Cg, y Fs es el flujo de energía de la ola estable que, según
Horikawa y Kuo (1967), puede expresarse como:

𝐻𝐻𝑠𝑠 = Γ · 𝑑𝑑
[7]
Γ es un nuevo coeficiente, que ha de ajustarse, asimismo.

Dado que cuando la ola rompe se encuentra casi en profundidades reducidas, puede suponerse
que 𝐶𝐶𝑔𝑔 = 𝐶𝐶~�𝑔𝑔𝑔𝑔, y por tanto:
1
𝐹𝐹𝑠𝑠 = 𝜌𝜌𝜌𝜌𝐻𝐻𝑠𝑠 ²�𝑔𝑔𝑔𝑔
8 [8]

Según Dally (1990), los parámetros pueden aproximarse como:

κ = 0.17
Γ = 0.40

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 19 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

Modelización numérica
La eq. [6] se puede escribir en diferencias finitas como:

𝜅𝜅 𝐹𝐹𝑖𝑖 − 𝐹𝐹𝑖𝑖−1 1 𝑑𝑑𝑖𝑖 + 𝑑𝑑𝑖𝑖−1 2


𝐹𝐹𝑖𝑖 = 𝐹𝐹𝑖𝑖−1 − � − 𝜌𝜌𝜌𝜌Γ² � � � [9]
1 2 8 2
(𝑑𝑑 )
2 𝑖𝑖 + 𝑑𝑑𝑖𝑖−1
Y a partir de Fi se obtiene Hi.

La gráfica que se obtiene ahora es mucho más razonable (Figura 5).

ALTURA DE OLA EN TEORÍA LINEAL PARA T = 15.20 s


8 100

6 0

Profundidad [m]
H [m]

4 -100

2 -200

0 -300
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000

Distancia [m]

Figura 5 Altura de ola, incluyendo rotura

Código MATLAB
function F = breaker(H, Dx, d, Fa)
% Cálculo de la disipación de energía por rotura del oleaje
% H : Altura de ola en el nodo
% Hs : Altura de ola estable
% d : Profundidad en el nodo
% Dx : Ancho de malla
% kappa : Coeficiente empírico de decay
% Fs : Flujo de energía de la ola estable
% F : Flujo de energía de la ola en el tramo
% Fa : Flujo de energía en el tramo anterior
% G : Coeficiente de estabilidad

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 20 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

%% DALLY (1980)
% Valores recomendados
G = 0.40;
kappa = 0.17;

%% CALCULO

Hs = G * d;
Fs = (1/8)*1.026*Hs^2*(9.81*d)^(1/2);
F1 = (1/8)*1.026*H^2*(9.81*d)^(1/2);

F = Fa-(kappa/d)*(F1-Fs)*Dx;
F2 = (F+F1)/2;
F = Fa-(kappa/d)*(F2-Fs)*Dx;
F3 = (F+F2)/2;
F = Fa-(kappa/d)*(F3-Fs)*Dx;

Introducción de datos reales


La respuesta a la pregunta 2 de la página 18 es fácil en MATLAB. Se puede emplear una hoja
Excel para introducir el perfil, que a su vez, puede haberse extraído de algún modelo topográfico,
o de un procesador de un modelo matemático, como SMS.

En este caso, imagínese un perfil, obtenido de un cálculo realizado en clase, sobre la batimetría
de una playa en la provincia de Cádiz:

x [m] d [m]
0 12.0614882
9.99541921 12.0500504
60.0575093 11.9904747
106.818042 11.9314329
110.119599 11.9271247
160.18169 11.8590187
210.24378 11.7842
260.30587 11.699748
310.36796 11.600773
360.43005 11.478537
410.49214 11.3202575
460.55423 11.1148974
510.61632 10.8649053
560.67841 10.5953666
610.7405 10.3461894
660.802591 10.1486228
710.864681 10.0026838
760.926771 9.87301915

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 21 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

x [m] d [m]
810.988861 9.70929444
861.050951 9.46686655
911.113041 9.12622169
961.175131 8.70586402
1011.23722 8.25113562
1061.29931 7.80027833
1111.04763 7.3661786
1111.3614 7.36347523
1161.42349 6.92591782
1211.48558 6.45931517
1261.54767 5.93032621
1311.60976 5.31697666
1361.67185 4.63859322
1411.73394 3.9520549
1461.79603 3.48061175
1511.85812 2.723328
1561.92021 1.6381703
1611.9823 0.90426649
1662.04439 0.45396082
1712.10648 0.23143111
1762.16857 0.13729001
1812.23066 0.09268567
1862.29275 0.06017029
1912.35484 0.0330336
1962.41693 0.01440263
2012.47902 0.00479139
2018.55319 0.0042117
2100 0
2500 -1
Tabla 2 Perfil batimétrico

La Figura 6 representa el perfil transversal cuyas coordenadas se muestran en la Tabla 2.

Ahora, se puede leer el perfil con la función xlsread.

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 22 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

Figura 6 Perfil transversal dibujado en Excel

Con este sencillo código, se lee el perfil. Su dibujo se muestra en la Figura 7.

%% PERFIL DE PLAYA
perfil = xlsread('Playa.xlsx');
d = perfil(:,2);
x = perfil(:,1);

PERFIL TRANSVERSAL
2

-2

-4
Profundidad [m]

-6

-8

-10

-12

-14
0 500 1000 1500 2000 2500

Distancia [m]

Figura 7 Perfil transversal, dibujado por MATLAB

Si damos una altura de ola inicial Hi = 3.50 m y T = 9 s, los resultados, empleando el criterio de
rotura de Miche (1944) se muestran a continuación:

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 23 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

ALTURA DE OLA EN TEORÍA LINEAL PARA T = 9.00 s


4 2

3.5 0

3 -2

2.5 -4

Profundidad [m]
H [m]

2 -6

1.5 -8

1 -10

0.5 -12

0 -14
0 500 1000 1500 2000 2500

Di t i [ ]
Figura 8 Altura de ola

CELERIDAD EN TEORÍA LINEAL PARA T = 9.00 s


10

C
9
Cg

6
Celeridad [m/s]

0
0 500 1000 1500 2000 2500

Distancia [m]

Figura 9 Celeridad

LONGITUD DE ONDA EN TEORÍA LINEAL PARA T = 9.00 s


100 20
Longitud de onda [m]

Profundidad [m]

50 0

0 -20
0 500 1000 1500 2000 2500

Distancia [m]

Figura 10 Longitud de onda

En la Figura 8 se comprueba cómo la ola, tras la rotura, se regenera y vuelve a romper.

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 24 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

Código MATLAB
El código se ha optimizado, pudiéndose elegir varios criterios de rotura. Queda según se muestra
seguidamente:

%% EJERCICIO 1
%
% En esta revisión, se cambia el perfil uniforme por un perfil real leido
% de un libro Excel
%% INICIALIZAR
clc;
clear all;
close all;
commandwindow;

T = 9;
H_0 = 3.50;

% rotura = 'Battjes_75';
% rotura = 'McCowan';
% rotura = 'Miche_93';
rotura = 'Miche_44';

%% PERFIL DE PLAYA

perfil = xlsread('Playa.xlsx');

d = perfil(:,2);
x = perfil(:,1);

N = size(x,1);

%% CALCULOS

i = 1;
L_0 = 1.56*T^2;
L(1) = londa(d(i), T, 0.001, L_0, 10);
[Cg(1), C(1)] = CelGrup(d(1),T,L(1));
H(1) = H_0;
rota(1) = 0;

%% MODELIZACION

fctrl = fopen('prop.log','w');

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 25 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

fprintf(fctrl,'Rotura: %10s \n', rotura);

for i = 2:N
if d(i)>0
L(i) = londa(d(i), T, 0.001, L(i-1), 10);
[Cg(i), C(i)] = CelGrup(d(i),T,L(i));
H(i) = sqrt((H(i-1))^2*Cg(i-1)/Cg(i));
% Comprobar rotura
switch rotura
case 'McCowan' % McGowan (1891)
IR_McCowan = H(i)/d(i);
if IR_McCowan > 0.76
rota(i) = 1;
else
rota(i) = 0;
end

fprintf(fctrl, 'd = %5.2f - I rot = %4.2f \n', ...


d(i),IR_McCowan);
case 'Miche_93' % Miche (1893)
IR_Miche = H(i)/L(i);
if IR_Miche >(1/7)
rota(i) = 1;
else
rota(i) = 0;
end
case 'Miche_44' % Miche (1944)
IR_Miche_1944 = (1/7)*tanh(2*pi*d(i)/L(i));
IR_Miche_1944_HL = H(i)/L(i);
if IR_Miche_1944_HL > IR_Miche_1944
rota(i) = 1;
else
rota(i) = 0;
end

case 'Battjes_75' % Battjes (1975)


tanB = ((d(i-1)-d(i))/(x(i)-x(i-1)));
IR_Battjes_1975 = 1.14*(tanB/s_0^(1/2))^0.21;
IR_Battjes_1975_HL = H(i)/d(i);
if IR_Battjes_1975_HL > IR_Battjes_1975
rota(i) = 1;
else
rota(i) = 0;
end
fprintf(fctrl, 'd = %5.2f - I rot = %4.2f - H/d = %4.2f - rot = %1.0f - H
= %4.2f \n', ...
d(i),IR_Battjes_1975, IR_Battjes_1975_HL, rota(i), H(i));

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 26 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

otherwise
end

if rota(i) == 1
F(i) = breaker(H(i),x(i)-x(i-1),d(i), F(i-1));
H(i) = sqrt((8*F(i))/(1.026*sqrt(9.81*d(i))));
else
F(i) = (1/8)*1.026*H(i)^2*sqrt(9.81*d(i));
end

else
L(i) = 0;
Cg(i) = 0;
C(i) = 0;
H(i)= 0;
rota(i) = 1;
end
end

fclose(fctrl);
%% SALIDA
fsal = 1;
fprintf(fsal,'Rotura: %10s \n', rotura);

%% DIBUJO

plot(x,-d)
grid on;
xlabel('Distancia [m]')
ylabel('Profundidad [m]')
titulo = 'PERFIL TRANSVERSAL';
title(titulo)

figure
[hAx,hLine1,hLine2] = plotyy(x,L,x,-d);
grid on;
xlabel('Distancia [m]')
ylabel(hAx(1),'Longitud de onda [m]')
ylabel(hAx(2),'Profundidad [m]')
titulo = sprintf('LONGITUD DE ONDA EN TEORÍA LINEAL PARA T = %3.2f s', T);
title(titulo)

figure
%[hAx,hLine1,hLine2] = plotyy([x,x],[C,Cg],x,-d);
plot(x,C,x,Cg);
grid on;

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 27 de 28
Tiempo de preparación: 29 minutos
MODELOS MATEMÁTICOS I
PRÁCTICA DE PROPAGACIÓN DE OLEAJE EN
UN PERFIL TRANSVERSAL DE PLAYA

xlabel('Distancia [m]')
ylabel('Celeridad [m/s]')
%ylabel(hAx(1),'Celeridad [m/s]')
%ylabel(hAx(2),'Profundidad [m]')
titulo = sprintf('CELERIDAD EN TEORÍA LINEAL PARA T = %3.2f s', T);
title(titulo)
legend('C','Cg')

figure
[hAx,hLine1,hLine2] = plotyy(x,H,x,-d);
grid on;
xlabel('Distancia [m]')
ylabel(hAx(1),'H [m]')
ylabel(hAx(2),'Profundidad [m]')
titulo = sprintf('ALTURA DE OLA EN TEORÍA LINEAL PARA T = %3.2f s', T);
title(titulo)

Otras optimizaciones
Se puede seguir optimizando el código, mejorando los criterios de rotura, cambiando el cálculo
de la pérdida de energía, introduciendo el porcentaje de olas rotas de Battjes & Janssen para
simular el comportamiento del oleaje irregular, etc.

Autor: Jose M Medina


Última revisión: 07/11/2017 18:43
REVISIÓN 02
Archivo: PROPAGACIÓN DE OLEAJE_R2.DOCX
Página 28 de 28
Tiempo de preparación: 29 minutos

Вам также может понравиться