[Modélisation des vagues 1] Analyse théorique et simulation Matlab de la modélisation des vagues océaniques

1. Version du logiciel

matlab2017b

2. Principe du système

       La conception de la modélisation des vagues implique principalement la détermination du modèle de vague, le calcul de divers paramètres de la vague, etc. Ce système,

Le modèle de vague est le suivant :

       En réalité, il existe de nombreux types de modèles de vagues.Ce modèle est utilisé ici principalement parce que l'effet de ce modèle est le plus proche de l'effet sur le site Web que vous avez donné.

 G est l'accélération de la gravité, prenez la constante 9,8

3. Code source principal

global Winds;   %风速
global g; %重力加速度
global kk; %仿真模型沙盘和实际区域的大小比例
global Xmax;
global Ymax;
global Dxy;
global flag;
global VX;
global VY;
global VZ;


flag = 0;

g    = 9.8; %重力加速度
kk   = 1/40; %仿真模型沙盘和实际区域的大小比例
%仿真的间隔
Dxy  = 4;


%仿真覆盖的海域范围
Xmax = 1000;
Ymax = 1000;

Start  = 200;
x      = [Start:Dxy:Xmax];
Ymax2  = round(Ymax/2);
y      = [Start:Dxy:Ymax2];
[xo,yo]= meshgrid(x,y);
z2     = zeros(size(x));

%海浪自身运动的波高
r = (3.5325*Winds^2.5)/1000;

%海浪自身运动的波长
k = 2*g/(3*Winds^2);
L = 2*pi/k;

%周期T
T = sqrt(2*pi*L/g);

%波频率
w = sqrt(2/3)*g/T;
t = 0;

while(flag == 0)
    disp('the wind speed is');Winds
    t = t + 1;
    for i = 1:(Ymax2-Start)/Dxy+1
        for j = 1:(Xmax-Start)/Dxy+1
            %衰减系数
            d             = sqrt((xo(1,j)-0)^2 + (yo(1,j)-0)^2);
            alphas        = exp(-0.07*d) - 0.18; 
            z2(i,j)       = alphas*r*cos(k*sqrt((xo(1,j)-0)^2 + (yo(1,j)-0)^2) - w*t);
        end
    end
    %显示局部效果
    axes(handles.axes1);
    surfl(xo,yo,z2);
    axis([Start-50 Xmax+50 Start-50 Ymax2+50 -8 10]);
    shading interp;
    colormap([143/255,157/255,203/255]);
    alpha(0.75);
    lightangle(-30,90);
    
    view([VX,VY,VZ]);
    
    
    pause(0.1);    
    
    
    %海浪自身运动的波长
    k = 2*g/(3*Winds^2);
    Ls = 2*pi/k;
    set(handles.edit1,'String',num2str(Ls));
    
    
    %计算得到海浪的参数指标
    %海浪自身运动的波高
    rs = (3.5325*Winds^2.5)/1000;
    set(handles.edit3,'String',num2str(rs));
    

    %周期T
    T = sqrt(2*pi*L/g);
    %速度
    c = g*T/(2*pi); 
    set(handles.edit4,'String',num2str(c)); 
    
    %波频率
    w = sqrt(2/3)*g/T;    
    set(handles.edit5,'String',num2str(w/2/pi));
    
end

4. Résultats des tests

L'opération de simulation est illustrée dans la figure ci-dessus,

Cliquez d'abord sur START pour commencer à simuler l'effet des vagues, puis cliquez sur stop pour mettre en pause.

L'étiquette de la figure 3 ci-dessus est le bouton correspondant sur le site Web pour régler la vitesse du vent.

4 montre les paramètres des ondes. Pour le calcul de paramètres spécifiques, voir l'introduction théorique à la page précédente.

5 Voici l'affichage de l'effet 3D, vous pouvez observer les vagues sous différents angles (l'AXIS de l'interface graphique dans MATLAB ne peut pas utiliser directement la souris pour faire pivoter l'affichage 3D, il doit donc être affiché via cette fonction)

A19-06

Je suppose que tu aimes

Origine blog.csdn.net/ccsss22/article/details/125610685
conseillé
Classement