sin?n?1tnr??r??l?dt (3-28) yn?yn?1?2?tn?1另外,考虑到系统的各个状态量都是通过数字编码器输出的脉冲信号进行检测的,要将脉冲信号转换为机器人移动的距离及转过的角度,必须对脉冲信号进行定标,即确定每个脉冲与驱动轮移动的距离的系数。已知驱动轮的半径r = 70mm ,电机到车轮的减速齿轮的变比为62 : 1 ,电机每旋转一周发出500个脉冲,从而可以得到脉冲当量应为2 * PI * 70/(500 * 62) ,即0.01418mm/ P 。
对于控制系统的软件编程语言,要根据系统的要求进行选择,一般要求代码简捷,执行效率高,实时性好。AGV自动导引小车的引导原理是根据自动导引小车行走的轨迹进行编程,数字编码器检测出的电压信号判断其与预先编程的轨迹的位置偏差,控制器根据位置偏差调整电机转速对偏差进行纠正,从而使自动导引小车沿预先编程的轨迹行走。因此AGV自动导引小车行走过程中,需不断地根据输入的位置偏差信号调整电机转速,对系统进行实时控制。为对AGV自动导引小车实施控制,需要对硬件进行操作。
整个AGV自动导引小车的控制流程如图3-14所示。
开始函数、变量、中断初始化读取预设路径坐标路径规划及轨迹插补读取上次运行误差序列AGV平滑启动环节轨迹检测到第一段轨 迹终点吗?N偏差自动校正D/A输出Y第二段轨迹控制环节第i段轨迹控制环节到第i段轨 迹终点吗?N偏差自动校正D/A输出Y到终点了吗?NY存储本次轨迹控制误差序列结束
图3-14 控制系统程序结构图
23
程序开始:先设置函数和变量,并对各芯片进行初始化;读取预先设置轨迹的坐标;对轨迹进行插补;读取上次的误差,自动导引小车启动;进行轨迹的检测;判断第一段路径走完没有;NO则把检测的实际轨迹和预先设置的轨迹相比较产生偏差,接着把偏差送给D/A转换器,从而控制自动导引小车沿预先设定的轨迹行走。YES则走下一段轨迹,接着判断是否到达终点,到达终点结束;没到达终点则继续走下一段轨迹。
下面为圆弧插补程序,流程图如图3-15。 DDA圆弧插补程序:
XP BIT 00H ;X向益出标志 YP BIT 01H ;Y向益出标志 XS EQU 60H YS EQU 61H XE EQU 62H YE EQU 63H JVX EQU 64H JVY EQU 65H JRX EQU 66H JRY EQU 67H JEX EQU 68H JEY EQU 69H ORG 1000H
MOV JVX,YS MOV JVY,XS MOV JRX,#0 MOV JRY,#0 MOV R2,XS MOV R4,XE
ACALL BSUB MOV JEX,R6 MOV R2,YS MOV R4,YE
ACALL BSUB MOV JEY,R6
CLR XP CLR YP
MOV R2, XS MOV R4, YS
ACALL YC CF: MOV A,JEX JZ YX MOV R2, JRX MOV R4, JVX
ACALL BADD MOV JRX, R6 MOV A, R7
;起点坐标X ;起点坐标Y ;终点坐标X ;终点坐标Y ;X积分累加器 ;Y积分累加器 ;X被积函数寄存器 ;Y被积函数寄存器 ;X向终点计数器 ;Y向终点计数器 ;初始化 ;求X坐标的计数初值 ;求Y坐标的计数初值 ;调用益出子程序 ;X向 ;修改X向寄存器 24
CJNE A, JRX, NX1 ;X向是否益出 SETB XP DEC XS
DEC JEX ;-X走一步 AJMP YX NX1: JC YX SETB XP DEC XS
DEC JEX
XY: MOV A, JEY ;Y向 JZ ZDP MOV R2, JRY MOV R4, JVY
ACALL BADD ;修改Y向寄存器 MOV JRY, R6 MOV A, R7
CJNE A, JRY, NX2 ;Y向是否益出
SETB YP ;+Y走一步 INC YS DEC JEY
AJMP JINX
NX2: JC JINX ;进给了X? SETB YP INC YS DEC JEY
JINX: JNB XP, NX3 ;进给了Y? DEC JVY NX3: JNB YP, CF INC JVX AJMP CF ZDP: MOV A, JEX
JNZ CF ;X向到终点吗? MOV A, JEY
JNZ CF ;Y向到终点吗? END
BADD:加法程序入口;被加数R2;加数R4;结果R6; BSUB:减法程序入口;被减数R2;减数R4;结果R6。 BSUB:MOV A,R4 ;取减数
CPL ACC.7 ;减数符号取反以进行加法 MOV R4,A
BADD:MOV A,R2 ;取被加数 XRL A,R4 ;两数异或
MOV C,ACC.7 ;两数同号CY=0,两数异号CY=1 MOV A,R2
25
CLR ACC.7 ;符号位清0 MOV R2,A MOV A,R4
CLR ACC.7 ;符号位清0 MOV R4,A
JC JIAN ;两数异号转JIAN
MOV A,R2
ADD A,R4
MOV R6,A
RET JIAN:MOV A,R2 ;相减 CLR C
SUBB A,R4 MOV R6,A
JNB ACC.7,QWE MOV A,R6
CPL A
ADD A,#1
MOV R6,A
QWE:RET
益出子程序:R7中存放益出值。 YC:MOV R5,#08H MOV R7,#00H CLR C
MOV A,R2
SUBB A,R4 JNZ LP LP5:MOV A,R2 LP6:CLR C
LP2:RLC A
JC LP1 INC R7 DJNZ R5,LP2 LP1:CLR A LP3:SETB C
RRC A
DJNZ R7,LP3 CPL A MOV R7,A
RET
LP:JC LP4 AJMP LP5
LP4:MOV A,R4 AJMP LP6 入口JVx?ys,JVy?xsJRx?0,JRy?0JEx?xs?xe,JEy?ys?yeYJEx?0?JRx?JRx?JVxN益出?Y-X走一步JEx?JEx?1J?0?YEyNJRy?JRy?JVyJEx?0?NJEy?0?NY益出?出口Y+y走一步JEy?JEy?1N进给了?x?YJVy?JVy?1N进给了?y?YJVx?JVx?1 图3-15 DDA圆弧插补流程图
26
结论与展望
本课题为自动导引小车(AGV)的设计。AGV自动导引小车是一种物料搬运设备,是能在一位置自动进行货物的装载,自动行走到另一位置,自动完成货物的卸载的全自动运输装置;AGV自动导引小车系统结构一般由机构部分、传感器组、控制部分以及信息处理部分构成。通过设计,实现了小车自动按预先设定的轨迹行走,从而在柔性制造系统中自动运送工件。
本课题的设计有待进一步的改进:在硬件方面,增加位置检测传感器形成闭环控制系统;在软件方面,开发应用软件有利于随意改变小车的运动轨迹。AGV的发展会向着智能化方向前进。
参考文献(References)
[1]孔令中.现代物流设备设计与选用[M].北京:化学工业出版社,2005.10. [2]哈尔滨工业大学理论力学教研室.理论力学[M].(Ⅰ)第六版.北京:高等教育出版社,2004.1.
[3]戴曙.金属切削机床[M].北京:机械工业出版社,2000.5.
[4]濮良贵,纪名刚.机械设计[M].第七版.北京:高等教育出版社,2004.
[5]唐金松.简明机械设计手册[M].第二版.上海:上海科学技术出版社,2000.10. [6]谭建成.电机控制专用集成电路[M].北京:机械工业出版社,1999. [7]朱晓春.数控技术[M].北京:机械工业出版社,2001.5.
[8]李广第,朱月秀,王秀山.单片机基础[M].北京:北京航空航天大学出版社,2001.7. [9]张迎新,杜小平,樊桂花,雷道振.单片机初级教程[M].北京航空航天大学出版社,2000.6. [10]机械设计手册编委会.机械设计手册[M].新版第5册.北京:机械工业出版社,1997. [11]王让定,陈金儿,叶富乐,史旭华.汇编语言于接口技术[M].北京:清华大学出版社,2001.
[12]Barry B.Brey.Intel微处理器结构、编程与接口[M].北京:电子工业出版社,1999.7. [13]洪家娣,李明,黄兴元.机械设计指导[M].南昌:江西高校出版社,2001.12. [14]迈克·普瑞德科.机器人控制器与程序设计[M].北京:科学出版社,2004.
致谢
毕业设计终于结束了,我的感受是充实,十分的充实。有三个理由:一是这次设计我们学到了很多的专业知识,是在老师的指导下自己刻苦独立完成而感到充实;二是这次设计让我充分懂得不论是做设计还是做其他事情都要认真,这次设计让我感受到什么是认真,这也让我充实;三是老师的谆谆教导让我的感到充实,虽然老师的直接作用或不是很大,但是如果没有老师我们的设计是一定回走许多的弯路的。
总之,我能顺利完成这次设计,要衷心感谢老师万伟民的精心指导,同时谢谢同组设计人员和对我设计提供过帮助的人!
27