目录

一、竞赛题目背景介绍

二、题目深度剖析

(一)关键信息提取

(二)问题核心解读

三、模型构建思路

(一)受力分析基础

(二)模型建立过程

1. 问题一模型

2. 问题二模型

3. 问题三模型

四、代码实现步骤

(一)编程语言选择

(二)代码框架搭建

(三)关键代码展示与解释

五、结果分析与验证

(一)计算结果呈现

(二)结果合理性验证

六、总结与拓展

(一)回顾解题过程

(二)对数学建模学习的启发

(三)拓展思考方向


一、竞赛题目背景介绍

全国大学生数学建模竞赛创办于 1992 年,每年一届,已成为全国高校规模最大的基础性学科竞赛 ,也是世界上规模最大的数学建模竞赛。2016 年,来自全国 33 个省 / 市 / 自治区(包括香港和澳门特区)及新加坡的 1367 所院校、31199 个队、近 93000 名大学生报名参加本项竞赛,可谓规模宏大,吸引了众多高校学子投身其中,在数学与实际问题结合的海洋里探索。

在这一年的竞赛中,A 题 “系泊系统设计” 极具挑战性与现实意义。系泊系统在海洋工程领域扮演着举足轻重的角色,比如海上钻井平台,为了保证它在复杂海况下能稳定作业,不被风浪、海流等外力影响而偏离预定位置,就需要可靠的系泊系统将其牢牢固定。又比如大型游轮在港口停靠时,系泊系统也确保了船只的安全停靠,方便旅客上下船和货物装卸。如果系泊系统设计不合理,在恶劣天气下,海上设施可能会发生位移、倾斜甚至倾覆,这不仅会造成巨大的经济损失,还可能引发严重的安全事故 。所以,设计出高效、稳定、适应各种复杂环境的系泊系统至关重要。而 2016 年数模竞赛 A 题就将目光聚焦于此,要求参赛选手运用数学知识和建模方法,去解决这一实际工程问题,这既考验了选手们的数学功底,也检验了他们将理论应用于实践的能力。

二、题目深度剖析

(一)关键信息提取

  1. 浮标:可简化为底面直径 2m、高 2m 的圆柱体,质量为 1000kg 。其吃水深度和游动区域是需要重点关注的参数,吃水深度影响着浮标在水中的位置稳定性,游动区域则关系到系泊系统的作用范围。
  1. 钢管:共 4 节,每节长度 1m,直径为 50mm,每节质量为 10kg。在不同的外力作用下,钢管的倾斜角度会发生变化,这直接影响到整个系泊系统的力学平衡。
  1. 钢桶:长 1m、外径 30cm 的密封圆柱形,设备和钢桶总质量为 100kg。钢桶的倾斜角度对水声通讯设备的工作效果有显著影响,当倾斜角度超过 5 度时,设备工作效果较差。
  1. 锚链:选用无档普通链环,有 I - V 型不同型号,各型号长度(每节链环长度)和单位长度质量不同。如 I 型长度 78mm ,单位长度质量 3.2kg/m;II 型长度 105mm,单位长度质量 7kg/m 等。锚链的形状和长度在系泊系统中起着关键作用,它连接着钢桶和锚,传递着力的作用,其形状会根据受力情况发生改变,而长度则影响着系泊系统的整体布局和稳定性。
  1. :质量为 600kg,要求锚链末端与锚的链接处的切线方向与海床的夹角不超过 16 度,否则锚会被拖行,导致节点移位丢失。锚是系泊系统固定在海底的关键部件,其稳定性直接关系到整个系泊系统的可靠性。
  1. 重物球:悬挂在钢桶与电焊锚链链接处,用于控制钢桶的倾斜角度。其质量的选择需要综合考虑多种因素,如风速、水流力等,以满足系泊系统的设计要求。
  1. 环境参数:海水密度为 1.025×10³kg/m³,布放海域水深介于 16m - 20m 之间,海水速度最大可达 1.5m/s ,风速最大可达 36m/s。这些环境参数是系泊系统设计时必须考虑的重要因素,它们的变化会对系泊系统的受力情况产生显著影响。
  1. 受力公式:近海风荷载可通过近似公式 F = 0.625Sv²(N) 计算,其中 S 为物体在风向法平面的投影面积 (m²),v 为风速 (m/s);近海水流力可通过近似公式 F = 374Sv²(N) 计算,其中 S 为物体在水流速度法平面的投影面积 (m²),v 为水流速度 (m/s)。这些公式是计算系泊系统所受外力的重要依据,通过它们可以准确地分析系泊系统在不同环境条件下的受力情况。

(二)问题核心解读

  1. 问题一:核心任务是在给定传输节点选用 II 型电焊锚链 22.05m ,重物球质量为 1200kg,布放在水深 18m、海床平坦、海水密度为 1.025×10³kg/m³ 且海水静止的海域条件下,分别计算海面风速为 12m/s 和 24m/s 时,钢桶和各节钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域。这需要我们建立准确的力学模型,考虑浮标、钢管、钢桶、锚链等各部分的受力平衡,通过对力和力矩的分析,结合悬链线方程等数学工具,求解出在不同风速下各部分的状态参数。例如,通过对浮标进行受力分析,根据重力、浮力和风力的平衡关系,可以计算出浮标的吃水深度;对钢管和钢桶进行受力和力矩分析,可以得到它们的倾斜角度;利用悬链线方程可以描述锚链的形状。
  1. 问题二:首先要在问题一的假设基础上,计算海面风速为 36m/s 时钢桶和各节钢管的倾斜角度、锚链形状和浮标的游动区域。然后,核心在于调节重物球的质量,使得钢桶的倾斜角度不超过 5 度,锚链在锚点与海床的夹角不超过 16 度。这是一个优化问题,需要以重物球质量为变量,以钢桶倾斜角度和锚链与海床夹角为约束条件,建立优化模型。可以采用一些优化算法,如蚁群算法、遗传算法等,在满足约束条件的情况下,寻找出使系泊系统性能最优的重物球质量。
  1. 问题三:由于考虑到潮汐等因素导致布放海域水深在 16m - 20m 之间变化,海水速度最大可达 1.5m/s、风速最大可达 36m/s 。核心任务是给出考虑风力、水流力和水深情况下的系泊系统设计,分析不同情况下钢桶、钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域。这要求我们全面考虑各种因素对系泊系统的影响,在问题一和问题二的基础上,进一步完善力学模型,加入水流力的作用。通过建立多目标优化模型,综合考虑浮标的吃水深度、游动区域以及钢桶的倾斜角度等多个目标,确定锚链的型号、长度和重物球的质量,以实现系泊系统在复杂环境下的最优设计 。比如,在不同的水深、风速和水流速度组合下,通过模型计算和分析,找到最合适的系泊系统参数配置,确保系泊系统的稳定性和可靠性。

三、模型构建思路

(一)受力分析基础

在构建系泊系统模型时,对系统各部分进行全面且准确的受力分析是关键的第一步 。我们把整个系泊系统拆解为浮标、钢管、钢桶、锚链和锚这几个主要部分,分别对它们进行细致的受力剖析。

以浮标为例,它在海面上主要受到重力、浮力和风力的作用。重力是由于浮标自身质量产生,方向竖直向下;浮力则是海水对浮标的向上托举力,其大小根据阿基米德原理,与浮标排开海水的体积有关;风力通过题目中给出的近海风荷载近似公式\(F = 0.625Sv²\)计算,其中\(S\)为浮标在风向法平面的投影面积,\(v\)为风速 。这个公式是基于空气动力学原理,考虑了风速和物体迎风面积对风力的影响,在许多实际的海洋工程和气象研究中都被广泛应用,用来计算风对各种海上结构物的作用力。

对于钢管和钢桶,它们除了受到自身重力和浮力外,还受到相邻部件传递过来的力以及海水的水流力。水流力通过近海水流力近似公式\(F = 374Sv²\)计算,这里的\(S\)是物体在水流速度法平面的投影面积,\(v\)为水流速度。该公式是根据流体力学中水流对物体作用力的研究成果推导而来,在分析近海水域中物体受力时具有重要的实用价值。通过这些公式,我们能准确计算出不同风速和水流速度下各部分所受的外力,为后续建立力学平衡方程提供了坚实的数据基础。

(二)模型建立过程

1. 问题一模型

在建立问题一的模型时,我们紧紧围绕受力平衡原理。对于浮标,根据它所受的重力、浮力和风力,列出力的平衡方程,通过这个方程可以求解出浮标的吃水深度。因为吃水深度直接关系到浮力的大小,当浮力与重力、风力达到平衡时,就能确定浮标在水中的位置。例如,假设浮标吃水深度为\(h\),则浮力\(F_{浮}=\rho gV=\rho g\pi r^{2}h\)(其中\(\rho\)为海水密度,\(g\)为重力加速度,\(r\)为浮标底面半径),结合风力和重力,列出方程\(F_{风}+M_{浮标}g = F_{浮}\),就可以求解\(h\)。

对于钢管和钢桶,同样根据它们各自所受的重力、浮力、相邻部件的拉力以及水流力,列出力和力矩的平衡方程。每节钢管和钢桶都可以看作是一个刚体,在这些外力的作用下保持平衡,通过力矩平衡可以求解出它们的倾斜角度。比如对于某一节钢管,以其一端为支点,列出所有力对该支点的力矩平衡方程\(\sum M = 0\),其中包括重力产生的力矩、浮力产生的力矩、拉力产生的力矩以及水流力产生的力矩,通过求解这个方程就能得到钢管的倾斜角度。

在处理锚链时,我们利用悬链线方程来判断锚链是否拖地。悬链线方程描述了在重力作用下,柔软链条自然下垂的形状。假设锚链单位长度质量为\(\lambda\),水平张力为\(T_{0}\),则悬链线方程为\(y = \frac{T_{0}}{\lambda g}(\cosh(\frac{\lambda gx}{T_{0}})-1)\),其中\((x,y)\)是锚链上某点的坐标。我们先根据已知条件计算出锚链的水平张力和单位长度质量,然后将这些值代入悬链线方程。通过比较计算得到的锚链长度与实际给定的锚链长度,来判断锚链是否拖地。如果计算长度小于实际长度,说明锚链拖地;反之,则不拖地。针对拖地或不拖地的情况,分别进行求解,从而得到锚链的形状以及相关参数。

2. 问题二模型

问题二的模型是在问题一模型的基础上进行拓展和优化。首先,利用问题一建立的模型,直接求解海面风速为 36m/s 时钢桶和各节钢管的倾斜角度、锚链形状和浮标的游动区域 。然而,在这个风速下,可能会出现钢桶倾斜角度过大或锚链与海床夹角不符合要求的情况。

为了解决这个问题,我们以钢桶倾角不超过 5°、锚链末端切线与海床夹角不超过 16° 为约束条件,以重物球重力的最小值为目标函数,建立角度 - 重物球质量关系模型。这是一个典型的优化问题,我们可以采用一些优化算法来求解,比如蚁群算法。蚁群算法是一种模拟蚂蚁觅食行为的启发式算法,它通过蚂蚁在搜索空间中留下信息素,并根据信息素浓度选择路径的方式,逐步找到最优解。在这个模型中,蚂蚁的路径就相当于重物球质量的取值,通过不断迭代,让蚂蚁在满足约束条件的情况下,找到使目标函数(重物球重力最小值)最优的路径,也就是最合适的重物球质量。

在求解过程中,我们先初始化蚁群算法的参数,包括蚂蚁数量、信息素挥发因子、启发函数等。然后让蚂蚁在重物球质量的可行范围内进行搜索,每只蚂蚁根据当前的信息素浓度和启发函数选择一个质量值,并计算在这个质量值下系泊系统是否满足约束条件。如果满足,就更新信息素浓度;如果不满足,就重新选择质量值。经过多次迭代后,蚁群算法就能找到满足条件的重物球质量范围,从而实现对系泊系统的优化。

3. 问题三模型

问题三由于考虑了潮汐导致的水深变化以及海水流速的影响,情况更加复杂。我们首先考虑问题的临界状态,即海水速度、风速、水深均取最大值,且水流方向与风向同向时的情况。在这种最恶劣的条件下,对系泊系统进行全面的受力分析,确保模型能够适应最极端的环境。

因为要同时考虑浮标的吃水深度、游动区域半径、钢桶倾斜角度等多个目标,这是一个多目标规划问题。为了便于求解,我们将吃水深度、游动区域半径、钢桶倾斜角度的量纲进行统一,然后利用线性加权和法将多目标规划问题转化为单目标规划问题。线性加权和法的原理是给每个目标函数分配一个权重,然后将它们线性组合成一个单目标函数。例如,假设吃水深度目标函数为\(f_{1}(x)\),游动区域半径目标函数为\(f_{2}(x)\),钢桶倾斜角度目标函数为\(f_{3}(x)\),对应的权重分别为\(w_{1}\)、\(w_{2}\)、\(w_{3}\),则单目标函数可以表示为\(F(x)=w_{1}f_{1}(x)+w_{2}f_{2}(x)+w_{3}f_{3}(x)\),其中\(x\)是决策变量,包括锚链的型号、长度和重物球的质量。

权重的确定是这个方法的关键,我们可以根据实际需求和经验来分配权重。如果更关注钢桶的倾斜角度对水声通讯设备的影响,就可以给钢桶倾斜角度目标函数分配较大的权重;如果更注重浮标的游动区域对观测范围的影响,就可以相应地调整游动区域半径目标函数的权重。通过合理分配权重,将多目标问题转化为单目标问题后,就可以运用一些成熟的优化算法,如遗传算法、粒子群算法等进行求解,从而得到系泊系统在复杂环境下的最优设计参数,包括锚链型号、长度和重物球的质量。

四、代码实现步骤

(一)编程语言选择

在实现 2016 年大学生数模竞赛 A 题的代码时,MATLAB 是一个非常合适的编程语言。MATLAB 由 The MathWorks 公司开发,它专为数学和工程计算而设计,拥有强大的矩阵运算能力 。在处理系泊系统问题时,我们需要进行大量的数学计算和矩阵运算,MATLAB 在这方面具有天然的优势。比如,在求解受力平衡方程时,MATLAB 可以轻松地处理各种矩阵运算,通过内置的函数和算法,快速得到准确的结果。与其他编程语言相比,使用 MATLAB 编写代码更加简洁高效,能大大节省开发时间。例如,在计算矩阵的乘法时,MATLAB 只需简单的运算符即可完成,而在 C++ 等语言中,可能需要编写复杂的循环结构来实现相同的功能。而且 MATLAB 拥有丰富的工具箱,如优化工具箱、符号计算工具箱等,这些工具箱为解决数模竞赛中的各种问题提供了便利。在求解问题二和问题三的优化模型时,优化工具箱中的函数可以帮助我们快速找到最优解,无需从头编写复杂的优化算法,这使得我们能够将更多的精力放在模型的构建和分析上 。

(二)代码框架搭建

整个代码框架主要由主函数和多个功能子函数组成,它们相互协作,共同完成系泊系统问题的求解和分析。

  • 主函数:作为整个程序的入口和核心控制部分,主函数起到了统领全局的作用。它负责初始化各种参数,这些参数包括但不限于浮标、钢管、钢桶、锚链和锚的物理参数,如质量、尺寸等,以及环境参数,像海水密度、风速、水流速度等。同时,主函数还会调用各个子函数,按照一定的逻辑顺序来完成问题的求解。比如,先调用计算受力的子函数,得到系泊系统各部分的受力情况,再根据这些受力情况调用求解方程的子函数,计算出钢桶和各节钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域等关键参数。在问题二和问题三中,主函数还会负责设置优化算法的参数,并调用优化相关的子函数,以实现对系泊系统的优化设计。
  • 计算受力函数:这个函数是对系泊系统各部分进行受力分析的核心实现部分。它会根据题目中给出的物理参数和环境参数,运用力学原理,如牛顿第二定律、阿基米德原理等,来计算浮标、钢管、钢桶、锚链等各部分所受的重力、浮力、风力、水流力以及相邻部件之间的拉力等。在计算风力时,会根据近海风荷载近似公式\(F = 0.625Sv²\),准确计算出作用在浮标和其他部件上的风力大小;计算水流力时,依据近海水流力近似公式\(F = 374Sv²\),得到水流对各部件的作用力。通过这些计算,为后续求解各部分的状态参数提供了重要的受力数据基础。
  • 求解方程函数:该函数主要用于求解描述系泊系统各部分状态的方程。在问题一中,根据受力分析得到的力和力矩平衡方程,以及悬链线方程,通过数值计算方法,如迭代法、二分法等,来求解钢桶和各节钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域等参数。在问题二和问题三中,针对优化模型中的约束条件和目标函数,利用优化算法相关的函数和方法,如线性规划、非线性规划等,求解出满足条件的重物球质量、锚链型号和长度等优化参数。
  • 绘图函数:绘图函数的作用是将计算得到的结果以直观的图形方式展示出来。它可以绘制钢桶和各节钢管的倾斜角度随风速或其他参数变化的曲线,让我们清晰地看到倾斜角度的变化趋势;绘制锚链形状的图形,直观呈现锚链在不同受力情况下的形态;绘制浮标的游动区域图,帮助我们理解浮标在海面上的活动范围。通过这些图形,我们能够更直观地分析系泊系统在不同条件下的性能,从而更好地评估模型的合理性和优化效果。

(三)关键代码展示与解释

下面展示一些关键代码片段,并对其含义和实现的功能进行详细解释:

 

% 计算风力函数

function F_wind = windy(h, v_wind)

D = 2; % 浮标底面直径

H = 2; % 浮标高度

S = D * (H - h); % 浮标在风向法平面的投影面积

F_wind = 0.625 * S * v_wind^2; % 根据公式计算风力

end

% 计算浮力函数

function F_float = float(h)

g = 9.8; % 重力加速度

rho_sea = 1025; % 海水密度

d = 2; % 浮标底面直径

F_float = rho_sea * pi * d^2 / 4 * h * g; % 根据阿基米德原理计算浮力

end

% 初始方程计算函数,计算浮标受力相关参数

function [theta1, T1] = equation_initial(h, v_wind)

m = 1000; % 浮标质量

g = 9.8;

F_float = float(h); % 调用浮力计算函数

F_wind = windy(h, v_wind); % 调用风力计算函数

theta1 = atand(F_wind / (F_float - m * g)); % 计算浮标倾斜角度

T1 = F_wind / sind(theta1); % 计算浮标所受拉力

end

% 迭代方程计算函数,计算后续部件受力相关参数

function [theta2, T2, phi1] = equation_iteration(T1, theta1, m, V)

g = 9.8;

rho_sea = 1025;

F_float = rho_sea * V * g; % 计算该部件所受浮力

theta2 = atand(T1 * sind(theta1) / (F_float + T1 * cosd(theta1) - m * g)); % 计算该部件倾斜角度

T2 = T1 * sind(theta1) / sind(theta2); % 计算该部件所受拉力

phi1 = atand(T1 * sind(theta1) / (T1 * cosd(theta1) + 0.5 * (F_float - m * g))); % 计算该部件的另一个相关角度

end

  1. windy函数:这个函数用于计算风力。它接收浮标的吃水深度h和风速v_wind作为输入参数。首先,根据浮标的几何尺寸计算出在风向法平面的投影面积S,然后利用近海风荷载近似公式\(F = 0.625Sv²\)计算出风力F_wind ,并返回计算结果。这个函数是受力分析中的重要组成部分,为后续计算系泊系统各部分的受力平衡提供了风力数据。
  1. float函数:该函数的作用是计算浮力。它以浮标的吃水深度h为输入,结合重力加速度g、海水密度rho_sea和浮标的底面直径d,根据阿基米德原理\(F_{浮}=\rho gV\)(这里\(V = \pi r^{2}h=\pi (\frac{d}{2})^{2}h\)),计算出浮标所受的浮力F_float并返回。浮力是系泊系统受力分析中不可或缺的一部分,与重力、风力等共同影响着浮标的状态。
  1. equation_initial函数:此函数用于计算浮标受力相关的初始参数。它接收浮标的吃水深度h和风速v_wind作为参数,首先调用float函数和windy函数分别计算出浮力F_float和风力F_wind 。然后,根据力的平衡关系,利用反正切函数计算出浮标的倾斜角度theta1,再通过风力和倾斜角度计算出浮标所受的拉力T1。这些初始参数是后续计算其他部件受力和状态的基础。
  1. equation_iteration函数:这个函数用于迭代计算后续部件(如钢管、钢桶等)的受力相关参数。它接收前一个部件的拉力T1、倾斜角度theta1,当前部件的质量m和体积V作为参数。首先计算当前部件所受的浮力F_float,然后根据力和力矩的平衡关系,通过一系列三角函数运算,计算出当前部件的倾斜角度theta2、所受拉力T2以及另一个相关角度phi1。通过这个迭代函数,可以依次计算出系泊系统中各个部件的受力和状态参数,从而完整地描述系泊系统的力学状态 。

五、结果分析与验证

(一)计算结果呈现

经过前面一系列的模型构建和代码实现,我们得到了不同问题下系泊系统的关键参数计算结果,下面以表格形式清晰呈现:

问题

风速 (m/s)

水速 (m/s)

水深 (m)

钢桶倾角 (°)

钢管 1 倾角 (°)

钢管 2 倾角 (°)

钢管 3 倾角 (°)

钢管 4 倾角 (°)

浮标吃水深度 (m)

游动区域半径 (m)

锚链形状描述

问题一

12

0

18

1.1353

1.0887

1.0802

1.0719

1.0637

0.6361

14.7060

悬链型,部分沉在海床

问题一

24

0

18

4.3158

4.1457

4.1147

4.0841

4.0540

0.6507

17.8541

悬链型,不沉在海床

问题二

36

0

18

9.482

9.910

9.242

9.299

9.356

0.94

18.07

悬链型,不沉在海床

问题二优化

36

0

18

3.57(最佳质量时)

-

-

-

-

0.99(最佳质量时)

-

悬链型,不沉在海床,重物球最佳质量 1858kg,质量范围 1858 - 4893.3kg

问题三

36

1.5

16

4.64

4.63

4.62

4.63

4.64

1.58

17.60

悬链线型,不沉在海床

问题三

18

0.75

18

1.17

1.16

1.16

1.16

1.17

1.32

14.46

悬链线型,不沉在海床

问题三

36

1.5

20

4.64

4.63

4.63

4.63

4.64

1.58

16.56

悬链线型,不沉在海床

通过这个表格,我们可以直观地看到在不同环境条件下,系泊系统中钢桶、钢管的倾斜角度,浮标的吃水深度和游动区域的变化情况 。例如,随着风速的增加,钢桶和钢管的倾斜角度明显增大,浮标的游动区域也相应扩大;在考虑水流力和水深变化的问题三中,不同的水深、风速和水速组合下,系泊系统各参数也呈现出不同的数值 。这些结果为后续的分析和实际应用提供了重要的数据支持。

(二)结果合理性验证

为了验证模型和结果的合理性与稳定性,我们采用了灵敏度分析的方法。灵敏度分析主要是研究模型中输入参数的微小变化对输出结果的影响程度 。在系泊系统模型中,我们重点分析了风速、重物球质量、海水流速和水深等参数对浮标吃水深度、钢桶倾斜角度和游动区域半径的影响。

以风速对钢桶倾斜角度的影响为例,我们在问题一的基础上,保持其他条件不变,逐步改变风速大小,观察钢桶倾斜角度的变化。通过多次计算和分析,发现随着风速的增大,钢桶倾斜角度呈现出近似线性的增长趋势,这与我们的物理常识和实际经验相符。因为风速越大,作用在系泊系统上的风力就越大,从而导致钢桶更容易倾斜 。

对于重物球质量对钢桶倾斜角度的影响,在问题二的优化过程中,我们在重物球质量的可行范围内,选取多个不同的值进行计算。结果发现,当重物球质量增加时,钢桶倾斜角度逐渐减小,这也符合我们的预期。因为增加重物球质量可以提供更大的向下拉力,从而抑制钢桶的倾斜 。

在问题三中,考虑到海水流速和水深的变化,我们同样进行了灵敏度分析。当海水流速增大时,浮标的游动区域半径会有所增加,这是因为水流力增大,对浮标产生了更大的推动作用;而水深的变化对浮标吃水深度和游动区域半径也有一定影响,随着水深的增加,在相同的系泊系统参数下,浮标的游动区域半径会略有减小 。

通过这些灵敏度分析,我们可以看出模型的输出结果对输入参数的变化具有合理的响应,说明我们建立的模型能够较好地反映系泊系统在不同条件下的实际情况,结果具有较高的合理性和稳定性 。这也为我们在实际应用中,根据不同的海洋环境条件,合理设计系泊系统提供了有力的依据 。

六、总结与拓展

(一)回顾解题过程

在解决 2016 年大学生数模竞赛 A 题 “系泊系统设计” 时,我们经历了一个复杂且富有挑战性的过程。首先,深入剖析题目,从大量的文字和数据中提取出关键信息,明确了浮标、钢管、钢桶、锚链和锚等各部分的物理参数,以及各种环境参数和受力公式,这为后续的建模和计算奠定了坚实基础。

在模型构建阶段,我们基于受力分析原理,对系泊系统各部分进行了细致的受力剖析。通过准确计算重力、浮力、风力和水流力等,建立了力和力矩的平衡方程。对于问题一,利用这些方程和悬链线方程,成功求解出不同风速下钢桶和各节钢管的倾斜角度、锚链形状、浮标的吃水深度和游动区域;问题二则在问题一的基础上,以特定约束条件为目标,建立优化模型,通过蚁群算法等方法求解出合适的重物球质量;问题三考虑了更多复杂因素,运用多目标规划和线性加权和法,将多目标问题转化为单目标问题后进行求解。

在代码实现方面,选择了 MATLAB 作为编程语言,搭建了由主函数和多个功能子函数组成的代码框架。主函数负责参数初始化和子函数调用,计算受力函数实现各部分受力计算,求解方程函数用于求解各类方程,绘图函数则将结果以直观图形展示。通过关键代码的编写和运行,得到了具体的计算结果。

(二)对数学建模学习的启发

从本题的解决过程中,我们获得了许多宝贵的数学建模学习经验和方法。在建模前,一定要全面深入地理解问题,像本题中,只有准确把握系泊系统各部分的参数和相互关系,以及环境因素的影响,才能建立出合理的模型。同时,要善于运用多学科知识,本题涉及到力学、数学和计算机编程等多个学科领域,将这些知识有机结合,才能有效解决问题。在模型建立过程中,不要害怕尝试不同的方法和思路,对于复杂问题,可以先从简单情况入手,逐步深入,如本题从问题一到问题三,难度逐渐增加,我们通过逐步分析和建模,最终解决了复杂问题。此外,合理选择和运用软件工具能大大提高效率,MATLAB 在处理数学计算和可视化方面的强大功能,为我们解决本题提供了很大帮助 。在建模过程中,还需要不断验证和改进模型,通过灵敏度分析等方法,检验模型的合理性和稳定性,对模型进行优化和完善。

(三)拓展思考方向

基于本题,我们可以进一步提出一些拓展问题,鼓励大家深入思考和探索。如果考虑海浪的周期性波动对系泊系统的影响,该如何改进现有的模型呢?海浪的波动会产生额外的冲击力和周期性的作用力,这可能需要引入波动理论和相关的数学模型来描述海浪,并将其与现有的系泊系统模型相结合,分析海浪作用下系泊系统各部分的受力和运动状态变化。又或者,若要在系泊系统中增加更多功能模块,如太阳能板用于供电,这会对系泊系统的设计和性能产生哪些影响?增加太阳能板后,系统的重心、受力分布以及浮标的吃水深度和游动区域等都可能发生改变,需要重新评估和优化系泊系统的参数 。另外,在实际应用中,系泊系统的成本也是一个重要因素,如何在满足性能要求的前提下,建立成本优化模型,选择最经济的锚链型号、长度和重物球质量等,也是一个值得深入研究的方向。通过对这些拓展问题的思考和研究,可以进一步加深对系泊系统设计和数学建模的理解,提升解决实际问题的能力。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐