文档详情

基于51单片机控制的步进电机调速.doc

发布:2017-09-20约2.41万字共47页下载文档
文本预览下载声明
目 录 1 前言 1 2 方案的论证 3 2.1 控制方式的确定 3 2.2 驱动方式的确定 4 2.3 驱动电路的选择 5 2.4 基本方案的确定 5 3 硬件设计 7 3.1 步进电机 7 3.1.1 步进电机的特点 7 3.1.2 步进电机的静态指标 7 3.1.3 步进电机的动态指标 8 3.1.4 步进电机详细调速原理 9 3.1.5 步进电机的选择 9 3.2 单片机的选择 11 3.3 驱动电路的选择 12 3.4 显示电路与键盘的选择 13 3.5 反馈电路的选择 14 3.5.1光电编码器原理 14 4 算法的设计 16 4.1 PID控制算法 16 5 软件的设计 20 5.1 显示子程序的设计 20 5.2 键盘子程序的设计 21 5.3 驱动程序流程的设计 22 5.4 正反转程序 23 5.4.1 正反转程序流程图 23 5.4.2 转速快慢程序流程图 24 5.4.3 定时中断流程图 25 6 实验结果与分析 26 6.1 有关参数的计算与分析 26 6.2 理论与实际的分析 26 结论 28 致谢 30 附录1 31 附录2 38 1 前言 步进电机最早是在1920年由英国人所开发。1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。 步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。步进电机可以直接用数字信号驱动,使用非常方便。一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。因此非常适合于单片机控制。步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。步进电机可以作为一种控制用的特种电机,利用其没有积累误差精度为100%的特点,广泛应用于各种开环控制。 一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入肘步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。通过延时的长短来具体控制步进角来改变电机的转速,从而实现步进电的调速。具体的延时时间可以通过软件来实现。 这就需要采用单片机对步进电机进行加减速控制,实际上就是改变输出脉冲的时间间隔,单片机控制步进电机加减法运转可实现的方法有软件和硬件两种 ,软件方法指的是依靠延时程序来改变脉冲输出的频率,其中延时的长短是动态的,软件法在电机控制中, 要不停地产生控制脉冲, 占用了大量的CPU 时间,使单片机无法同时进行其他工作;硬件方法是依靠单片机内部的定时器来实现的,在每次进入定时中断后,改变定时常数,从而升速时使脉冲频率逐渐增大,减速时使脉冲频率逐渐减小,这种方法占用CPU 时间较少,在各种单片机中都能实现,是一种比较实用的调速方法。 2 方案的论证 2.1 控制方式的确定 步进电机控制虽然是一个比较精确的,步进电机开环控制系统具有成本低、简单、控制方便等优点,在采用单片机的步进电机开环系统中,控制系统的CP脉冲的频率或者换向周期实际上就是控制步进电机的运行速度。系统可用两种办法实现步进电机的速度控制。一种是延时,一种是定时。延时方法是在每次换向之后调用一个延时子程序,待延时结束后再次执行换向,这样周而复始就可发出一定频率的CP脉冲或换向周期。延时子程序的延时时间与换向程序所用的时间和,就是CP脉冲的周期,该方法简单,占用资源少,全部由软件实现,调用不同的子程序可以实现不同
显示全部
相似文档