文档库 最新最全的文档下载
当前位置:文档库 › 单片机控制步进电机按S形曲线升降频设计_曹东杰

单片机控制步进电机按S形曲线升降频设计_曹东杰

单片机控制步进电机按S形曲线升降频设计_曹东杰
单片机控制步进电机按S形曲线升降频设计_曹东杰

单片机控制步进电机按S 形曲线升降频设计

*

曹东杰,韩 峰,任云燕

(北京理工大学机电工程学院,北京100081)

[摘要]分析了步进电机升降频时发生失步、过冲的原因,提出了一种单片机控制的步进电机按S 形曲线升降频的方法。该方法能有效提高定位系统定位的快速性和准确性且不必改变系统的硬件;同时可降低对步进电机功率的要求,降低系统功耗。文中以一个二维角度定位系统为例介绍了该方法的应用实现,试验结果表明同一系统在采用S 形曲线升降频时的定位精度明显提高。[关键词]步进电机;升降频;单片机;S 形曲线[中图分类号]TP 302 [文献标识码]B

A Method to Accelerate or Decelerate the Speed of Step Motor

Controlled by Singlechip Following S Curve

C AO Do ng -jie ,HAN Feng ,REN Yun -ya n

(Schoo l o f M echatro nic Eng ineering ,Beijing Institute o f Techno lo g y,Beijing 100081,China )

Abstract :

This pa per analy sises the rea so n of lo sing step o r cra wling when step mo to r accele rate o r decelerate ,and

int roduces a m etho d to accelera te o r decelera te the speed o f step mo to r co nt rolled by sing lechip following S curv e .O n the o ne hand ,the v elocity a nd the precisio n o f the system can be impro v ed ,o n the o ther hand ,the system 's har dw ar e needn 't to be cha ng ed and the po w er of the system can be lo we r while using this method.An a ng ular o rientatio n sy s-tem is intro duced in o rder to illumina te ho w to use this method.At last this paper g iv es the result o f the test in w hich to w differ ent methods are co mpa red .

Key words :step mo tor;accele rate o r deceler ate speed;sing lechip;S curv e

1 引 言

图1 步进电机典型的

矩频特性曲线

要实现步进电机的快速准确定位就要保证电机在不失步和过冲的情况下起、停,并以最快的速度运行到指定的位置。然而由步进电机典型的矩频特性曲线(图1)知,步进电机无论采用何种

驱动电路,在驱动脉冲频率较低时,输出转矩较大且恒定,当驱动脉冲频率上升时,输出转矩则

会降低[3]。另外一般步进电机的运行频率是100

~1000Hz ,而且其启动频率比最高运行频率低得多,如果步进电机以逐渐加速到最高频然后逐渐减速到零的方式工作,其速度可以提高2~8倍而不失步。步进电机的升降频设计就是要寻求一种与电机矩频特性相适应的速度控制方案,常见的加减速曲线有:梯形曲线、S 形曲线和指数曲线等(见图2)。因为步进电机启动时,由于其静态惯性比较大,须以较小的加速度升频;而在较高的频率运行时,由于输出转矩会有所降低,须以较小的加速度升降频;在步进电机停止时,为了防止发生过冲,须以较小的加速度降频,因此按S 形曲线进行升降频更适合于实际情况。S 形曲线可以分段为指数曲线,因此它又被称为双段指数曲线,只要解决了步进电机按指数曲线的控制问题就可以解决按S 形曲线的升降频问题。

·

157· 第26卷第2期弹箭与制导学报

收稿日期:2005-11-05

作者简介:曹东杰(1980—),男,山东青岛人,硕士研究生,研究方向:机械电子工程、伺服控制技术等。

图2 常见加速度曲线

2 步进电机S 形曲线设计

下面以一带惯性负载的角度定位系统为例介绍一种解决问题的方案。基本原理是:步进电机以最大启动频率启动,通过改变微控制器定时器的定时时间来控制步进电机的运行频率按照适合于系统特性的S 形曲线升降频,在运行的中间阶段以最大运行频率匀速运行,最终实现快速、精确的角度定位。定时器中断处理流程图如图3所示

图3 定时器中断处理流程图

在升、降频过程中,每次中断处理时,定时器T 0的初值是通过查程序存储器中存储的定时常数表得到的,问题的关键就在于如何获得使电机按照S 形曲线升降频的定时常数表。

由于对步进电机启动时(图2-b 中O-A 段)的静态惯性引起的负载问题的分析比较困难,可以分析升频的后半段(图2-b 中A-B 段),按指数曲线升频,计算出所需的定时常数表,然后对应出电机在O -A 段运行时所需的定时常数表。在A -B 段运行时,系统满足旋转物体动力学方程:

T =J d 2θ

d t

2+T f (其中:T 为电磁转矩;T f 为摩擦

力矩;J 为负载的转动惯量)。按指数曲线升频,可以使角加速度随着频率的上升线性下降,则J

d 2

θ

d t

2随着升频线性下降;而在电机不失步的条件下,转动的角加速度和驱动脉冲的频率对时间的

微分成正比,所以有:

d f

d t

=-Bf +A (A 、B 为常数)。两边进行拉氏变换得:SF (S )=A

S

-BF

(S ),解方程得:F (S )=A (S +B )S

。进行拉氏反变换得:f (t )=A

B

(1-e -Bt ),即:

f (t )=C (1-e -t /f )(1)其中:C 为步进电机的最高运行频率,f 是决定

升降频快慢的时间常数,可以由升降频过程时间来确定。

实验测得电机的最高启动频率为350Hz ,最高运行频率为1000Hz,实际应用中控制电机按照图4所示的S 形曲线升降频,将频率按级差100Hz 进行分段离散。根据系统的性能指标要求(定位角度:0~180°;定位时间:≤1s )确定升(降)频的时间Δt ≈0.05s ,即t 6=2t 3=Δt =0.05s ,代入式(1)可得f =0.0273s ,然后可以根据式(1)求出升降频曲线每个分段点处的时间值t i ,进而求出以每级频率运行的时间Δt i -1,i ,最后根据时间间隔和频率值列出定时常数表(计算结果见表1)

图4 S 形升降频曲线的分段离散

表1 计算结果

i t i (s)Δt i -1,i

(s )f i (Hz)定时器初值脉冲数10.00610.0061300F801H 620.01710.011400F A 01H 430.0250.0079500F B 34H 440.03290.0079600F C01H 550.04390.011700F C93H 86

0.0629

0.019

800

FD01H

11

 注:系统采用7.3728M Hz 的晶振,其中t 1和t 2按Δti -1,i

关于t =t 3对称得到。

因此,程序存储器中存储的定时常数表为:tab

:db 0F8h,001h,0F8h,001h,0F8h,001h,0F8h,

001h,0F8h,001h,0F8h,001h,0FAh,001h

·

158·弹箭与制导学报

2006年 

db 0F Ah ,001h ,0F Ah ,001h ,0F Ah ,001h ,0FBh ,

034h ,0FBh ,034h ,0FBh ,034h ,0FBh ,034h db 0FCh,001h,0FCh,001h,0FCh,001h,0FCh,

001h,0FCh,001h,0FCh,093h,0FCh,093h db 0FCh ,093h ,0FCh ,093h ,0FCh ,093h ,0FCh ,

093h,0FCh,093h,0FCh,093h,0FDh,001h db 0FDh,001h,0FDh,001h,0FDh,001h,0FDh,

001h,0FDh,001h,0FDh,001h,0FDh,001h db 0FDh ,001h ,0FDh ,001h ,0FDh ,001h

为了提高升降频的平稳性,可对定时常数表进行线性插值。

3 试验结果

选用宝马集团生产的57BYGH008型步进电机,运行于2相2拍方式,分别按照梯形曲线和S 形曲线升降频的试验结果如表2所示。系统的

定位精度要求是≤1°,可见按照上述S 形曲线升降频的方法能保证步进电机在不失步和过冲的

情况下起、停,并以最快的速度实现满足精度要求的定位,该方法优于梯形曲线法,适合应用于点-位控制场合。

表2 试验结果

理论角度

(°)实测角度(°)

按梯形曲线升降频

按S 形曲线升降频

4543.144.49088.889.6180

178.2

179.4

[参 考 文 献]

[1] 王鸿钰.步进电机控制技术入门[M ].上海:同济

大学出版社,1990.

[2] 孙蓓,张志义,张学文.一种单片机实现步进电机

的加、减速控制[J ].北华大学学报(自然科学版),2003(10).

[3] 刘宝庭,程树康,等.步进电机及其驱动控制系统

[M ].哈尔滨:哈尔滨工业大学出版社,1997.

(上接封二)

弹道与气动力技术

钝头子弹气动特性分析张国伟,张 宇,梁永直 (91)………………………………………………风洞应变天平优化设计方法研究刘高计,谌满荣,于卫青 (94)……………………………………战术弹道导弹再入段弹道仿真设计汤阳春,娄寿春,赵 辉 (98)…………………………………旋转飞行器刚体弹道模型中起始扰动的变换陈罗婧,刘 莉 (100)…………………………………基于两相流理论的火炮内弹道设计方法及其在新型装药设计中的应用

王 敬,季新源,袁亚雄 (103)

……………………………………………………………………相关技术

基于Direct3D 的虚拟火炮训练系统的研究管 莉,邵岳伟,郝重阳,等 (107)……………………应用等离子体实现主动流动控制的实验研究刘万刚,李一滨 (110)…………………………………CBFF 信道下基于信道辨识自适应Turbo 码译码算法研究

姚如贵,王永生,张 怡 (112)……………………………………………………………………空间作战视景仿真系统的开发与研究王金华,袁慧馨,高立娥,等 (117)…………………………基于协同仿真平台的系统仿真方法研究魏佳宁,康凤举,刘 雄 (121)……………………………飞行器弹道异值斑点识别技术研究侯宏录,周德云,何红丽,等 (124)……………………………基于梯形模糊数的小子样武器系统可靠性分析与评定

张 超,马存宝,胡云兰,等 (128)………………………………………………………………W CDM A 上行码片级协处理DSP 软件系统代码优化张 怡,穆擎炜,唐成凯 (131)……………一种新的步进频率雷达信号目标抽取算法王 飞,龙 腾 (135)……………………………………圆锥扫描脉冲多普勒雷达信号处理王 飞,龙 腾 (138)……………………………………………利用GPS 在M GIS 中实现快速位置显示刘 ,郑贤武,刘 台 (141)……………………………基于HM M 与K -均值聚类的声目标识别陈 功,张雄伟,邓玉良 (144)

……………………………导弹液压伺服系统中陷波器的原理与设计蔡 璞,许化龙,夏克寒 (148)…………………………不同标准大气对远程弹箭射程影响的计算分析李臣明,朱国权,韩子鹏,等 (150)………………基于盲信号处理的传动箱状态监测与故障诊断黄晋英,潘宏侠,毕世华,等 (153)………………单片机控制步进电机按S 形曲线升降频设计曹东杰,韩 峰,任云燕 (157)

………………………·

159· 第26卷第2期

单片机控制步进电机按S 形曲线升降频设计 曹东杰等

步进电机升降速曲线控制方法

步进电机升降速曲线控制方法 在一些控制简单或要求低成本的运动控制系统中,经常用步进电机做执行 元件。步进电机在这种应用场合下最大的优势是:可以开环方式控制而无需反 馈就能对位置和速度进行控制。但也正是因为负载位置对控制电路没有反馈, 步进电机就必须正确响应每次励磁变化。如果励磁频率选择不当,电机不能够 移到新的位置,那么实际的负载位置相对控制器所期待的位置出现永久误差, 即发生失步现象或过冲现象。因此步进电机开环控制系统中,如何防止失步和 过冲是开环控制系统能否正常运行的关键。失步和过冲现象分别出现在步进电 机启动和停止的时候。一般情况下,系统的极限启动频率比较低,而要求的运 行速度往往比较高。如果系统以要求的运行速度直接启动,因为该速度已超过 极限启动频率而不能正常启动,轻则可能发生丢步,重则根本不能启动,产生 堵转。系统运行起来以后,如果达到终点时立即停止发送脉冲串,令其立即停止,则由于系统惯性作用,电机转子会转过平衡位置,如果负载的惯性很大, 会使步进电机转子转到接近终点平衡位置的下一个平衡位置,并在该位置停下。为了克服失步和过冲现象,应在步进电机启停时进行如图1 所示的升降速控制。600)this.width=600”border=0>从图1 可以看出,L2 段为恒速运行,L1 段为升频,L3 段为降频,按照“失步”的定义,如果在L1 及L3 段上升及下降的控制 频率变化大于步进电机的响应频率变化,步进电机就会失步,失步会导致步进 电机停转,经常会影响系统的正常工作,因此,在步进电机变速运行中,必须 进行正确的升降速控制。以下按不同的控制单元,介绍几种常用的步进电机升 降速控制方法。1、运动控制卡作上位控制单元——以MPC01 系列运动卡为例MPC01 系列运动控制卡可以作为PC 机运动控制系统的核心控制单元。卡上的专用运动控制芯片可自动进行升降速计算。其运动控制函数库中也有专门进行

单片机控制步进电机和数码管显示

一、设计任务书 设计内容:用80C51单片机设计一个步进电机控制器 设计要求: 1.用8015设计一个四相步进电机。 2.可控制步进电机的启动与停止,正转与反转。 3.10档速度调节。 4.点动控制。 5.可显示电机运行参数。 二、设计总体方案 (一)控制方式的选择 控制主要用于电机速度和方向的转换。控制方式有按键控制和开关控制两种。按键较开关而言,操作更加简便,故选按键控制。 方案一:独立按键。独立按键可自由连接,线路简单。 方案二:编码式键盘。编码式键盘的按键接触点接于74LS148芯片。当键盘上没有闭合时,所有按键都断开,当某一键闭合时,该键对应的编码由74LS148输出。 本次设计所需按键不多,不需要采用复杂编码,考虑硬件条件、线路连接和经济性等方面,选择方案一。 (二)电机电路设计方案的选择 由于条件的限制,对于电机的选择只能是实验台上最小步距角18°的电机,其中已包含了驱动电路。 (三)单片机的选择 方案一:AT89C51高性能8位单片机,内部集成CPU、存储器、寄存器、I/O接口,从而构成较为完整的计算机,价格便宜。 方案二:C8051F005单片机,该单片机是完全集成的混合信号系统及芯片,具有8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还继承了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,执行速度快,但价格较贵。 本次课程设计是在仿真环境下进行,没有太过考虑单片机选择的问题,但就设计本身来讲,从物美价廉的角度考虑,选择方案一较合适。 (四)显示方案的选择 方案一:采用LED数码管。LED数码管是轮流现实的,其利用人烟的视觉暂留特性,使人感觉不到数码管闪动,看到每只数码管都常亮。利用其显示必须不停给数码管数据输入口循环赋值,显示内容较多,编程和接线较为复杂。 方案二:采用LCD1602液晶显示器。LCD1602具有功率小,效果明显,变成容易等优点,且它最多能显示2×16个字符,可以轻松满足设计要求。 由上可知,LCD1602液晶显示器的优点突出,故选择方案二。 (五)软件部分的选择 软件部分的选择主要是指编程语言的选择,编译调试工具根据设计平台选择伟福软件。编程语言主要有以下两种方案。

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

优秀设计 3333学院 毕业设计(论文)说明书 题目步进电机指数规律升降速的 单片机控制系统设计 学生 系别机电工程系 专业班级机械设计制造及自动化机电 学号 指导老师

3333学院 毕业设计(论文)任务书 设计(论文)题目:步进电机指数规律升降速的单片机控制系统设计系:机电工程系专业:机电一体化班级:学号: 学生:指导教师: 接受任务时间 教研室主任(签名)系主任(签名) 1.毕业设计(论文)的主要内容及基本要求 用单片机对步进电机进行三相六拍的控制,通过软硬件设计,实现电机指数规律升降速。 (1) 系统总体方案拟定; (2) 数学模型建立,求控制算法; (3) 硬件设计; (4) 软件设计; 编写设计说明书,完成系统控制硬件图1张 A 2; 2.指定查阅的主要参考文献及说明 (1) 《机电一体化系统设计》 (2) 《计算机控制系统分析与设计》 (3) 《单片机应用设计》 (4) 《电子电工技术》 (5) 《C语言程序设计》 (6) 《机床电气控制》 注:本表在学生接受任务时下达

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

基于51系列单片机控制步进电机调速实验 (自动保存的)

基于51系列单片机控制步进电机调速实验 实验指导书 仇国庆编写 重庆邮电大学自动化学院 自动化专业实验中心 2009年2月

基于51系列单片机控制步进电机调速实验 实验目的及要求: 1、熟悉步进电机的工作原理 2、熟悉51系列单片机的工作原理及调试方法 3、设计基于51系列单片机控制的步进电机调速原理图(要求实现电机的速度反馈测量,测量方式:数字测量) 4、实现51系列单片机对步进电机的速度控制(步进电机由实验中心提供,具体型号42BYG )由按钮控制步进电机的启动与停止;实现加速、匀速、和减速控制。速度设定由键盘设定,步进电机的反馈速度由LED 数码管显示。 实验原理: 步进电机控制原理 一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。因此步进电动机是一种把脉冲变为角度位移(或直线位移)的执行元件。步进电动机的转子为多极分布,定子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机的转子就前进一步。由于输入的是脉冲信号,输出的角位移是断续的,所 以又称为脉冲电动机。随着数字控制系统的发展,步进电动机的应用将 逐渐扩大。 步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来 进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由 脉冲信号频率决定。步进电机的驱动电路根据控制信号工作,控制信号 可以由单片机产生。 电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几 何轴线依次分别与转子齿轴线错开。0、1/3て、2/3て,(相邻 两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐, B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图:(图2所示)

基于Proteus的步进电机加减速控制辅助设计方法

表4钎杆改进前后的数据对比 总结点数总单元数 最大应力值(MPa )最小应力值(MPa )最大位移值(mm ) 原始模型3346105225027.150.112986改进模型 3654 10940 549 5.910.096754 4.3其他改进方面 除有限元分析的机械性能有改善之外,改进后的模型在轻量化、经济性上也有些许进步。 原始模型耗费材料的体积为(1.0644054×107)mm 3 ,质量为76.5kg ,改进后耗费材料体积为(1.0066225×107)mm 3 ,质量为72.757kg ,分别减 少5.43%和4.89%,此外,由于去除了上缸套、中缸套、下缸套,减少了合金钢原材料的使用并降低了加工成本,而增加体积较多的上缸体 所使用材料是经济性较好的球墨铸铁,可见,在制造成本上改进后的模型也取得了较好的效果。 5结论 在各项技术指标和基本工作原理不变的前提下,对液压破 碎锤零部件进行改进设计,并利用Pro/E 软件建立其机械本体和控制元件的三维模型,利用ANSYS 软件对液压破碎锤主要易损部件—冲击活塞、钎杆进行应力分析。通过对YC70液压破碎锤的建模和分析,改进后的模型在机械性能、经济性、轻量化等方面都取得了满意的结果,达到了改进的目的。 参考文献 [1]王雪,龚进,邹湘伏.液压冲击器的研究状况和发展趋势[J ].凿岩机械 气动工具,2006(3):19-23. [2]许同乐,夏明堂.液压破碎锤的发展与研究状况[J ].机械工程师,2005 (6):20-21.[3]范思源.液压破碎锤计算机仿真与实验研究[D ]:[硕士学位论文].上海:上海交通大学,2008. [4]杨国平.全液压独立无级调频调能液压冲击器的研究[D ]:[博士学位 论文].长沙:中南大学,2001. [5]谢良喜,陶平.液压破碎锤工作状态下活塞的力学模型与应力分析[J ].工程机械,2007(38):44-46. [6]博弈工作室.ANSYS9.0经典产品基础教程与实例详解[M ].北京:中国 水利水电出版社,2006.基于Proteus 的步进电机加减速控制辅助设计方法* 张利君张吉堂 (中北大学机械工程与自动化学院,太原030051 )Aided design methods for accelerating and decelerating control of step motor based on proteus ZHANG Li-jun ,ZHANG Ji-tang (School of Mechanical Engineering &Automatization ,North University of China ,Taiyuan 030051,China ) 文章编号:1001-3997(2011)05-0043-03 【摘要】研究利用Proteus 中的各种微控制器仿真模块实现步进电机加减速控制算法仿真,并且可以 在Proteus 中完成步进电机控制系统的硬件电路设计, 同时再结合软件程序设计进行仿真,最后通过Proteus 中的虚拟仪器记录分析仿真数据,从而实现了为设计步进电机加减速控制系统提供了一条快速、高效且低成本的设计途径。举例采用单片机AT89C52作为微控制器,通过高级仿真图表导出仿真数据,并利用Matlab 处理这些数据得到了预想的加减速曲线,证明方法在步进电机的加减速控制系统设计中可行性。 关键词:Proteus ;步进电机;加减速;仿真 【Abstract 】It studies the algorithm simulation for stepper motor accelerating and decelerating control by applying various micro-controller simulation module in Proteus software.It could complete the hardware cir -cuit design for control system of the step motor ,and simulate the design program with the software in Proteus . Thus ,the simulation data is recorded and analyzed through virtual instruments in Proteus so as to Provide a fast ,efficient and low-cost design approach for stepper motor accelerating and decelerating control system.For example ,it takes the single-chip computer AT89C52as the micro-controller which shall induct the simulation data through the advanced simulation chart , then the acceleration and deceleration curves expected shall be obtained after processing these data through the Matlab ,which shows us it is feasible to design the control system of the step motor in this method. Key words :Proteus ;Stepper motor ;Acceleration and deceleration ;Simulation 中图分类号:TH16 文献标识码:A *来稿日期:2010-07-04*基金项目:山西省科技攻关项目(20100321056-02) 1引言 步进电机是一种将电脉冲转换为机械角位移的机电执行元件,它的角位移量和输入脉冲的个数严格成正比,在时间上与输 入脉冲同步,非常适合于开环控制系统中,而且价格低廉,因此在工程中得到了广泛的应用。但不同的工程应用场合,其控制要求不同,需要的控制硬件和控制软件也不同,怎样快速地设计出符 ********************************************* Machinery Design &Manufacture 机械设计与制造 第5期 2011年5月 43

基于单片机的步进电机控制系统

编号: 综合智能电子 实训 (论文)说明书题目: 院(系):使用科技学院 专业:电子信息工程 学生姓名: 学号: 指导教师: 2010年 1 月 6 日

目录 引言 第1章简介 1.1 步进电机 第2章步进电机原理 2.1 步进电机的工作原理 2.1.1结构及基本原理 2.1.2 电机的步进顺序 第3章系统的硬件设计 3.1 系统设计方案 3.2 主从机硬件部件介绍 3.2.1A T89S51简介 3.2.2 TGI2864E简介 3.2.3MAX485 串行通信 3.2.4TIP122 3.2.5 MOC70T2 3.3 LCD显示电路设计 3.4 电机驱动模块设计 第4章系统的软件实现 4.1 系统软件主流程图 4.2 系统初始化流程图 4.3 部分子程序 第五章总结 致谢 参考文献 摘要:本文使用单片机、步进电机驱动芯片、字符型LCD和键盘阵列,构建了集步进电机控制器和驱动器为一体的步进电机控制系统。二维工作台作为被控对象通过步进电机驱动滚珠丝杆在X/Y轴方向联动。文中讨论了一种以最少参数确定一条圆弧轨迹的插补方法和步进电机变频调速的方法。步进电机控制系统的开发采用了软硬件协同仿真的方法,可以有效地减少系统开发的周期和成本。最后给出了步进电机控制系统的使用实例。

关键词:步进电机控制系统,插补算法,变频调速,软硬件协同仿真 In this paper, microcontroller, stepper motor driver chips, character LCD and keypad array, build a set of stepper motor controller and driver as one of the stepping motor control system. Two-dimensional table as a charged object by stepper motor drive ball screw in X / Y axis linkage. This paper discusses a minimum of parameters to determine the trajectory of a circular interpolation method and the method of frequency control stepper motor. Stepper motor control system has been developed using the software and hardware co-simulation method, can effectively reduce the system development cycle and cost. Finally, the stepper motor control system application examples.

51单片机控制步进电机的转动,加减速,停止,反转

#include sbit inc=P3^2; sbit dec=P3^3; sbit zhzhd=P3^6; sbit fazhd=P3^7; bit flag=1; unsigned char t=0x00; //表正反速度 void delay(unsigned int t); void motor_ffw(); unsigned char code led7code[]= {0x81,0xe7,0x92,0xc2,0xe4,0xc8,0x88,0xe3,0x00,0xc0}; unsigned int num=0; unsigned char code FFW[8]={0x40,0x60,0x20,0x30,0x10,0x18,0x08,0x48}; unsigned char code FFZ[8]={0x48,0x08,0x18,0x10,0x30,0x20,0x60,0x40}; //反转 void main() { EA=1; IT0=1; EX0=1; IT1=1; EX1=1; TMOD=0x06; TL0=0xff; TH0=0xff; TR0=1; ET0=1; P3=0x3f; P0=led7code[num%10]; while(1) { motor_ffw(); } } void motor_ffw() /* 步进电机驱动*/ // {

unsigned char i; int j; while(1) { for(j=0;j<12;j++) //12个周期转一圈 { for (i=0; i<8; i++) //一个周期转30度 { if(flag==1) P2 = FFW[i]; //取数据 else P2 = FFZ[i]; delay(t); //t调节转速 } } } } void int0(void) interrupt 0 { EX0=0; delay(10); if(inc==0) { num++; P0=led7code[num%10]; if(num%10!=0&&flag){zhzhd=0;fazhd=1;} else if (num%10==0){zhzhd=0;fazhd=0;} else {zhzhd=1;fazhd=0;} switch(num%10) { case 0:t=0x00;break; case 1:t=0x12;break; case 2:t=0x11;break; case 3:t=0x10;break; case 4:t=0x09;break; case 5:t=0x08;break; case 6:t=0x07;break; case 7:t=0x06;break; case 8:t=0x05;break; case 9:t=0x04;break;

步进电机升降速曲线控制系统设计及其应用_王勇

控制工程Control Engineering of China Sep .2008Vol .15,No .5 2008年9月第15卷第5期文章编号:1671-7848(2008)05-0576-04 收稿日期:2007-05-31; 收修定稿日期:2007-08-05 基金项目:国家自然科学基金资助项目(60534010) 作者简介:王 勇(1977-),男,辽宁大连人,博士,主要研究方向为电动机伺服控制等;王 伟(1955-),男,(满族),教授,博士生 导师。 步进电机升降速曲线控制系统设计及其应用 王 勇,王 伟,杨文涛 (大连理工大学信息与控制研究中心,辽宁大连 116023) 摘 要:使用PLC 模块搭建步进电机控制系统时,系统灵活性差、造价高。针对此问题,提出基于AR M7微处理器的步进电机的嵌入式控制系统,并进行了两种步进电机升降速曲线的 设计与实现,给出了这两种曲线在工业定长嵌入式控制系统中的应用对比。实际运行表明,采用提出的升降速曲线策略的步进电机控制系统在未增加成本的情况下,有效抑制了失步和过冲现象,避免了机械柔性冲击,延长了系统寿命,提高了生产效率。关 键 词:步进电机;升降速曲线;嵌入式系统;AR M7微处理器中图分类号:TP 202 文献标识码:A Control System Design of Acceleration and Deceleration Curves of Stepping Motor and Its Application W ANG Yong ,W A NG W ei ,YA NG Wen -tao (Res earch Center of Information and Control ,Dalian Univers it y of Technol ogy ,Dalian 116023,China ) A bstract :The step motor is a kind of electric actuator that transfers electrical pulses into angular displacement .It is wildl y used in all kinds of open -loop control s y stems because of its no cumulative error and easy control .To the problem that PLC used in the control of step motor has disadvantages of high price and being unhandy in the system structure ,an ARM7processor based embedded control s y stem is proposed for step motor and two kinds of acceleration and deceleration curves are designed and implemented .An application comparison is given in the industrial constant length control .The results show that the proposed methods improve the out -of -step and overshoot performance of step motor s ystem and prolong the system life without more cost . Key words :step motor ;acceleration deceleration curve ;embedded system ;ARM7processor 1 引 言 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。通常的步进电机控制系统设计是使用PLC 模块搭建系统。这种设计方案简单,硬件可选范围广,并且软件编程容易,直接通过梯形图编程即可完成相应功能。但PLC 系统造价高,系统灵活性差,针对某个具体应用场合,很难选择出一套完全与应用吻合的系统,往往造成系统资源浪费。并且在某些特殊应用的情况下,有些技术细节很难实现。 针对上述问题,本文提出基于AR M7微处理器的步进电机的嵌入式控制系统。在简要介绍使用ARM7对步进电机实现控制的基础上,进行了两种 步进电机升降速曲线,即分段线性加速[1] 和S 型曲 线加速[2] 的设计与实现,并且给出这两种曲线在工业定长系统中的应用对比。 2 升降速曲线控制系统结构 升降速曲线控制系统结构,如图1所示。 图1 升降速曲线控制系统结构 Fig .1 Control system frame for acceleration deceleration curve ARM 系列微处理器是32位高性能处理器的主要产品之一。其他的类似产品主要有PowerPC ,68K ,MIPS 等系列。而这其中AR M 控制器则是凭 DOI :10.14107/j .cn ki .kzgc .2008.05.003

完整的单片机控制步进电机程序

#include "reg52.h" #include "INTRINS.H" #include #include #define uint unsigned int #define uchar unsigned char void check_addr(void); /*地址核对*/ uchar code slave_addr[4]={00, 01, 02, 255}; /*从机地址*/ uchar idata T0low, T0high,common_count,input_order,cmd_in_permit,interval; uchar sent_ok,speed_change,start_up,start_end,address_true,i; uint y1; uint code add[100]={60006,62771,63693,64154,64430,64614,64746,64845,64922,64983,65033,65075,651 11,65141,65167,65190,65211,65229,65245,65260,65273,65285,65296,65306,65315,65323,65331 ,65339,65345,65352,65358,65363,65368,65373,65378,65382,65387,65390,65394,65398,65401,6 5404,65407,65410,65413,65416,65418,65421,65423,65425,65428,65430,65432,65434,65435,654 37,65439,65441,65442,65444,65445,65447,65448,65450,65451,65452,65453,65455,65456,65457 ,65458,65459,65460,65461,65462,65463,65464,65465,65466,65467,65468,65469,65469,65470,6 5471,65472,65472,65473,65474,65475,65475,65476,65477,65477,65478,65478,65479,65480,654 80,65481}; sbit P2_0=P2^0; /*作输入步进电机的脉冲信号发送口*/ sbit P2_2=P2^2; /*作输入步进电机的旋转方向信号发送口*/ sbit P1_0=P1^0; /*作串口输出信号的使能口, P1_0=0时接通串口,输出信号*/ sbit WD=P1^7; /*看门狗*/ main() { P2_0=0; P2_2=0; /*步进电机的旋转方向待试验后确定*/ P1_0=1; /*开机时需要关断,串口发送功能,需要时再接通*/ WD=1; /*看门狗先为1,电平翻转为喂狗*/ i=0; common_count=0; cmd_in_permit=0; input_order=0; interval=0; address_true=1; speed_change=0; start_up=0;

步进电机升降速曲线控制方法

步进电机升降速曲线控制方法 技术分类:电机与运动控制发表时间:2007-07-09 在一些控制简单或要求低成本的运动控制系统中,经常用步进电机做执行元件。步进电机在这种应用场合下最大的优势是:可以开环方式控制而无需反馈就能对位置和速度进行控制。但也正是因为负载位置对控制电路没有反馈,步进电机就必须正确响应每次励磁变化。如果励磁频率选择不当,电机不能够移到新的位置,那么实际的负载位置相对控制器所期待的位置出现永久误差,即发生失步现象或过冲现象。因此步进电机开环控制系统中,如何防止失步和过冲是开环控制系统能否正常运行的关键。 失步和过冲现象分别出现在步进电机启动和停止的时候。一般情况下,系统的极限启动频率比较低,而要求的运行速度往往比较高。如果系统以要求的运行速度直接启动,因为该速度已超过极限启动频率而不能正常启动,轻则可能发生丢步,重则根本不能启动,产生堵转。系统运行起来以后,如果达到终点时立即停止发送脉冲串,令其立即停止,则由于系统惯性作用,电机转子会转过平衡位置,如果负载的惯性很大,会使步进电机转子转到接近终点平衡位置的下一个平衡位置,并在该位置停下。 &nbs p; 为了克服失步和过冲现象,应在步进电机启停时进行如图1所示的升降速控制。 从图 1 可以看出,L2段为恒速运行,L1 段为升频,L3段为降频,按照“失步”的定义,如果在 L1 及 L3 段上升及下降的控制频率变化大于步进电机的响应频率变化,步进电机就会失步,失步会导致步进电机停转,经常会影响系统的正常工作,因此,在步进电机变速运行中,必须进行正确的升降速控制。

以下按不同的控制单元,介绍几种常用的步进电机升降速控制方法。 1、运动控制卡作上位控制单元——以MPC01系列运动卡为例 MPC01系列运动控制卡可以作为PC机运动控制系统的核心控制单元。卡上的专用运动控制芯片可自动进行升降速计算。其运动控制函数库中也有专门进行梯形升降速运动参数设置的函数——set_profile(int ch, double ls, double hs, double accel)。其参数定义如下: ch: 设定的轴号。 ls:?设定低速(起始速度)的值。单位为pps(脉冲/秒) hs: 设定高速(恒速段)的值。单位为pps(脉冲/秒) accel:设定加速度大小。单位为ppss(脉冲/秒/秒) 用户在调用运动指令函数时,只需指定总的脉冲数,运动控制卡上的专用运动控制芯片便按照set_profile函数设置的运动参数自动进行升降速计算,而不会占用PC机的CPU 资源。 2、用具有运动控制功能的PLC做上位控制单元——以松下FP0系列PLC为例 松下FP0系列PLC具有专用的运动控制指令,其CPU单元可自动进行图1所示的升降速计算。和MPC01系列运动控制卡相似,用户只需设置梯形速度的初速度ls、恒速hs、加速时间t和所需发的脉冲数P。运行此程序段,当PLC检测到输入端X2的一个上跳变时,便自动执行如图1所示的升降速脉冲输出功能。

51单片机控制四相步进电机解析

51单片机控制四相步进电机 2009年07月21日星期二 12:44 51单片机控制四相步进电机 2009-03-01 18:53 接触单片机快两年了,不过只是非常业余的兴趣,实践却不多,到现在还算是个初学者吧。这几天给自己的任务就是搞定步进电机的单片机控制。以前曾看过有关步进电机原理和控制的资料,毕竟自己没有做过,对其具体原理还不是很清楚。今天从淘宝网买了一个EPSON的UMX-1型步进电机,此步进电机为双极性四相,接线共有六根,外形如下 图所示: 详细内容: https://www.wendangku.net/doc/402453653.html,/31907887_d.h tml

拿到步进电机,根据以前看书对四相步进电机的了解,我对它进行了初步的测试,就是将5伏电源的正端接上最边上两根褐色的线,然后用5伏电源的地线分别和另外四根线(红、兰、白、橙)依次接触,发现每接触一下,步进电机便转动一个角度,来回五次,电机刚好转一圈,说明此步进电机的步进角度为360/(4×5)=18度。地线与四线接触的顺序相反,电机的转向也相反。 如果用单片机来控制此步进电机,则只需分别依次给四线一定时间的脉冲电流,电机便可连续转动起来。通过改变脉冲电流的时间间隔,就可以实现对转速的控制;通过改变给四

线脉冲电流的顺序,则可实现对转向的控制。所以,设计了如下电路图: C51程序代码为: 代码一 #include static unsigned int count; static unsigned int endcount; void delay(); void main(void)

步进电机加速 减速方法

不需要专门的延迟。但是软件中应该做到使速度是连续的渐变,而不是突变。 类似物理里面我们分析的“上抛物体”的运动一样:先按匀减速运动,速度减到零后就变成反方向的匀加速运动了。 不要有从某个速度“突变”为静止,或由静止“突变”为某个速度的操作。这种“突变”自然会产生冲击振动。 至于这个“匀加速度”、“匀减速度”的加速度大小,则可以根据步进电机的性能和负载的惯性大小来确定。 通常,步进电机都会给出一个“最大力矩”的参数。根据这个最大力矩,和负载的惯性(包括步进电机的转子和传动机构的惯性在内)大小,可以计算出加速度不应该超过多少。实际设计时,还应该比最大允许值再留出相当的余地。 当然,我上面说的“速度”、“加速度”都是一个连续的理论值,实际的步进电机是一步一步离散的操作的,和理论规律总会有差别。但是只要这种“量化误差”不超过一定限度,就可以有满意的效果了。 最理想的是,这个误差的累计值不超过0.5步。也就是说,假如按照上述“匀加速”、“匀减速”的理论计算,在时刻t的时候应该走到x步(有小数)的位置,而真实的执行效果是:走到的位置总是等于x的四舍五入取整的值。这是最理想的。 如果算法设计不好,这个累积误差可能会大些。但最坏的情况下,这个误差的累计值不要超过半个相位周期。例如,您的脉冲分配如果是“四相八拍制”,那么,累积误差就必须小于4步。 超出的话,就会发生步进电机的“失步”。 上面说的道理,对于采用不采用“细分”,道理是一样的。只是采用细分后的每一个“步”(“细步”)比原来小了,容易做到比较均匀。 例如上面说的“四相八拍制累积误差就必须小于4步”,如果采用了“16细分”,那么只要小于64“细步”就可以,显然软件里处理起来更容易一些。 但是,只要软件考虑设计仔细一些,不采用细分也是可以做到的。 【看了“广州一丁”兄的回答后,再补充说明一点】 上面“广州一丁”兄说的“减速时间长点,加速时间同时也长点”,就相当于我这里说的“匀加速运动”和“匀减速运动”段中,加速度的绝对值再小一些。 原则上说,这个加速度的绝对值,只要不超过上面说的根据电机性能和负载惯性算出来的允许值就可以。当然,更小一点冲击更小。 我只是担心,您是否没有按“匀加速”、“匀减速”设计,而是直接由静止突变为某个速度,或由某个速度突变为静止。如果是那样,问题就比较大了。 一般来说,一个方向的运动,应该分为至少两个阶段,或者还需要三个阶段。开始是由静止开始的匀加速度段,后段是匀减速段(直到速度减为零)。如此,中间的速度最高。假如最高的速度超出了电机或者我们的设备允许的值,那么还应该限制。于是,中间又多出一个段:匀速段。这就成了三个段。 这种控制原理上应该是清楚的。但是实现时的算法,则根据需求不同,有可能需要特别安排。

51单片机控制步进电机程序及硬件电路图

#include static unsigned int count; //计数 static int step_index; //步进索引数,值为0-7 static bit turn; //步进电机转动方向 static bit stop_flag; //步进电机停止标志 static int speedlevel; //步进电机转速参数,数值越大速度越慢,最小值为1,速度最快static int spcount; //步进电机转速参数计数 void delay(unsigned int endcount); //延时函数,延时为endcount*0.5毫秒 void gorun(); //步进电机控制步进函数 void main(void) { count = 0; step_index = 0; spcount = 0; stop_flag = 0; P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 0; EA = 1; //允许CPU中断 TMOD = 0x11; //设定时器0和1为16位模式1 ET0 = 1; //定时器0中断允许 TH0 = 0xFE;

TL0 = 0x0C; //设定时每隔0.5ms中断一次TR0 = 1; //开始计数 turn = 0; speedlevel = 2; delay(10000); speedlevel = 1; do{ speedlevel = 2; delay(10000); speedlevel = 1; delay(10000); stop_flag=1; delay(10000); stop_flag=0; }while(1); } //定时器0中断处理 void timeint(void) interrupt 1 { TH0=0xFE; TL0=0x0C; //设定时每隔0.5ms中断一次count++; spcount--; if(spcount<=0) { spcount = speedlevel; gorun(); } } void delay(unsigned int endcount) { count=0; do{}while(count

步进电机的速度控制要点.(DOC)

步进电机的速度控制 步进电机是一种能将脉冲信号转换成角位移或线位移的执行器件,广泛应用于各种工业设备中。步进电机的角位移或线位移与控制脉冲数成正比。通过改变脉冲频率就可以调节电机的转速,实现电机的加减速,转向等。 在实际步进电机应用中,尤其在要求快速响应的控制系统中,其关键问题是如何保证步进电机在运行过程中不发生失步。 调速电动机控制系统按其功能分为以下几个部分:中央处理器首选8051系列单片机;测速电路;A/D转换电路;供电电路;过零脉冲的形成电路;可控硅的触发电路;通信串行接口电路;显示接口电路以及时钟复位电路。 步进脉冲的调频方法 1、软件延时:通过调用标准的延时子程序来实现。优点是程序简单,不占硬件资源,缺点是浪费CPU的宝贵时间,在控制过程中,CPU不能做其他的事。 2、硬件定时:假设控制器为AT89S52单片机,晶振频率为12MHZ,将T0作为定时器使用,设定T0工作在模式1(16为定时/计数器)。只需要改变T0的定时常数,就可以实现步进电机的调速。 步进电机的速度控制规律: 1、按梯形规律升降,即步进电机的转速每跃进一个台阶后,恒速行驶一段时间。这种方法的缺点是在恒速阶段没有加速,为充分利用步进电机的加速性能,而且高频阶段加速台阶高,步进电机在速度阶跃时会发生失步。 2、按直线规律升降速方式,由于这种升速方法的及速度是恒定的,其缺点是未充分考虑步进电机输出力矩随速度变化的特性,步进电机高速时会发生失步。 3、第三种是按指数规律升降速,在以微处理器为核心的驱动器中,常用定时常数递减(递加)的方法实现升降速,升速曲线成上凹形,低频时升速太慢,高速时升速太快。 (注:素材和资料部分来自网络,供参考。请预览后才下载,期待你的好评与关注!)

用单片机控制步进电机

用单片机控制步进电机 步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 一、步进电机常识 常见的步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB),永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。 二、永磁式步进电机的控制 下面以电子爱好者业余制作中常用的永磁式步进电机为例,来介绍如何用单片机控制步进电机。 图1是35BY型永磁步进电机的外形图,图2是该电机的接线图,从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。要使用步进电机转动,只要轮流给各引出端通电即可。将COM端标识为C,只要AC、 C、BC、 C,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM端接正电源,那么只要用开关元件(如三极管),将A、、B、轮流接地。 下表列出了该电机的一些典型参数: 表1 35BY48S03型步机电机参数 型号步距角相数电压电流电阻最大静转距定位转距转动惯量 35BY48S03 7.5 4 12 0.26 47 180 65 2.5 有了这些参数,不难设计出控制电路,因其工作电压为12V,最大电流为0.26A,因此用一块开路输出达林顿驱动器(ULN2003)来作为驱动,通过P1.4~P1.7来控制各线圈的接通与切断,电路如图3所示。开机时,P1.4~P1.7均为高电平,依次将P1.4~P1.7切换为低电平即可驱动步进电机运行,注意在切换之前将前一个输出引脚变为高电平。如果要改变电机的

相关文档
相关文档 最新文档