matlab2017b
海浪建模的设计主要涉及到海浪模型的确定,海浪的各个参数的计算等,本系统,
海浪模型如下:
在现实中,海浪模型的种类有很多,这里采用这个模型,主要是因为该模型的效果和你给出的网站上的效果最为接近。
G为重力加速度,取常数9.8
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;%周期TT = 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)); end1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.
仿真操作如上上图所示,
首先点击START开始模拟海浪的效果,然后点击stop可以暂停。
上图3标签就是网站上对应的调整风速度大小的按键。
4所显示就是海浪的各个参数。具体参数的计算见上一页的理论介绍
5这里是3D效果的显示,可以从不同的角度进行观察海浪(MATLAB中GUI的AXIS无法直接用鼠标旋转进行三维显示,所以需要通过这个功能进行显示)
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删