引言
电机是现代工业的“肌肉”,推动着工业的发展。步进电机是电机家族的“婴儿”,在20世纪60年代早期才开始流行。它能将电脉冲信号转换为角位移、直线位移等诸多优点,被构想作为昂贵的位置控制应用中伺服电机的低成本替代产品,在航空航天、精密机械加工、自动化控制和办公室自动化设备等领域大量使用,如云台、打印机、绘图仪和雕刻机等。
一般的步进电机因为受限于机械加工工艺,其步距角不能做到很小(如现在相数高的5相步进电机步距角为0.72)还达不到对位移精度要求高的精密控制系统的要求,如精密仪器定位、数控加工等场合。另外,使用传统的驱动方法,步进电机还存在低速运行时振动,会产生共振和噪声的固有特性。
采用细分驱动不仅能有效解决这些问题,改善步进电机的运行性能,还提高了分辨率,增加了电机的输出力矩。1975年美国学者T.R.Fredriksen首次在美国增量运动控制系统及器件年会上提出了步进电机步距角细分的控制方法后,在国内外被广泛研究,成为步进电机驱动的发展趋势。一些高性能的细分驱动器在国外被研究出来,但技术极为保密。国内外对步进电机细分驱动研究的文献很多,主要对细分数、均匀步距、恒定转矩、低噪音、低振动、抗干扰、细分驱动器的硬件实现等方面进行研究。
文章下面部分对步进电机的工作原理及细分驱动进行原理详细介绍,提出一种用PSoC设计的细分驱动器,并总结了相对于其它一些设计方案的特点。
步进电机工作原理及细分驱动
图1是某两型步进电机的内部与外形结构,从图中可以大致看出其组成结构。图2是三相混合式步进电机的结构示意图,定子绕组磁极和转子上都有小齿,一般分别是5个和50个,当某一相绕组通电时,转子上的小齿就会与相应绕组上的小齿对齐,与另外两绕组上的小齿错开一定的角度。
图1 步进电机内部和外形结构
图2 三相混合式步进电机结构示意图
以图2为例,当进行单相轮流通电顺序为A→B→C→A时,转子逆时针旋转;为A→C→B→A时,顺时针旋转。也可以进行双相轮流通电AB→BC→CA→AB(逆时针转)或BA→AC→CB→BA(顺时针转)。还可以进行单双相轮流通电A→AB→B→BC→C→CA→A(逆时针转)或A→AC→C→CB→B→BA→A(顺时针转)。单双相轮流通电的步距角是其它两种方式的一半,可以通过公式
进行计算,式中左边为步距角,右边m为定子的相数、Z为转子的齿数、C为通电方式(单双相轮流通电时C=2,其它两种C=1)。那么可以计算出三相步进电机的步距角为。
由此可得出如下一些结论:①控制步进电机各相定子绕组的通电顺序可以控制步进电机的转动方向;②控制输入给步进电机的脉冲数目N可以控制步进电机的角位移为;③控制输入给步进电机的脉冲的频率可以控制步进电机的转速为:
(转/分钟)
其实,仔细分析三种通电方式,应该不难发现蕴含于其中的细分原理。以单双相轮流通电A→AB为例,如果在这个阶段,我们使B相绕组中的电流慢慢增加到与A相绕组中电流相同,那么与A相绕组对齐的转子就会慢慢转到A与B相绕中间;再假设我们使B相绕组中的电流以定量大小增加,即一种阶梯上升的电流,那么转子就会以比0.6更小的步距角一步一步转动,这样的就实现了步距角的细分。
但这是一种只改变某一相绕组中电流大小的细分方法,以二相步进电机为例,其A、B两相绕组中的电流合成矢量理论上是如图3左所示的形式;其相邻两次电流矢量的大小与夹角都不同,这直接导致步距角与输出力矩的大小不均匀。而现在所用的细分方法,一般是如图3右所示的均匀恒幅电流矢量法;要实现电流矢量的这种变化,需A、B两相中的电流同时改变,且满足iA=iH.cos(a),iB=iH.sin(a)。
图3 单相细分电流矢量和均匀恒幅电流矢量
下面分析一下两相步进电机中每相绕组中的电流,图4、5、6分别是整步(单相轮流通电)、半步和四细分运行时绕组中电流波形示意图。分析可知,细分原理就是通过精确控制相电流来产生均匀旋转的磁场,即把原来每相电流的矩形波变为阶梯波,原来走一步只给一个矩形波,现在把一个步距角分为N步来走,给N个阶梯的阶梯波,N就是细分数。细分数越大,相电流相邻两次的变化就越小,步距角就越小,为原来固有步距角的1/N,电机运行性能更好。还可得出另外两点结论:①进给绕组的细分电流的阶梯数量m控制电机转动的角位移为;②细分电流大小变化的频率控制电机的转速。
细分驱动的实现主要靠D/A数模转换器来精确控制每小步的相电流,用8位的D/A最大能实现256级细分,位数越多,细分数越大。要用D/A输出的正弦规律变化的电流或电压信号来控制相电流,根据末级功放管的工作状态可以分为放大型和开关型两种。一般步进电机的工作电压是几伏到四十几伏,工作电流是几百毫安到几安,从而不能用D/A的输出直接驱动。
放大型驱动电路就是让功放管工作在放大状态来放大D/A的输出,可以进行电压放大也可以进行电流放大,但用放大后的正弦规律变化的电压加在绕组上,会由于绕组电感的作用而不会产生正弦规律变化的电流,所以一般应进行电流放大。这种驱动方式,电路较简单,只要选择精度高一点的电子元件,电流的控制精度也较高;但由于功放管工作在放大状态,功耗较大、发热较严重,所以一般用在驱动电流较小、控制精度较高、散热环境较好的场合。
开关型驱动电路就是让功放管工作在开关状态,从而其功耗和发热都会降低;但电路较复杂,输出的电流会像如图7所示有一定的波纹;因此一般用于驱动力矩较大的电机。随着大力矩输出的步进电机的发展,这种电路很常见,并且许多日本公司还生产了这种电路的步进电机细分驱动芯片,如TA8435、A3955SB、THB8128等。
要实现开关型电路,常用的有两种方法:斩波式和脉宽调制式(PWM)。斩波式电路典型结构如图8所示,其原理是用采样电阻对电机绕组中的电流进行采样,使之与D/A输出的细分电压进行比较,若采样值大于D/A输出,则功放管截止,反之功放管导通。这样D/A输出正弦规律变化的阶梯型控制电压,绕组中就流过阶梯型的电流,这也是电流会有波纹的原因。这种电路应该选用开关性能比较好的功放管和比较器。
图4 整步运行相电流 图5 半步运行相电流 图6 四细分运行时相电流
图7 有纹波的细分相电流
图8 斩波式电路原理图
另一种脉宽调制方式电路原理如图9所示,其原理是用最大幅值相同的D/A输出的正弦规律变化的电压与恒幅三角波(也可为锯齿波)进行比较,D/A输出的电压越大,脉宽调制电路输出的PWM脉冲的宽度也越大,而脉冲间的间隔则越小;反之则PWM脉冲的宽度也越小,而脉冲间的间隔则越大。图10很好的说明了这种比较过程及输出结果。这种方式调制出的PWM波,其脉冲宽度时间占空比是按正弦规律变化的,用它来控制功放管的通断将产生比斩波式精度更高正弦变化的阶梯型细分电流。这种方式是通过对功放管通断时间的控制来改变输出到绕组上的平均电流,这是因为绕组的电感特性对电流变化有阻碍作用,并且要求所用三角波的频率一般应大于20kHz。其实这种方法不一定要用真正的D/A与三角波发生器,完全可以用软件的方法实现,只要输出的PWM波的占空比按正弦规律变化。
由于本文的设计方案是SPWM细分驱动,所以总结出以下几点结论:①三角波的频率决定PWM的频率,而PWM的频率决定了细分电流的纹波大小;②D/A输出值的大小决定PWM的脉宽,而PWM的脉宽和频率共同决定了细分电流的大小;③D/A的位数n决定细分数为2n ,细分后电机的最小步距角为固有步距角θ/2n-1,SPWM的占空比的值即有2n种,并且其取值是按正弦规律变化及每个阶梯电流对应一种占空比;④D/A输出值大小变化的频率决定电机转速,并应远小于三角波的频率,在电机启动时不能超过其启动频率,在电机连续运行时不能超过其最高工作频率;⑤三角波的频率不能大于功率管的截止频率,选择开关性能越好的功率管,三角波的频率可以越大,细分电流的纹波就越小。
当然,除了上面介绍的几种常用方法,还有其它的方法,比如PID控制等。总之,目标就是精确控制绕组中流过正弦变化的阶梯型波。
另外,有文献指出由于步进电机制造工艺引起的误差和相电流由小变到大引起的相电流及其产生的励磁存在非线性而导致的误差等,会使细分后的步距角并不是完全均匀的;为了进一步提高步距角,需要对正弦规律的D/A值进行修正,即修正每小步的相电流值。当然,对于细分后能达到精度允许的误差的应用场合完全可以不必耗费过多的资源来进行这种修正了。
通过以上对步进电机及其细分驱动的分析,读者应该对其有了充分的认识,下一节将对本文设计的基于PSoC的二相混合式步进电机细分驱动器进行介绍。
基于PSoC的二相混合式步进电机细分驱动器
随着细分驱动技术的发展,步进电机的相数“多”和固有的步距角“小”已经没有多大意义。对细分驱动器而言,相数多了反而增加了其复杂性,因为要输出的细分相电流多了;且由于混合式步进电机的优势,现在很多产商也是以生产这种电机为主,二相混合式步进电机将成为主流,所以本文针对其设计了一种基于PSoC的并使用上述脉宽调制方法实现的细分驱动器。
赛普拉斯公司生产的CY8C系列PSoC可编程的片上系统,集成了M8C内核微控制器以及用户可配置的嵌入式系统中通常围绕微控制器周围的模拟及数字模块,模块可配置成放大器、ADC、DAC、滤波器及比较器等模拟功能以及定时器、计数器、PWM、SPI和UART等数字功能。
由于本驱动器是为二自由度的云台设计,需要同时控制二个步进电机转动,每个同时要两路PWM控制,而每个PWM需占用一个数字模块,因此选择有8个可配置数字模块的CY8C27443-24PXI型号28引脚封装的芯片,其有3个8位的可复用可配置的I/O口P0、P1、P2。其功能模块组成如图11所示。
图9 脉宽调制式原理图
图11 CY8C27443-24PXI功能组成模块
本文通过赛普拉斯公司提供的配套开发软件PSoC Designer进行开发(其使用方法请查看相关资料),为芯片配置4个8位PWM模块、1个8位定时器、1个8位A/D(占1个模拟和1个数字模块)、1个UART串口(占两个数字模块)和1个PGA可编程增益放大器,如图12所示,图中左边为输入引脚,右边为输出引脚,上半部分8个矩形即为8个可配置的数字模块,依次被A/D、定时器、UART串口和4个PWM模块占用,下半部分12个矩形即是可配置的模拟模块,被PGA和A/D各占用一个。
其中,UART串口用来连接上位机,使上位机程序能发送命令控制电机的转动(包括启动、停止、方向和速度)和细分数等,下位机可向上发送一些状态信息等。每个PWM模块输出通过内部总线连到P1口的两个引脚上,即每个PWM模块从两个引脚上输出相同的波形,但是可以通过引脚的可配置功能使其中一个引脚输出高或低电平,可以实现模块的分时复用;因为后文选用集成双H桥芯片L298n作为末级功放,其每个桥的两个输入口同一时刻只有一个为高电平才导通,因此只用一个PWM模块就能控制它,引脚连接如表1所示。定时器模块用来产生中断源以编写分时处理结构的程序。A/D模块的输入连接PGA输出,PGA的输入可以通过MUX模块连接4个不同的引脚(P01、P03、P05、P07),从而一个A/D模块就能分时通过4个引脚输入来实现采样4组不同的反馈相电流,以此可实现如过流保护等闭环控制功能。这些模块都可以通过在程序中调用其提供的API函数实现参数和功能的设置,如要实现PWM模块输出的PWM波的脉宽和周期(频率)设置,可分别调用函数:
void PWM8_WritePulseWidth(BYTE bPulseWidth);
void PWM8_WritePeriod(BYTE bPeriod).
当然,要使其正常工作还需要用其它函数,这种调用API函数进行编程的方法,使得开发相对于用其它芯片的设计方案更简单。
细分驱动器的末级功放使用两片集成的双H桥路芯片L298n。该芯片的开关频率最高可达40kHz,最高工作电压可达46V,瞬间峰值电流可达3A,持续工作电流为2A,其使用方法请参考芯片手册。整个驱动器的原理图如图13所示。图中选用42BYGH4417混合式2相4线步进电机,其相电流为1.7A,因此4个采样电阻选择0.02Ω、1W、2512封装的精密电阻,采样电压分别通过P01、P03、P05和P07被A/D模块分时读取;正常情况下,每相绕组的采样电压最大值为0.034V,经过PGA模块放大48倍后约为1.63V,给片内以2.5V作为参考电压、分辨率约为0.02V的8位A/D进行转换。
图12 PSoC内部模块配置
图13 细分驱动器原理图
驱动器设计的最大细分数为128,当频率固定时,则决定细分电流大小的SPWM波的占空比即有128种。这128个脉宽值从小到大排列与四分之一个正弦波的128级量化后的值成比例关系,这样只需要知道任意一个细分电流值(细分电流值=m×最大相电流/128,0≤m≤128)的大小对应的脉宽值,就可计算出所有的脉宽值,这个值需要通过实验得到,并且不同的电机由于相电阻等参数的不同所得到的这个脉宽值也不同。编程时把这128个脉宽值放在代码段,调用API函数设置PWM波脉宽时使用时用查表方式进行查找。对这128个值进行2的倍数值等距采样使用,就能实现64、32、16、8、4、2和1等细分,从而很容易实现“电机快速转动时使用低细分,慢速时使用高细分”的控制策略。四个PWM模块,每两个的脉宽值是同时变化的,PWM1与PWM2同时(控制图2-3中上面的那个L298n),另两个同时,并且一个是从小到大变化,另一个是从大到小变化,从而实现电机的正转和反转;脉宽值变化的越快,电机转动越快,不变时电机处于自锁状态。
经实验证明,本文所设计的细分驱动器在电机快速和慢速转动时都能很稳定地工作,电机输出力矩和步距角均匀、运行平稳,充分发挥了步进电机的功能。
总结
本文首先详细分析了步进电机的工作和细分驱动原理,最后选择理论上比较好的SPWM细分驱动方法,使用PSoC结合L298n实现了最高128细分的、能同时驱动两个步进电机的细分驱动器。
本文的细分驱动器设计方案很好地解决了使用其它方案时遇到的电路复杂和编程困难等问题,成本也比其它方案低很多,所用电子元件很少、功耗低、体积小,非常适合用于对体积和重量要求严格的场合,如无人机等。