1.ソフトウェアバージョン
matlab2017b
2.システム原理
波動モデリングの設計には、主に波動モデルの決定、波動のさまざまなパラメータの計算などが含まれます。このシステムは、
波のモデルは次のとおりです。
実際には、波動モデルには多くの種類がありますが、このモデルは、主にこのモデルの効果が、提供したWebサイトでの効果に最も近いためにここで使用されます。
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のラベルは、風速を調整するためのWebサイトの対応するボタンです。
図4に波のパラメータを示します。特定のパラメータの計算については、前のページの理論的な紹介を参照してください。
5これが3D効果の表示です。さまざまな角度から波を観察できます(MATLABのGUIのAXISはマウスを直接使用して3D表示を回転させることはできないため、この関数を使用して表示する必要があります)
A19-06