Guide de programmation du canal¶
Cette documentation présente la théorie et programmation du canal à houle
et la génération de houle irrégulière et de vagues scélérates. Les
programmes de génération sont situés dans le dossier Knu/Scripts/Canal/.
Utilisation rapide¶
Allez dans le dossier
Knu/Canal/houle_irreguliereEditez le fichier
params.txt. Pour plus d’informations, lisez la sections sur le rôle de chaque paramètre.Exécutez le fichier
generer_irreguliere.mRécupérez les fichiers
.datet.voltsgénérés.
Génération de houle irrégulière¶
La génération de houle irrégulière se fait à partir d’un spectre JONSWAP,
avec la fonction jonswap dans le fichier jonswap.m.
Le spectre de JONSWAP est calculé avec la formule suivante:
avec
et \(\sigma=0.07\) si \(\omega < \omega_p\), \(\sigma=0.09\) sinon. La constante réelle \(a\) peut être déterminée en utilisant la définition de \(H_s\)
De telle sorte que :
A partir du spectre, on peut obtenir les amplitudes de houle avec la formule
Où les \(S_i\) sont les composantes du spectre discrétisé telles que \(S_i=S(\omega_i)\). Le nombre de fréquences \(\omega_i\) correspond au nombre de composantes de houle désiré, en général de 1000. Le paramètre \(\Delta\omega\) est le pas de discrétisation du vecteur de fréquences, qui est constant.
Les déphasages peuvent être générés aléatoirement entre \(0\) et \(2\pi\).
Avec ces données, on peut obtenir un signal de houle de type:
Théorie batteur-piston¶
Pour convertir ce signal de houle en signal de batteur, nous allons utiliser la théorie de batteur piston. Le signal du batteur est donné par:
où \(\tau_i\) est donné par:
Où les \(k_i\) sont les nombres d’onde et \(h\) la hauteur d’eau initiale devant le batteur. Cette formule est issue de la référence :
[Advanced series on ocean engineering 2] Robert G. Dean,
Robert A. Dalrymple - Water wave mechanics for engineers and scientists
(1991, World Scientific)
Consultable dans : T:\Services\Production\Sophia\Modelisation_Physique\_DOCUMENTATION
Les nombres d’onde \(k_i\) se calculent à partir de la relation de dispersion :
Que l’on peut réécrire
Dans le programme de génération, cette équation est résolue par
la méthode du point fixe dans la fonction dispersion
du fichier deplacement_batteur.m.
La fonction deplacement_batteur renvoie le signal
\(x_i(t)\). Le programme principal additionne chaque \(x_i(t)\)
pour obtenir le signal de batteur \(x(t)\) (variable x_batteur
dans le programme generer_irreguliere.m).
Pour ne pas que le batteur fasse d’à-coups, une rampe linéaire est appliquée au début et à la fin du signal, de telle sorte que \(x(0) = 0\) et \(x(t_{max}) = 0\). De même, le programme vérifie que le batteur ne se déplace pas plus de \(30\,cm\), ne subit pas de vitesses au dessus de \(2.5\,m/s\) et pas d’accélérations au dessus de \(0.7\,m/s^2\). Si c’est le cas, le programme renverra un avertissement.
Warning
C’est à vous de générer un signal adapté aux contraintes mécaniques du batteur. Le programme ne corrige pas le signal s’il n’est pas adapté.
Contrôle du programme¶
Le contrôle des paramètres se fait dans le fichier params.txt:
Tmin 0.87
Tmax 2.19
Tp 1.57
Hs 0.125
gamma 3.3
Ncomposantes 1000 % Nombre de composantes de houle
h 1.38 % Hauteur d'eau devant le batteur
duree_simu 100 % Durée de la simulation
rampe 10 % Durée de la rampe en secondes
fichier_sortie test1 % Nom du fichier de sortie (sans extension)
fichier_dephasages dephasages.dat % Nom du fichier de déphasages
afficher_graphiques 0 % Mettre à 1 pour afficher les graphiques
sauvegarder_fichiers 1 % Mettre à 0 pour ne pas sauvegarder les fichiers
generer_dephasages 1 % Mettre à 1 ou 0 pour générer ou non les déphasages
Les 5 premiers paramètres
Tmin,Tmax,Tp,Hsetgammaservent à la génération du spectre JONSWAP. Les temps doivent être donnés en secondes etHsen mètres.Ncomposantespermet de gérer le nombre de composantes de houle mononchromatique (i.e. le nombre de fréquences)hest la hauteur d’eau devant le batteur, en mètresduree_simuest la durée du signal temporel à générer, en secondes.rampepermet de gérer la durée de la rampe (au début et à la fin du signal). La rampe appliquée est une rampe linéaire.fichier_sortieest le nom des fichiers de sortie au format.datet.volts.fichier_dephasagesest le nom du fichier de déphasages, si l’utilisateur ne souhaite pas en générer des nouveaux. La gestion de la génération aléatoire de déphasages se fait avec le paramètregenerer_dephasages.afficher_graphiquespermet d’afficher ou non le spectre généré ainsi que le signal de batteur. 0 : ne pas afficher, 1: afficher.sauvegarder_fichierspermet de gérer l’écriture des fichiers.datet.volts. 0 : ne pas écrire les fichiers, 1 : écrire les fichiers.generer_dephasagespermet d’indiquer si l’on souhaite générer des nouveaux déphasages ou non. 0 : ne pas générer de déphasages. Dans ce cas, le programme va aller lire dans le fichierfichier_dephasages. Si ce fichier n’existe pas, le programme renverra un avertissement. 1 : générer des nouveaux déphasages entre \(0\) et \(2\pi\).
Vagues scélérates¶
Une vague scélérate est une focalisation de toutes les composantes monochromatiques sur un même point \(x_s\), en un temps donné \(t_s\). Cette condition implique donc que chaque composantes monochromatique soit maximale au point \((x_s,t_s)\), c’est-à-dire:
Pour rappel, le signal de houle \(\eta(x,t)\) est donné par
La condition de focalisation impose donc que :
Ainsi, le signal de houle scélérate devient:
Le programme generer_scelerate.m agit uniquement sur le
déphasage \(\phi_i = \omega_i t_s - k_i x_s\). Les paramètres
\(x_s\) et \(t_s\) doivent être donnés dans le fichier
params.txt
Tmin 0.87
Tmax 2.19
Tp 1.57
Hs 0.125
gamma 3.3
xS 5.0 % Coordonnée x du point de focus (m)
tS 50.0 % Temps du point de focus (s)
Ncomposantes 1000 % Nombre de composantes de houle
h 1.38 % Hauteur d'eau devant le batteur
duree_simu 100 % Durée de la simulation
rampe 10 % Durée de la rampe en secondes
fichier_sortie test1 % Nom du fichier de sortie (sans extension)
fichier_dephasages dephasages.dat % Nom du fichier de déphasages
afficher_graphiques 0 % Mettre à 1 pour afficher les graphiques
sauvegarder_fichiers 1 % Mettre à 0 pour ne pas sauvegarder les fichiers
generer_dephasages 1 % Mettre à 1 ou 0 pour générer ou non les déphasages