非圆曲线的逼近 讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程课程设计任务设计任务设计任务
用计算机高级编程语言(如VB,VC++等)来实现非圆曲线的逼近,可任选直线逼近(等间距法、等弦长法、等误差法等)或圆弧逼近. 要求在满足允许误差的前提下, 使得逼近的直线段或圆弧段数的数量最少(即最优解). 要求如下:
(1)
列出一般的直线或圆弧逼近的算法(流程图). (2) 列出改进的直线或圆弧逼近的算法(流程图)—即优化算法. 比
较改进前与改进后的两种算法结果 .
(3) 针对任意给定的某一由非圆曲线所构成的平面轮廓, 根据指定
的走刀方向、起刀点 ,自动生成CNC 代码 .
(4) 在屏幕上显示该非圆曲线所构成的平面轮廓 .
软件设计过程软件设计过程
非圆曲线的逼近算法及程序设计非圆曲线的逼近算法及程序设计
1.等间距的直线逼近的节点等间距的直线逼近的节点算法算法算法
已知方程y=f(x), 根据给定的△x 求出x i , 将x i 代入y=f(x)即可求得一系列y i . x i 、y i 即为每个线段的终点坐标 ,并以该坐标值编制直线程序段. △x 的大小取决于曲线的曲率和允许误差δ . 一般先取△x=0.1试算并校验 . 误差校验方法如下 : 如图, MN 为试算后的逼近线段, 作MN
平行于MN且两直线距离为δ允.
图1 等间距逼近
根据节点的坐标可求得MN方程: ax+by+c=0
则ax+by=c±δ允√a⌒2+b⌒2
求解联立方程:
δ允=(ax+by-c)/ ±√a⌒2+b⌒2
y=f(x)
如果无解,即没有交点,表示逼近误差小于δ允;如果只有一个解, 即等距线与轮廓线相切, 表示逼近误差等于δ允; 如果有两个或两个以上的解, 表示逼近大于δ允, 这时应缩小等间距坐标的增量值, 重新计算节点和验算逼近误差, 直至最大的逼近误差小于或等于δ允.
算法:
1、 给定的△x=0.1求出x i , 将x i 代入y=f(x)即可求得一系列y i . x i
2、 求允许误差δ.
3、 If δ<= 精度值0.001?
a) 是, if 达到终点?
i. 是, goto Step 4:
ii. 否, i=i+1,goto Step 1;
b) 否,△x=0.5*△x,goto Step1
4、 End
非圆曲线非圆曲线数学处理数学处理数学处理的一般的一般的一般方法方法方法
数控系统一般只有直线和圆弧插补的功能,对于非圆曲线轮廓,只有用直线或圆弧去逼近它,“节点”就是逼近线段与非圆曲线的交点。一个已知曲线的节点数主要取决于逼近线段的形状(直线段还是圆弧段),曲线方程的特性以及允许的逼近误差。将这三者利用数学关系求解,即可求得一系列的节点坐标,并按节点划分程序段。以下简介常用的直线逼近及圆弧逼近的数学处理方法。
2.1 常用非圆曲线直线逼近方法常用非圆曲线直线逼近方法
2.1.1 等间距的直线逼近的节点计算
这是一种最简单的算法。如图2.1所示,已知方程)(x f y =,根据给定的x ∆求出i x ,求i x 代入)(x f y =即可求得一系列i y ,即为每个线段的终点坐标,并以该坐标值编制直线程序段。
X
Y
N
M
M
图2.1 等间距逼近方法的原理图
x ∆取值的大小取决于曲线的曲率和允许误差δ。一般先取1.0=∆x 试算并校验。误差校验方法如图2.1中的右图所示,MN 为试算后的逼近线段,作''N M 平行于MN 且两直线的距离为允δ。根据节点的坐标可求得
MN 方程:0=++c by ax ,则''N M 的方程为22b a c by ax +±=+允δ
求解联立方程:
)
(22x f y b a c
by ax =+±−+=允δ (2-1)
如果无解,即没有交点,表示逼近误差小于允δ;如果只有一个解,即等间距与轮廓线相切,表示逼近误差等于允δ;如果有两个或两个以上的解,表示逼近误差大于允δ,这时应缩小等间距坐标的增量值,重新计算节点和验算逼近误差,直至最大的逼近误差小于等于允δ。
等间距法计算简单,但由于取定值x ∆应保证曲线曲率最大处的逼近误差允许值,所以程序可能过多。用此种方法进行数学处理,它的逼近曲线与轮廓线的逼近误差参差不齐,程序明显增多,影响机床的加工效率,不适合大批量的加工,成本也比较高。
2.1.2 等弦长直线逼近的节点计算
就是使所有逼近线段的长度相等,如图2.2所示。计算步骤如下:
X
Y
允
δ
图2.2 等弦长逼近方法的原理图
(1)确定允许的弦长:由于曲线各处的曲率不等,等弦长逼近后,最大误差max δ必在min R 处(设为图中的CD 段),则l 为
允允)δδmin 2min 2
min 22(2R R R l ≈−−= (2)求min R 。曲线)(x f y =任一点的曲率半径为
/y")y'(1R 3/22+= (2-2)
取0/d =dx R ,即
0'")'1("'322=+−y y y y (2-3)
根据)(x f y =求得'""'y y y 、、,并由式(2-3)求得x 值代入式(2-2)即得min R 。 (3)以曲线起点A 为圆心,作半径为l 的圆交)(x f y =曲线于B 点,联立求解
)()()2
22x f y l y y x x a a ==−+−(
得B B y x 、。
(4)顺序以B 、C…圆心,重复步骤(3),即可求得其余各节点的坐标值。 等弦长法对于曲线各处的曲率相差较大时,所求得的节点数过多,所以这种方法宜用于曲率变化不大的曲线节点计算。
2.1.3 等误差直线逼近的节点计算
要使得所有逼近线段的误差δ都相等,如图2-3所示,需要如下得计算步骤: