点云特征计算程序设计与实现

点云特征计算程序设计与实现,第1张

设P是(C)上一点,是(C)在P点的单位切向量,是主法向量,是副法向量。再设n是曲面S在P点的单位法向量。命。 曲线(C)在P点的曲率向量在上的投影(也就是在S上P点的切平面上的投影) 称为曲线(C)在P点的测地曲率

曲面S上的曲线(C),它在P点的测地曲率的绝对值等于(C)在P点的切平面上的正投影曲线(C')的曲率。 式中,k为曲线在P点的曲率,为曲线在P点的法曲率。

有三大类:第一类属仪器误差:水准管轴不平行于视准轴误差可通过安量测站在前后尺等距处加以消除,零点磨损可通过安置偶数测站数,尺长有系统误差可在计算中加改正数,而刻划不准和尺面弯曲则无法消除其影响。第二类观测误差,这类误差大多数具有偶然性。而水准尺安置倾斜影响极大,解决办法是水准尺旁装上圆水准器。第三类外界条件产生的误差,减小仪器下沉误差的影响,要用“后-前-前-后”的观测程序, 解决尺垫下沉要用往返观测法。减弱大气折光影响,则要选择合适的观测时间。

普通数控车床的数控系统内存有限,计算功能不足,在拟合加工曲线时,一般只能采用直线插补和圆弧插补两种方式。因此,用普通数控车床加工母线为非圆曲线的工件时较为困难,尤其对于一些母线较复杂而对形状精度要求较高的非圆曲线工件,其加工难度更大。为简化母线为非圆曲线工件的加工程序编制,提高对该类工件的加工准确性和适应性,以下提出一种针对母线为非圆曲线工件的准确加工方法,并编制了相应的通用加工程序生成软件,经在数控车床上实际应用,效果良好。

以下是加工非圆曲线的一些方法:

11 选择圆弧插补方式 在选择加工曲线插补方式时,由于直线插补方式的曲线划分段数必须足够多才能保证较高加工精度,因此占用内存较大。为兼顾对各种加工曲线的通用性,合理利用内存,保证较高加工精度,采用圆弧插补方式比较有利。

12 以等弦长曲线内各微曲线的平均曲率半径作为插补圆半径 曲线上某点的曲率圆与曲线在该点具有相同的切线和曲率。用划分好的各曲线段的曲率半径作为圆弧插补半径,可使圆弧插补半径始终与曲线的弯曲程度较好吻合,从而保证较高的插补精度。因此,求取准确的曲率半径是保证插补准确性的关键。若以等坐标长对曲线进行划分,则对于沿该坐标不均匀变化的曲线,其在不同坐标点的曲线形状变化对曲率准确性的影响不容忽视。为此,我们采用了沿曲线走向以等弦长进行曲线划分的方法。由于该段曲线是以经过再细分的许多微线段的平均曲率半径作为其曲率半径,所以即使对于起伏较大、变化很不均匀的曲线,也能获得较好的拟合效果。其实现方法为借助计算机快速、准确的运算能力,用极小的递增量划分曲线并计算各段微曲线的曲率半径,将所得点到起点的直线距离与指定长度相比较,一旦达到规定的弦长长度时即产生一个插补点,计算出该段所有微曲线的平均曲率半径并将其作为圆弧插补半径。然后再将该点作为新一段曲线段的起点,寻找下一个插补点。如此类推,直至将整条曲线划分完毕。微曲线各点的曲率半径pi和各等弦长曲线段的平均曲率半径p可通过各微曲线段端点的一阶导数y'和二阶导数y" 计算求得曲线段内微曲线段的段数。

加工精度要求较高的工件时,应采用较小的弦长进行划分,以增加插补点,提高曲线拟合精度。当然,具体 *** 作时需对数控系统内存和工艺要求进行综合考虑,以求达到最佳加工效果。

要将轮廓曲线转换成粗糙度曲线,需要进行以下步骤:

1 对轮廓曲线进行滤波:使用合适的滤波算法,去除轮廓曲线中的噪声和高频成分。这一步可以使用数字信号处理中的低通滤波器等工具来实现。

2 计算偏差值:将滤波后的轮廓曲线与理论轮廓曲线(如圆弧、直线等)进行比较,计算出轮廓曲线在每个点上的偏差值(即距离理论曲线的距离),形成偏差曲线。

3 计算粗糙度曲线:对偏差曲线进行统计分析,计算方差、均方根值、最大偏差等指标,形成粗糙度曲线。这些指标可以反映轮廓曲线在不同位置上的表面光洁度和粗糙度。

需要注意的是,以上步骤中所使用的算法和方法会因具体应用场景而有所不同。例如,在机械加工中,通常会使用不同的偏差评价指标和相应的滤波算法。因此,在实际应用中,需要根据具体的需求和数据类型选择合适的转换方法。

UG12中增加最小曲率半径环境变量的步骤如下:

1 打开UG12软件,点击“开始”菜单,在搜索框中输入“编辑系统环境变量”,并选择该选项。

2 在d出的窗口中,点击“环境变量”按钮。

3 在系统变量列表中找到“NX_CAM_TEMPLATE_MIN_CURVATURE_RADIUS”,如果没有则需要手动添加。然后双击该变量或者点击编辑按钮进行修改。

4 修改数值为您所需的最小曲率半径数值(单位:毫米),例如10mm。

5 点击确定保存设置,并关闭所有打开的窗口。

6 重新启动UG12软件,新设置将会生效。在自适应铣削 *** 作时,程序将考虑到这个最小曲率半径限制条件,并生成合适的刀具路径来保证工件表面质量和切削效果。

注意:请确保修改前已备份好相关数据和文件。同时,请根据实际情况谨慎调整参数以避免不必要的错误和损失。

坐标CASIO FX5800 P程序

1 正算主程序 程序名: XLZBZB

LbI 1:“K”?K :“L(-Z +Y)” ?L:90→M :(注:此处若给M赋值,则可计算斜角。M是指图纸上的斜交右角)

Prog“DAT” :(P - R)÷(2(H-O)PR)→D↙ (注:↙表示按EXE键即可)

Abs(K-O)→J:Prog“SUB1” ↙(注:↙表示按EXE键即可)

“X=” : X ◢

“Y=” :Y ◢

Goto 1 ↙ (注:↙表示按EXE键即可)

2 XLZBZB

使用说明:K 正算时所求点的里程: L(-Z+Y) 正算时所求点距该里程中线的边距(左侧取负值,右侧取正值,在中线上取零(即数字0))

3 正算子程序 程序名:SUB1

4→DimZ ↙ (注:↙表示按EXE键即可)

01184634425→A: 02393143352→B: 02844444444→Z[4]: 00469100770→C: 02307653449→E: 05→Z[1] ↙ (注:↙表示按EXE键即可)

I+J(Acos(G+QCJ(1÷P+CJD)×180÷π)+Bcos(G+QEJ(1÷P+EJD) ×180÷π)+Z[4]cos(G+QZ[1]J(1÷P+Z[1]JD) ×180÷π)+Bcos(G+Q(1-E)J(1÷P+(1-E)JD) ×180÷π)+Acos(G+Q(1-C)J(1÷P+(1-C)JD) ×180÷π)) →X ↙ (注:↙表示按EXE键即可)

S+J(Asin(G+QCJ(1÷P+CJD)×180÷π)+Bsin(G+QEJ(1÷P+EJD) ×180÷π)+Z[4]sin(G+QZ[1]J(1÷P+Z[1]JD) ×180÷π)+Bsin(G+Q(1-E)J(1÷P+(1-E)JD) ×180÷π)+Asin(G+Q(1-C)J(1÷P+(1-C)JD) ×180÷π)) →Y ↙ (注:↙表示按EXE键即可)

G+QJ(1÷P+JD) ×180÷π+M →F: X+LcosF →X: Y+LsinF→Y ↙ (注:↙表示按EXE键即可,π表示3141592653)

4 曲线元要素数据库 程序名:DAT

If K<本段曲线终点桩号: Then 本段线元起点的X坐标→I: 本段线元起点的Y坐标→S: 本段线元起点里程→O: 本段线元起点切线方位角→G: 本段线元终点里程→H: 本段线元起点曲率半径→P: 本段线元终点曲率半径→R: 本段线元左右偏标志→Q: Eise If K< 二段曲线终点桩号: Then 二段线元起点的X坐标→I:二段线元起点的Y坐标→S:二段线元起点里程→O:二段线元起点切线方位角→G: 二段线元终点里程→H: 二段线元起点曲率半径→P: 二段线元终点曲率半径→R: 二段线元左右偏标志→Q:…………………

(注:如有多个曲线元要素,还要继续添加到数据库DAT中)

I= 线元起点的X坐标: S= 线元起点的Y坐标: O= 线元起点里程:

G= 线元起点切线方位角: H= 线元终点里程 P= 线元起点曲率半径

R= 线元终点曲率半径 Q= 线元左右偏标志(注: 左偏为-1, 右偏为+1 )

(注:如有多个曲线元要素,还要继续添加到数据库DAT中,曲率半径直径输入半径值)

5 坐标反算 程序名: ZBFS

LBI 0:“X1=”X:“Y1=”Y:“X2=”A:“Y2=”B◢

POL(A-X,B-Y):J〈0

=〉J+360→J◢

“I=”:I◢

“J=”:J▲DMS ◢

Goto 0 ↙ (注:↙表示按EXE键即可)

6 任意多边形的面积 程序名: RYDBX S

0→S :A :B :C :D ↙(注:↙表示按EXE键即可)

Lbl 1: “X”→X : “Y” →Y ↙(注:↙表示按EXE键即可)

0→I:0→J : P0l(C-A , D-B) : I→G : J→H :

P0l(X-A , Y-B) : X→C : Y→D : I→K : J→N :

“M=”:05GKsin(Abs(N-H))→M ↙(注:↙表示按EXE键即可)

“S=”:S+M→S ▲ 平方米

“U=”:S÷666667→U ▲ 亩

Goto 1

(注:0表示数字零)

说明:点位必须按顺序输入成封闭形图型!

A B C D 为第一,二两点坐标(常量),X Y……为第三,四,五,六点坐标(变量)。

例:X1=10000 , Y1=20000

X2=500000 , Y2=600000

X3=700000 , Y3=400000 三角形面积 107000M2 16050亩

X4=800000 , Y4=300000 四边形面积 160500M2 24075亩

X5=650000 , Y5=100000 五边形面积 218500M2 32775亩

X6=550000 , Y6=50000 六边形面积 230500M2 34575亩

说明:

一、程序功能及原理

1功能说明:

本程序由两个主程序——正算主程序(GSZS)、反算主程序(GSFS)和两个子程——正算子程序(SUB1)、线元数据库(DAT-M)构成,可以根据曲线段——直线、圆曲线、缓和曲线(完整或非完整型)的线元要素(起点坐标、起点里程、起点切线方位角、终点里程、起点曲率半径、止点曲率半径)及里程边距或坐标,对该曲线段范围内任意里程中边桩坐标进行正反算。本程序可以在CASIO fx-4800P计算器及 CASIO fx-4850P计算器上运行。由于加入了数据库(DAT-M),可实现坐标正反算的全线贯通。

组合程序5可实现M线的正算贯通,组合程序7可实现M线的反算贯通,组合程序6可实现坐标计算到放样一体化。

2.计算原理:

利用Gauss-Legendre 5点通用公式计算线路中边桩坐标并计算放样数据。

利用待求点至线元起点切线作垂线,逐次迭代趋近原理反算里程及边距。

二、使用说明

1、规定

(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时, Q= -1;当线元往右偏时,Q=1;当线元为直线时,Q=0。

(2) 当所求点位于中线时,L=0;当位于中线左侧时,L取负值;当位于中线右侧时,L取正值。

(3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。

(4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆弧的半径。

(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径为无穷大,以10的45次代替; (6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。

(7)曲线元要素数据库(DAT-M)可根据线型不同分为各个线元段输入到DAT-M中,即分为直线段、缓和曲线、圆曲线等。

(8)正算时可仅输入里程和边距及右交角可实现全线计算,但反算时只能通过首先输入里程K值读取数据库DAT-M,计算器自动将里程K所在线元数据赋给反算主程序GSFS进行试算,试算出的里程和边距须带入正算主程序GSZS中计算坐标,若坐标吻合则反算正确。

2、输入与显示说明

(1)输入部分:

X0 ?线元起点的X坐标 (在“DAT-M”程序中对应为I)

Y0 ?线元起点的Y坐标(在“DAT-M”程序中对应为S)

K0 ?线元起点里程(在“DAT-M”程序中对应为O)

F0 ?线元起点切线方位角(在“DAT-M”程序中对应为G)

KN ?线元终点里程(在“DAT-M”程序中对应为H)

R0 ?线元起点曲率半径(在“DAT-M”程序中对应为P)

RN ?线元止点曲率半径(在“DAT-M”程序中对应为R)

Q ? 线 元左右偏标志(左偏Q=-1,右偏Q=1,直线段Q=0) (在“DAT-M”程序中对应为Q)

K ? 正算时所求点的里程

L ? 正算时所求点距中线的边距(左侧取负值,右侧取正值,在中线上取零)

ANG?正算边桩时左右边桩连线与线路中线的右交角

X ? 反算时所求点的X坐标

Y ? 反算时所求点的Y坐标

M 斜交右角

线元要素数据库中K≥O=>K<H=>中的O和H分别为该段线元起点里程和终点里程

A、 B、Z[4] 是Gauss-Legendre求积公式中的插值系数

C 、E、Z[1] 是Gauss-Legendre求积公式中的求积节点

(2)显示部分:

X=××× 正算时,计算得出的所求点的X坐标

Y=××× 正算时,计算得出的所求点的Y坐标

K=××× 反算时,计算得出的所求点的里程

L=××× 反算时,计算得出的所求点的边距

三、算例

某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组成,各段线元的要素(起点里程S0、起点坐标X0 Y0、起点切线方位角F0、线元长度LS、起点曲率半径R0、止点曲率半径RN、线元左右偏标志Q)如下:

S0 X0 Y0 F0 LS R0 RN Q

500000 19942837 28343561 125 16 3100 269256 1E45 1E45 0

769256 19787340 28563378 125 16 3100 37492 1E45 22175 -1

806748 19766566 28594574 120 25 5407 112779 22175 22175 -1

919527 19736072 28701893 91 17 3063 80285 22175 9579228 -1

999812 19744038 28781659 80 40 5000 100000 1E45 1E45 0

(注:该算例中线元要素Ls为程序修改前须输入的线元长度,程序修改后改为输入线元终点里程KN)

>> syms x y

>> y=-31245x^3+13523x^2+563053x+725174;

>> y1=diff(y,x);

>> y2=diff(y1,x);

>> qulv=(1+y1^2)^(3/2)/abs(y2);

>> x=solve('qulv')

结果:

x =

0

>> x=-100:100;

>> y=-31245x^3+13523x^2+563053x+725174;

>> plot(x,y)

以上就是关于点云特征计算程序设计与实现全部的内容,包括:点云特征计算程序设计与实现、水准测量中,采用什么方法可以消除或减弱地球曲率的影响、数控车床如何加工非圆曲线等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/10088711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存