数字积分圆弧第一二三四象限顺逆插补计算Word文档下载推荐.docx

上传人:b****6 文档编号:16272662 上传时间:2022-11-22 格式:DOCX 页数:28 大小:966.11KB
下载 相关 举报
数字积分圆弧第一二三四象限顺逆插补计算Word文档下载推荐.docx_第1页
第1页 / 共28页
数字积分圆弧第一二三四象限顺逆插补计算Word文档下载推荐.docx_第2页
第2页 / 共28页
数字积分圆弧第一二三四象限顺逆插补计算Word文档下载推荐.docx_第3页
第3页 / 共28页
数字积分圆弧第一二三四象限顺逆插补计算Word文档下载推荐.docx_第4页
第4页 / 共28页
数字积分圆弧第一二三四象限顺逆插补计算Word文档下载推荐.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

数字积分圆弧第一二三四象限顺逆插补计算Word文档下载推荐.docx

《数字积分圆弧第一二三四象限顺逆插补计算Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数字积分圆弧第一二三四象限顺逆插补计算Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。

数字积分圆弧第一二三四象限顺逆插补计算Word文档下载推荐.docx

若求曲线与坐标轴所包围的面积,求解过程如下:

被积函数寄存器用以存放Y值,每当Δt出现一次,被积函数寄存器中的Y值就与累加器中的数值相加一次,并将累加结果存于累加器中,如果累加器的容量为一个单位面积,则在累加过程中,每超过一个单位面积,累加器就有溢出。

当累加次数达到累加器的容量时,所产生的溢出总数就是要求的总面积,即积分值。

被积函数寄存器与累加器相加的计算方法:

例:

被积函数寄存器与累加器均为3位寄存器,被积函数为5,求累加过程。

101101101101

+)000+)101+)010+)111

101010111100

+)100+)001+)110+)011

001110011000

经过2=8次累加完成积分运算,因为有5次溢出,所以积分值等于5。

5.2数字积分圆弧插补

圆心为坐标原点的圆弧方程式为:

可得圆的参数方程为:

       

对t微分得、方向上的速度分量为:

用累加器来近似积分为:

如图所示,设加工半径为R的第一象限逆时针圆弧AB,坐标原点定在圆心上,A(Xo,Yo)为圆弧起点,B(Xe,Ye)为圆弧终点,Pi(Xi,Yi)为加工动点。

如下图所示,可以得到:

V/R=Vx/Yi=Vy/Xi=K即Vx=KYi,Vy=KXi

因而可以得到坐标微小位移增量为:

ΔX=VxΔt=KYiΔtΔY=VyΔt=KXiΔt

设Δt=1,K=1/2则有:

可看出,用DDA法进行圆弧插补时,是对加工动点的坐标Xi和Yi的值分别进行累加,若积分累加器有溢出,则相应坐标轴进给一步,则圆弧积分插补器如图所示:

5.3数字积分法圆弧插补程序流程图

DDA法插补不同象限圆弧时,算法也有所不同。

当采用软件插补时,如果参与积分运算的寄存器均采用绝对值数据,则DDA法插补的积分累加过程完全相同,即JR+JV→JR,只是进给脉冲分配方向和圆弧插补动点坐标的修正有所不同。

5.5插补实例

设有第Ⅰ象限逆圆弧SE,起点为S(4,0),终点为E(0,4),且寄存器位数N=3。

试用DDA法对该圆弧进行插补,并画出插补轨迹。

解:

插补开始时,被积函数寄存器初值分别为 JVX=YS=0,JVY=XS=4,终点判别寄存器JSX=|Xe-XS|=4,JSY=|Ye-YS|=4。

该圆弧插补运算过程见下表,插补轨迹如下图所示的折线。

六、程序清单

PrivateSub建立坐标系_Click()

Picture1.ForeColor=vbBlack

Picture1.DrawWidth=2

Picture1.Line(500,4500)-(8500,4500)'

画直线坐标轴

Picture1.Line(4500,500)-(4500,8500)

Picture1.CurrentX=230'

当前位置

Picture1.CurrentY=4400

Picture1.Print"

-X"

'

坐标轴标注

Picture1.CurrentX=4300

Picture1.CurrentY=4300

(0,0)"

Picture1.CurrentX=8650

X"

Picture1.CurrentX=4400

Picture1.CurrentY=8600

-Y"

Picture1.CurrentX=4500

Picture1.CurrentY=400

Y"

EndSub

PrivateSub画圆弧_Click()

Dima,b,c,d,n,mAsInteger

DimrAsSingle

a=Val(Text1.Text)

b=Val(Text2.Text)

c=Val(Text3.Text)

d=Val(Text4.Text)

n=a*a+b*b

m=c*c+d*d

r=Sqr(n)

IfOption1.Value=TrueThen

Ifa<

0Orb<

0Orc<

0Ord<

0Then

ans=MsgBox("

出错了,起点、终点坐标不在同一象限内,请重新输入"

48,"

提示信息"

EndIf

EndIf

IfOption2.Value=TrueThen

Ifa>

0Orc>

IfOption3.Value=TrueThen

0Orb>

0Ord>

IfOption4.Value=TrueThen

Picture1.ForeColor=vbRed

Picture1.DrawWidth=4

ConstPI=3.1415926535

cAndb<

dThen

IfOption1.Value=TrueThen

Ifb=0Then

Ifc=0Then

Picture1.Circle(4500,4500),r*300,,0*3.14159,3.14159/2

Else

Picture1.Circle(4500,4500),r*300,,0*3.14159,3.14159/2-Atn(d/c)

ElseIfc=0Then

Picture1.Circle(4500,4500),r*300,,Atn(b/a),3.14159/2

Picture1.Circle(4500,4500),r*300,,Atn(b/a),3.14159/2-Atn(d/c)

ElseIfa<

cAndb>

Ifa=0Then

Ifd=0Then

Picture1.Circle(4500,4500),r*300,,Atn(d/c),3.14159/2

ElseIfd=0Then

Picture1.Circle(4500,4500),r*300,,0*3.14159,Atn(b/a)

Picture1.Circle(4500,4500),r*300,,Atn(d/c),Atn(b/a)

出错了,起点或终点坐标位置错误,请重新输入"

IfOption2.Value=TrueThen

Picture1.Circle(4500,4500),r*300,,3.14159/2,3.14159

Picture1.Circle(4500,4500),r*300,,3.14159/2,3.14159-Atn(-d/c)

Picture1.Circle(4500,4500),r*300,,3.14159/2+Atn(-a/b),3.14159

Picture1.Circle(4500,4500),r*300,,3.14159/2+Atn(-a/b),-Atn(-d/c)+3.14159

Picture1.Circle(4500,4500),r*300,,Atn(-c/d),3.14159

Picture1.Circle(4500,4500),r*300,,3.14159/2,3.14159-Atn(-b/a)

Picture1.Circle(4500,4500),r*300,,Atn(-c/d),3.14159-Atn(-b/a)

IfOption3.Value=TrueThen

Picture1.Circle(4500,4500),r*300,,3.14159,3*3.14159/2

Picture1.Circle(4500,4500),r*300,,3.14159,Atn(d/c)+3.14159

Picture1.Circle(4500,4500),r*300,,Atn(b/a)+3.14159,3*3.14159/2

Picture1.Circle(4500,4500),r*300,,Atn(b/a)+3.14159,Atn(d/c)+3.14159

ElseIfa>

Picture1.Circle(4500,4500),r*300,,3.14159+Atn(d/c),2*3.14159/2

Picture1.Circle(4500,4500),r*300,,3.14159,3*3.14159/2-Atn(a/b)

Picture1.Circle(4500,4500),r*300,,Atn(d/c)+3.14159,3*3.14159/2-Atn(a/b)

IfOption4.Value=TrueThen

Picture1.Circle(4500,4500),r*300,,3*3.14159/2,2*3.14159

Picture1.Circle(4500,4500),r*300,,3*3.14159/2,Atn(d/c)+3.14159*2

Picture1.Circle(4500,4500),r*300,,Atn(b/a)+3.14159*2,2*3.14159

Picture1.Circle(4500,4500),r*300,,Atn(b/a)+3.14159*2,Atn(d/c)+3.14159*2

Picture1.Circle(4500,4500),r*300,,3*3.14159/2+Atn(-c/d),2*3.14159

Picture1.Circle(4500,4500),r*300,,3*3.14159/2,-Atn(-b/a)

Picture1.Circle(4500,4500),r*300,,3*3.14159/2+Atn(-c/d),-Atn(-b/a)

PrivateSub插补计算_Click()

Dima,b,c,d,ni,mi,ai,bi,ci,k,f,g,m,n,l,i,xs,yx,xe,ye,jvx,jvy,xi,yiAsInteger

ni=a*a+b*b

mi=c*c+d*d

r=Sqr(ni)

form2.Cls

ci=2

f=1

g=1

k=0'

正X进给标志1正向-1负向

m=0'

负Y进给标志1正向-1负向

n=0'

累加次数

i=CInt(Text5)'

寄存器位数赋给i

l=2^i

xs=CInt(Text1)

ys=CInt(Text2)

xe=CInt(Text3)

ye=CInt(Text4)

jvx=Abs(CInt(Text2))

jvy=Abs(CInt(Text1))

jrx=0

jry=0

xi=Abs(CInt(Text3)-CInt(Text1))'

X方向总步

yi=Abs(CInt(Text4)-CInt(Text2))'

Y方向总步长

ai=xs

bi=ys

Picture1.ForeColor=vbGreen

Picture1.DrawWidth=3

form1.CurrentX=200

form1.CurrentY=200

Print"

"

&

X积分器"

Y积分器"

form1.CurrentX=100

form1.CurrentY=400

累加次数n"

jvx"

Jrx=Jrx+Jvx"

△X"

J∑x"

Jvy"

Jry=Jry+Jvy"

△Y"

J∑y"

form1.CurrentY=600

开始"

jvx&

jrx&

k&

xi&

jvy&

jry&

m&

yi

wz:

k=0'

X方向进给标志1X正向进给-1负向进给

m=0'

Y方向进给标志1Y正向进给-1负向进给

Ifxi>

0Then'

X方向判断

jrx=jrx+jvx

Ifjrx>

=lThen'

判断寄存器是否溢出

jrx=jrx-l'

溢出修正

寄存器位数判断

GoToww5

k=-1

k=1

xi=xi-1

Ifyi>

Y方向判断

jry=jry+jvy

Ifjry>

jry=jry-l'

m=1

m=-1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 销售营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1