网站首页 > 电机控制> 文章内容

基于ARM单片机的两相步进电机驱动设计

※发布时间:2020-1-7 17:59:29   ※发布作者:habao   ※出自何处: 

  是一种运用广泛的控制电机,其特征是不使用反馈回就能进行速度控制及定位控制,即所谓的电机开环控制。相对于伺服电机,步进电机有着成本低廉,控制简单等优点,尤其是两相混合式步进电机,在工业运动控制系统中有着广泛的应用。然而,传统的驱动方式,比如单电压驱动、高低电压驱动、斩波恒流驱动等等,虽然已经应用十分成熟,但是只限于低速运行,并且细分度一般在1/2步距,无法很好消除低频振荡,以及定位精度差等缺点。细分驱动的出现很好地弥补了这一缺点。

  常见的细分控制器一般由MCU、专用逻辑驱动芯片以及功率驱动模块组成,这样的驱动器虽然能满足多细分驱动,但由于细分数量和效果会受到逻辑驱动芯片的影响,并且无法调整细分数和限流值、从而造成系统调试困难、矩频特性差等缺点。

  本文使用ST公司的32位,加上MOSFET驱动模块及电流传感模块,省去了逻辑驱动芯片。电机电流采用单片机内部AD采样,控制逻辑算法直接由单片机软件实现,MOSFET按照外部输入的脉冲速度及内部的时序来运行,从而大大简化了应用电,提高了电的通用性和驱动性能。

  STM32F103RB采用ARM公司最新的Cortex-M3内核,具有运行速度高、处理能力强、外设接口丰富等特点。由于其低廉的价格和很强的控制、运算性能,被广泛运用于电机控制。其具体性能指标如下:1)工作频率:最高72 MHz;工作温度范围:-40~+85℃;宽电压供电:2.0~3.6 V;2)128 k字节的闪存存储器和16 k的SRAM;3)12位16通道AD转换器具有双采样和保持功能,转换时间最短1μs。4)3个16位通用定时器,每个定时器有多达4个通道,用于输入捕获/输出比较/PWM或脉冲输出;1个16位带死区控制盒紧急刹车,用于电机控制的PWM高级控制定时器。

  一般两相步进电机驱动分为单极型和双极性驱动两种,单极型驱动适用于6线制电机,这样的驱动方法等于将两相电机转变为四相电机,从表面上看步距角缺损减小了,实则是以电机的拖动转矩换来的,这样电机的带负载能力就会大大下降。而双极型驱动则主要针对两相四线(或者八线制)电机,一般机械步距角为50齿1.8°(也可为100齿0.9°价格较贵),故细分驱动技术主要是通过对步进电机的相电流进行阶梯化控制,使电机的以更小的单位步距角运行,从而减小步长和低频振荡。

  细分驱动的思想是把原来简单的对转子电流的通断过程改变为逐渐的改变各相绕组的电流大小和方向,使电机内部的空间合成逐步改变,这样就能把原来的一个步距角的通电方式改变成为跟随电流的阶梯波,变成多步。具体的计算方法如下:

  从而可见,两相混合式步进电机的细分就是控制两相绕组中的电流大小。理想状态下,电机内部的为圆形空间旋转,使步进电机按照交流同步电机的方式旋转。而AB相的理想电流为正弦波,而一般情况下通过阶梯波来模拟正弦波,从而达到恒转矩幅值的控制效果。而转矩的大小由合成的矢量来决定,即相邻两个合成的夹角为细分步距角。

  每当β变化一度,则步进电机走过1/360的电角度,例如一般的8细分控制,则β的步长为π/16。所以为了实现对两相混合式步进电机的恒转矩细分控制,就需要在电机的两相绕组中通以按正弦规律变化并互差90°相位的的两相电流,阶梯越细小,越接近于正弦波,步距角也越小,细分效果越好。

  基于STM32F103RB驱动系统的硬件部分主要由信号输入端、电源输入端、电源模块、MOSFET驱动模块、H桥模块和采样放大模块组成。总体硬件图如图3所示。

  在硬件设计中,需要从外部输入3种信号:Enable使能信号、Dir电机转向信号以及Frequency速度脉冲信号。Enable信号为使能信号,为防止电机在停止时,定子绕组仍然通电造成的电机发热而设置的电机转子断电信号。Dir信号控制电机的转向;而Frequency信号为外部控制器件发出的方波脉冲信号,此信号的频率将决定电机的转速,3个控制信号均由光耦与内部隔离。

  驱动器上电前需通过拨码开关设置细分数和限流值,目前细分最多支持16细分,限流值一般为电机绕组可承受的最大电流的1.2倍左右,可以设置6档限流值。驱动器最大可承受4 A的电流。

  驱动系统的电源由一个外部输入的24~48V的直流电源输入接线端,然后通过BUCK降压芯片至5 V为内部光耦、比较器和运放供电,然后将5 V通过LDO降至3.3 V给MCU供电,这样MCU能获得相对干净的电源。另一外部电源经过电阻分压,产生一个15 V电源用于MOSFET驱动芯片IR2010的供电。

  MOSFET驱动部分采用IR公司的IR2101S驱动芯片来驱动双H桥,从而靠双H桥来控制一个四线是IR公司生产的一款高性价比驱动器,使用方法非常简单,性价比高,能输出100~210 mA电流。IR2101驱动器可驱动一组功率管,整个功率电需4片即可,这样不但节约制造成本,而且还提高系统稳定性。其驱动电如图4所示。

  本系统使用采样电阻来采集经过H桥(即电机的定子电流)。此处采样电阻阻值比较大时,会使电阻分压过大,造成H桥的低端电压高于地电压,影响系统的稳定性,而阻值太小又会使信号过小影响检测精度,所以本系统选用0.1Ω电阻作为采样电阻。然后经过LMV358放大后,成为0~3 V的电压信号,在经过一个跟随器后,进入MCU片上AD,进行数模转换,放大后的信号还连接一个比较器用于过流。

  主程序处于死循环状态,每次外部信号Enable后,就会锁存外部的控制频率,方向,限流值,细分度等信号,然后进行内部参数初始化,等待刷新定时器计时完毕后就开始按照计时中的ADC中断及定时器中断完成的参数计算进行调节和速度。

  其中ADC在每个PWM的上升沿触发,采样两相电流进行处理,并且将其送给PI调节器调节PWM占空比,并且每次都会与限流值进行比较,一旦电流超过限流值,则自行执行脱机。这些程序在中断中完成,可以是系统更具有实时性。另外,每次走完一个阶梯的波形后,程序将触发timer3计数器,进行细分步数的计算,从而快的调整个周期的细分数。TImer3程序流程图如图7所示。

  电机的细分步数为每次Enable之后方能调整,而细分值表则由计算好的正余弦参数存于MCU Flash中。

  本系统采用电流实时采样并进行PI调节,使两相混合式步进电机的恒转矩运行,真正达到了电流矢量不变控制,在测试中能够有效的降低低频振荡,并且,在16细分的状态下控制工作,大幅度的减小了噪声和阻尼振荡,是一种有效的控制步进电机的手段。

  为驱动一个以上的高亮度白光LED,设计工程师需要选择是连接LED或是并联连接LED。并联连接只需....

  本设计采用24V输入,可提供高达75V的LED驱动输出,可驱动1.5A LED灯串(或多串并联)。测....

  氮化镓(GaN)是最接近理想的半导体开关的器件,能够以非常高的能效和高功率密度实现电源转换。但GaN....

  LED照明的一个重要的考虑因素,就是LED驱动电与LED本身的工作寿命应该能够相提并论。虽然影响驱....

  plc控制变频器正反转接线.plc与变频器的硬件连接线图 PLC以开关量方式控制变频器驱动电....

  信息(R/W 0)给从器件,主器件在收到从器件产生应答信号后,主器件发送 1 个 8 位字节地....

  三极管除了可以当做交流信号放大器之外,也可以做为开关之用。严格说起来,三极管与一般的机械接点式开关在....

  直流电动机测试电源要根据直流电动机的试验要求进行调压试验、轻载试验、负载试验和过载试验,还要进行动态....

  IPN60R3K4CE:满额工作下,MOS温升不超过40℃。该系列是英飞凌在全球范围内推出第一个采用....

  主节点采用的LPC2294基于ARM7TDMI内核的32位处理器,带有256kB高速FLASH、16....

  CAN(controllerareanetwork)控制器局域网络是一种实时性强、灵活性好、标准化程....

  DougBailey指出由于双极型功率器件比MOSFET便宜,一般是2美分左右一个,所以一些设计师为....

  电磁干扰一般通过空间辐射和通过导线传导,在工程领域一直是人们要解决的难题和研究热点。驱动单元作为大功....

  随着L1上的电流以di/dt的速度增大,能量在L1中保存起来。随着电流逐渐增大,它也流过Q2的电....

  计算机、单片机都是以字节为单位进行存储的。这里的4就是4个字节的意思。列举的LPC1114是AR....

  1、软件方面 1)方便。主要体现在后期的开发,即在操作系统上直接开发应用程序。不像单片机一样一....

  这里不用中断(interrupt)而用异常(exception),毕竟中断只是异常的一种情况,呵呵 ....

  芯片发热 这主要针对内置电源调制器的高压驱动芯片。假如芯片消耗的电流为2mA,300V的电压加在芯片,...

  [table] [tr][td] 今天是ARM部分的第一讲,重点是从构造、两种工作状态、两种存储模式、七种工作模式方面来开始A...

  目前嵌入式处理器常见的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire....

  ARM单片机是大多数新手选择的入门切入点,但由于知识的不足,在设计过程中新手们经常会遇到这样或那样的....

  高亮度LED 在照明应用中的使用越来越广泛。我们在这里将介绍一种简单的“气氛照”,其仅使用了少量....

  随着人们对操控要求的不断提高,电容触摸屏因为能支持多点触摸而得到广泛使用。本文基于Nokia和Int....

  I2C 需要连线少,仅需一条串行时钟线和一条串行数据线。允许多主机控制,具有裁决和同步功能,可随....

  休眠模式是减少嵌入式系统功率消耗的一种运行模式。一般来说,系统处于休眠模式时,不执行任何功能,在一定....

  休眠模式是减少嵌入式系统功率消耗的一种运行模式。一般来说,系统处于休眠模式时,不执行任何功能,在一定....

  电子论坛小技巧分享之LED驱动设计 芯片发热 这主要针对内置电源调制器的高压驱动芯片。假如芯片消耗的电流为2mA...

  本文提出的SM END驱动模型为分布式多处理器系统间提供了一种通过CompactPCI总线而进行网络....

  本文首先给出了NandFlash的硬件特点,分析了Linux MTD层(Memow Technolo....梦见找不到回家的路