本文译自作者的韩语原文。 阅读原文(한국어)
四道激波胜过一道 — 超声速进气道的斜激波串
把减速拆成几道弱斜激波,熵增按三次方缩小。结尾那道正激波仍然得留下。
1944 年的哥廷根,Oswatitsch 被冲压进气道卡住了。Mach 3 的来流用一道激波立住,三分之二的压力就没了。他选的不是压得更狠,而是用几块斜板把折角拆开。
把 M1 滑条往上推,θ–β 曲线的膝部往右移。把折角 θ 推过最大角,贴体的激波就掉到鼻头前面。Weak 和 Strong 两个按钮,在同一个 θ 的两个波角之间切换。
M1 越快,能折的角度越大。θ 一过膝部, 就塌下去,切向箭头在激波前后保持同样的长度。被削掉的只有法向分量。
激波夺走的是什么
穿过激波,质量、动量、能量都还在。滞止温度 也原样留下。消失的只有滞止压力 。
是增加的熵, 是气体常数。熵增加多少,总压就削掉多少。
进气道能交给发动机的功,上限就是总压。滞止压力一降,喷管的膨胀比跟着死。那次膨胀会不会在喉部被堵住,是 喉部之后必须扩张的喷管 里的问题。进气道的成绩记成一个恢复系数 。
Mach 3 的一道正激波给出 0.3283。总压的 67% 散成了热。
斜着切入,只剩法向分量
激波相对来流斜着立,平行于波面的速度照旧通过。压力梯度只垂直于波面。斜激波就是只感受法向分量的正激波。波角 一定,有效 Mach 数是
越小, 越靠近 1。即便是 Mach 3,只要 ,激波感受到的就是 Mach 1.30。
折角 和波角 被一个式子绑在一起。
是比热比。空气是 1.4。后面的斜板计算全部由这个式子决定。
一个 θ–β–M,两个答案#
给定 和 去解 ,根有两个。波角小的是弱解,大的是强解。弱解后面通常仍是超声速,强解后面变成亚声速。背压不是特别高的时候,贴在楔上的激波取弱的那一支。前面的 Strong 按钮就是另一个根。
把 一直加大,根会消失。每个 Mach 都有一个最大折角 。
| 1.5 | 2.0 | 3.0 | 5.0 | |
|---|---|---|---|---|
| 12.1° | 23.0° | 34.1° | 41.1° |
时,激波贴不住物体,变成脱体激波。鼻头前面实质上是一道正激波,恢复系数就在那里掉下去。
损失按三次方缩小
弱激波的熵增并不正比于 。它按三次方走。
时系数是 0.162。 减半,损失变成八分之一。
Mach 3 一次立住时,激波要承担的 是 8。拆成四段,每一段的损失按三次方变小,段数乘回去,总和仍比原来小。 一次的总压损失是 2.1%。同一件事拆成两次 ,每次 0.33%,加起来也不到 0.7%。
把 Mach 3 进气道切成几段#
一块一块加上 8° 斜板,最后立一道正激波。每一块都用前一块留下的当地 Mach 重算。
import math
GAMMA = 1.4
def stagnation_ratio(mn):
"""承受法向 Mach 数 mn 的激波的总压比 p02/p01"""
g = GAMMA
a = ((g + 1) * mn**2 / 2) / (1 + (g - 1) * mn**2 / 2)
b = (g + 1) / (2 * g * mn**2 - (g - 1))
return a ** (g / (g - 1)) * b ** (1 / (g - 1))
def downstream_normal_mach(mn):
g = GAMMA
return math.sqrt((1 + (g - 1) / 2 * mn**2) / (g * mn**2 - (g - 1) / 2))
def deflection(mach, beta):
"""给定波角 beta(rad) 所产生的偏转角 theta(rad)"""
g = GAMMA
num = mach**2 * math.sin(beta) ** 2 - 1
den = mach**2 * (g + math.cos(2 * beta)) + 2
return math.atan(2 / math.tan(beta) * num / den)
def wave_angle_weak(mach, theta):
"""产生 theta 的弱解 beta。拧不出来则返回 None"""
lo, hi = math.asin(1 / mach), math.pi / 2
grid = [lo + (hi - lo) * i / 4000 for i in range(4001)]
peak = max(grid, key=lambda b: deflection(mach, b))
if theta > deflection(mach, peak):
return None
a, b = lo, peak
for _ in range(80):
mid = 0.5 * (a + b)
if deflection(mach, mid) < theta:
a = mid
else:
b = mid
return 0.5 * (a + b)
def inlet_recovery(mach_inf, n_ramps, ramp_deg):
"""穿过 n 块斜板 + 终端正激波之后的总压恢复系数"""
theta = math.radians(ramp_deg)
total, mach = 1.0, mach_inf
for _ in range(n_ramps):
beta = wave_angle_weak(mach, theta)
if beta is None:
break
mn = mach * math.sin(beta)
total *= stagnation_ratio(mn)
mach = downstream_normal_mach(mn) / math.sin(beta - theta)
return total * stagnation_ratio(mach)
for n in range(5):
print(f"斜板 {n} 块: 恢复系数 {inlet_recovery(3.0, n, 8.0):.4f}")输出是这样。
斜板 0 块: 恢复系数 0.3283
斜板 1 块: 恢复系数 0.4497
斜板 2 块: 恢复系数 0.5808
斜板 3 块: 恢复系数 0.7101
斜板 4 块: 恢复系数 0.8235改斜板块数、每块的折角和来流 Mach,恢复系数的柱子会按表里没有的组合重算。关掉结尾激波的开关,最后被削掉的那一份就从柱子里消失。
Mach 3、8°、四块斜板时,柱子站在 0.82 附近。把折角推到 14°,后面的斜板变红。流动已经慢到这个角度不再有弱解。
把恢复系数折回熵,2.5 倍看起来就不一样。。0.3283 是 1.114,0.8235 是 0.194。恢复系数变成 2.51 倍,熵增却缩小到 1/5.7。指数把小损失藏进恢复系数这个数里。
每一块抬升的幅度是 0.121、0.131、0.129、0.113。第四块仍然加上 0.11。
把结尾激波的 13% 读成乘数 0.87,它前面的恢复系数是 。四道斜激波削掉的份额大约 0.05,最后一道正激波削掉的份额大约 0.12。抹不掉的那一道,拿走的比所有斜板加起来还多一倍。
把 的 2.1% 和 的 0.33% 放到三次方旁边, 的比 0.69 对 0.3225,三次方大约是 9.8。损失比是 6.4。Mach 1.30 已经走出这个近似舒服的区间。
Mach 2.4、6° 的 0.5401 和 0.9096,写成 是 0.616 和 0.095。熵缩小到 1/6.5,恢复系数只升到 1.68 倍。因为一开始那道正激波就没那么差。
四次抬升都还在 0.11 以上,并不只是说这块 8° 离极限折角还远。Mach 3 的 是表里的 34.1°,四块加起来的 32° 就贴在它下面。再加一块到 40°,就越过那个 34.1°。
四块 8° 斜板把恢复系数从 0.33 抬到 0.82,总折角 32°。加上去的就是四块斜面。Mach 2.4、6° 再走一遍,是 0.5401,两块 0.7440,四块 0.9096。
斜板数目推到无穷、每块折角收到 0,压缩就靠近等熵。恢复系数 1 在理论上打开。这就是协和和 SR-71 用曲面斜板和可动中心锥的位置。
切分并不是免费的
不立二十块斜板,另有原因。每加一块,激波碰到罩唇的点就往后推。进气道一长,重量和摩擦就跟上。用机身长度去买几个百分点的恢复系数,这笔交易通常是亏的。
角度按某一个 Mach 把激波收到罩唇上。离开那个 Mach,激波落在唇前或唇内,溢流阻力就出来了。块数越多,对这种错位越敏感。
每一道激波碰到壁面边界层,压力突然升高。这种干扰一旦引起分离,算出来的恢复系数就没有意义。进气道在斜板附近开抽吸缝,原因在这里。
压气机要亚声速来流。流动总得在某处跨过声速,所以结尾正激波删不掉。斜板只是把最后那道激波遇到的 Mach 压低,并不取消激波。四块斜板时,结尾激波发生在 Mach 1.67,这一道就拿走 13%。
把结尾正激波当成又一块斜板的失误
再加斜板、把恢复系数贴向 1,是没看见结尾激波还在拿走 0.12。这一道比四块斜板加起来的 0.05 还大。在为第五块付出长度和偏离设计点之前,先要定的是跨声速的那一道落在哪个 Mach。
0.82 是激波还贴在壁上时数出来的。边界层扛不住这次压力升高、一旦分离,表就到头了。层裂开、转成湍流的那个厚度 上,分离从多高开始,这个恢复系数并不说。
相关文章
如果对您有帮助,请分享。