
对缓和曲线坐标计算算法的几点看法.doc
2页对缓和曲线坐标计算算法的几点看法高速公路、铁路上都有缓和曲线,计算用的电脑软件、卡西欧可编程计算器程序和算法多种多样经济基础决定上层建筑,一个好的算法决定程序的品质,怎样才是最简单有效的呢?1、首先说下缓和曲线的类型国内高速公路所采用的缓和曲线多半为回旋线,回旋线在起点和终点处曲率不连续,存在突变,国内外都在研究高质量的缓和曲线,除了回旋线之外,圆曲线与直线或圆曲线相接有200多种缓和曲线,例如汽车试验场高速环道采用的就是麦克康纳尔曲线和布劳斯曲线,还有浙江交通设计师周一勤推导的改进型缓和曲线,与麦克康纳尔曲线很接近,李运胜博士对于麦克康纳尔曲线和布劳斯曲线有很深刻的研究而我国道路设计、施工对回旋线研究较多,对于汽车试验场采用的高速环道研究很少,设计上被日本、美国、德国等国垄断,在技术上对中国实行技术封锁,中国人只能傻傻地拿到外国人的 CAD 坐标逐点量取,工程结束了甚至还不知道是什么曲线,知其然不知其所以然,这是很可悲的2、交点法和线元法的关系与比较不用多说,交点法有很大的局限性,交点法计算完全缓和曲线是比较方便的,所谓完全缓和曲线就是缓和曲线的起点或者终点半径是无穷大∞的,只要是完全饱和的就好计算,无论缓1和缓2是否等长都好计算。
而对于不完全缓和曲线,起点终点半径不等于无穷大,交点法要推算切线长就比较困难了,通过程序计算切线长虽然可以实现,但是需要考虑的东西太多太繁杂,手工输入切线长又增加了参数,而线元法实现起来是非常简单的,前面说到缓和曲线类型种类多样,但万变不离其宗,知道最基本的曲率方程,线元法很容易推算出坐标交点法最终的本质还是要靠线元法来实现,无论哪种缓和曲线,线元法都可以用一个统一的公式来表达其坐标,所以线元法才是最通用的算法3、交点法输入的参数目前很多软件交点法计算里程采用的是只输入起点里程,其他交点的里程通过程序推算,我不推荐用这种方式因为不同的设计院设计风格不同,而且铁路公路对于小数位的取舍和精度要求不同,一个符合设计图纸要求的坐标才是最正确的,如果因为里程取舍问题与设计图纸误差较大是得不偿失的另外一个方面,如果手工输入交点里程,基本上对于断链不需要处理,断链本身就是一个里程修改而已我建议手工输入交点里程,同时可以通过一定的方式来进行推算复核交点里程4、线元法的分段与设计思想其实线元法的设计就是一个分治思想(Divide and Conquer)的表达,分而治之,分段多细为好呢?一个程序员一定要有思想,这是 Programmer 与 Coder 最基本的区别。
很多软件采用的是逐段分段,直线,缓,圆均单独分段(积木法) ,还有的把直线+缓1+圆+缓2+直线作为一个整体分段我觉得还是把缓1+圆+缓2作为一个整体单独分段的好,因为直线具有这样的特点,只要知道其上任意一点的坐标方位角,就可以非常简单地推算任意一点的坐标方位角,直线的半径是无穷大,直线的已知参数不需要弧长这个参数,如果与圆或者缓和曲线放在一起处理,无穷大难以表达,在卡西欧可编程计算器中有些处理为10的高次方,有些用0来表达,都有些牵强圆曲线与直线一样,只要知道其上任意一点的坐标方位角,就可以非常简单地推算任意一点的坐标方位角,圆的已知参数不需要弧长这个参数,因此圆曲线单独分段比较合理,圆曲线单独分段后,与任意一种不同类型的缓和曲线相接可以实现模块化设计的思想,便于维护把缓1+圆+缓2作为一个整体进行分段处理,可以省略很多参数如果按照积木法思想要分成三段,输入 ZH、HY、YH、HZ 点的4个起止里程坐标方位角,8个点半径,而且还要判断缓1缓2是否完全饱和,起点终点半径推算也麻烦如果作为一个整体,只需要输入 HY1个点的里程坐标方位角,1个圆半径,3个弧长即可(缓1缓2的弧长可以用回旋参数代替) ,省略了3个点的起止里程坐标方位角和4点的半径,共19个参数,简化了软件计算,对于卡西欧可编程计算器,给一个参数赋值平均需要占用11个字节,19×11=209字节,如果有20个交点,就有20条这样的曲线,节省的字节数=4180字节,4800的容量才4500字节,节省的字节数是非常可观的。
对于路面施工,交点更多,节省的空间会更多,腾出来的空间可以用来计算路基设计高程、超高加宽等等把缓1+圆+缓2作为一个整体,起算点选择在 HY 点,由于 HY 点作为起算点具有相对固定性,从小半径向大半径,从中间向两边推算,截去的哪一段,如果有就让他有,如果没有,不计算就是了,是否饱和根本不用判断,饱和不饱和已经不重要了,如果圆曲线长度为零一样计算对于完全缓和曲线,A已有0人喜欢。
