数学建模-寻找失事客机黑匣子(2)
|字数总计:1.3k|阅读时长:5分钟|阅读量:|
问题描述
原问题请参考第一篇博客
- 假设黑匣子落水之后,不考虑洋流流动对黑匣子沉降过程的影响,建立模型描述黑匣子在水中沉降过程轨迹。如图1所示,假设黑匣子落水点所对应的海底位置为1,落水时沿着图1中指定的虚线方向沉海,给出黑匣子沉在海底的位置,并指出在图形中的哪个区域范围。
符号说明
模型建立与求解
问题二
模型分析
现今为了解决水上事故后定位打捞黑匣子困难以及陆地事故后黑匣子存活率达不到100%的难题,抛放式黑匣子应运而生。此类黑匣子可通过其坠毁感知传感器监控飞机事故时触地或坠海瞬间的特征参数异常变化,迅速控制其与机体抛放分离,原理与汽车在撞击瞬间释放安全气囊相似。黑匣子在事故瞬间离机后,如果落在陆地,可避免机体残骸的冲击和火烧等破坏。
所以我们假设黑匣子在飞机坠海瞬间即与飞机脱离,保持飞机坠海前瞬间的速度,水平速度约为171m/s,竖直速度约为156.35m/s且黑匣子与海面接触后瞬间速度不变。经资料查询假设,黑匣子质量m’=50kg ,尺寸为50cm×20cm×15cm。即体积为V′=0.015m3
黑匣子在海中沉降过程中,受到如下力:
- 水的粘滞阻力f′,其大小与速度的平方成正比,方向与前进速度相反,可沿竖直与水平速度方向v1′,v2′上分解为f1′,f2′
- 水平方向粘滞阻力公式f2′=k2′v22
- 竖直方向粘滞阻力公式f1′=k1′v12
- 受到水的浮力F′,其大小恒定,方向始终竖直向上
- F′=ρ水gV=1000∗9.8∗0.015=147N
- 受到自身的重力G′,其大小恒定,方向始终竖直向下
- G′=m′g=490N
经查阅相关资料得出如下系数,
竖直方向粘滞阻力系数k1′=0.2
水平方向粘滞阻力系数k2′=0.06
第i时间段末的速度
v1′(i),v2′(i)分别表示第i时间段末的竖直与水平的速度
第i时间段的粘滞阻力
f1′(i),f2′(i)分别表示第i时间段末的竖直与水平的粘滞阻力
第i时间段的竖直加速度
a1′(i)=g−m′F′+f1′(i−1)
第i时间段的水平加速度
a2′(i)=m′f2′(i−1)
第i时间段末时刻深度,垂直速度,水平速度,水平位移同之前一样
初值说明
初始深度h′(0)=0
初始竖直速度v1′(0)=156.35m/s
初始水平速度v2′(0)=171m/s
代码实现
1 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
| from functools import lru_cache k1 = 0.2 k2 = 0.06 g = 9.8 m = 50 F = 147 dt = 0.001
@lru_cache def f1(i): return k1*v1(i)**2
@lru_cache def f2(i): return k2*v2(i)**2
@lru_cache def a1(i): return g - (F + f1(i-1)) / m
@lru_cache def a2(i): return f2(i-1) / m
@lru_cache def v1(i): if i == 0: return 156.35 return v1(i-1) + a1(i) * dt
@lru_cache def v2(i): if i == 0: return 171 return v2(i-1) - a2(i) * dt
@lru_cache def s(i): if i == 0: return 0 return s(i-1) + 0.5 * dt * (v2(i) + v2(i-1))
@lru_cache def h(i): if i == 0: return 0 ret = h(i-1) - 0.5 * dt * (v1(i) + v1(i-1)) if ret < -5000: return -5000 return ret
with open('output.csv', 'w') as f: H = h(0) i = 1 while H != -5000: H = h(i) S = s(i) V1 = v1(i) V2 = v2(i) A1 = a1(i) A2 = a2(i) tup = (i*dt, H, S, V2, V1, (V1**2+V2**2)**0.5, A2, A1, (A1**2+(A2+g)**2)**0.5,0) f.write("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f\n" % tup) print("时间: %fs, 高度: %fm, 水平位移: %fm,水平速度: %f,竖直速度: %f, 合速度:%f," "水平加速度: %f, 竖直加速度: %f,合加速度: %f,G:%f" % tup) i += 1
|
数据分析
撞击点预测
若海底不发生撞击,那么在下降5000m的水平位移与竖直位移的轨迹如下图所示,
题目所给海底地形如下图所示,
地形图与轨迹图的交点即为海底的撞击点,大致在海底4000m左右,水平偏移2500m左右,撞击点处于区域I
参考文献
黑匣子