✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,
代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
在海洋工程领域,船舶的运动是一个非常重要的研究方向。在海洋中,船舶的运动受到各种因素的影响,如风浪、潮汐、海流等等。因此,为了更好地研究船舶的运动,我们需要建立一些数学模型来描述这些因素对船舶运动的影响。
其中,风浪流模型是一种常用的模型。该模型将海洋中的风浪和海流作为一个整体来考虑,可以更加准确地描述船舶在海洋中的运动。在风浪流模型下,船舶的运动可以分为六度自由度运动和三度自由度运动。其中,三度自由度运动是指船舶在横向、纵向和横摇方向上的运动。
在三度自由度运动中,横向运动是指船舶在水平方向上的运动,也称为“横荡”。当船舶受到侧向力时,会产生横向运动。纵向运动是指船舶在垂直方向上的运动,也称为“纵荡”。当船舶受到前后方向的力时,会产生纵向运动。横摇运动是指船舶在水平面内绕中心线旋转的运动。当船舶受到横向力矩时,会产生横摇运动。
在研究船舶的三度自由度运动时,我们需要考虑一些重要的因素,如船舶的结构特征、船舶的质量分布、风浪流的力学特性等等。通过建立数学模型,我们可以更加准确地描述船舶在海洋中的运动。
除了数学模型外,我们还可以通过实验来验证模型的准确性。在实验中,我们可以通过模拟海洋中的风浪流环境,对船舶的运动进行观测和记录。通过实验数据的分析,我们可以验证数学模型的准确性,并不断完善模型,使其更加符合实际情况。
总之,在海洋工程领域,船舶的运动是一个非常重要的研究方向。通过建立数学模型和实验验证,我们可以更加准确地描述船舶在海洋中的运动,为海洋工程的设计和建设提供更加可靠的数据和方法。
📣 部分代码
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %% wind disturbance of the surface vessel 201 ZKW 2013.3.10 %% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %function F_wind = F_feng1(windspeed, angle_w,eta)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 无因次风系数cx,cy,cn 的计算使用 Isherwood (1972)经验公式% 输入量:% gamma_r = 相对风角(风弦角) (rad)% V_r = 相对风速 (m/s)<假设风速远大于船速,V_r即约为实际风速%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%L=185; % 船全长 (m)B=39.2; % 船宽 (m)A_L=320; % 水线以上船舶正投影面积 (m^2)A_T=1480; % 水线以上船舶侧投影面积 (m^2)A_SS=3129; % 上层部分的正投影面积 (m^2)S=450; % 除吃水线和船桅、通气设备等细长体外的船模型的正投影周长 (m)C=95; % 从船首到正投影面积的矩心的距离 (m)M=1; % 正投影面内可见的船桅或中柱的不同组数;不包括紧贴船桥前部的中柱。rho_a = 1.224; % 20摄氏度时的空气密度%%%%%将风向绝对角转换为风向相对角%%%%%if (angle_w>=pi)angle_w = 2*pi-angle_w;elseangle_w = -angle_w;end%%%%%算上艏向偏差%%%%%angle_w= angle_w/pi*180 + eta(3);%%%%%保证相对风向角的范围%%%%%if (angle_w>=180)angle_w = angle_w-360;elseif (angle_w<=-180)angle_w = angle_w+360;endif(angle_w<0)gamma=angle_w+180;elsegamma=angle_w;endV_r = windspeed;%%%%%CX_data = [gamma_r A0 A1 A2 A3 A4 A5 A6 ]%%%%%CX_data= [...0 2.152 -5.00 0.243 -0.164 0 0 010 1.714 -3.33 0.145 -0.121 0 0 020 1.818 -3.97 0.211 -0.143 0 0 0.03330 1.965 -4.81 0.243 -0.154 0 0 0.04140 2.333 -5.99 0.247 -0.190 0 0 0.04250 1.726 -6.54 0.189 -0.173 0.348 0 0.04860 0.913 -4.68 0 -0.104 0.482 0 0.05270 0.457 -2.88 0 -0.068 0.346 0 0.04380 0.341 -0.91 0 -0.031 0 0 0.03290 0.355 0 0 0 -0.247 0 0.018100 0.601 0 0 0 -0.372 0 -0.020110 0.651 1.29 0 0 -0.582 0 -0.031120 0.564 2.54 0 0 -0.748 0 -0.024130 -0.142 3.58 0 0.047 -0.700 0 -0.028140 -0.677 3.64 0 0.069 -0.529 0 -0.032150 -0.723 3.14 0 0.064 -0.475 0 -0.032160 -2.148 2.56 0 0.081 0 1.27 -0.027170 -2.707 3.97 -0.175 0.126 0 1.81 0180 -2.529 3.76 -0.174 0.128 0 1.55 0 ];%%%%%CY_data = [gamma_r B0 B1 B2 B3 B4 B5 B6]%%%%%CY_data = [...0 0 0 0 0 0 0 010 0.096 0.22 0 0 0 0 020 0.176 0.71 0 0 0 0 030 0.225 1.38 0 0.023 0 -0.29 040 0.329 1.82 0 0.043 0 -0.59 050 1.164 1.26 0.121 0 -0.242 -0.95 060 1.163 0.96 0.101 0 -0.177 -0.88 070 0.916 0.53 0.069 0 0 -0.65 080 0.844 0.55 0.082 0 0 -0.54 090 0.889 0 0.138 0 0 -0.66 0100 0.799 0 0.155 0 0 -0.55 0110 0.797 0 0.151 0 0 -0.55 0120 0.996 0 0.184 0 -0.212 -0.66 0.34130 1.014 0 0.191 0 -0.280 -0.69 0.44140 0.784 0 0.166 0 -0.209 -0.53 0.38150 0.536 0 0.176 -0.029 -0.163 0 0.27160 0.251 0 0.106 -0.022 0 0 0170 0.125 0 0.046 -0.012 0 0 0180 0 0 0 0 0 0 0 ];%%%%%CN_data = [gamma_r C0 C1 C2 C3 C4 C5]%%%%%CN_data = [...0 0 0 0 0 0 010 0.0596 0.061 0 0 0 -0.07420 0.1106 0.204 0 0 0 -0.17030 0.2258 0.245 0 0 0 -0.38040 0.2017 0.457 0 0.0067 0 -0.47250 0.1759 0.573 0 0.0118 0 -0.52360 0.1925 0.480 0 0.0115 0 -0.54670 0.2133 0.315 0 0.0081 0 -0.52680 0.1827 0.254 0 0.0053 0 -0.44390 0.2627 0 0 0 0 -0.508100 0.2102 0 -0.0195 0 0.0335 -0.492110 0.1567 0 -0.0258 0 0.0497 -0.457120 0.0801 0 -0.0311 0 0.0740 -0.396130 -0.0189 0 -0.0488 0.0101 0.1128 -0.420140 0.0256 0 -0.0422 0.0100 0.0889 -0.463150 0.0552 0 -0.0381 0.0109 0.0689 -0.476160 0.0881 0 -0.0306 0.0091 0.0366 -0.415170 0.0851 0 -0.0122 0.0025 0 -0.220180 0 0 0 0 0 0 ];%%%%%对上表进行插值%%%%%A0 = interp1(CX_data(:,1),CX_data(:,2),gamma);A1 = interp1(CX_data(:,1),CX_data(:,3),gamma);A2 = interp1(CX_data(:,1),CX_data(:,4),gamma);A3 = interp1(CX_data(:,1),CX_data(:,5),gamma);A4 = interp1(CX_data(:,1),CX_data(:,6),gamma);A5 = interp1(CX_data(:,1),CX_data(:,7),gamma);A6 = interp1(CX_data(:,1),CX_data(:,8),gamma);B0 = interp1(CY_data(:,1),CY_data(:,2),gamma);B1 = interp1(CY_data(:,1),CY_data(:,3),gamma);B2 = interp1(CY_data(:,1),CY_data(:,4),gamma);B3 = interp1(CY_data(:,1),CY_data(:,5),gamma);B4 = interp1(CY_data(:,1),CY_data(:,6),gamma);B5 = interp1(CY_data(:,1),CY_data(:,7),gamma);B6 = interp1(CY_data(:,1),CY_data(:,8),gamma);C0 = interp1(CN_data(:,1),CN_data(:,2),gamma);C1 = interp1(CN_data(:,1),CN_data(:,3),gamma);C2 = interp1(CN_data(:,1),CN_data(:,4),gamma);C3 = interp1(CN_data(:,1),CN_data(:,5),gamma);C4 = interp1(CN_data(:,1),CN_data(:,6),gamma);C5 = interp1(CN_data(:,1),CN_data(:,7),gamma);%%%%%风系数计算%%%%%cx = -(A0 + A1*2*A_L/L^2 + A2*2*A_T/B^2 + A3*(L/B) + A4*(S/L) + A5*(C/L) + A6*M);cy = (B0 + B1*2*A_L/L^2 + B2*2*A_T/B^2 + B3*(L/B) + B4*(S/L) + B5*(C/L) + B6*A_SS/A_L);cn = (C0 + C1*2*A_L/L^2 + C2*2*A_T/B^2 + C3*(L/B) + C4*(S/L) + C5*(C/L));%%%%%风力和风力矩计算%%%%%if(angle_w>0)F_wind(1,1) = 0.5*cx*rho_a*V_r^2*A_T;F_wind(2,1) = 0.5*cy*rho_a*V_r^2*A_L;F_wind(3,1) = 0.5*cn*rho_a*V_r^2*A_L*L;elseF_wind(1,1) = -0.5*cx*rho_a*V_r^2*A_T;F_wind(2,1) = -0.5*cy*rho_a*V_r^2*A_L;F_wind(3,1) = -0.5*cn*rho_a*V_r^2*A_L*L;end
⛳️ 运行结果

🔗 参考文献
本程序参考以下中文EI期刊,程序注释清晰,干货满满。
[1]田超.风浪流作用下船舶操纵运动的仿真计算[D].武汉理工大学,2003.DOI:10.7666/d.y519207.
Matlab实现的风浪流模型与船舶三度自由度运动仿真
本文介绍了在海洋工程中,如何利用Matlab编程建立风浪流模型,详细解释了船舶三度自由度运动(横向、纵向和横摇)及其影响因素。通过数学模型和实验验证,精确描述船舶在复杂海洋环境下的运动,为海洋工程提供技术支持。

被折叠的 条评论
为什么被折叠?



