资源描述
目 录
1设计任务及要求 1
2方案比较及认证 2
3设计原理 4
3.1硬件原理 4
3.2硬件原理 5
4软件系统 9
4.1软件思想 9
4.2流程图 9
4.3源程序 9
5调试记录及结果分析 10
5.1界面设置 10
5.2调试记录 10
5.3结果分析 11
6心得体会 13
7 参考资料 14
附录 15
武汉理工大学《计算机控制技术》课程设计说明书
1设计任务及要求
设计一个计算机控制步进电机系统,该系统利用PC机的并口输出控制信号,其信号驱动后控制X、Y两个方向的三相步进电机转动,利用逐点比较法插补绘制出如下曲线。
课程设计的主要任务:
1.设计硬件系统,画出电路原理框图;
2.定义步进电机转动的控制字;
3.推导出用逐点比较法插补绘制出下面曲线的算法;
4.编写算法控制程序,参数由键盘输入,显示器同时显示曲线;
5. 撰写设计说明书。课程设计说明书应包括:设计任务及要求;方案比较及认证;系统滤波原理、硬件原理,电路图,采用器件的功能说明;软件思想,流程,源程序;调试记录及结果分析;参考资料;附录:芯片资料,程序清单;总结。
2方案比较及认证
本次课程设计内容为设计一个计算机控制步进电机系统,该系统利用PC机的并口输出控制信号,其信号驱动后控制X、Y两个方向的三相步进电机转动,利用逐点比较法插补绘制出第一象限逆圆弧。数字程序控制主要应用于机床的自动控制,如用于铣床、车床、加工中心、以及线切割等的自动控制中。
采用数字程序控制的机床叫数控机床,它能加工形状复杂的零件、加工精度高、生产效率高、便于改变加工零件品种等优点,是实现机床自动化的一个重要发展方向。本次课程设计采用逐点比较法插补原理以及作为数字程序控制系统输出装置的步进电机控制技术进行第一象限圆弧插补。第一象限圆弧如图2-1所示。
图2-1 第一象限逆圆弧
针对以上设计要求,采用步进电机插补原理进行逐步逼近插补。
硬件方面,步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
逐点比较法是以阶梯折线来逼近直线或圆弧等曲线,它与规定的加工直线或圆弧之间的最大误差为一个脉冲当量,因此只要把脉冲当量(每走一步的距离即步长)取得足够小,就可以达到精度的要求。以下为课程设计要求插补的第一象限逆圆弧。图3-3为第一象限逆圆弧。
软件方面,运用Visual Basic 6.0应用软件,首先制作相应的界面,进行参数设置,其次,在界面中设置相应的command1,存放相应程序,画出x轴和y轴的以及相应的箭头作出正方向,并且执行相应起点和终点的参数,定出圆心,画出相应的四分之一圆弧。作出圆弧后,通过相应的计算分析得出圆弧插补计算的五个步骤,即偏差判断、坐标进给、偏差计算、坐标计算、终点判断。
软件调试及其结果分析,其中包括界面设置,调试记录以及结果分析三个方面,对软件程序进行调试和完善,实现步进电机插补原理。
3硬件设计原理
3.1硬件原理
步进电机通对计算机进行控制,进而进行数模转换,由伺服电机驱动电路驱动伺服电机,带动工作台进行逐步比较插补,逐步逼近给定轨迹。流程如图3.1所示。
图3-1 开环数字程序控制
计算机
D/A
步进电机
工作台
步进电机
驱动电路
随着计算机技术的发展,开环数字程序控制得到了广泛的应用,如各类数控机床、线切割机低速小型数字绘图仪等,它们都是利用开环数字程序控制原理实现控制的设备。其结构亦如图3-1所示。这种结构没有反馈检测元件,工作台由步进电机驱动。步进电机接收驱动电路发来的指令作相应的运动,把刀具移动到与指令脉冲相当的位置,至于刀具是否到达了指令脉冲规定的位置,它不作任何检查,因此这种控制的可靠性和精度基本上由步进电机和传动装置来决定。
图3-2为两台三相步进电机控制接口示意图,选定由PA0、PA1、PA2通过驱动电路来控制x轴步进电机,由PB0、PB1、PB2通过驱动电路来控制y轴步进电机,并假定数据输出为“1”时,相应的绕组通电;数据输出为“0”时,相应绕组断电。
微
型
计
算
机
8255
PA0
PA1
PA2
PB0
PB1
PB2
驱 动
电 路
驱 动
电 路
X轴步进电机
Y轴步进电机
图3-2 两台三相步进电机控制接口示意图
步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。以下为步进电机三相六拍工作方式,其输出字表如表3-1。
表3-1 步进电机三相六拍工作方式输出字表
x轴步进电机输出字表
Y轴步进电机输出字表
存储地址标号
PA口输出字
存储地址标号
PB口输出字
ADX1
00000001=01H
ADY1
00000001=01H
ADX2
00000011=03H
ADY2
00000011=03H
ADX3
00000010=02H
ADY3
00000011=03H
ADX4
00000110=06H
ADY4
00000110=06H
ADX5
00000100=04H
ADY5
00000100=04H
ADX6
00000101=05H
ADY6
00000101=05H
3.2硬件原理
本次课程设计内容为设计一个计算机控制步进电机系统,该系统利用PC机的并口输出控制信号,其信号驱动后控制X、Y两个方向的三相步进电机转动,利用逐点比较法插补绘制出第一象限逆圆弧。、
逐点比较法是以阶梯折线来逼近直线或圆弧等曲线,它与规定的加工直线或圆弧之间的最大误差为一个脉冲当量,因此只要把脉冲当量(每走一步的距离即步长)取得足够小,就可以达到精度的要求。以下为课程设计要求插补的第一象限逆圆弧。图3-3为第一象限逆圆弧。
M(Xm,Ym)
A(Xo,Yo)
B(Xe,Ye)
图3-3 第一象限逆圆弧
以下就以第一象限为例进行分析。
(1) 偏差计算公式
设要加工逆圆弧AB,圆心在原点,起点坐标A(x0,Y0),终点坐标(xe,Ye),半径R。瞬时加工点M(xm,Ym),它距圆心Rm,则可用R与Rm来反映偏差。
由图3-2可知:
由此定义偏差公式为:
若Fm=0,M点在圆弧上;
若Fm>0,M点在圆弧外;
若Fm<0,M点在圆弧内。
第一象限逆圆弧的插补原理是:从圆弧起点出发,若Fm>=0,沿-X方向走一步,并计算新偏差;当Fm<0时,沿+Y方向走一步,并计算新偏差。如此一步一步计算与进给,并在到达终点时停止计算。
但以上Fm计算式比较复杂,可以考虑用递推公式:
① 当Fm≥0时,Xm+1=Xm-1
Ym+1=Ym
Fm+1=Fm-2Xm+1
②当Fm<0时,Xm+1=Xm
Ym+1=Ym+1
Fm+1=Fm+2Ym+1
(2)终点判断方法
① 设置Nx,NY两个计数器,初值设为|Xe-Xo|,|Ye-Yo|在不同的坐标轴进给时对应的计数器减一,两个计数器均减到零时,到达终点。
② 用一个计数器NxY ,初值设为Nx+NY,无论在哪个坐标轴进给,Nxy 计数器减一,计数器减到零时,到达终点。
(3) 插补计算过程
圆弧插补计算比直线插补计算过程要多一个环节,即要计算加工瞬时坐标。故圆弧插补计算为五个步骤即偏差判断、坐标进给、偏差计算、坐标计算、终点判断。
通过以上的分析计算,可以得出以下四个象限的顺圆弧(SR)和逆圆弧(NR)的圆弧插补计算公式和进给方向。其插补进算公式及其进给方向如表3-1所示。
表3-2 圆弧插补计算公式和进给方向
偏 差
圆弧种类
进给方向
偏差计算
坐标计算
Fm≥0
SR1、NR2
-Y
Fm+1=Fm-2Ym+1
Xm+1=Xm
Ym+1=Ym-1
SR3、NR4
+Y
NR1、SR4
-x
Fm+1=Fm-2Xm+1
Xm+1=Xm-1
Ym+1=Ym
NR3、SR2
+x
Fm<0
SR1、NR4
+x
Fm+1=Fm+2Xm+1
Xm+1=Xm+1
Ym+1=Ym
SR3、NR2
-x
NR1、SR2
+Y
Fm+1=Fm+2Ym+1
Xm+1=Xm
Ym+1=Ym+1
NR3、SR4
-Y
由于本次课程设计的设计要求为第一象限逆圆弧,以逆圆弧为例分析,通过以上计算结果分析,通过绘图,的出相应四个象限圆弧插补的对称关系。以下为四个象限圆弧插补的对称关系,当Fm大于等于零或者小于零时,分别对应的偏差判别,偏差计算,进给方向,坐标计算等等。
以下为根据表3-2得出的相应四个象限的插补对应关系,从图中可以推出其对应的具体进给方向,如图3-4所示。
Fm≥0
Fm≥0
Fm≥0
Fm≥0
Fm<0
Fm<0
Fm<0
Fm<0
Y
X
图3-4 四个象限逆圆弧插补的对称关系
4软件系统
4.1软件思想
本次课程设计采用VB软件进行编程与界面制作,软件的设计制作包括如下几方面:
1. 坐标的取值与计算,即设计中所插补的圆弧所位于象限的确定。
2. 圆心所在坐标的确定。
3. 圆弧半径的选择。
4. 通过所选半径及其圆心,确定圆弧起点坐标与终点坐标的选择。
5. 逐步逼近,圆弧插补的实现。
4.2流程图
开 始
偏差判别
Fm≥0
为了逼近圆弧,向+y方向进给一步
为了逼近圆弧,向-x方向进给一步
终点判断
Nxy=0
N
Y
Y
N
结 束
4.3源程序
如附录所示
5调试记录及结果分析
5.1界面设置
运用Visual Basic 6.0应用软件,制作如下界面。其中参数设置包括:半径q的设置,起点坐标设置(起点x轴y轴参数),终点坐标设置((终点x轴y轴参数)。另外,先不要设置“作图”执行程序,其中存放其相关程序。相应参数输入界面设置如图5-1所示。
图5-1 参数输入界面设置
5.2调试记录
通过Visual Basic 6.0应用软件界面设置及其相应的程序编辑, 通过执行程序,在相应picture区域定出原点坐标,作出相应坐标轴以及坐标轴的x轴和y轴的方向,进而作出相应圆弧(同时定义原点的坐标),实现以上步骤之后,通过程序控制,通过插补原理实现完整的插补过程,逐步逼近圆弧。以下为实际运行中的步进电机圆弧插补,通过调试得出以下结果。图5-2为相应调试结果。
图5-2 步进电机插补过程调试结果
5.3结果分析
通过以上界面设置,通过相应参数输入,首先输入相应半径参数q,其次进行起点坐标输入,包括起点x轴坐标输入及其y轴坐标输入,进而进行重点坐标输入,其中包括重点x轴坐标输入及其y轴坐标输入。进而进行作图命令,步进电机插补过程如右图picture所示。
以上图5-2所示步进电机插补过程调试,圆心坐定为(1 ,1),参数输入相应参数输入为q=5,相应计算所得四分之一圆弧起点坐标为(6 ,1),相应终点坐标为(1 ,6),点击“ 作图”按钮,在picture中实现圆心为(1 ,1),起点坐标为(6 ,1),终点坐标为(1 ,6)的圆弧插补。
根据步进电机插补原理,偏差判别是为:
该圆弧为第一象限圆弧,第一象限圆弧插补Fm判别式,有如下关系:
1.当Fm≥0时,Xm+1=Xm-1
Ym+1=Ym
Fm+1=Fm-2Xm+1
2.当Fm<0时,Xm+1=Xm
Ym+1=Ym+1
Fm+1=Fm+2Ym+1
由起点及其终点,可得终点判断Nxy=10,另外令圆心(1 ,1)为新建坐标系原点,可得一下圆弧插补过程,如表5-1所示。
表5-1 圆弧插补计算过程
步数
偏差判别
坐标进给
坐标计算
偏差计算
终点判断
起点
X0=5,Y0=0
F0=0
Nxy=10
1
Fo=0
-x
X1=x0-1=4,Y1=0
F1=F0-2X0+1=-9
Nxy=9
2
F1=-9<0
+y
X2=4,Y2=Y1+1=1
F2=F1+2Y1+1=-6
Nxy=8
3
F2=-6<0
+y
X3=4,Y3=Y2+1=2
F3=F2+2Y2+1=-3
Nxy=7
4
F3=-3<0
+y
X4=4,Y4=Y3+1=3
F4=F3+2Y3+1=0
Nxy=6
5
F4=0
-x
X5=x4-1=3,Y5=3
F5=F4-2X4+1=-7
Nxy=5
6
F5=-7<0
+y
X6=3,Y6=Y5+1=4
F6=F5+2Y5+1=0
Nxy=4
7
F6=0
-x
X7=X6-1=2,Y7=4
F7=F6-2X6+1=-5
Nxy=3
8
F7=-5<0
+y
X8=2,Y8=Y7+1=5
F8=F7+2Y7+1=4
Nxy=2
9
F8=2>0
-x
X9=X8-1=1,Y9=5
F9=F8-2X8+1=1
Nxy=1
1 0
F9=1>0
-x
X10=X7-1=0,Y10=5
F10=F9-2X9+1=0
Nxy=0
根据以上圆弧插补过程,实现完整的圆弧插补过程。
6心得体会
微机控制原理技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习危机控制原理是要涉及到整体的每一部分。通过讨论其控制原理时又要涉及到各部件之间控制的工作原理,不仅较深入理解计算机控制的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。
学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微机基本原理的同时,必须学会各种控制技术的应用,其创造性劳动在于如何用计算机的有关技术实现计算机的控制,设计实用的电路和系统,再配上相应的应用程序,完成各种控制应用项目。
这次课程设计并不是很难,主要的困难来自对程序的处理和界面的设计。功夫不负有心人,经过宿舍想死类型题目的四个人的合作和努力,最后对实验的原理有了更清晰的认识。虽然设计中并的功能并不是十分完善,但是就系统功能来说,基本完成了课程设计要求。但是通过平时课程的学习,又通过本次课程设计对它的再一次认真努力学习和操作,巩固了该门课程的知识和应用,对我们以后的学习也会有帮助的。
本次还遇到一个困难,便是对于VB使用的不熟悉。对于VB的应用,仅仅限于高中一年的简单学习,这次课程设计中对于步进电机的软件仿真,VB中的很多不懂的地方,通过看书学习和向同学请教,实现了步进电机的软件设计。本次课程设计的过程中,对于VB的再一次重温和理解,相信对于今后的学习也有很大的帮助。
总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机控制原理课程上讲到的各种控制技术, 本次设计尤其深入了对步进电机插补原理的理解,熟悉了VB程序的编写过程和运行过程,最后还提高了自己的动手能力。感谢老师的悉心指导。
7 参考资料
[1]郑学坚,周斌 微型计算机原理与应用 清华大学出版社
[2]于海生 微型计算机控制技术 清华大学出版社
[3]沈美明,温冬婵 IBM-PC汇编语言程序设计 清华大学出版社
[4]何立民 单片机应用系统设计 北京航空航天大学出版社
[5]姚燕南,薛钧义 微型计算机原理 西安电子科技大学出版社
[6]沙占友等 新编实用数字化测量技术 国防工业出版社
[7]宋春荣等 通用集成电路手册 山东科技出版社
附录:
附件一
程序清单
Option Explicit
Public q As Double
Public flag As Integer
Public xa As Integer
Public ya As Integer
Public xb As Integer
Public yb As Integer
Public fm As Integer
Public n As Integer
Public x As Double
Public y As Double
Public sx As Double
Public sy As Double
Dim c As Integer
Public Function max(a, b)
If a > b Then
max = a
Else
max = b
End If
End Function
Private Sub Command1_Click()
Picture1.Refresh
q = Val(Text1.Text)
xa = Val(Text2.Text)
ya = Val(Text3.Text)
xb = Val(Text4.Text)
yb = Val(Text5.Text)
Picture1.Scale (-1, 10)-(10, -1) '定义坐标轴的大小
Picture1.Line (0, 0)-(0, 10)
Picture1.Line (10, 0)-(0, 0)
Picture1.Line (10, 0)-(9.5, 0.5) '画出坐标系X.Y方向的箭头
Picture1.Line (10, 0)-(9.5, -0.5)
Picture1.Line (0, 10)-(0.5, 9.5)
Picture1.Line (0, 10)-(-0.5, 9.5)
Picture1.Circle (1, 1), q, vbRed, 0, 3.141592 / 2
n = 2 * q
fm = 0
x = xa - 1
y = ya - 1
Picture1.CurrentX = xa
Picture1.CurrentY = ya
Do
If fm >= 0 Then
Picture1.Line -Step(-1, 0)
fm = fm - 2 * x + 1
x = x - 1
n = n - 1
Else
Picture1.Line -Step(0, 1)
fm = fm + 2 * y + 1
y = y + 1
n = n - 1
End If
Loop While (n > 0)
End Sub
17
展开阅读全文