最大力系数计算
函数描述
估计模型入水时的最大力系数。
参数
- π:圆周率。
- V0:初始速度。
- Γ:俯仰角(度)。
- Δ:空化器倾角(度)。
- Ψ0:初始俯仰角(度)。
- FlagDive:是否为入水模式。
- βrad:空化器角度(弧度)。
- Δrad:空化器倾角(弧度)。
- Ψ0rad:初始俯仰角(弧度)。
- Γrad:俯仰角(弧度)。
- sin(Γ):俯仰角的正弦值。
- Mach:马赫数。
返回值
- Cnmax:最大力系数。
计算公式
1. 空化器补角的一半
α1=2π−βrad
2. 入水模式
2.1 圆盘空化器
如果α1<0.001:
- 垂直入水(正碰):
Cnmax=1.87+Mach2.13
- 斜入水:
Cnmax=0.8cos(Δrad+Ψ0rad)(1−cos(Δrad+Ψ0rad+Γrad)sin(Γ))
2.2 锥形空化器
如果α1≥0.001:
Kα=1−tan(α1)(84+π2+log(tan(α1)4))/4
CXmax0=π2tan(α1)32Kα
A=CXmax0−1.872.13
Cnmax=1.87+Mach+A2.13
3. 非入水模式
如果α1<0.001:
Cnmax=1.87+Mach2.13
如果α1≥0.001:
Kα=1−tan(α1)(84+π2+log(tan(α1)4))/4
CXmax0=π2tan(α1)32Kα
A=CXmax0−1.872.13
Cnmax=1.87+Mach+A2.13
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 (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 SIN_G = self.SIN_G 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: 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
|