XY步进电机控制系统课程设计报告_第1页
XY步进电机控制系统课程设计报告_第2页
XY步进电机控制系统课程设计报告_第3页
XY步进电机控制系统课程设计报告_第4页
XY步进电机控制系统课程设计报告_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、机电系统综合设计报告平面XY步进(伺服)数字控制设计院系名称: 机械与储运工程学院 专业班级: 机械设计制造及其自动化09-3班 学生姓名: 徐利达 学号: 2009041322 同组学生姓名: 王鹏 学号: 2009041319 指导教师: 张 蓬 完成日期 2013年 4 月 7 日18 / 22文档可自由编辑打印摘 要本次机电系统综合设计要求通过计算机高级编程语言实现对步进电机的运动控制来进行控制,以达到对机电一体化知识的巩固提高及综合运用。本报告详细讲述了GT运动控制的硬件和软件环境,阐述了GT系统运动控制器的控制原理,数控技术中逐点比较法的插补原理,图像二值化原理,图形轮廓提取四邻域

2、法原理,以及这些原理在本次机电系统综合设计中的具体应用和实现方法。介绍本小组制作NL(No Limited)步进电机控制系统的界面和原理,让读者在一定程度上了解数控技术,图像处理技术以及其他方面的相关内容。关键词:步进电机;C语言;二值化目 录摘 要I第1章 设计目的及要求11.1 设计目的11.2 设计要求1第2章 设计的软硬件环境22.1 设计系统硬件环境22.2 设计系统软件环境2第3章 设计原理33.1 电机驱动使能及驱动33.1.1 运动控制卡的初始化33.1.2 对专用输入信号参数进行设置33.1.3 运动控制轴的初始化33.2 单轴运动43.3 多轴运动53.4 图像的二值化轮廓

3、提取63.5 轮廓绘制7第4章 设计方案及具体实施84.1 总体设计方案84.2 运动控制的初始化以及测试94.2.1 运动控制的初始化94.2.2 运动测试104.3 几何图形加工的程序实现方法104.3.1 直线加工的程序实现方法104.3.2 圆弧以及椭圆弧加工的程序实现方法114.4 图形轮廓加工的程序实现方法114.4.1 笔头位置调整方法114.4.2 图像二值化及轮廓提取方法124.4.3 图像数据处理及轮廓加工方法13第5章 设计结果与分析145.1 任务完成情况以及设计优缺点145.1.1 优点145.1.2 缺点145.2 困难及解决14第6章 设计总结16附录A 机电设计

4、日志17附录B 设计成果(加工的曲线图,轮廓图,软件设计界面)18第1章 设计目的及要求1.1 设计目的本次机电系统综合设计要求以GT系列运动控制器为核心,以计算机语言为控制手段,通过计算机与运动控制器相互通信,对其进行运动的初始化,运动过程的控制来实现运动控制器两轴和笔架的运动,并绘制简单的几何图形如:直线、圆、椭圆等,以及绘制通过计算机程序图形识别、轮廓识别处理后的图像。1.2 设计要求利用GT系列运动控制器和GXY系列运动平台,在windows下用VB语言实现平面XY的数字加工控制。基本要求如下:编写GT系列运动控制器和GXY系列运动平台的初始化程序,通过初始化程序可实现系统的复位;编写

5、平面X、Y的驱动程序以控制X、Y方向的运动;编写插补算法以实现平面四象限的直线,顺、逆圆,顺、逆椭圆,以及圆弧和椭圆弧简单的几何图形绘制;编写控制程序以实现任意图像的轮廓提取,并对提取的轮廓数据进行处理,将轮廓数据转化为对二维伺服数据控制机床的驱动代码,利用伺服驱动函数库实现在该设备上的轮廓加工;实现以上加工图形的绘制时必须在图形绘制中实现抬笔落笔的控制盒超界判断。第2章 设计的软硬件环境2.1 设计系统硬件环境本次机电系统综合设计所采用的GT运动控制器主要用于对机械传动装置的速度、位置进行实时的控制管理,使运动部件按照预期的轨迹和规定的运动参数完成相应的动作。运动控制系统为开环控制系统。GT

6、系列运动控制器机械本体采用模块化拼装,其主体由两个直线运动单元(X、Y两直线运动轴)组成。每个直线运动单元主要包括工作台面、滚珠丝杠、导轨、轴承座、基座、伺服电机等部分。为实现运动对平台运动轨迹的记录,GT运动控制器还配备了由继电器控制上下运动的笔架,来进行图形的绘制。2.2 设计系统软件环境本次机电系统综合设计,通过计算机高级语言C实现对运动控制器运动参数、运动方式的计算和控制。本小组采用VC6.0+进行可视化的编程,GT运动控制器提供了DOS下的运动函数库和Windows下的运动函数动态链接库,本小组使用的是Windows下的运动函数动态链接库,只要调用运动函数库中的函数,就可以实现运动控

7、制器的各种功能。在Windows系统下使用VC中函数库,只需要将GT400.dll、GT400.h、GT400.lib三个文件放到源程序根目录下,再将GT400.lib添加到用户工程中,GT运动控制器提供的Windows下的运动函数动态链接库就可以直接调用。第3章 设计原理按照本次机电系统综合设计的要求,本小组利用VC+,实现对运动控制器的控制,使运动控制按照 VB程序进行单轴运动、多轴协调运动、简单几何图形插补运算绘制、复杂图形绘制等等。3.1 电机驱动使能及驱动在实现 GT运动控制器的运动之前,需对其运动控制卡、运动控制轴、运动控制器、专用输入信号参数设置进行初始化,初始化之后才可以实现运

8、动控制器简单的单轴运动,多轴协动。 3.1.1 运动控制卡的初始化在运动控制器初始化中需先打开运动控制器设备,复位运动控制器,设置控制周期并对每一轴进行中断屏蔽。GT运动控制器库函数中提供的运动控制器初始化函数中 GT_Open()用于打开运动控制器设备,GT_Reset() 用于复位运动控制器,GT_SetSmplTm()用于设置控制周期,rtn=GT_SetIntrMsk()屏蔽轴中断。(详细初始化过程程序见源程序)。其中,运动控制器以特定的控制周期刷新控制输出,单位是微秒。运动控制器再控制周期内要完成必要的计算,控制周期不能太小,因此设定的范围为 481966.08微秒。运动控制器默认的

9、控制周期为 200微秒,一般不应小于这个值。在本次设计中,始终采用 200毫秒的控制周期。 3.1.2 对专用输入信号参数进行设置对专用输入信号参数进行设置即设置限位开关有效电平。运动控制器通过两个(正向、负向)限位开关自动地设定控制轴的运动范围。一旦限位开关被触发,运动控制器自动地禁止控制轴朝越限的方向运动。运动控制器默认的限位开关为常闭开关。即正常工作时,限位开关信号为低电平;限位开关触发时,限位开关为高电平。在此用到了函数库中的 GT_LmtSns(LmtSense)来对限位开关有效电平进行设置。(详细程序见源程序)。 3.1.3 运动控制轴的初始化对运动控制轴的初始化则需要用 GT_C

10、lrSts()函数清除当前轴不正确状态,用 GT_StepPulse()函数设置输出正负脉冲信号,用 GT_AxisOn()函数开启当前轴的驱动使能(详细的轴初始化源程序见源程序)3.2 单轴运动在运动的初始化完成以后,便可以通过调用库函数的单轴运动命令来实现运控器的单轴运动。运控器针对单轴运动提供了四种运控模式:S-曲线模式、梯形曲线模式、速度控制模式、电子齿轮模式。在本次课程设计中会使用 S-曲线模式和梯形曲线模式。梯形曲线模式的速度曲线如图3.1所示:图3.1 梯形速度曲线第一阶段,速度按照设定的加速度值从零加速到最大速度;第二阶段,加速度为零,速度保持已达到的最大速度运行到第三阶段;第

11、三阶段,按设定的加速度减速到零,此时达到要求的目标位置。编程中,调用库函数中 GT_PrflT()函数可以实现梯形曲线运动模式,另外还需进行相应的参数设置: GT_SetAcc() 设置当前轴的加速度,GT_SetVel() 设置当前轴的最大速度,GT_SetPos() 设置当前轴的目标位置。S形曲线模式的速度曲线如图3.2所示:图3.2 S-曲线模式速度、加速度、加加速度曲线用 GT_PrflS()函数设置当前轴的运动模式为 S-曲线模式,其它必需函数以及函数功能如下:GT_SetJerk() 设置当前轴的加加速度GT_SetMAcc() 设置当前轴的最大加速度 GT_SetVel() 设置

12、当前轴的目标速度 GT_SetPos() 设置当前轴的目标位置这里,加速度的单位是 Pulse/ST 2,速度单位是 Pulse/ST,目标位置单位是 Pulse,Pulse是脉冲数。其换算关系为:平台向前运动 10000Pulse相当于运动 4mm。 在对单轴的这些运动模式设置好后,使用 GT-Update()对参数进行刷新后便可使单轴按照所定参数进行运动了。3.3 多轴运动运动控制器可以实现两种轨迹的双轴协调运动:直线插补、圆弧插补。在双轴协动之前,需对坐标进行映射,以实现坐标系与轴的对应,实现轴的坐标化。通过调用 GT_MapAxis() 命令可以将在坐标系内描述的运动通过映射关系映射到

13、相应的轴上。从而建立各轴的运动和要求的运动轨迹之间的运动学传递关系。运动控制器根据坐标映射关系,控制各轴运动,实现要求的运动轨迹。调用 GT_MapAxis() 命令时,所映射的各轴必须处于静止状态。这种映射关系能够简单地描述成下面的计算公式: Axis _ N = Cx x + Cy y + Cz z + Ca a + C 由于所用的运动控制系统仅限于两轴,因此上式中 Cz,Ca为零。映射是双轴联动的前提,双轴运动实现还必须设置双轴联动的合成速度和合成加速度。其合成速度和合成加速度的数学表达式如下:合成速度: V=Vx2+VY2+VZ2+VA2合成加速度: Acc=Accx2+AccY2+A

14、ccZ2+AccA2在 GT运动控制函数库中可以通过调用 GT_SetSynVel(double Vel)来设置轨迹段的合成运动速度,调用 GT_SetSynAcc(double Accel)来设置坐标系运动中轨迹段的合成加速度。双轴映射和运动参数的设置是双轴联动的基础。GT运动控制器提供了两种多轴联动的方式即多维直线插补运动和多平面圆弧插补运动。本次课程设计的共同运动控制器限于两轴,因而直线插补仅为两维直线插补,圆弧插补仅为 XY平面圆弧插补。调用函数库中 GT_LnXY()可以实现两维直线插补(以终点为输入参数),调用 GT_ArcXY()可以实现 XY平面圆弧插补(以圆心位置和角度为输入

15、参数),调用 GT_ArcXYP()可以实现 XY平面圆弧插补(以终点位置和半径为输入参数),这样便可实现双轴联动下直线和圆弧的绘制。运控器简单运动的控制只需要直接调用函数库中函数即可,涉及到的程序设置还不是很多。3.4 图像的二值化轮廓提取图形轮廓提取是要从黑白的图片中提取出运动控制器的运动轨迹 ,是可以脱离控制器单单由程序实现的过程。在进行图形轮廓提取之前得先对图形进行二值化处理,使彩色的图片变成仅有黑白两种颜色的图片,这里需要通过编写程序来实现。在对彩色图像的处理中,首先要对彩色位图颜色值进行分解。像素的颜色值(用 Col表示)是一个长整形的数值,使用四个字节,最上位的字节为零,其他三个

16、个下位字节依次为 B、G、R,值为 0-255。从 Col值分解出 R、G、B使用 AND运算符,得出 R=COLAND&Hff G= (COLAND&Hff00)/256 B=(COLAND&Hff00)/(256*256) 分别是红,绿,蓝三种颜色值。此后,运用三种颜色值,计算出灰度值,其算法为 rr=gg=bb=(R+G+B)/3,使彩色图像生成灰度图象。以方便后续的二值化处理。使灰度图象二值化的方法很多,这里采取了一种比较简单的二值化方法。设定了一个颜色分界点的值,在提取每个像素点颜色值之后使其同这个值进行比较,大于这个值则认为这个点是白色的,并将白色值 255赋给它,反之,认为它是黑

17、色的,同样把黑色值 0赋给它。这样灰度图象便变成了黑白的二值图像。在经过多次的调试后可以得出比较满意的分界值和效果比较好的黑白图片。对图形进行二值化处理之后,便可以提取轮廓了。图形轮廓提取的方法有很多种,如:四邻域法、八邻域法、全面检测法等。在这三种提取轮廓的方法中,四邻域法从本像素点出发从它的上、下、左、右四个方向寻找是否全部是黑色的点,如果是则认为这个点在图形的内部,标记后清除,这种方法虽然会丢失图形轮廓上的一些点,但它的算法比较简单,易于实现。本小组此次轮廓提取主要采用八邻域法。图像二值化以后,将所有位图点的灰度二维矩阵记录下来,轮廓提取时,逐点扫描灰度,当遇到第一个黑点时停住,判断该点

18、周围八点是否都为黑点,若是,则该点不是轮廓点,故设置其为白点。继续扫描,重复判断边界最后即可得到位图的轮廓。相比较四邻域法而言,八邻域法的优点在于它不会丢失图像轮廓上的点,而且对于VC的算法编程上比较容易实现。经过多次试验,最终选用八邻域法。下图为原位图(图3.3)和轮廓提取后的位图(图3.4)比较: 图3.3 原位图图3.4 轮廓提取后的位图3.5 轮廓绘制图像数据处理及在提取出图形轮廓之后,进行图形绘制,在这个过程中同样存在两种方法,“四邻域法”和“八邻域法”第4章 设计方案及具体实施4.1 总体设计方案本次机电系统综合设计所采用的 GT运动控制器的硬件示意图如图 4.1所示: 图4.1

19、采用GT系列运动控制器组成的控制系统框图由于VC+可视化编程较为困难,因此本小组采用单界面的简易形式实现所有功能。下图4.2为我们整个软件的界面:图4.2 软件界面共分五个大区域,分别实现初始化、测试、直线插补、圆弧插补、轮廓化五大功能。4.2 运动控制的初始化以及测试4.2.1 运动控制的初始化下图4.3为软件的初始化区域图4.3 初始化区域 “初始化(定义原点)”按钮按下以后,调用程序中的huiling()函数,其中包括GT_Open()打开运动控制器设备,GT_Reset()复位运动控制器,GT_SetSmplTm(200)设置控制周期为200ms,实现对运控设备的初始化。此时,运控设备

20、将会建立起以当前位置为坐标原点的XY坐标系。 “关闭(回到原点)”按下以后,分别对X、Y调用GT_SetPos(0)两轴同时回到初始化时所定义的原点位置。详细程序见源程序。4.2.2 运动测试下图4.4为软件测试区图示图4.4 软件测试区测试区又分为三个部分:坐标显示区(上区域),参数设置区(左下区域),按钮区(右下区域)。参数设置区用于设置参数单步移动量(单位mm)和移动速度(mm/s),坐标显示区用于显示板卡当前坐标,按钮区用于控制所需操作。本区主要实现运动控制器的单轴运动。例如:设置好参数L=20、V=3,按下“X+”按钮,则X运动轴向正方向以3mm/s速度前进20mm的距离。参数设置区

21、靠动态编辑框控件实现,使用GetDlgItem(IDC_EDIT)-GetWindowText(*,10)语句得到所设置的参数L和V,用于实现单轴前进。单轴运动功能的实现关键靠GT_SetPos()语句,通过设置位置达到令单轴前进的目的。其中还有轴开启GT_Axis(),打开轴驱动使能GT_AxisOn()等语句。坐标显示区属于本小组的一大特色功能,使用了VC+软件提供的动态编辑框控件,使用GetDlgItem(IDC_EDIT)-SetWindowText()语句,将计算得到的当前轴位置显示在动态编辑框中,从而能够清楚地知道当前点与初始点的距离。详细程序见源程序。4.3 几何图形加工的程序实

22、现方法4.3.1 直线加工的程序实现方法下图4.5为软件的直线插补功能区图4.5 直线插补功能区本区主要实现两轴联动的四象限直线插补运动。例如:设置参数X=30,Y=-20,则板卡将向第四象限(30,-20)的方向直线运动。参数设置功能实现方法同上文所述采用动态编辑框。直线插补时,程序通过cnt12=1000,0,cnt22=0,1000设置X,Y两轴坐标映射。经实际测试,该设备1000个脉冲行进的距离是1mm,故而采用上述语句。程序通过设备函数库中的GT_LnXY(X,Y)直接实现直线插补。4.3.2 圆弧以及椭圆弧加工的程序实现方法下图4.6为软件的圆弧插补功能区,集成椭圆弧加工功能。图4

23、.6 圆弧插补功能区本区主要实现以当前点为圆心的各种圆弧的插补。X、Y为圆弧起点坐标,为角度(当为正时画逆圆,当为负时画正圆),a/b为椭圆的X轴长和Y轴长之比(当a/b1时,X为长轴,Y为短轴;当a/b=t?ONE:ZERO)当整个循环遍历结束以后,我们就得到了二值化的位图了。图像的轮廓提取的基本原理同3.4节,采用“八邻域法”。编程关键在于,将二值化中所计算得到的二值化位图的灰度矩阵存入一个二维数组,作为轮廓处理的一个依据。关键语句: if(n1+n2+n3+n4+n5+n6+n7+n8=0) /n1n8为该位点周围八个相邻点的灰度值 shuchuji=255;/若周围八点都为0,则该点为

24、255 4.4.3 图像数据处理及轮廓加工方法如3.5节所描述,轮廓加工方法主要采用四邻域法,关键语句:for(c=-1;c=1;c+)/双循环for(d=-1;d=1;d+)if(saomiaoa+cb+d=255)/判断上下左右四点中扫描到第一个黑点a+=c;b+=d;saomiaoab=0;/修改读取到的黑点为白goto f;/前往控制器运动区向所读取的黑点前进经过多次试验以及理论证实,“四邻域法”绘制的图形更为流畅,且产生的孤点较少,且图形完整,同时,本小组也提出了处理孤点的方案及程序,如下所示for(c=-1;c=1;c+) for(d=-1;d=1;d+) if(c*d=0) if

25、(saomiaoa+cb+d=255)/判断上下左右是否有黑点 goto jixu;/有黑点,则不是孤点,继续运行goto Re;/没有黑点,是孤点,则返回重新寻找落笔点第5章 设计结果与分析5.1 任务完成情况以及设计优缺点整个软件设计成功地完成了设备初始化、系统测试、直线插补、圆弧插补、二值化、轮廓提取与绘制等几大功能,基本能达到老师所要求的功能,但是还存在不少缺陷,以下是软件的优缺点。5.1.1 优点1、初始化区的一键回零功能:关闭设备的同时能使X、Y轴回到初始定义的原点位置,简单便捷;2、使用测试区进行单轴步进时,可以显示两轴当前位置坐标;3、圆弧插补与椭圆弧插补功能集成,大大简化操作

26、界面,全面而简洁;4、轮廓绘制中加入孤点去除程序,能够自动跳过孤点,缩短加工时间,并且大大增加笔头的寿命;5.1.2 缺点1、不能连续做直线插补;2、圆弧插补的起笔落笔控制不佳,原点到起点之间会留下一条线;3、二值化中,对位图画布的比例有一定要求,如果比例不符合,会出现绘图失败。5.2 困难及解决困难一:图像的二值化关于VC中对图像的处理设计到相当多的编程知识,首先VC中对文件的输入输出、文件流的读写等等,所涉及到的VC库函数众多而且参数复杂,需要查阅大量的编程指导书和进行大量的才能真正掌握,算是一大难点;其次,位图文件结构复杂,每一个位图文件都有34部分组合而成,变量较多,易混淆;再次,文件

27、跟位图的知识结合点较多,更是增加难度。针对问题的复杂性,本组借阅了大量VC编程教程并且通过网络获取相关程序,最后经过实际操作,最终得到了本次设计结果。困难二:VC中的界面设计以及控件使用VC环境下的程序设计不同于VB,可视化程度较低,因此带来了不少困难,例如,最初对坐标显示区的编写中对动态编辑框控件的运用,不知道如何才能设置所需要的参数,即将数据通过界面传输到程序中去参与运算。经过翻阅书籍,本组最终找到了所需要的语句,成功地写出了坐标显示区,并且这几条语句最终奠定了整个程序的界面基础。第6章 设计总结通过三周的机电系统综合设计,从中学到了很多以前没有学到东西,从中获益匪浅,包括以下重要的几个方面:第一,由于本次设计采用的是VC6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论