步进电机控制器设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

步进电机控制器设计报告

1.绪言

在本次EDA课程设计中,我们组选择了做一个步进电机驱动程序的课题。对于步进电机我们以前并未接触过,它的工作原理是什么,它是如何工作的,我们应该如何控制它的转停,这都是我们迫切需要了解的。

步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

步进电机及驱动电源是互相联系的整体。步进电机驱动电源框图如图1所示。变频信号源产生频率可调的脉冲信号,调节步进电机的速度。脉冲分配器则根据要求把脉冲信号按一定的逻辑关系加到脉冲放大器上,使步进电机按确定的运行方式工作。

感应子式步进电机以相数可分为:二相电机、三相电机、四相电机、五相电机等。以机座号(电机外径)可分为:42BYG(BYG为感应子式步进电机代号)、57BYG、86BYG、110BYG、(国际标准),而像70BYG、90BYG、130BYG 等均为国内标准。

1.1驱动控制系统组成

使用、控制步进电机必须由环形脉冲,功率放大等组成的控制系统。

1.1.1脉冲信号的产生

脉冲信号一般由单片机或CPU产生,一般脉冲信号的占空比为0.3-0.4左右,电机转速越高,占空比则越大。

1.1.2信号分配

感应子式步进电机以二、四相电机为主,二相电机工作方式有二相四拍和二相八拍二种,具体分配如下:二相四拍为,步距角为1.8度;二相八拍为,步距角为0.9度。四相电机工作方式也有二种,四相四拍为AB-BC-CD-DA-AB,步距角为1.8度;四相八拍为AB-B-BC-C-CD-D-AB,(步距角为0.9度)。

2.课题要求

2.1步进电机控制器设计

要求:(1)start为”1”时,步进电机转动。

start为”0”时,步进电机停转。

(2)预设step_in为常数,当clk为上升沿,load和start为”1’加载时,

电机开始转动,转动step_in次后,停止转动。当下次符合此要求

时将再次转动。

(3)通过load,,step_in同步或异步载入steps值。

示意图如下:

图2

如图2所示,为步进电机控制器的输入输出示意图。

其中:

load为加载信号

start为步进电机启动信号

en为使能信号

reset为置位清零信号

clk为时钟信号

step_in[15..0]表示输入的十六位二进制数,其数值范围用十进制数表示为0-65535。

Coil_out[3..0]表示输出,共有A,B,A′,B′四种状态。

A,B,A′,B′四种转动状态可用图3表示,电机按下图A-B-A′-B′-A循环转动,每转过一次变换90度。当Coil_out[3..0]=“1000”,指针指向A;当Coil_out[3..0]=“0100”,指针指向B;当Coil_out[3..0]=“0010”,指针指向A′;当Coil_out[3..0]=“0001”,指针指向B′;当Coil_out[3..0]=“0000”,电机不工作。

图3

2.2通过网络上收集资料,图书馆查阅书本,我们逐步了解了步进电机,了解它的基本工作原理后我们我们逐渐形成了一些驱动程序的基本构思,我们决定利用状态机的工作方式去编写步进电机的驱动。

3.方案设计与论证

3.1状态机

关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件都在属于“当前”节点的转移函数的控制范围内,其中函数的范围是节点的一个子集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个必须是终态。当到达终态,状态机停止。

包含一组状态集(states)、一个起始状态(start state)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函数(transition function)的计算模型。当输入符号串,模型随即进入起始状态。它要改变到新的状态,依赖于转换函数。在有限状态机中,会有有许多变量,例如,状态机有很多与动作(actions)转换(Mealy机)或状态(摩尔机)关联的动作,多重起

始状态,基于没有输入符号的转换,或者指定符号和状态(非定有限状态机)的多个转换,指派给接收状态(识别者)的一个或多个状态等等。

传统应用程序的控制流程基本是顺序的:遵循事先设定的逻辑,从头到尾地执行。很少有事件能改变标准执行流程;而且这些事件主要涉及异常情况。“命令行实用程序”是这种传统应用程序的典型例子。

另一类应用程序由外部发生的事件来驱动——换言之,事件在应用程序之外生成,无法由应用程序或程序员来控制。具体需要执行的代码取决于接收到的事件,或者它相对于其他事件的抵达时间。所以,控制流程既不能是顺序的,也不能是事先设定好的,因为它要依赖于外部事件。事件驱动的GUI应用程序是这种应用程序的典型例子,它们由命令和选择(也就是用户造成的事件)来驱动。

3.2设计论证

利用状态机的工作原理来设计步进电机的控制程序。本课题要求需要输出五种状态,其中有四种转动状态,电机即按照此四种状态旋转,还有一种状态是用于保护电机,避免电机因通电过长而烧坏。

3.3

最初设计:按照由易及难的原则,即将steps值固定,使电机转动步数恒定,每次触发旋转则按照固定steps值转,转动steps值后停转。

二次修改:在设计好最初的目标程序后,我们有对程序进行改进,即增加了steps预设功能,在进行波形仿真的时候,可修改输入信号step_in的值(16位二进制数),从而改变步进电机的转动步数。

更高要求:(1)在电机停转之后,应使输出为零,即保持电机的电路电流为零,从而达到保护电机不被烧毁的目的。

(2)在电机停转之后,若再次启动旋转,则从上次停止的位置继续旋转,这是符合实际情况的仿真。

(3)在电机停转之后,利用PWM技术对电路进行控制。

3.4

鉴于以上要求,我们组经过一周左右时间利用VHDL语言设计出了符合课题要求的步进电机控制器程序(见附录)。

如下图4所示,为步进电机控制仿真波形图:

相关文档
最新文档