最大力系数计算

函数描述

估计模型入水时的最大力系数。

参数

  • π\pi:圆周率。
  • V0V_0:初始速度。
  • Γ\Gamma:俯仰角(度)。
  • Δ\Delta:空化器倾角(度)。
  • Ψ0\Psi_0:初始俯仰角(度)。
  • FlagDive\text{FlagDive}:是否为入水模式。
  • βrad\beta_{\text{rad}}:空化器角度(弧度)。
  • Δrad\Delta_{\text{rad}}:空化器倾角(弧度)。
  • Ψ0rad\Psi_{0\text{rad}}:初始俯仰角(弧度)。
  • Γrad\Gamma_{\text{rad}}:俯仰角(弧度)。
  • sin(Γ)\sin(\Gamma):俯仰角的正弦值。
  • Mach\text{Mach}:马赫数。

返回值

  • CnmaxC_{n\text{max}}:最大力系数。

计算公式

1. 空化器补角的一半

α1=πβrad2\alpha_1 = \frac{\pi - \beta_{\text{rad}}}{2}

2. 入水模式

2.1 圆盘空化器

如果α1<0.001\alpha_1 < 0.001

  • 垂直入水(正碰)
    Cnmax=1.87+2.13MachC_{n\text{max}} = 1.87 + \frac{2.13}{\text{Mach}}
  • 斜入水
    Cnmax=0.8cos(Δrad+Ψ0rad)(1sin(Γ)cos(Δrad+Ψ0rad+Γrad))C_{n\text{max}} = 0.8 \cos(\Delta_{\text{rad}} + \Psi_{0\text{rad}}) \left(1 - \frac{\sin(\Gamma)}{\cos(\Delta_{\text{rad}} + \Psi_{0\text{rad}} + \Gamma_{\text{rad}})}\right)

2.2 锥形空化器

如果α10.001\alpha_1 \geq 0.001
Kα=1tan(α1)(4+π28+log(4tan(α1)))/4K_{\alpha} = 1 - \tan(\alpha_1) \left(\frac{4 + \pi^2}{8} + \log\left(\frac{4}{\tan(\alpha_1)}\right)\right) / 4
CXmax0=32Kαπ2tan(α1)C_{X\text{max}0} = \frac{32 K_{\alpha}}{\pi^2 \tan(\alpha_1)}
A=2.13CXmax01.87A = \frac{2.13}{C_{X\text{max}0} - 1.87}
Cnmax=1.87+2.13Mach+AC_{n\text{max}} = 1.87 + \frac{2.13}{\text{Mach} + A}

3. 非入水模式

如果α1<0.001\alpha_1 < 0.001
Cnmax=1.87+2.13MachC_{n\text{max}} = 1.87 + \frac{2.13}{\text{Mach}}

如果α10.001\alpha_1 \geq 0.001
Kα=1tan(α1)(4+π28+log(4tan(α1)))/4K_{\alpha} = 1 - \tan(\alpha_1) \left(\frac{4 + \pi^2}{8} + \log\left(\frac{4}{\tan(\alpha_1)}\right)\right) / 4
CXmax0=32Kαπ2tan(α1)C_{X\text{max}0} = \frac{32 K_{\alpha}}{\pi^2 \tan(\alpha_1)}
A=2.13CXmax01.87A = \frac{2.13}{C_{X\text{max}0} - 1.87}
Cnmax=1.87+2.13Mach+AC_{n\text{max}} = 1.87 + \frac{2.13}{\text{Mach} + A}

Python代码

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
def MaxLoad(self):
# , PI, V0, Gamma, Delta, Psi0, FlagDive, BetaRad, DeltaRad, Psi0Rad, GammaRad, SIN_G, Mach
"""
估计模型入水时的最大力系数。

参数:
PI (float): 圆周率。
V0 (float): 初始速度。
Gamma (float): 俯仰角(度)。
Delta (float): 空化器倾角(度)。
Psi0 (float): 初始俯仰角(度)。
FlagDive (bool): 是否为入水模式。
BetaRad (float): 空化器角度(弧度)。
DeltaRad (float): 空化器倾角(弧度)。
Psi0Rad (float): 初始俯仰角(弧度)。
GammaRad (float): 俯仰角(弧度)。
SIN_G (float): 俯仰角的正弦值。
Mach (float): 马赫数。

返回:
CnMax (float): 最大力系数。
"""
# 圆周率没啥好说的
PI = self.PI
# 初始速度
V0 = self.V0
# 空化器角度
BetaRad = self.BetaRad
# 入水状态判定
FlagDive = self.FlagDive
# 俯仰角?攻角?
Gamma = self.Gamma
# gamma的正弦值
SIN_G = self.SIN_G
# gamma弧度
GammaRad = self.GammaRad
# 空化器倾角
Delta = self.Delta
# 空化器倾角弧度
DeltaRad = self.DeltaRad
# 初始俯仰角
Psi0 = self.Psi0
# 初始俯仰角弧度
Psi0Rad = self.Psi0Rad
# 马赫数
Mach = self.Mach
# 空化器补角的一半
Alpha1 = (PI - BetaRad) / 2.0

if FlagDive: # 如果是入水
if Alpha1 < 1e-3: # 如果空化器补角的一半小于0.001,当作圆盘空化器处理
if Gamma + Delta + Psi0 == -90: # 如果是垂直入水(正碰)
CnMax = 1.87 + 2.13 / Mach # 圆盘空化器垂直入水的阻力系数
else: # 斜入水
work = DeltaRad + Psi0Rad
CnMax = 0.8 * np.cos(work) * (1.0 - SIN_G / np.cos(work + GammaRad)) # 圆盘空化器斜入水的阻力系数
else: # 锥形空化器
KAlpha = 1.0 - np.tan(Alpha1) * ((4.0 + PI ** 2) / 8.0 + np.log(4.0 / np.tan(Alpha1))) / 4.0
CXmax0 = 32.0 * KAlpha / (PI ** 2 * np.tan(Alpha1))
A = 2.13 / (CXmax0 - 1.87)
CnMax = 1.87 + 2.13 / (Mach + A) # 锥形空化器直接入水的力系数
else: # 如果不是入水
if Alpha1 < 1e-3: # 圆盘空化器
CnMax = 1.87 + 2.13 / Mach # 正碰
else: # 锥形空化器
KAlpha = 1.0 - np.tan(Alpha1) * ((4.0 + PI ** 2) / 8.0 + np.log(4.0 / np.tan(Alpha1))) / 4.0
CXmax0 = 32.0 * KAlpha / (PI ** 2 * np.tan(Alpha1))
A = 2.13 / (CXmax0 - 1.87)
CnMax = 1.87 + 2.13 / (Mach + A)

self.CnMax = CnMax