基于VC++的伺服电机速度控制系统设计
摘 要
本设计完成是基于Visual C++6.0软件下实现伺服电机控制界面的编程,并完成PID控制算法。该控制界面不仅简洁实用,而且具有良好的人机交流部分。
上位机控制界面所实现的功能有电机的启动、停止、正传、反转、速度给定、实时曲线显示等,在完成PID算法后同时下发PID调节后的PWM占空比,实现转速控制。在完成串口通讯编程本文采用MSComm控件实现PC机与单片机通讯,数据的发送与接收采用统一通讯协议,这种方法不仅简单,而且实用。本文采用单片机作为下位机来验证上位机控制功能的实现,单片机作为下位机主要负责直流电机的各种参数数据的采集和模数转换,然后通过串行端口把数据发送给上位机,PC机作为上位机主要负责数据的分析处理和显示。
关键词:伺服电机;VC++;串口通讯;PWM调速;PID;
The servo motor speed control system design Based on VC++
Abstract
This design's core is under the software of Visual C++6.0, realizes the servo motor control contact surface programming, and completes the PID control algorithm. This control interface has not only succinct practical, but also has the good man-machine exchange part.
The superior machine control interface realizes the function has the electrical machinery's start, electrical machinery's stop, electrical machinery's main story, electrical machinery's reverse, the speed value assigns, Curve demonstration and so on. After completing the PID algorithm simultaneously after-crops PID the adjustment the PWM current output.In completing serial port communication programming this article to use MSComm to control to realize PC machine and the monolithic integrated circuit communication, the data transmission and the receive uses the unified communication protocol, in this method is not only simple but also practical. In this article uses the monolithic integrated circuit to confirm the superior machine control function as the lower position machine realization, Monolithic integrated circuit as lower position machine primary cognizance direct current machine's each kind of parameter data gathering and with A/D conversion. Then through the serial port the data transmission for the superior machine, PC machine takes the superior machine primary cognizance data the analysis processing and the demonstration.
Key word: Servo electrical machinery; VC++; Serial port communication; PWM control speed; PID;
目 录
摘 要 I
Abstract II
第一章 引言 1
1.1 设计的目的 1
1.2 设计的意义 2
第二章 电机调速 3
2.1 直流伺服电机简介 3
2.2 直流伺服电机调速 5
2.2.1 V-M调速系统 5
2.2.2 PWM调速系统 7
第三章 GUI设计 10
3.1 主界面 10
3.2 实时曲线 12
3.3 按钮图标的实现 13
第四章 串口通讯 17
4.1 PC机与单片机通信方式 17
4.2 VC实现串口通讯的四种方式 19
4.2.1 基于Windows API通信函数 19
4.2.2 利用端口函数直接操作 21
4.2.3 基于MSComm控件 22
4.2.4 基于CSerial类 23
4.2.5 四种实现方式的分析 24
4.3 串口编程 25
4.3.1 插入MSCOMM控件 25
4.3.2 设置属性 25
4.3.3 设置串口 26
4.3.4 数据类型的处理 29
4.4 帧格式定义 29
4.5 发送数据帧 30
4.6 接收数据帧 30
4.6.1 检测接收缓冲区数据 30
4.6.2 从接收缓冲区取出数据 32
第五章 PID算法 33
5.1 PID算法简介 33
5.2 参数调整一般规则 34
5.3 PID算法在VC中的实现 34
结 论 37
参考文献 38
附录 程序 40
致 谢 63
第一章 引言
在生产实践的各个领域,有大量的生产机械要求在不同的场合,用不同的速度来进行工作,以提高生产率和保证产品的质量,如机床、轧钢机、造纸机、纺织机械等。在工程实践中,有很多生产机械要求在一定的范围内进行速度的平滑调节,并且要求有良好的静、动态性能。所以如何能充分发挥生产机械效能,提高生产率,是电机转速控制系统首先要解决的问题。
1.1 设计的目的
随着微电子技术的发展,应用上位机实现现场的采集与控制越来越被大家所重视,上位机提供良好的人机界面,使现场监控更直接、简洁可靠和稳定。应用上位机实现现场监控,主要是通过上位机本身配置的串行口,通过串行通讯技术,控制和管理若干以单片机。由于上位机界面的应用给现场监控提供的极大的方便,所以上位机控制界面的设计也成为工业控制的重点内容。在Visual C++6.0界面下完成上位机的编程具有自己独特的优势,当VB成功推出后,microsoft又将C++包装成为了面向windows的visual C++(以下简称VC)。从VC1.0到VC6.0,每一个版本的推出都激动人心。VC借助传统的C/C++的美名加上microsoft这个金字招牌,使广大的程序员和专业编程人员纷纷投靠在VC的大旗下[16]。
伺服系统在机械制造行业中用得最多最广泛,各种高性能机床运动部件的速度控制运动轨迹控制、位置控制,都是依靠各种伺服系统控制的。它们不仅能完成转动控制、直线运动控制,而且能依靠多套伺服系统的配合,完成复杂的空间曲线运动的控制,如仿型机床的控制、机器人手臂关节的运动控制等等。它们可以完成的运动控制精度高、速度快、远非一般人工操作所能达到。电动机是伺服系统的重要执行元件,又称为执行电动机。在自动控制系统中,其任务是将输入的电信号转换为转角或转速,以带动控制对象。因此,对伺服系统的控制关键所在就是对伺服电机的控制。
伺服电动机一般分为直流伺服电机和交流伺服电机,对于直流伺服电机具有响应快、低速平稳性好、调速范围宽等优点,常用于实现精密调速和位置控制的随动系统中,在工业、国防和民用等领域内得到广泛应用[13] 。而对于交流伺服电机,虽然控制精度较高,但控制较复杂,驱动器参数需要现场调整PID参数整定,需要更多的连线[18]。所以本文主要介绍直流伺服电机转速的控制。
1.2 设计的意义
工业控制领域,往往需要组成上位机-下位机系统,上位机一般为PC机,下位机一般为单片机系统[1]。上位机主要完成数据的采集、显示、以及数据的给定等随着,单片机做为下位机本主要负责直流电机的各种参数数据的采集和和模数转换。
利用VC++编程上位机控制界面可以解决很多工业控制中出现的难题,传统的上位机控制界面参数给定更改比较麻烦,需要浪费大量时间从新更改程序。而VC++的上位机控制界面就很容易实现,只需对程序中设置的参数加以更换就可以,特别是上位机一般都是计算机,随着计算机技术的发展,计算机的功能也越来越强大,很多复杂算法很容易实现,也为工业的中出现的复杂算法提供方便。在更变复杂算法时,由VC++编程上位机控制界面也十分方便。本文在完成控制伺服电机速度过程中介绍了PID算法的编程过程。
第二章 电机调速
2.1 直流伺服电机简介
直流伺服电机是将输入的直流电信号转换成机械角位移或角速度信号的装置。直流伺服电机具有良好的启动、制动和调速性能,可以再较宽的范围内实现平滑
上一篇:
酒店预订系统设计与实现毕业论文(2003doc)