步进电机指数规律升降速的单片机控制系统设计.rar

RAR格式版权申诉手机打开展开

步进电机指数规律升降速的单片机控制系统设计,3.1万字 74页包括开题报告,任务书,设计说明书,2张cad原理图,程序代码摘 要从步进电机的矩-频特性可知,启动频率越高,启动转矩越小,带动负载的能力越差。当启动频率较高时,启动时会造成失步,而停止时由于惯性作用又会发生过冲,所以在步进电机控制中必须要采取升降速控制措施。本...
编号:78-37857大小:931.30K
分类: 论文>机械工业论文

该文档为压缩文件,包含的文件列表如下:

内容介绍

原文档由会员 weyue 发布

步进电机指数规律升降速的单片机控制系统设计
3.1万字 74页
包括开题报告,任务书,设计说明书,2张CAD原理图,程序代码



摘 要

从步进电机的矩-频特性可知,启动频率越高,启动转矩越小,带动负载的能力越差。当启动频率较高时,启动时会造成失步,而停止时由于惯性作用又会发生过冲,所以在步进电机控制中必须要采取升降速控制措施。本文根据步进电机的动力学方程和矩-频特性曲线建立系统的数学模型,采用指数规律的升降速算法,以单片机为核心对步进电机进行并行控制。系统的软件设计由C51 语言编程来实现。并设计了检测系统用于对步进电机转速和步数的检测。最后,本系统可以实现以下功能:在显示器的提示下,由键盘输入运行的步数和稳定运行的速度;由各个功能键控制系统的运行,按启动键后,步进电机按照输入的步数进行走步;如在运行期间按停止键,则步进电机停止运行。研究表明,采用指数规律的升降速曲线将大大地提高微机控制步进电机的最高工作频率,大大缩短所需的升降速时间。

关键词:步进电机,单片机,速度控制,C51 语言



ABSTRACT

According to torque vs. speed characteristic of stepping motor, the higher startup speed is, the smaller startup torque is and then the worse the capability of driving load is. When the startup speed is higher, stepping motor will lose steps. While stopping, it will also lose steps because of inertia. So, it needs to take speed control measures on control of stepping motor. Mathematic model of the system is educed by dynamics equation and torque vs. speed characteristic of stepping motor. It adopts speed control arithmetic of exponential rule and deals with process of acceleration and deceleration via discrete method. Single-chip microcomputer that is the core of system controls stepping motor. The system is programmed by C51 language. The test system is designed to test the rotate speed and steps of stepping motor. Finally, according to the direction of LED display, running steps and speed are input by keyboard. The system’s run is controlled by functional keys. Stepping motor will run to the given steps if the “start” key is pressed. Meanwhile, stepping motor will stop if the “stop” key is pressed during its running. The research shows: the method of acceleration and deceleration via exponential rule will greatly improve the highest running frequency of stepping motor and shorten the acceleration and deceleration time.

Keywords: stepping motor; single-chip microcomputer; speed control; C51 language



目 录

中文摘要 I
英文摘要 II
第一章 绪 论 1
第二章 系统工作原理和总体方案拟定 3
2.1控制方案论证与比较 3
2.1.1步进电机控制系统的构成 3
2.1.2步进电机的串行和并行控制 3
2.2步进电机工作原理和动态特性分析 4
2.2.1反应式步进电机原理 4
2.2.2 步进电机的动态特性 6
2.3步进电机升降速控制讨论 7
2.3.1步进电机的失步 7
2.3.2步进电机升降速曲线的分析 8
第三章 控制系统的数学模型 9
3.1 步进电机升速的控制算法 9
3.2 步进电机升速过程的离散处理 11
3.3 步进电机降速过程的离散处理 12
3.4 步进电机升速过程运行参数的计算 12
第四章 控制系统的硬件设计 14
4.1 系统的硬件结构 14
4.2 系统的硬件设计 15
4.2.1 微处理器及存储器的配置 15
4.2.2 键盘与显示接口电路的设计 16
4.2.3 定时和报警电路的设计 20
4.2.4步进电机的脉冲分配 21
4.2.5 扩展存储器及扩展芯片地址的确定 24
4.3 硬件系统的合成及其原理图 25
第五章 控制系统的软件设计 26
5.1 软件结构设计 26
5.2 系统的程序流程 28
5.3 程序设计问题分析 38
5.3.1 程序的初始化及变量的定义 38
5.3.2 存储类型与存储模式的定义 39
5.3.3 编译预处理的定义 40
5.3.4 数组查表功能 40
5.3.5 中断服务函数的定义 41
5.3.6 有关定时器精确定时的实现 42
5.3.7 主函数及键盘与显示功能的实现 43
第六章 转速和步数检测系统设计 45
6.1 光电编码器的工作原理 45
6.2 检测系统的硬件设计 45
6.3 检测系统的软件设计 47
6.3.1 检测系统的流程图 48
6.3.1 检测系统程序 48
第七章 结 论 49
参考文献 50
致 谢 51
附录A:步进电机升速过程运行参数计算程序 52
附录B:步进电机控制系统程序 55
附录C:步进电机检测系统程序 63


参 考 文 献
[13] 童诗白,模拟电子技术基础,北京,清华大学电子学教研组,2002:65-68
[14] 李海波,何雪涛,步进电机升降速的离散控制,北京化工大学学报,2003,(1):1-2
[15] 陈维山,赵杰,机电系统计算机控制,哈尔滨,哈尔滨工业大学出版社,1999:
124-125
[16] 王昊,通用电子元器件的选用与检测,北京,电子工业出版社,2006.1:250-256
[17] 赖麒文,8051单片机C语言开发环境实务与设计,北京,科学出版社,2002:335-336
[18] 余永权,ATMEL89 系列单片机应用技术,北京,北京航天航空大学出版社,2002: 25-29
[19] 马忠梅,籍顺心,张凯,马岩,单片机的C语言应用程序设计,北京,北京航空航天大学出版社,1999:125-127
[20] 房小翠,单片微型计算机与机电接口技术,北京,国防工业出版社,2002,269-269
[21] 王永章,杜文君,程国全,数控技术,北京,高等教育出版社,2005.11:261-264
[22] 李汉军,杨士亮,姬国庆,电机转速的精密测量,电子仪器仪表用户,2000,(1):15-16


附录A:步进电机升速过程运行参数计算程序

本程序的各个窗体和模块的代码如下:
1.窗体 form1 下的程序代码:
Private Sub Command1_Click()
fc = Val(Text1.Text)
H = Val(Text4.Text)
Unload Form1
Load Form3
Form3.Show
End Sub
Private Sub Command2_Click()
Unload Form1
......



附录B:步进电机控制系统程序

#include /*绝对宏指令的包含语句*/
#include
#define uchar unsigned char
#define Fm 5000 /*最高连续运行频率*/
#define Fq 750 /*带动负载时的最高启动频率*/
#define PA8255 XBYTE[0x7ffc] /*定义8255A的数据口和命令口*/
#define PB8255 XBYTE[0x7ffd]
#define PC8255 XBYTE[0x7ffe]
#define COM8255 XBYTE[0x7fff]
uchar code forward[]={0x01,0x03,0x02,0x06,0x04,0x05}; /*正转控制字*/
......



附录C:步进电机检测系统程序

#include
#include
#define uchar unsigned char
#define uint unsigned int
#define PA8255A1 XBYTE[0xfffc]
#define PB8255A1 XBYTE[0xfffd]
#define PC8255A1 XBYTE[0xfffe]
#define COM8255A1 XBYTE[0xffff]
#define PA8255A2 XBYTE[0x7ffc]
#define PB8255A2 XBYTE[0x7ffd]
#define PC8255A2 XBYTE[0x7ffe]
#define COM8255A2 XBYTE[0x7fff]
#define P 3600 /*码盘上的狭缝数,即码盘转一圈时发的脉冲数*/
#define TS 10000 /*采样大致时间*/
#define BJJ 0.75
......