优秀的编程知识分享平台

网站首页 > 技术文章 正文

用python来设计NACA 4位数飞机翼型的截面形状

nanyue 2024-08-05 20:13:08 技术文章 6 ℃

用python来设计NACA4位数翼型的截面形状

NACA 4 位数翼型是飞机上使用的典型机翼。设计具有良好气动性能的机翼不仅仅是飞机工业的工作,能够自由绘制机翼的横截面形状将在各种分析中取得进展。本文介绍如何使用 Python 绘制 NACA 4 数位机翼。

  • 什么是 NACA 4 位数机翼?

我在其他文章中已经详细说明过了,请参考

翼型类型和特征------从莱特兄弟飞机到现代客机


NACA 4数位翼型参数

翼型最前端称为前缘,最后端称为后缘,但从前缘到后缘的直线称为弦线(Chord line)。

使弦线向上弯曲的线称为翘曲曲线或弧线(Camber line),以这种方式弯曲机翼可提高空气动力学性能

机翼在图中y轴方向有厚度,在横轴x上有分布,而不是均匀分布。这种分布称为翼型厚度分布。

在这里,假设最大厚度比t最大翘曲位置p最大翘曲值m为参数。都是表示弦长的百分比数值。翼型的命名方式为NACA XXXX,NACA后第一位数表示m,第二位数表示p,后两位表示t。

比如说经典的NACA 4212翼型来说,4代表弧线最大翘曲值是弦长的%4,2代表的是最大翘曲位置在前缘开始,最大弦长的%2的位置,12代表的是最大厚度是弦长的%12.

我们有这些参数后就可以设计翼型的形状了


定义NACA4位数翼型的公式

  • 翼厚分布


  • 弧线



NACA4位数翼型的设计示例

NACA 4位数翼型是通过将公式(2)的弧线向上添加到公式(1)定义的叶片厚度分布的上表面和下表面来定义的。

NACA 4 位数翼型的一些形状如下所示。

NACA 4位数翼型的python代码


下面整个代码中的我标有注释说明,比如说如果要绘制NACA3415

「NACA4(m=3, p=4, t=15, x_resolution=300)」

增加 x-resolution 平滑横截面。使用 3D 打印机打印时,平滑度可能会发生变化。

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

76

77

78

79

80

81

82

83

84

85

86

87

88


import numpy as np

from matplotlib import pyplot as plt


# 从最大翘曲量m, 最大翘曲位置p, 最大厚度比t等参数设计NACA4位数翼型形状形状的设计函数

def NACA4(m, p, t, x_resolution):

# 无次元横轴(0<=x<=1)

x = np.linspace(0, 1, x_resolution)


# 和实际单位保持一致

t = t / 100

m = m / 100

p = p / 10

print('t=', t, 'm=', m, 'p=', p)


# 翼厚分布

yt = (t / 0.20) * \

(0.29690 * np.sqrt(x)

- 0.12600 * x

- 0.35160 * (x ** 2)

+ 0.28430 * (x ** 3)

- 0.10150 * (x ** 4))


# 弧线(翘曲)

yc_front = (m / (p ** 2)) * ((2 * p * x) - (x ** 2))

yc_back = (m / (1 - p) ** 2) * ((1 - 2 * p) + (2 * p * x) - (x ** 2))


# 从翼厚分布和弧线来画出翼型

yc = []

for i in range(len(x)):

if x[i] < p:

yc.append(yc_front[i])

else:

yc.append(yc_back[i])


# 从翼厚分布和翘曲弧度来反映出形状

y_top = yt + yc

y_bottom = - yt + yc


# 为了后表面闭合末尾设置为0

y_top[-1] = 0

y_bottom[-1] = 0


# 设置z坐标

z = np.zeros_like(x)


return x, y_top, y_bottom, yc, z


# 实行计算NACA4位数翼型的截面3D点阵列坐标的函数

x, y_top, y_bottom, yc, z = NACA4(m=3, p=4, t=15, x_resolution=300)



#从这里开始画图-------------------------------------

# 字形的种类和尺寸的设置

plt.rcParams['font.size'] = 14

plt.rcParams['font.family'] = 'Times New Roman'


# 刻度这只在内测

plt.rcParams['xtick.direction'] = 'in'

plt.rcParams['ytick.direction'] = 'in'


# 添加图上下左右的刻度线

fig = plt.figure()

ax1 = fig.add_subplot(111)

ax1.yaxis.set_ticks_position('both')

ax1.xaxis.set_ticks_position('both')


# 设置XY标签

ax1.set_xlabel('x [-]')

ax1.set_ylabel('y [-]')


# 规格设置

ax1.set_xlim(0, 1)

ax1.set_ylim(-1, 1)


# 准备数据图同时,设置标签、线条粗细和图例。

ax1.plot(x, y_top, label='Top', lw=1, color='green')

ax1.plot(x, y_bottom, label='Bottom', lw=1, color='blue')

ax1.plot(x, yc, label='Camber', lw=1, color='red')

ax1.grid()

ax1.legend()


# 设置布局

fig.tight_layout()


# 表示出数据图

plt.show()

plt.close()

# ---------------------------------------------------


  • 实行结果

下图是matplotlib执行结果得到的绘图结果。绿线是上表面,蓝线是下表面,红线是弧线。


总结

这篇文章介绍了设计NACA 4位数翼型图做需要的参数,并通过自动设计的python程序来实现。通过翼型的自动绘图,可以大量较少航空设计师们的时间。


END


往期推荐


翼型的空气阻力

翼型气动特征的基础

气动中心和风压中心——气动中心的优点和计算方法

翼型升力,阻力,俯仰力矩的定义

作用在翼型上的空气力 - 升力、阻力、俯仰力矩


点击上方蓝字关注我们

Tags:

最近发表
标签列表