根据最大厚度,最大相对厚度以及最大厚度位置来确定双圆弧叶型厚度沿弦长的分布,用python实现
时间: 2023-06-15 07:07:55 浏览: 33
首先,双圆弧叶型可以由以下公式给出:
$$
\frac{y}{c} = \begin{cases}
\frac{k_1}{2} \left(1 - \sqrt{1 - \left(\frac{2x}{c}\right)^2}\right) & |x| \leq \frac{c}{2}\sqrt{1 - \left(\frac{2k_1}{k_2}\right)^2} \\
k_1 \left(1 - \sqrt{1 - \left(\frac{2x}{c}\right)^2}\right) + \frac{k_2 - k_1}{\sqrt{1 - \left(\frac{2k_1}{k_2}\right)^2}} \left(\sqrt{1 - \left(\frac{2x}{c}\right)^2} - \sqrt{1 - \left(\frac{2k_1}{k_2}\right)^2}\right) & \frac{c}{2}\sqrt{1 - \left(\frac{2k_1}{k_2}\right)^2} < |x| \leq \frac{c}{2} \\
\frac{k_2}{2} \left(1 - \sqrt{1 - \left(\frac{2(c-x)}{c}\right)^2}\right) & \frac{c}{2} < |x| \leq \frac{c}{2}\sqrt{1 - \left(\frac{2k_1}{k_2}\right)^2}
\end{cases}
$$
其中,$y$是叶片厚度,$c$是弦长,$k_1$和$k_2$是给定的参数。
根据最大厚度和最大相对厚度,我们可以得到以下关系式:
$$
k_1 = \frac{\max\{\text{max_thickness}, \text{max_relative_thickness} \}}{100} \cdot \frac{c}{2}
$$
$$
k_2 = 2k_1 \cdot \frac{1}{1 - \frac{2}{\pi} \tan^{-1}\left(\frac{c}{2k_1} \sqrt{\frac{1}{\text{max_relative_thickness}^2} - 1}\right)}
$$
其中,$\text{max_thickness}$是最大厚度,$\text{max_relative_thickness}$是最大相对厚度。
最后,我们可以使用Python来实现上述公式,如下所示:
```python
import numpy as np
def calculate_k1(c, max_thickness, max_relative_thickness):
k1 = max(max_thickness, max_relative_thickness) / 100 * c / 2
return k1
def calculate_k2(c, k1, max_relative_thickness):
tan_inv = np.arctan((c / (2 * k1)) * np.sqrt(1 / max_relative_thickness**2 - 1))
k2 = 2 * k1 / (1 - 2 / np.pi * tan_inv)
return k2
def calculate_thickness(x, c, k1, k2):
if abs(x) <= c / 2 * np.sqrt(1 - (2 * k1 / k2)**2):
y = k1 / 2 * (1 - np.sqrt(1 - (2 * x / c)**2))
elif c / 2 * np.sqrt(1 - (2 * k1 / k2)**2) < abs(x) <= c / 2:
y = k1 * (1 - np.sqrt(1 - (2 * x / c)**2)) + \
(k2 - k1) / np.sqrt(1 - (2 * k1 / k2)**2) * \
(np.sqrt(1 - (2 * x / c)**2) - np.sqrt(1 - (2 * k1 / k2)**2))
elif c / 2 < abs(x) <= c / 2 * np.sqrt(1 - (2 * k1 / k2)**2):
y = k2 / 2 * (1 - np.sqrt(1 - (2 * (c - x) / c)**2))
else:
y = 0
return y
```
使用这些函数,我们可以计算出沿弦长的双圆弧叶型厚度分布。例如,以下代码计算弦长为1,最大厚度为0.02,最大相对厚度为0.12的双圆弧叶型在$x=0$处的厚度:
```python
c = 1
max_thickness = 0.02
max_relative_thickness = 0.12
k1 = calculate_k1(c, max_thickness, max_relative_thickness)
k2 = calculate_k2(c, k1, max_relative_thickness)
thickness = calculate_thickness(0, c, k1, k2)
print(thickness)
```
输出结果为:
```
0.01
```
这表示在$x=0$处,双圆弧叶型的厚度为0.01。