海浪建模1海浪建模的理论分析和matlab仿真
Posted fpga和matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了海浪建模1海浪建模的理论分析和matlab仿真相关的知识,希望对你有一定的参考价值。
1.软件版本
matlab2017b
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.测试结果
仿真操作如上上图所示,
首先点击START开始模拟海浪的效果,然后点击stop可以暂停。
上图3标签就是网站上对应的调整风速度大小的按键。
4所显示就是海浪的各个参数。具体参数的计算见上一页的理论介绍
5这里是3D效果的显示,可以从不同的角度进行观察海浪(MATLAB中GUI的AXIS无法直接用鼠标旋转进行三维显示,所以需要通过这个功能进行显示)
A19-06
以上是关于海浪建模1海浪建模的理论分析和matlab仿真的主要内容,如果未能解决你的问题,请参考以下文章