回旋曲线的计算

下午打算计算验证一下回旋曲线公式,想偷个懒从网上down个代码对比验证,但未检索到现成代码。关于回旋曲线离散点(x,y)的计算分析众多,但介绍并不详细,甚至公式和计算方法也都不同。为不枉费半天的查询、验证工作,也为方便同仁参考,本文介绍基础的回旋线计算过程及代码,本次计算未涉及坐标变换。

1、什么是回旋线

本部分可忽略不看,直接看第二部分‘’回旋线的计算‘’。
缓和曲线指的是平面线型中,在直线与圆曲线、圆曲线与圆曲线之间设置的曲率连续变化的曲线。缓和曲线的线型多种多样,如回旋线、三次抛物线、七次四项式型、半波正弦型、一波正弦型、双纽线、多心复曲线……
铁路上常用的缓和曲线是三次抛物线型。公路、匝道常用的缓和曲线是回旋线,也叫放射螺旋线。回旋线不仅线形美观,而且与驾驶员匀速转动方向盘由圆曲线驶入直线或者由直线驶入圆曲线的轨迹线相符合。
回旋线的本质特征是:

即曲率 k随弧长l 线性变化; 表示曲率随弧长的增大而增大或减小; 是回旋线参数。它是圆曲线半径 R 与缓和曲线全长 Ls的几何平均值,单位为米。对于一条缓和曲线而言,它是一个常数。A 越大,说明曲率变化越慢,曲线拐弯越缓;A越小,说明曲率变换越快,曲线拐弯越急。
有关回旋线的具体介绍可见百度百科——缓和曲线 与 基于回旋曲线的平行泊车路径规划的第二部分“2、平行泊车的路径规划”。

2、回旋线的计算

回旋线的计算主要依照以下公式进行,主要在于清晰公式中的变量定义。

2.1、计算公式:

回旋曲线上任意点坐标计算公式:


式中,a就是曲率变化率,它可能是正数,也可能是负数。a的定义为:

a与A的关系满足公式
为了说明a的符号,以及它与A的关系,请见下图

在数学坐标系下K0+000处的曲率为1/100(左转为正),K0+150处的曲率为-1/50(右转为负)。可知:
曲率变化率 参数
(注意a为曲率关于回旋线长度的变化率,及第一节中的dk/dl)。实际上,回旋线的线长l为设计值,在创建一条回旋线的时候手动设定。

2.2、计算过程

根据公式,假定我们现在需要一条回旋线,(1)起点位置的曲率为0,(2)终点位置的曲率为 1/Rmin,Rmin为终点位置的曲率半径,(3)回旋线的长度为2m。
则, a = (0 - (1/Rmin)) / 2;
此时将a,l带入公式得到是回旋线最后一个点的x,y值。如何得到整条回旋线的x,y值呢?根据计算任意点的公式,我们将回旋线长度l离散化。0~L之间均匀取若干个值,a不变,带入计算公式即可得近似整条回旋线的x,y值。
在MATLAB中实现的具体计算过程:
main.m

%% 调用 clothoid函数,并将终点位置的曲率半径设置为 0.1:0.2:3
for i = 0.1:0.2:3clothoid(i)
end

clothoid.m

%%%% 计算回旋曲线,并绘图
function [] = clothoid(Rmin)N = 100; %%
sk = 2; %% 曲线长
c = 1 / Rmin / sk; %% 曲率变化率,即上文中的曲率变化率 a
x = zeros(1,N);
y = zeros(1,N);for sk_i = sk / N : sk / N : skresult_x = 0; %% 初始化x坐标点的值result_y = 0; %% 初始化y坐标点的值for i = 0 : N %% 计算xresult_x = result_x + ((-1) ^ i) * (c ^ (2 * i)) * (sk_i ^ (4 * i + 1)) / ((2 ^ (2 * i)) * (4 * i + 1) * fctorial(2 * i));endx(int32(sk_i / sk * N)) = result_x;for i = 0 : N %% 计算yresult_y = result_y + ((-1) ^ i) * (c ^ (2 * i + 1)) * (sk_i ^ (4 * i + 3)) / ((2 ^ (2 * i + 1)) * (4 * i + 3) * fctorial(2 * i + 1));endy(int32(sk_i / sk * N)) = result_y;endhold on;
plot(-x,-y);
hold on;
plot(-x(end),-y(end),'*'); %%回旋曲线的最后一个点
axis equal;
end

fctorial.m

%% 阶乘函数
function y = fctorial(x)n = 1;
for i = 1 : xn = n * i;
endy = n ;
end

得到的结果为:

各螺旋线的线长相同(2m),曲率变化率不同。
如有帮助,请点赞哦。

参考文献:
百度百科——缓和曲线
基于回旋曲线的平行泊车路径规划

缓和曲线——回旋曲线的计算相关推荐

  1. 缓和曲线段长度的计算分析

    缓和曲线段长度的计算分析 在道路线形设计的过程中,缓和曲线占据着非常重要的角色,如何科学合理的设置其长度是很多路线设计者一个很关心的问题.本文中将讲述计算缓和曲线长度的具体方法. 关键词:超高  缓和 ...

  2. 【自动驾驶】缓和曲线---clothoid回旋曲线

    转载自:https://blog.csdn.net/u010241908/article/details/123046783 仅作学习记录 缓和曲线 由于直线与圆曲线间存在曲率半径的突变,圆曲线半径越 ...

  3. 程序适用范围:直线、圆曲线、相等缓和曲线、不等缓和曲线、卵型曲线等公路工程上常见的平面线型号,均能在同一个程序内计算。

    该程序只需一次建立数库, 即可进行任意线路位置 中边桩坐标计算. 程序适用范围:直线.圆曲线.相等缓和曲线.不等缓和曲线.卵型曲线等公路工程上常见的平面线型号,均能在同一个程序内计算.    二: 适 ...

  4. 缓和曲线计算机编程,关于卡西欧fx-4850计算器--“缓和曲线计算”程序中的一些问题,请...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 程序名:ZOU BIAO M"JD":G"J(X)":D"J(Y)":F:R:A"J ...

  5. lisp 非对称缓和曲线_利用AutoLISP语言绘制带缓和曲线的铁路曲线平面图

    利用 AutoLISP 语言绘制带缓和曲线的铁路曲线平面图 [ 摘要 ] 通过 AutoLISP 编程方法的剖析 , 探讨了基于 Visual LISP(VLISP) 编程软件环境下 , 利用 Aut ...

  6. python绘制缓和曲线_autocad绘制缓和曲线

    自动绘制缓和曲线圆曲线方法 摘要: 根据 AutoCAD 提供的宏, 通过 Microsoft Visual Basic 编写辅助程序绘制曲线. 关键词: 缓和曲线 圆曲线 绘制 说明: 基本线形曲线 ...

  7. 缓和曲线与原曲线任意点坐标计算程序

    缓和曲线与原曲线任意点坐标计算程序 Z=90S÷(R∏):U=S2÷(24R)-S^3÷(2688R^3):Q=S÷2-S^3÷(240R2):T=(R+U)tan(N÷2)+Q▲ L=R(N-2Z) ...

  8. python绘制缓和曲线_CAD中缓和曲线的画法 - AutoCAD基础应用 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...

    在AutoCAD中缓和曲线的几种画法,其实在AutoCAD中,想要画出缓和的曲线是一项比较困难的工作,目前常见的画法可以分为以下的这几种: 1.AutoLISP程序法,使用这个方法要求用户掌握已知的曲 ...

  9. 道路曲线线路坐标计算 ∈ C# 编程笔记

    更新日期:2020/5/17 文章目录 3.曲线线路坐标计算 3.1 圆曲线 3.1.1 原理 3.1.2 代码实现: 3.1.3 调用示例: 3.2 带缓和曲线的圆曲线 3.2.1 原理 3.2.2 ...

  10. 缓和曲线计算机编程,缓和曲线起点

    相关文献 在高速公路工程建设中 ,往往会遇到这样的问题 :在计算或内插路线中缓和曲线坐标时 ,有时该段缓和曲线的起点不是整个缓和曲线的起点 ,而且连接两端曲率半径较小.利用一般的计算器计算缓和曲线的坐 ...

最新文章

  1. 采用UltraISO制作U盘启动盘
  2. VMware Horizon虚拟桌面工具箱之审计与远程协助
  3. VUE -- Mac上解决Chrome浏览器跨域问题
  4. 判别模型的玻尔兹曼机论文源码解读
  5. 网络编程之 传输层的协议TCP与UDP
  6. spark反压速率计算
  7. 一波情人节海报温暖来袭,注定与众不同
  8. OpenJS 基金会推出 Node.js 证书,JS 开发者可以“考证”了
  9. php echo和evlo,PHP中常用的字符串函数
  10. spring提供的线程池
  11. CABasicAnimation添加动画离开屏幕就动画停止的问题
  12. 01-【分析】神策系统的拆解与分析
  13. android 脚本模拟点击屏幕,android 脚本模拟点击屏幕,android模拟
  14. 组件化之路 - ViewBinding基类封装
  15. Gaussian Process understanding
  16. 用c语言写扇形的算法,如何实现扇形的绘制
  17. java web QQ(二)
  18. 【DL】第 4 章:目标检测和图像分割
  19. 【基础知识】~ LUT、CLB、面积/速度问题
  20. 2023年华南师范大学汉语国际教育考研上岸前辈备考经验

热门文章

  1. 知道SG函数是干什么的
  2. cass坡度土方计算案例_CASS软件中方格网法计算土方量的原理及误差分析
  3. 解决/**/嵌套问题---条件编译:#if 0 statement #endif 帅帅哒洋办法
  4. Vue安装必要插件element-ui插件及axios依赖(详细)
  5. Laravel文档梳理3、CSRF保护
  6. 大麦DW33D路由器假死
  7. 重装系统之制作U盘启动盘 - 一盘通装
  8. “L3级”自动驾驶落地指导思想:高速辅助人,低速替代人
  9. --legacy-peer-deps 作用
  10. python名片管理教程_[Python]名片管理系统