本教程介绍步进电机驱动和细分的工作原理
步进驱动器细分原理

步进驱动器细分原理步进驱动器是一种常用的电机驱动器,它通过控制电流的方向和大小来驱动步进电机实现精确的定位和运动控制。
而步进驱动器的细分原理则是指在每个步进脉冲周期内,步进电机所转动的角度,也就是步进角的大小。
在实际应用中,通过对步进驱动器进行细分,可以提高步进电机的分辨率和精度,从而实现更加精准的运动控制。
本文将对步进驱动器的细分原理进行详细介绍,希望能够帮助大家更好地理解和应用步进驱动器。
首先,我们需要了解步进电机的基本原理。
步进电机是一种将电脉冲信号转换为机械运动的电机,它通过控制电流的方向和大小来驱动电机的转动。
在正常情况下,步进电机每接收一个脉冲信号就会转动一个固定的步进角,这个步进角的大小取决于电机的结构和设计。
而步进驱动器的细分原理则是通过控制每个步进脉冲周期内的细分步数,从而实现对步进电机转动角度的精细控制。
细分原理的核心在于将一个步进脉冲周期分为若干个细分步数,通过控制每个细分步数的电流大小和方向来控制步进电机的转动角度。
通常情况下,步进驱动器会将一个步进脉冲周期分为2、4、8、16甚至更多的细分步数,从而实现对步进电机转动角度的更加精细的控制。
例如,当步进驱动器将一个步进脉冲周期细分为8个步数时,步进电机每接收一个脉冲信号就会转动1/8个步进角,从而实现更加精细的运动控制。
在实际应用中,步进驱动器的细分原理可以帮助我们实现更加精准的定位和运动控制。
通过细分步数的控制,可以提高步进电机的分辨率和精度,从而实现更加精细的运动控制。
例如在一些需要高精度定位的设备中,可以通过增加步进驱动器的细分步数来提高定位精度,从而满足设备对于精准控制的要求。
总的来说,步进驱动器的细分原理是通过控制每个步进脉冲周期内的细分步数,从而实现对步进电机转动角度的精细控制。
通过对步进驱动器进行细分,可以提高步进电机的分辨率和精度,从而实现更加精准的运动控制。
希望本文对大家理解和应用步进驱动器的细分原理有所帮助。
步进电机细分原理

步进电机细分原理
步进电机细分原理是通过将步进电机的每一步细分为更小的步数,以提高步进电机的精度和平滑性。
细分步进电机的方法有很多种,其中一种常用的方法是电子细分。
电子细分是通过改变电流的形式或频率来实现细分效果。
具体来说,当电流经过细分驱动器时,驱动器会根据细分的要求将电流细分为更小的步数,并按照指定的步序依次通电给步进电机的各相,从而实现步进电机的细分控制。
在电子细分中,常用的方法包括全流模式细分和半流模式细分。
全流模式细分是将每一步细分为两个小步,即电流依次由A
相到AB相再到B相,再由B相到BC相再到C相,依此循环。
这样可以提高步进电机的抗负载能力和静态扭矩,但精度相对较低。
半流模式细分是将每一步细分为四个小步,即电流分别经过A相、AB相、B相、BC相、C相和CA相,依此循环。
这样可以提高步进电机的精度和平滑性,但抗负载能力和静态扭矩相对较低。
除了电子细分,还有一些其他方法用于步进电机的细分控制。
例如,可以通过增加步进电机的极对数来实现细分效果,即增加步进电机的电磁线圈数量,从而提高步进电机的分辨率。
此外,还可以通过使用微步驱动器来实现步进电机的细分控制,微步驱动器能够将每一步细分为更小的微步数,从而进一步提高步进电机的精度。
综上所述,步进电机细分原理是通过改变电流的形式或频率,
将每一步细分为更小的步数,以提高步进电机的精度和平滑性。
在实际应用中,可以根据具体需求选择不同的细分方法和控制器,以实现最佳的细分效果。
步进电机驱动器及细分控制原理

步进电机驱动器及细分控制原理引言:步进电机是一种将电脉冲信号转化为机械转动的电动机。
步进电机驱动器是一种用于控制步进电机旋转的设备。
步进电机可以通过控制驱动器提供的电流和脉冲信号来精确地控制旋转角度和速度。
本文将介绍步进电机驱动器的工作原理以及细分控制的原理。
一、步进电机驱动器的工作原理:1.输入电流转换:驱动器将输入的电流信号转换为电压信号。
电流信号通常由控制器产生,通过选择合适的电阻来控制输入电流的大小。
2.逻辑控制:驱动器还会接收来自控制器的脉冲信号。
这些脉冲信号会相互间隔地改变驱动器输出的电压,从而驱动步进电机旋转。
脉冲信号的频率和脉冲数量会影响步进电机的转速和旋转角度。
3.输出电压控制:驱动器会根据输入的电流和脉冲信号控制输出的电压,使其适应步进电机的工作要求。
输出电压的频率和脉冲数有助于控制步进电机旋转的速度和角度。
二、细分控制原理:细分控制是指通过控制驱动器输出的电压脉冲信号来实现更精确的步进电机控制。
细分控制可以将步进电机的每个脉冲细分成更小的步进角度,从而提高步进电机的转动分辨率。
1.脉冲信号细分:通过改变驱动器的输出脉冲信号频率和脉冲数来实现脉冲信号的细分。
例如,如果驱动器输入100个脉冲,但只输出50个脉冲给步进电机,那么每个输入的脉冲就会分为两个输出脉冲,步进电机的旋转角度将更精确。
2.电流细分:通过改变驱动器输出的电流大小来实现电流的细分。
通常情况下,驱动器的输出电流会根据步进电机的转动需要进行控制。
细分控制可以使驱动器能够实现更精确的电流控制,进而控制步进电机的转动精度。
3.微步细分:微步细分是一种更高级的细分控制方法,通过改变驱动器输出的电压波形进行微步细分。
微步细分将步进电机的每个步进角度再次细分为更小的角度,进一步提高了步进电机的转动分辨率和平滑性。
总结:步进电机驱动器是通过将控制器产生的电流和脉冲信号转换为驱动步进电机的电压信号的设备。
细分控制是通过改变驱动器输出的电流和脉冲信号来实现更精确的步进电机控制。
stm32步进电机控制教程

本教程介绍步进电机驱动和细分的工作原理,以及stm32103为主控芯片制作的一套自平衡的两轮车系统,附带原理图pcb图和源代码,有兴趣的同学一起来吧.本系统还有一些小问题,不当之处希望得到大家的指正.一.混合式步进电机的结构和驱动原理电机原理这部分不想讲的太复杂了,拆开一台电机看看就明白了。
电机的转子是一个永磁体,它的上面有若干个磁极SN组成,这些磁极固定的摆放成一定角度。
电机的定子是几个串联的线圈构成的磁体。
出线一般是四条线标记为A+,A-,B+,B-。
A相与B相是不通的,用万用表很容易区分出来,至于各相的+-出线实际是不用考虑的,任意一相正负对调电机将反转。
另外一种出线是六条线的只是在A相和B相的中间点做两条引出线别的没什么差别,六出线的电机通过中间出线到A+或A-的电流来模拟正向或负向的电流,可以在没有负相电流控制的电路中实现电机驱动,从而简化驱动电路,但是这种做法任意时刻只有半相有电流,对电机的力矩是有损失的。
步进电机的转动也是电磁极与永磁极作用力的结果,只不过电磁极的极性是由驱动电路控制实现的。
我们做这样的一个实验就可以让步进电机转动起来。
1找一节电池正负随意接入到A相两端;然后断开;(记为A正向)2再将电池接入到B相两端; 然后断开;(记为B正向)3电池正负对调再次接入A相; 然后断开;(记为A负向)4保持正负对调接入B 相;然后断开;(记为B负向)…如此循环你会看到步进电机在缓慢转动。
注意电机的相电阻是很小的接通时近乎短路。
我们将相电流的方向记录下来应该为:A+B+A-B-A+…,如果我们更换接线顺序使得相电流顺序为A+B-A-B+A+…这时我们会看到电机向反方向运动。
这里每切换一次相电流电机都会转动一个很小的角度,这个角度就是电机的步距角。
步距角是步进电机的一个固有参数,一般两相电机步距角为1.8度即切换200次可以让电机转动一圈。
这里我们比较正反转的电流顺序可以看出A+和A-;B+和B-的交换后的顺序和正反顺序是一致的,也就是前面所说的”任意一相正负对调电机将反转”。
步进电机驱动方式(细分)概述

步进电机驱动方式(细分)概述众所周知,步进电机的驱动方式有整步,半步,细分驱动。
三者即有区别又有联系,目前,市面上很多驱动器支持细分驱动方式。
本文主要描述这三种驱动的概述。
如下图是两相步进电机的内部定子示意图,为了使电机的转子能够连续、平稳地转动,定子必须产生一个连续、平均的磁场。
因为从宏观上看,电机转子始终跟随电机定子合成的磁场方向。
如果定子合成的磁场变化太快,转子跟随不上,这时步进电机就出现失步现象。
既然电机转子是跟随电机定子磁场转动,而电机定子磁场的强度和方向是由定子合成电流决定且成正比。
即只要控制电机的定子电流,则可以达到驱动电机的目的。
下图是两相步进电机的电流合成示意图。
其中Ia是由A-A`相产生,Ib是由B-B`相产生,它们两个合成后产生的电流I就是电机定子的合成电流,它可以代表电机定子产生磁场的大小和方向。
有了以上的步进电机背景描述后,对于步进电机的整步、半步、细分的三种驱动方式,都会是同一种方法,只是电流把一个圆(360°)分割的粗细程序不同。
整步驱动对于整步驱动方式,电机是走一个整步,如对于一个步进角是3.6°的步进电机,整步驱动是每走一步是走3.6°。
下图是整步驱动方式中,电机定子的电流次序示意图:由上图可知,整步驱动每一时刻只有一个相通电,所以这种驱动方式的驱动电路可以是很简单,程序代码也是相对容易实现,且由上图可以得到电机整步驱动相序如下:BB’→A’A→B’B→A A’→B B’下图是这种驱动方式的电流矢量分割图:可见,整步驱动方式的电流矢量把一个圆平均分割成四份。
下图是整步驱动方式的A、B相的电流I vs T图:可以看出,整步驱动描出的正弦波是粗糙的。
使用这种方式驱动步进电机,低速时电机会抖动,噪声会比较大。
但是,这种驱动方式无论在硬件或软件上都是相对简单,从而驱动器制造成本容易得到控制。
半步驱动对于半步驱动方式,电机是走一个半步,如对于一个步进角是3.6°的步进电机,半步驱动是每走一步,是走1.8°(3.6°/2)。
步进电机的原理,分类,细分原理

步进电机原理及使用说明一、前言步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。
它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。
因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。
步进电机是将电脉冲信号转变为角位移或线位移的一种开环线性执行元件,具有无累积误差、成本低、控制简单特点。
产品从相数上分有二、三、四、五相,从步距角上分有0.9°/1.8°、0.36°/0.72°,从规格上分有口42~φ130,从静力矩上分有0.1N•M~40N•M。
签于上述情况,我们决定以广泛的感应子式步进电机为例。
叙述其基本工作原理。
望能对广大用户在选型、使用、及整机改进时有所帮助。
二、感应子式步进电机工作原理(一)反应式步进电机原理由于反应式步进电机工作原理比较简单。
下面先叙述三相反应式步进电机原理。
1、结构:电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。
0、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て,A…与齿5相对齐,(A…就是A,齿5就是齿1)下面是定转子的展开图:2、旋转:如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。
如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3て,此时齿3与C偏移为1/3て,齿4与A偏移(て-1/3て)=2/3て。
步进电机细分工作原理

步进电机细分工作原理
步进电机细分工作原理是指通过控制电流波形,使步进电机在每个步进角度上分为更小的微步,从而实现更精确的控制。
步进电机是一种将电信号转换为机械运动的装置,它由一个固定的磁场与一个可旋转的磁场之间的相互作用驱动。
当电流通过驱动器中的细分电路时,细分电路会将输入的电流信号进行分析并转换为根据所设定的细分级数产生相应的电流波形。
细分电路中通常采用Pulse Width Modulation(PWM)技术,即通过调节电流信号的占空比来控制电机的驱动电流。
通过改变电流的大小和方向,可以实现步进电机的连续旋转或停止。
在细分过程中,输入的电流信号被切割成很多个小步进,通过不断改变电流的大小和方向,可以使步进电机在任意位置停下或继续旋转,从而实现更高的定位精度。
细分级数的选择对步进电机的运动精度和平滑度有重要影响。
通常情况下,细分级数越高,步进电机的旋转角度越小,运动精度和平滑度越高。
然而,细分级数越高,所需的计算和控制效率也会越低,因此需要在控制系统设计中进行权衡。
步进电机细分原理

步进电机细分原理步进电机是一种将电能转化为机械能的电动机,它通过控制电流的方向和大小,实现精确的位置控制。
在步进电机工作原理中,细分原理是非常重要的一部分。
细分原理是指将步进电机的每个步进角度再次分割成更小的角度,以提高步进电机的精度和分辨率。
接下来,我们将详细介绍步进电机的细分原理。
首先,步进电机的细分原理基于步进电机的结构特点,步进电机是通过控制电流的方向和大小来实现转动的,而且它的转动是按照一定的步进角度来进行的。
在传统的步进电机中,一次步进角度通常为1.8度或者0.9度,这就意味着步进电机的转动是以这个角度为基本单位来进行的。
然而,有时候我们需要更高的精度和分辨率,这时就需要采用细分原理来实现。
其次,细分原理是通过改变步进电机驱动器的控制方式来实现的。
步进电机驱动器是控制步进电机转动的关键部件,它可以根据输入的脉冲信号来控制电机的转动。
在细分原理中,我们可以通过改变驱动器的细分数来实现对步进角度的再次分割。
比如,如果我们将步进电机的细分数设置为2,那么每个步进角度就会再次分割成两个小的角度,这样就可以实现更高的精度和分辨率。
另外,细分原理还可以通过改变驱动器的微步进模式来实现。
微步进是指在每个步进角度中再次分割成更小的角度,并且在每个小角度上都施加不同的电流控制,从而实现对步进电机转动的更精细控制。
微步进模式可以将步进电机的精度和分辨率提高到一个更高的水平,这对于一些对精度要求较高的应用来说是非常重要的。
最后,细分原理在步进电机的应用中具有非常重要的意义。
通过细分原理,我们可以实现对步进电机转动的精确控制,提高步进电机的精度和分辨率,从而更好地满足各种应用的需求。
同时,细分原理也为步进电机的进一步发展提供了技术支持,使得步进电机在各种领域得到了广泛的应用。
综上所述,步进电机的细分原理是通过改变步进角度的控制方式来实现对步进电机转动的精确控制,提高步进电机的精度和分辨率。
通过细分原理,我们可以实现对步进电机的更高精度和更细致的控制,从而更好地满足各种应用的需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本教程介绍步进电机驱动和细分的工作原理,以及stm32103为主控芯片制作的一套自平衡的两轮车系统,附带原理图pcb图和源代码,有兴趣的同学一起来吧.本系统还有一些小问题,不当之处希望得到大家的指正.一.混合式步进电机的结构和驱动原理电机原理这部分不想讲的太复杂了,拆开一台电机看看就明白了。
电机的转子是一个永磁体,它的上面有若干个磁极SN组成,这些磁极固定的摆放成一定角度。
电机的定子是几个串联的线圈构成的磁体。
出线一般是四条线标记为A+,A-,B+,B-。
A相与B相是不通的,用万用表很容易区分出来,至于各相的+-出线实际是不用考虑的,任意一相正负对调电机将反转。
另外一种出线是六条线的只是在A相和B相的中间点做两条引出线别的没什么差别,六出线的电机通过中间出线到A+或A-的电流来模拟正向或负向的电流,可以在没有负相电流控制的电路中实现电机驱动,从而简化驱动电路,但是这种做法任意时刻只有半相有电流,对电机的力矩是有损失的。
步进电机的转动也是电磁极与永磁极作用力的结果,只不过电磁极的极性是由驱动电路控制实现的。
我们做这样的一个实验就可以让步进电机转动起来。
1找一节电池正负随意接入到A相两端;然后断开;(记为A正向)2再将电池接入到B相两端; 然后断开;(记为B正向)3电池正负对调再次接入A相; 然后断开;(记为A负向)4保持正负对调接入B相;然后断开;(记为B负向)…如此循环你会看到步进电机在缓慢转动。
注意电机的相电阻是很小的接通时近乎短路。
我们将相电流的方向记录下来应该为:A+B+A-B-A+…,如果我们更换接线顺序使得相电流顺序为A+B-A-B+A+…这时我们会看到电机向反方向运动。
这里每切换一次相电流电机都会转动一个很小的角度,这个角度就是电机的步距角。
步距角是步进电机的一个固有参数,一般两相电机步距角为1.8度即切换200次可以让电机转动一圈。
这里我们比较正反转的电流顺序可以看出A+和A-;B+和B-的交换后的顺序和正反顺序是一致的,也就是前面所说的”任意一相正负对调电机将反转”。
以上为四排工作方式,为了使相电流更加平滑另外可以使用八排的工作方式即: A+;A+B+;B+;B+A-;A-;A-B-;B-;B-A+;从前往后循环正转,从后往前循环反转。
为了用单片机实现相电流的正负流向控制必须要有一个H桥的驱动电路,这种带H桥的驱动模块还是很多的,比较便宜的是晶体管H桥比如L298N,晶体管开关速度比较慢,无法驱动电机高速运动。
有些模块将细分控制电路也包含在内,我们也不用这种,因为我们的细分由软件控制。
实际应用中使用ST的mos管两桥驱动芯片L6205一片即可驱动一台步进电机。
有了H桥通过PWM就可以控制相电流大小,改变输入极IN1、IN2的状态(参看手册第8页)可以控制相电流的方向。
二.细分的原理和输出控制从这里开始重点了,别的地方看不到哦。
一个理想的步进电机电流曲线应该是相位相差90度的正弦曲线如下图:图中蓝色线时A相电流,红色线是B相电流。
如果把A相正负极值视为A+A-,B相正负极值视为B+B-,比较一下四拍方式正转A+B+A-B-和反转A+B-A-B+不难看出四排方式实际上是用一个脉冲来代替一个正弦半周期,相位点从左到右变化则电机正转,从右到左电机反转。
类似的我们把八拍方式A+;A+B+;B+;B+A-;A-;A-B-;B-;B-A+;放到曲线里也可以找到对应点,图中标出了各拍的相位点1,2,3…,不难看出用A+B+代替第2拍点用B+A-代替第四拍点都是近似的做法。
那么这种近似和理想情况的电流的差值去哪里了呢?这些电流被无谓的消耗掉了而且多余的电流会引起电机转动的不平稳。
为什么要细分呢?实际细分的终极目标就是在正弦的周期中插入若干个点使得相电流接近正弦变化,细分可以提高定位精度和电机运转的平稳性。
由此我们抛开细分不谈,如果你能调制出两条相差为90度的正弦波形就是理想的步进电机驱动器了,调制出的正弦波形的频率就是步进电机的转速,正弦的幅值就是步进电机的转矩。
这个听起来貌似不难啊,但是你不要忘了调制出的正弦是有要求的。
第一要有一定的驱动能力步进电机的功率越大驱动能力要求也越大。
第二要能够保持90度的相差前提下改变正弦的频率,这样才能够驱动电机按不同的转速运转,步进电机的旋转方向实际上是两条正弦波的相位点顺序。
第三最好能够调幅,调整幅值能够实现电机的恒力矩输出,调幅的实际意义还不止这些后面再讲。
总之一句话就是通过pwm调制输出可以调频调幅的两路固定相差的正弦波。
(如果是三相步进电机应该是相差各位120度的三路正弦波,原理是一样的。
)上面那个图和两相步进电机驱动的关系可能有些疑惑"真的是这样的吗?",我们在这里再安排一个试验。
我们知道电动机和发电机是两个可逆的过程,因此我们可以用步进电机来当发电机。
很简单的实验,我们把步进电机的两相引线接到双踪示波器输入上,然后找个电机带着转轴运转(我是用一个手电钻夹住电机的转轴,我的这个手钻是可以正反转的)。
保持稳定的转速,你会在示波器上看到上面那个图:即两路相差固定的完美的正弦波,当转速增大时幅值和频率都有变化(线性关系),并且正转和反转时两路正弦相位位置不同,如果你能够确定转速的话你还可以验证以下周期、转速、步距角之间的关系。
步进电机的驱动要比逆变器、伺服电机驱动复杂的地方在于需要大范围的变频,如果能做好这个步进电机的驱动器其它那两个就不成问题了,至少在波形调制上绝对没问题了,它们的基本原理是通的。
下面我们展开正弦调制的讨论,这部分是核心的部分将占很大的篇幅,你放心我绝对不会罗列一大堆的数学式在教程里,不然怎么能叫超级无敌呢?教程超级无敌,这个stm32实现的驱动程序也是超级无敌的(吼吼)。
但是“载波比、spwm、死区、单双极性”这几个词如果你觉得很陌生的话建议你还是要看看电力电子课程的相关章节基本概念还是要有的。
三.spwm运算和输出Spwm的产生可以分为软件方法和硬件方法,硬件方法通过硬件产生一路三角波一路正弦波,经过一个比较器比较正弦波幅值与三角波幅值的关系即可得到spwm波。
这种方法也应用于很多spwm集成芯片/view/ac55b849767f5acfa1c7cd4e.html.硬件方法在波形产生上不需要软件参与,并且调频和调幅控制上都是比较简单的。
硬件方法的功能和性能取决于芯片本身,对于比较复杂的应用上会受到限制。
软件方法的思路是使得pwm波以spwm的脉宽数据变化滤波后就可以得到正弦波形,通过计算得到占空比的波形数据,按波形数据调整pwm。
其实软方法和硬方法也并不是绝对的,比如ti的dsp芯片内部的spwm 发生器,他的做法是在内存中存储一张正弦表,然后用一个和定时器时钟同步的计数器正负计数模拟一个三角波,每个时钟将正弦表的值与三角计数值作比较输出即得到spwm,实际上可以看成是一种半软件半硬件的做法。
软件方法的优势在于成本低且更灵活,成本低不用说了,灵活性上举个例子:调制正弦波性的极性是由独立的控制位实现的(双极性),如果输出标准的正弦波形硬方法需要三角波发生器和正弦波发生器的起始点精确对齐,这在硬件电路实现上需要附带锁相环电路才能保证,而软件方法则不需要任何附加操作。
现在为了改善步进电机的驱动性能,我们希望极性翻转点落后输出几个微秒,要做到这一点硬件方法改动肯定是难上难,而软件方法上只需要增加个定时滞后输出就行了。
为了减少运算开销也可以使用查表法,把计算好的spwm数据存储在rom里,按顺序输出表中的值即可。
这种方法的数据计算可以在pc机上通过matlab软件进行,将数据算好粘贴到源程序中就可以了。
查表法的局限在于参数的变化和存储开销的矛盾,参数越复杂占用存储空间越大。
(1)三角波向锯齿波的转换载波为三角波时输出的是一个左右不对称的pwm波形,只有这种波形能够调制出半周期对称的正弦波,这种方法称为非对称的自然采样法。
其它方法(规则采样等效面积…)都是为了减小计算量或不得以而采取的近似方法。
非对称pwm开点与关闭点没有必然关系,必须由中央对齐的pwm模式通过一个周期的两次更新来输出。
三角波可以看成是两个锯齿波的组合,因此我们可以通过锯齿波的数据来简化程序结构。
我们比较下面三张图:图1是一个锯齿波幅值为1,载波比N=16,正弦幅值0.5,正弦与锯齿波相差为半个锯齿波周期;图2是图1水平翻转的结果;图3是图1和图2的叠加结果。
图三中看到三角波形的spwm数据了吗?没错就这么简单,锯齿波正弦幅值比为2:1,相差半个锯齿波周期,计算出来的数据首尾组合成三角波数据。
算法上就很简单了,假设数组中存放上述的锯齿波spwm数据,编号0~15共16个,依次取0,1,2, (15)为三角波形开点输出数据,则反向取15,14,13,…0为三角波形关点数据即可。
特别的如果载波比为奇数时三角波也为奇数,中间的数自然和自己组合的数据仍然是正确的。
注意这里提及的方法可以把三角波形的计算转换为锯齿波,但并不能减少计算量,因为如果是偶数个三角波只要计算四分之一周期就够了其他的是对称的,而锯齿波形数据需要计算半个周期。
至此我们可以使用锯齿波的方法计算按三角波的数据输出。
(2)spwm迭代运算为计算spwm占空比首先要求得锯齿波斜线与正弦交点,即方程KX+B=Y与Sin(X)=Y的解。
这个方程是一个超越方程,只能通过迭代的方法计算。
我们将直线方程变为X=(Y-B)/K,首先任取一个X值(这个值就是迭代初值),将它带入Sin(X)求一个Y值再将Y值代入(Y-B)/K 求一次X值,再将X带入Sin(X)求一个Y值…如此反复若干次后可以得到一个结果就是方程式的解,这个就叫做迭代法。
迭代次数越多;迭代初值越接近结果精度越高。
每一组数据计算有这样几个参数1:正弦幅值(三角幅值与之成比例)2:载波比N值即半周期中三角波个数。
另外pwm的占空比即定时器的通道值是和pwm的周期值有关系的,因此为了计算定时器通道值还需要一个周期值,对于stm32f这个值就是定时器ARR寄存器的值,它决定pwm周期(或频率)。
附件中有个matlab_spwm.rar,matlab下计算定时器spwm数值和绘图的小工具上面几个图就是用它画的,开始部分可以置参数s_M=32768/65536 %正弦波幅值比0~1s_N=16 %半周期三角波个数s_Pre=16384 %单片机定时器模数值执行分为三部分,计算spwm数据;将数据按周期值换算为定时器设定值;画图;计算定时器设定结果在TimerSetting中,复制粘贴替换tab字符成逗号就行了,下面是上述参数的计算结果:1780 5246 8444 11221 13461 15088 16063 16384 16075 1518213764 11893 9645 7102 4346 1463(3)spwm实时运算的优化如前所述简单的应用查表法就可以解决了但是复杂一点的功能就不能满足要求了,比如步进电机大范围调速、不同转速下恒力矩输出、恒加速运动等等。