hujunhua 发表于 2013-8-26 11:02:47

曲率随弧长均匀变化的平面曲线

由于工程上的原因,提出了一种曲率随弧长的变化率为常数的过渡曲线,用来连接两段圆弧,使得传动速度均匀变化。
虽然后来的分析表明这种曲线不能适用于两段弧的一些相对位置情况,但是,即使不为工程应用,这也不失为一个有趣而有难度的数学问题。

在这个问题中,曲率的符号需要约定。
我们约定垂直于纸面的 Z 轴,正方向向上(指向着我们),
规定曲线弧的一个方向为弧长微分 ds 的正方向,
曲线的曲率半径的方向为从切点(密切圆与曲线)指向密切圆的圆心。
当三者构成右手系时,曲率为正,构成左手系时为负。

在实际的工程问题中,两段圆弧(及其连接端)给定了起点曲率和终点曲率,假定存在曲率均匀过渡的曲线段,那么应该不难依该曲率变化率将曲线段向两端无穷延伸。
由于曲率无穷大对应的曲率圆收缩为点,所以所谓无穷延伸,表现为收敛到两个定点,一点代表曲率负无穷大,另一点代表曲率正无穷大。
从负无穷到正无穷,中间必定经过唯一的 0 曲率点,即曲线的拐点。所以曲线大致就是如下样子:


hujunhua 发表于 2013-8-26 11:25:46

可以列出一个微分方程来,不过是非线性的,看那样子没有希望用通常的方法解出来。能否通过其它方法找一个特解?

我上面给出的那个示意图是字母 S 的一种花体,谁能用数值方法先给一个精确一点的曲线样子来?

wayne 发表于 2013-8-26 13:24:15

根据 极坐标方程。貌似导出的微分方程并不复杂,不过,也难解:

\rho '(\theta )^2+\rho (\theta )^2=\frac{1}{A \theta +B}

常数A,B,还有积分常数不知道怎么确定,胡乱设置了一下,数值积分得到的图像还是比较接近的,:)



hujunhua 发表于 2013-8-27 09:42:43

一条性质和数值解曲线

我得到数值曲线了。

参考3楼的图,以拐点为弧长参数的起点,以拐切线(x轴)为切线偏转角的起始,设弧长为s, 切线偏转角度为 \theta(在平角以内就是切线的倾角),先考虑s为正的半边。

由 dk={ds}/\lambda (\lambda为常数) 积分得 k=s/\lambda,
将曲率的定义式 k={d\theta}/{ds} 代入得 \lambda*d\theta=s*ds,
积分得到 \lambda*\theta=1/2*s^2, 当s>0时即为 s=\sqrt{2*\lambda*\theta}

我们知道圆也有简明的弧长与切线偏转角的关系式 s=r*\theta, 这条曲线的上述关系式也很简明,与圆有得一比。
由此性质可以得到数值曲线。我们取一个很小的角度,比如 1 度,切线每转过 1 度,曲线弧的增长步长为ds_n=(\sqrt n-\sqrt{n-1})*\sqrt{2*\lambda*\(pi/180),以弦代弧就可以画出曲线了。

hujunhua 发表于 2013-8-27 09:55:37

咱给它取个名字,就叫双螺线吧。

正如所有的圆都是相似形,貌似所有双螺线都是相似形呃。我用上述程序无论如何也画不出不同形状的双螺线来。

hujunhua 发表于 2013-8-27 10:17:18

靠,搜到了。叫做羊角螺线,又叫柯奴螺线,还叫欧拉双头螺线。
http://upload.wikimedia.org/wikipedia/commons/6/68/Cornu_Spiral.svg
http://upload.wikimedia.org/wikipedia/commons/f/f8/Mc_CornuSpiral.png

wayne 发表于 2013-8-27 10:57:41

由 dk={ds}/\lambda (\lambda为常数) 积分得 k=s/\lambda,
\lambda*d\theta=s*ds, 积分得到 \lambda*\theta=1/2*s^2,

老大,这样积分是不是有点随便阿,你把积分常数都给省了

zgg___ 发表于 2013-8-27 11:56:06

呵呵,看了这个曲线的图,眼熟,脑子里立刻蹦出一个词:“贝塞尔”,一搜,不是,呵呵;然后搜“菲涅尔”,这回搜到了,请参见“http://mathworld.wolfram.com/CornuSpiral.html”,呵呵。

wayne 发表于 2013-8-27 20:14:24

根据4#得知: 2\lambda*\theta=s^2 =(\lambda*{d\theta}/{ds})^2
即\theta=s^2 =(\lambda/2)({d\theta}/{ds})^2
又因为tan\theta=y'
所以可以设p=y' ,则 y'' =p*{dp}/dy
于是对于曲线 \theta>0的分支,有
dy ={p*dp}/{(arctanp)^{1/2}*(1+p^2)^{3/2}}
dx =dy/p={dp}/{(arctanp)^{1/2}*(1+p^2)^{3/2}}

这就是参数方程解了。

可以用级数展开来表示....

wayne 发表于 2013-8-27 20:28:50

靠,用Mathematica 竟然得到上面两个积分的原函数了:
x=\sqrt{2 \pi } \text{FresnelC}(\sqrt{\frac{2}{\pi }} \sqrt{\tan ^{-1}(p)})
y=\sqrt{2 \pi } \text{FresnelS}(\sqrt{\frac{2}{\pi }} \sqrt{\tan ^{-1}(p)})

换一下参数,好简洁阿:
x=\sqrt{2 \pi } \text{FresnelC}(\sqrt{\frac{2\theta}{\pi }})
y=\sqrt{2 \pi } \text{FresnelS}(\sqrt{\frac{2\theta}{\pi }})
\theta即是前面提及的切线的倾角。

跟老大前面提到的链接羊角螺线 完全吻合!




页: [1] 2 3
查看完整版本: 曲率随弧长均匀变化的平面曲线