[파동 모델링 1] 해양파 모델링의 이론적 해석 및 Matlab 시뮬레이션

1. 소프트웨어 버전

매트랩2017b

2. 시스템 원리

       파동 모델링의 설계는 주로 파동 모델의 결정, 파동의 다양한 매개변수 계산 등을 포함합니다. 이 시스템,

웨이브 모델은 다음과 같습니다.

       실제로 웨이브 모델에는 여러 종류가 있는데, 주로 이 모델의 효과가 귀하가 제공한 웹사이트에 대한 효과에 가장 가깝기 때문에 이 모델을 여기에서 사용합니다.

 G는 중력 가속도이며 상수 9.8을 취합니다.

3. 핵심 소스 코드

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. 테스트 결과

시뮬레이션 작업은 위의 그림과 같습니다.

먼저 시작을 클릭하여 파도의 효과 시뮬레이션을 시작한 다음 중지를 클릭하여 일시 중지합니다.

위의 그림 3의 레이블은 웹사이트에서 풍속을 조정하는 해당 버튼입니다.

4는 파도의 매개변수를 보여줍니다. 특정 매개변수의 계산에 대해서는 이전 페이지의 이론적인 소개를 참조하십시오.

5 다음은 3D 효과의 표시입니다. 다른 각도에서 파도를 관찰할 수 있습니다(MATLAB GUI의 AXIS는 3D 디스플레이를 회전하기 위해 마우스를 직접 사용할 수 없으므로 이 기능을 통해 표시해야 함)

A19-06

추천

출처blog.csdn.net/ccsss22/article/details/125610685