我在计算坐标方面有点小问题。给出了具有以下示例坐标的两个列表中的翼型剖面:
示例:
x_Coordinates = [1, 0.9, 0.7, 0.5, 0.3, 0.1, 0.0, ...]
y_Coordinates = [0, -0.02, -0.06, -0.08, -0.10, -0.05, 0.0, ...]
图1:
关于概要文件的唯一已知信息是上面的列表和以下事实:
现在我想确定
到目前为止,我一直使用最小的x坐标作为前缘。但是,这在 由于最小的x坐标位于轮廓的上表面,所以遵循示例性轮廓。在
图2:
有没有人知道,我怎样才能方便地计算/确定这些数据?在
编辑
一个完整的数组数据样本
^{pr2}$
好吧,有好几年我用翅膀做了些事情。在
我没有任何倾斜的翅膀数据,在你的图像上我发现的最接近的是:
前缘不适用于普通机翼
只要找到
dx
符号翻转的点,然后计算然后标记
dx
为正或负的区域,并找到它们之间的中间(通常是dx==0
表示该区域)。将边缘点标记为ix1
外倾角线
对于精确的几何体,您需要从每一侧铸造的法线的交点,以便:
i
这是可行的,但复杂程度极高
近似曲面线
不太精确,但速度快得多,因此:
i
axis0
点。对所有点i=(0-ix1)
(红线)执行此操作axis1
(深红色)axis0,axis1
之间的平均值这可以用同样的方法进行,结果是蓝色轴多段线
<强> C++源:< /强>
^{pr2}$List<double> xxx;
只是我的动态列表模板,与double xxx[];
相同xxx.add(5)
;在列表末尾添加5xxx[7]
访问数组元素xxx.num
是数组的实际使用大小xxx.reset()
清除数组并设置xxx.num=0在[edit1]校正前缘点
有一个疯狂的想法,找到边缘点运行加上一些代码调整,结果是足够好的对我:)所以首先一些解释:
轴的算法保持不变,但只使用尚未使用的
ix1
边界的点。。。如果没有找到停止点(顶部图像大小写),也只计算有效的最近点(在相反的一侧)。从这一点找到离最后一个轴点最远的点,这是前缘点。在这种方法有更精确的输出(
axis0,axis1
更接近)<强>现在C++代码:
常数
n=4
只是为了安全重叠搜索最近点,它应该是pnt.num
的一个分数。有时最近点在最后找到的最近点之前,这取决于展位侧面的曲率。过大的n
将导致速度减慢,如果n>pnt.num/4
也可能使输出无效。在如果太小,那么对于较小的曲率半径将降低精度此方法依赖于足够的点覆盖。如果机翼的采样点计数过低,可能会导致不准确。源代码几乎是相同的3倍,您可以选择哪个
ix1
来记住(从第一个或第二个搜索)它们是相邻的点测试概况:
有点过时了,但我还是看到了这个帖子。在
我对前缘圆的解决方案是首先通过翼型坐标插值一条样条曲线。这给翼型一个平滑的参数表示。然后计算参数曲线的曲率圆和曲率圆,取最小圆。这将定义前缘位置并返回那里的半径。在
下面有两个Python函数(依赖于numpy和scipy包)执行此操作:
函数计算参数曲线的曲率特性:
^{pr2}$示例:
详细信息:
请注意,我还在前缘使用了样条曲线的细化。这里没有给出相应的算法(作为非主题)。在
相关问题 更多 >
编程相关推荐