【问题标题】:Determining a mean camber line确定平均弧线
【发布时间】:2015-09-15 00:50:20
【问题描述】:

各位程序员,

我知道这有点超出您的管辖范围,但我想知道您是否有时间,是否可以帮助我完成一个“程序”。不是考虑数学,而是最好的方法。

这是一个翼型/轮廓。通常,配置文件由两组数据定义。一是平均弧线的位置,以 x,y 的形式给出,其中 x 通常以弦长的百分比给出。第二组数据是弦长百分比的厚度。厚度总是垂直于弧线(!)绘制的,这给出了轮廓点。

现在,我有一个相反的问题 - 我有一个轮廓点,我需要确定弧线的位置。通过点的插值方法可能会有所不同,但这没关系,因为我总是可以根据需要插值任意多的点,所以最终它是线性的。

请记住,由于是垂直于中弧线绘制的,因此中弧线的位置在轮廓线的上下点之间并不平均(称为轮廓的背面和正面)。


编辑(这是如何在纸上完成的): 呃,令人痛苦的大规模(我在这里说的是长 A0 纸,即 1189x5945mm 的大型绘图台。你从绘图开始第一条弧线(CL)迭代通过面部和背部点之间的中点(平均点)在相同的x坐标处。之后你画了很多垂直线,垂直于那个CL,并找到它们在面部和背部之间的中点(正面和背面的那些点将不再具有相同的 x 值)。连接这些点,这就是您的第二次迭代 CL。之后,您只需通过在第二个 CL 上绘制垂直线来重复该过程的第二步 ...(它通常在 3 或 4 次迭代后收敛)。


第 2 次编辑: 将图片替换为更好地显示思维如何“绘制”到弧线 (CL) 上的图片。另一种呈现方式,如图片 2。如果你画了很多圆,它们的中心点在弧线上,半径就是厚度,那么这些圆的切线就是轮廓的线(构成曲线)。

弧线不是中线(面点和背点之间的平均值);它可以与它重合(因此通常是混淆)。这种差异很容易在更多弯曲的轮廓(更弯曲的轮廓)中看到。


第三次编辑 - 为了说明平均线和弧线之间的显着差异(抱歉我花了这么长时间才画出来),这里是通常如何在“纸上”完成的过程。这是一个相当变形的配置文件,因为可以更容易地显示两者之间的差异(尽管这样的配置文件也存在)。

在这张图片中显示了平均线 - 它是由面部和背部的平均值在相同的 x 坐标上形成的线。

在这张图中,在平均线上,绘制了垂直线(绿色线)。这些垂直线的中点构成了弧线的第一次迭代(红色间歇线)。看看这些圆圈与第一张图片相比如何更适合机翼内部。

在下图中,显示了弧线的第二次迭代,以及第一张图片的平均线,以说明两者之间的差异。那些圆圈现在在里面更合适了(除了第一个飞出去的圆圈,但不要介意他)。

【问题讨论】:

  • 真是个大问题。在math.stackexchange.com 上,您可能会有一些运气。
  • 你现在是如何在纸上做的?
  • @Rook:我怀疑唯一的方法基本上是模仿你手动使用的方法。好处是大多数步骤都非常简单。迭代变得乏味,但不会影响计算机......
  • 您应该将您对纸质方法的描述添加到主要问题中。那绝对是可以变成程序的东西!
  • @Rook:然后在代码中做同样的事情。信不信由你,计算机在几何计算方面比人类快得多。您描述的算法听起来非常高效且不复杂。

标签: algorithm geometry


【解决方案1】:

根据我从您的图表中收集到的信息,弧线的定义是它的切线将上下边缘的两条切线之间的角度平分。

换句话说,你的弧线始终是两条边之间的中点,而是沿着上下边之间最短距离的线。

那么,鉴于 y 坐标 y=top(x)y=bot(x),你为什么不呢:

<pseudocode>
for each x:
  find x2 where top(x)-bot(x2) is minimized
  camber( mean(x,x2) ) = mean( top(x),bot(x2) )
</pseudocode>

然后插值等等?

编辑

对不起!再三考虑,我认为应该是

  find x2 where ( (top(x)-bot(x2))^2 + (x-x2)^2 ) is minimised

显然你应该尽量减少垂直线的长度。

是吗?

【讨论】:

  • 平分线和红线之间的90度,对吧?
  • 红线平分切线之间的角度。红线是外倾的切线,它是由上切线和下切线的相同角度决定的,沿着一条上下距离最小的线。关键是,用红色标记的两个角度是相同的。
  • 怎么可能在红线和外倾切线之间?红线不是切线吗?
  • .. 但是,是的,我认为您在这里有一些东西... +1 努力,直到我验证它是否有效;-)(顺便说一句,你画的是什么?)跨度>
  • 我想画同一张图。您可以在下表面上选择一个点,然后沿着上表面移动,直到找到一个线段,其垂直平分线也平分顶部和底部切线的角度(如图所示)。然后,该段将在弧线上有一个中点。
【解决方案2】:

我是堆栈溢出的新手,但这是我已经解决了相当多的问题,并认为我会发布解决该问题的替代方法。 这种方法使用了 Voronoi 图的概念: http://en.wikipedia.org/wiki/Voronoi_diagram 本质上,创建了一张地图,将空间划分为包含一个输入点(翼型的 x,y)的区域。这里的重要部分是该区域内的任何点都最接近该区域中的输入点。此空间划分创建的节点与至少三个输入点等距。

这是有趣的部分:距中心点的三个等距点可用于创建一个圆。正如您所提到的,内切圆中心点用于绘制平均弧线,因为内切圆测量厚度。

我们现在很接近了。此应用程序中 voronoi 图的性质意味着我们机翼区域内的任何 voronoi 节点都是这些“厚度圆”之一的中心点。 (这会遇到一些非常接近 LE 和 TE 的问题,具体取决于您的数据。我通常在这里应用一些过滤)。

基本结构:

Create Voronoi Diagram
Extract Voronoi Nodes
Determine Nodes Which Lie Within Airfoil
Construct Mean Camber Line From Interior Nodes

我的大部分工作都在 Matlab 中,它内置了 voronoi 和 inpolygon 函数。因此,我对开发这些功能的帮助不大,但它们应该在其他地方有很好的记录。

前沿/前沿问题

我相信您已经经历或知道,在靠近 LE/TE 时很难很好地测量厚度。当厚度圆小于边缘半径时,这种方法将在节点中构造一个叉。检查此前叉的数据会发现弧线错误的点。要构建一直到箔边缘的弧线,您可以外推弧线(二阶或三阶应该没问题)并找到交叉点。

【讨论】:

  • 我很高兴看到这种新方法,但当我应用 here 的计算并看到一个非常曲折的 MCL 时有点失望。但是,当我增加部分的点密度时,结果要好得多。只是想把它传递下去。顺便说一句,我使用压缩机叶片和叶片翼型,试图在锻造/修整后穿上 LE 型材,你提到的那些“边缘问题”快让我发疯了。感谢您恢复我的理智!
  • 很高兴您试用了它,并且效果还不错。点密度是这个问题的一大限制。如果您想象一个圆适合顶部或底部的点,那么点之间的距离将在轮廓之外创建该圆的弧。您可以将其中的近似误差计算为:(厚度)/2*(1-sqrt(1-(pointSpaceing/thickness)^2)))。我的主要应用是为涡轮机翼型截面检查提取 CMM 数据的参数。幸运的是,我们使用的设备允许非常高的点密度,这种方法对我们来说效果很好。
  • 另外,如果您花费大量时间处理叶片和叶片(我当然会)。您可能会发现这些感兴趣的论文:link.springer.com/article/…。这个是付费的,最终对我的应用程序不起作用,但还是不错的读物:ieeexplore.ieee.org/xpl/…Happy turbining!
  • 我将它用于完全相同的目的,也(偶尔)用于低压涡轮部分零件。我的点密度也可能非常高——我通常通过 CMM 点创建样条线,然后我可以根据需要对它们重新采样。说到样条,我认为作为最后的“完成”通道,我会“走”MCL 样条:取一条法线,找到它与 AF 样条(ccv 和 cvx)的 (2) 个交点,然后调整 MCL 点沿法线平衡距离。我认为应该通过一次。感谢您的链接。
  • 很有趣,我很想听听这对您有什么作用,并亲自试一试。我仍处于开发阶段,但我对 Voronoi 方法的潜力感到非常兴奋。它可能不是最终的解决方案或正确的解决方案,但在这个领域似乎很新颖。很高兴在这里找到一个做同样事情的我!我很乐意反弹可能对这个线程不是超级相关的想法。如果您有兴趣,我相信我的电子邮件可以在我的个人资料中找到。
【解决方案3】:

我认为绘制翼型弧线的最佳方法是在 CATIA 中加载轮廓。然后在CATIA中我们可以画出与轮廓两侧(吸力侧和压力侧)相切的圆。然后我们可以连接这些圆的中心,从而准确地找到弧线。

【讨论】:

    【解决方案4】:

    平均弧线是与上线和下线等距的点集吗?如果这是定义,那它与 Sanjay 的不同,或者至少在我看来不一样。

    最直接的计算方法:投射垂直于上线的许多射线,垂直于下线的许多射线,并查看来自上方的射线与来自下方的射线相交的位置。具有最接近相等距离的交点近似于平均弧线(定义见此处);对它们进行插值,距离的差异会影响权重。

    但我敢打赌,您从 cmets 粘贴的迭代方法更容易编码,而且我猜会收敛到相同的曲线。

    【讨论】:

    • 嗨。我不确定这是否可行。我将不得不通过一个例子来检查它。但是,我已经说明了两者之间的区别(平均线和弧线)以消除混淆。希望对理解有所帮助。
    • @Rook,所以,如果你看看你的新黑色图表,你会看到圆的切线(和实际的机翼)被圆的中心一分为二,正如我想的那样.这不应该意味着,使用相似的三角形,您实际上不需要删除任何垂直线,只需最小化边缘之间的距离?
    • @Sanjay - 坦率地说,我不确定了。我必须先检查一下 - 但是,这不是您的第二种方法(您的答案中建议的方法)吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 2017-09-01
    • 2019-09-06
    • 2023-03-09
    • 2023-03-12
    • 2012-07-07
    • 2018-04-14
    相关资源
    最近更新 更多