86系列两相步进电机机整步运行的电压波形

国产两相步进电机_价格_图片_简介_爱帮网
价格:面议
最小采购量:不限 品牌/型号:/35,42,57,86,110,
国产两相步进电机的详细信息
品牌/型号:/35,42,57,86,110,
国产两相步进电机步进驱动器是步进系统中的核心组件之一。它按照控制器发来的脉冲/方向指令(弱电信号)对电机线圈电流(强电)进行控制,从而控制电机转轴的位置和速度。Leadshine公司驱动器全部采用先进的双极恒流斩波方式对步进电机进行驱动。 步进驱动器工作模式有三种基本的步进电机驱动模式:整步、半步、细分。其主要区别在于电机线圈电流的控制精度(即激磁方式)。 整步驱动在整步运行中,同一种步进电机既可配整/半步驱动器也可配细分驱动器,但运行效果不同。步进驱动器按脉冲/方向指令对两相步进电机的两个线圈循环激磁(即将线圈充电设定电流),这种驱动方式的每个脉冲将使电机移动一个基本步距角,即1.80 度(标准两相电机的一圈共有200个步距角)。半步驱动在单相激磁时,电机转轴停至整步位置上,驱动器收到下一脉冲后,如给另一相激磁且保持原来相继处在激磁状态,则电机转轴将移动半个步距角,停在相邻两个整步位置的中间。如此循环地对两相线圈进行单相然后双相激磁步进电机将以每个脉冲0.90度的半步方式转动。所有Leadshine公司的整/半步驱动器都可以执行整步和半步驱动,由驱动器拨码开关的拨位进行选择。和整步方式相比,半步方式具有精度高一倍和低速运行时振动较小的优点,所以实际使用整/半步驱动器时一般选用半步模式。细分驱动细分驱动模式具有低速振动极小和定位精度高两大优点。对于有时需要低速运行(即电机转轴有时工作在60rpm以下)或定位精度要求小于0.90度的步进应用中,细分驱动器获得广泛应用。其基本原理是对电机的两个线圈分别按正弦和余弦形的台阶进行精密电流控制,从而使得一个步距角的距离分成若干个细分步完成。如上图所示。例如十六细分的驱动方式可使每圈200标准步的步进电机达到每圈200*16=3200步的运行精度(即0.1125°)。Leadshine公司可提供规格齐全、性能优越、品质可靠、价格优惠的十余款细分驱动器。 步进电机的种类和特点步进电机在构造上有三种主要类型:反应式(Variable Reluctance,VR)、永磁式(Permanent Magnet,PM)和混合式(Hybrid Stepping,HS)。 反应式:定子上有绕组、转子由软磁材料组成。结构简单、成本低、步距角小,可达1.2°、但动态性能差、效率低、发热大,可靠性难保证。 永磁式: 永磁式步进电机的转子用永磁材料制成,转子的极数与定子的极数相同。其特点是动态性能好、输出力矩大,但这种电机精度差,步矩角大(一般为7.5°或15°)。混合式: 混合式步进电机综合了反应式和永磁式的优点,其定子上有多相绕组、转子上采用永磁材料,转子和定子上均有多个小齿以提高步矩精度。其特点是输出力矩大、动态性能好,步矩角小,但结构复杂、成本相对较高。按定子上绕组来分,共有二相、三相和五相等系列。最受欢迎的是两相混合式步进电机,约占 97% 以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好。该种电机的基本步矩角为1.8°/步,配上半步驱动器后,步矩角减少为0.9°,配上细分驱动器后其步矩角可细分达256倍(0.007°)。由于摩擦力和制造精度等原因,实际控制精度略低。同一步进电机可配不同细分的驱动器以改变精度和效果。 LEADSHINE精密电机厂引进美国技术生产的步进电机,采用优质冷轧钢片和耐高温永磁体,具有温升低、可靠性高等特点。由于其具有良好的内部阻尼特性,因而运行平稳,无明显震荡区。电机规格:35,42,57,86,110,130
喜欢国产两相步进电机的用户也关注了
两相混合式步进电机细分驱动器DX
两相混合式步进电机细分驱动器DX
台湾泰映步进马达
Applied Motion Products步进电机
苏州市联扬机电有限公司
苏州市联扬机电有限公司是一家高科技企业,专业从事工控、运动控制与传动产品的销售、技术开发、系统集成,拥有资深的销售和技术服务工程师,努力为客户提供各种高性价比的产品。 苏州联扬在工控、运动控制及传动等机电一体化的应用领域中,提供的不只是产品,更热诚地为客户提供快速、高效的工作作风和完善的售后服务,全力帮助中国企业不断引进国外最先进的技术和产品,提高客户产品的档次和竞争力,达到与客户双赢。公司主要经营的产品有:可编程控制器:台湾FATEK(永宏PLC)触摸屏:台湾WEINVIEW、台湾HITECH运动控制卡:英国BALDOR、台湾FORTH交流伺服:日本富士(FUJI)、日本安川(YASKAWA)步进电机:国产LEADSHINE步进驱动减速器:台湾A...
与“国产两相步进电机”相关的商家
做客推荐,让您感受不一样的生活
广州直流电机修理厂&&共109人浏览
苏州电讯电机厂有限公司&&共819人浏览
深圳鸿鑫原机电设备有限公司&&共79人浏览伺服步进专家
运动控制先锋
服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:服务热线:
P产品中心roduct
110系列两相步进电机
110系列两相混合式步进电机,采用优质冷轧硅钢片和耐高温永磁体制造,采用业界先进的磁路设计方案,具有输出转矩大、温升低、可靠性高的特点。具有良好的内部阻尼特性,运行平稳,无明显振荡区
步距角:1.8&
机座号:110
保持转矩:12~28NM
1、一般规格
步距角精度
0.09&(空载、整步)
温度:-10~+50℃;湿度:85%&MAX
100M&O&MIN&500VDC
1000VAC&&1min
0.025&mm&MAX(负载5N)
0.075&mm&MAX(负载10N)
&2、技术规格
保持转矩(N&M)
额定电流(A)
转动惯量(kg&cm2)
机身长(mm)
重量(kg)
3、矩频曲线
110HS12外形尺寸图
110HS20外形尺寸图
110HS28外形尺寸图
暂无该内容...两相步进电机的原理_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
两相步进电机的原理
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
你可能喜欢英纳仕智能技术电机智能控制专家
全国咨询热线:400-
热门搜索关键词:
Product Category
英纳仕荣誉
团队10年专业经验用芯积累上百成功案例
12项专利所有权步进电机,步进驱动器拥有国家专利技术
行业应用方案激光、模具雕刻、医疗测量、电子加工等
ISO9001认证通过IS认证,符合质量管理体系
六西格玛质量管理零缺陷的完美商业追求提高企业竞争力
联系英纳仕智能技术
深圳市英纳仕智能技术有限公司
400电话:400-
邮箱:service@
地址:深圳市南山区桃源街道塘朗工业区B区50栋4楼1号
一、57HS13两相步进电机通用规格
+5%(整步、空载)
-20&C -- +50&C
100M&Omin.500VDC
500VAC for one minute
0.02 Max.(450g-load)
0.08 max.(450g-load)
最大径向承受力
最大轴向承受力
二、57HS13两相步进电机技术规格
三、57HS13两相步进电机外形尺寸
57HS13两相步进电机外形尺寸图
四、57HS13两相步进电机引线接法
驱动器接线
对应电机引线
A-与C-相连
B-与D-相连
五、57HS13两相步进电机接线图
57HS13两相步进电机接线图
六、57HS13两相步进电机矩频曲线
57HS13两相步进电机矩频曲线图
& 深圳市英纳仕智能技术有限公司
& 400电话:400-
& 邮箱:service@
& 地址:深圳市南山区桃源街道塘朗工业区B区50栋4楼1号
& 深圳市英纳仕智能技术有限公司
& 400电话:400-
& 邮箱:service@
& 地址:深圳市南山区桃源街道塘朗工业区B区50栋4楼1号
& 深圳市英纳仕智能技术有限公司
& 400电话:400-
& 邮箱:service@
& 地址:深圳市南山区桃源街道塘朗工业区B区50栋4楼1号
* 表示必填采购:57HS13系列两相步进电机
* 联系人:
请填写您的真实姓名
公司名称:
请填写您的公司名称
联系电话:
* 手机号码:
请填写您的联系电话
电子邮件:
联系地址:
* 采购意向描述:
请填写采购的产品数量和产品描述,方便我们进行统一备货。
深圳市英纳仕智能技术有限公司
地址:深圳市南山区桃源街道塘朗工业区B区50栋4楼1号后使用快捷导航没有帐号?
查看: 61783|回复: 167
spwm超级无敌stm32步进电机控制教程
在线时间1238 小时
威望6070 分
芯币18117 枚
E金币300 枚
TA的帖子TA的资源
本帖最后由 huo_hu 于
14:00 编辑
本教程介绍步进电机驱动和细分的工作原理,以及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集成芯片.硬件方法在波形产生上不需要软件参与,并且调频和调幅控制上都是比较简单的。硬件方法的功能和性能取决于芯片本身,对于比较复杂的应用上会受到限制。& & 软件方法的思路是使得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= %正弦波幅值比0~1s_N=16& &&&%半周期三角波个数s_Pre=16384& &&&%单片机定时器模数值 执行分为三部分,计算spwm数据;将数据按周期值换算为定时器设定值;画图;
计算定时器设定结果在TimerSetting中,复制粘贴替换tab字符成逗号就行了,下面是上述参数的计算结果:1780& && && &5246& && && &8444& && && &11221& && & 13461& && & 15088& && & 16063& && & 16384& && & 16075& && & 15182& && & 13764& && & 11893& && & 9645& && && &7102& && && &4346& && && &1463(3)spwm实时运算的优化
& && &如前所述简单的应用查表法就可以解决了但是复杂一点的功能就不能满足要求了,比如步进电机大范围调速、不同转速下恒力矩输出、恒加速运动等等。网上有很多文章介绍自然采样法的数学方法,并给出了各种优化算法,这些算法力图精确求解三角方程与正弦方程的交点,由于运算中带有大量的浮点运算若没有dsp或高速浮点处理芯片的支持必然会造成运算时间过长对实时调控产生影响。实际上我们需要的计算精度和每载波周期可能的开关点数量有关系,此数值用C来表示,称其为控制比(下文同)数值上=载波周期/pwm周期,同步调制方式中此值为整数,可以理解为用多少个pwm周期控制一个载波周期。pwm频率实际上是开关电路的极限频率或最理想工作的频率,假设每载波周期可能的开关点数量为512个则需要二进制的9位计算精度如果再加一位存疑位最多计算10位就够了。如果采用数据类型IEEE32浮点数迭代运算将得到24位(二进制)精度的计算结果,与实际需要相差甚远,也就是说你算了半天大部分是没有意义的计算,这种计算资源浪费发生在每一次运算中,因此累计起来就比较惊人了。从另一个角度看由于pwm频率的限制有高精度的计算结果也无法实施高精度的开关控制,这么说就好理解了。对计算采取一定的优化是必须的它将直接影响系统的实时性能。一个简单的方法就是在计算有初值后确定数据变动方向逐个可能值比较,另一个方法就是去浮点迭代计算,这两个方法在单片机上实现都可行有机会再发文讨论不再详述了。& && && && &
& && &四.步进电机运行控制& & & & 至此假设我们可以很快的在单片机上进行实时的迭代运算了。迭代计算一个半周期的spwm其输入的原始参数只和三个数值有关:
& &&&1.M正弦的幅值这个值将决定步进电机的相电流大小,也就是步进电机的输出力矩。步进电机的优点之一是它的低速性能,当步进电机低速运转时转子始终受到磁场力的牵引转动,这个力的大小直接取决于励磁电流的大小,很小的速度下却可以用很大的力牵引转动。而直流电机的低速运动只能靠减小励磁电流实现,实际上就是小力矩实现低速,这样控制就不可能很精确特别是启停阶段尤其麻烦。步进电机在高速时力矩下降很快这个原因也不难理解,因为在步进电机励磁线圈里有多组磁极快速划过产生很大的感生电动势抵消了驱动的电压致使励磁电流变小力矩变小。为了改善高速性能解决办法只有一个提高工作电压。根据电机转速自动调整相电流的大小就可以实现恒定的力矩输出了,即低转速小幅值高转速大幅值。2.载波比N和控制比C,这两个参数和调制频率F的关系是:F*2C*2N=TF(TF是定时器的时钟频率)我们慢慢来解释一下这个式子,调制频率就是我们实际想要的电机转速,从上面式子可以看出要让电机速度增加有两个方法即减小C或减小N(TF也是可以变的暂不考虑);C实际上就是定时器的模数值(ARR),他的含义是使用几个定时器时钟周期产生一个pwm周期,前面的2是由于定时器工作在中央对齐模式下,定时器+-计数一轮产生一个完整的三角波周期。ARR的取值范围不可以太小,因为需要定时器中断来更新个通道的值,太小的数值两次更新时间过短而无法实现计算和更新步计数等操作。ARR的值如果太大则输出的pwm频率过低效果不佳。3. N是载波比也就是半周期的三角波的数量,他的含义是使用几个pwm周期调制出一个正弦周期,其实也就是我们常说的细分数,它决定一个正弦周期(一个步距角)内可以控制的位置点的数量。在常见的驱动器中这个数值都是由拨码开关事先设定的,工作中是一个固定值,原因是硬件电路无缝的调整细分度几乎是不可能的。软件运算则没有这个问题,N的取值可以是任意的,唯一受影响的就是极性控制,上面算式里N前面的2含义是正弦正半周期和负半周期。N的取值还要考虑内存和计算占用;迭代算法如果有接近结果的初始值将使得运算效率大幅提高,因此对于有初始值的运算每一个计算点都要有存储空间占用,过大的N值要考虑内存资源,如果无初值的计算则要考虑计算资源。特别的当N值变化时初值会与真实值有差距,所以应尽量减少N的变动。& & 和步进电机转速有关系的参量在运行时都是已知的,因此任意时刻电机的转速都是可以计算的,如果电机能够平稳运行(没有堵转或丢步的情况)是不需要其它测速码盘装置的,闭环控制就更加没必要了。话又说回来如果丢步或堵转了闭环能解决吗?& &&&
& && &五.步值计数产生AB极性逻辑和正反转
& && &网上看到的步进电机驱动程序千篇一律的都是数组存储io状态查表输出,带细分更少。先来梳理一下目前已经现在做到的内容,内存中有一个数组存放整个正弦半周期的实时运算的spwm数据,这个数据是根据当前的pwm周期折算过,因此每个pwm周期依次将数组内容赋值给定时器通道值就可以在定时器通道管脚输出正弦变化的pwm了。另外使用一个(l6205是两个,也可以用非门)io口来控制极性输出,比如高电平输出正弦负半周,低电平输出正弦正半周。
& && &接下来需要安排一个合理而简单的数据结构把步进计数、细分和极性控制合为一体。首先我们用一个s32 stepcounter全局量来做步进计数,它的数值与步进电机的实时位置对应,这个变量是一个很关键的变量,因为任意时刻的AB两相spwm数据输出点和极性控制信号都由它产生。假设我们把它的低八位视为细分步计数(256为最大细分),则这个计步值除256对应整步位置。另外安排一个u8 microstep用来控制细分步进,它的取值和当前的细分度有关,如果256细分则microstep=1,128细分microstep=2,以此类推.如果电机正转前进一个微步则stepcounter+=microstep,如果反转一个微步则stepcounter-=microstep(微步进这部分可以放到中断程序里),OK正反转很简单,微步前进自动更新整步。关键点在于如何使用这个计数值产生两个相位的极性信号输出控制和A相B相的spwm数据位置,这里解释一下为什么会希望控制都由这一个变量产生:因为这样的程序最简单,虽然这里讲一大堆但是在编程实现时你就看到了就几行搞定;不容易出错,效率最高,你可以想象的到如果涉及的变量越多操作的代码越多需要考虑的可能性越多也越容易错;便于封装和功能扩展,比如你想做一个AD采样值与电机位置按一个比例同步的程序即转滑阻电机跟着动的小玩意儿,稍微改改把AD采样值赋给计步值其它都不用管了。
& && &先说第一个数据的输出,spwm数组256个,如果不考虑极性则数据位置只和stepcounter的低8位有关,因此A相数据用stepcounter的低8位作指针从数组取数就可以(A相0值点为计步0值点),B相与A相相差为90度,所以A=0,1,2,。。。255,0 。。。则B=128,129,130,。。。127,128。。。能看出来吗?(A的数据指针+128)%256等同于 A的数据指针^128就是B的数据指针。
程序上这样写:
A通道值=spwm数组[(u8)stepcounter];
B通道值=spwm数组[(u8)stepcounter^128];
这里数组大小是256,所以一个逻辑异或就解决,如果你非要取大小是100个的话你就得(point+50)%100才能找到B相位点了。
& && &第二个是极性控制,假定初始时A=0,B=0,C8=0,C7=0,A=0 B=0表示A相B相正半周的极性,C8是stepcounter第8位的值(最低位为0),之所以为8是前面提到过的条件即视低8位为微步,C7第7位,现在stepcounter计数到0和256,A相应该翻转一次,计数到128和128+256,B相翻转一次,由此列出真值表把逻辑关系提取出来:
C8 C7 A B counter值
0&&0&&0 0 0
0&&1&&0 1 128
1&&0&&1 1 256
1&&1&&1 0 256+128
0&&0&&0 0 512
A相的逻辑和C8相同,B相的逻辑能看出来吗?B相逻辑是C8异或C7。程序上很简单,每次stepcounter值变化时执行:
A相IO控制位值=setpcounter第7位值;
B相IO控制位值=A相IO控制位值^setpcounter第8位值;
两句极性就被更新了,不管正转、反转极性输出总是对的,这里结合stm32的位带操作更好。上述内容对细分度为256,128,64...时成立,如果N不为2整数幂则会有余数个错位,N取值(即细分度)很小时影响比较大,但不会产生极性错误。
[ 本帖最后由 huo_hu 于
03:05 编辑 ]
本帖子中包含更多资源
才可以下载或查看,没有帐号?
追加一个问题, 相电流是按指数变化, spwm可以抵消指数变化和正弦变化之间的误差吗?&
请教楼主, 两相电机的单臂驱动和双臂驱动的差异?&
没人感兴趣不整了&
这个帖子必须订,我正需要这个呢~,求楼主速度发布了&
<p id="rate_286" onmouseover="showTip(this)" tip="赞一个!&芯币 + 1 枚
威望 + 1 分
" class="mtn mbn">
<p id="rate_401" onmouseover="showTip(this)" tip="神马都是浮云&威望 + 1 分
" class="mtn mbn">
&&&&&&&&&&
在线时间1238 小时
威望6070 分
芯币18117 枚
E金币300 枚
TA的帖子TA的资源
好在我是版主啥时候都能改.stm32步进电机驱动第一版基本完成,总结一下功能:
1.串口状态信息定时发送(当前速度,步值,力矩),串口指令控制加减速工作模式等
2.实时运算控制力矩,超大力矩可由正弦逐渐过渡成方波.
3.存储矩频表,依据速度自调力矩输出.矩频表可串口写入
4.速度范围0.01转/分钟~2000转/分钟,
5.指定加速度调速,0~2000转最快10秒,加速度力矩补偿
6.多种模式自由切换(步值参照,速度参照,加速度参照),通过滑阻调整参照值
7.串口指令编程...
准备做演示视频...
在线时间1831 小时
威望3801 分
芯币17232 枚
E金币355 枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 3801, 距离下一级还需 2199 积分
五彩晶圆(中级), 积分 3801, 距离下一级还需 2199 积分
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
回复 楼主 huo_hu 的帖子
这个帖子必须订,我正需要这个呢~,求楼主速度发布了
有的时候能讲得清楚才是最难的.&
在线时间1238 小时
威望6070 分
芯币18117 枚
E金币300 枚
TA的帖子TA的资源
回复 4楼 ivandjf 的帖子
有的时候能讲得清楚才是最难的.
在线时间1238 小时
威望6070 分
芯币18117 枚
E金币300 枚
TA的帖子TA的资源
回复 楼主 huo_hu 的帖子
没人感兴趣不整了
在线时间9 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 16, 距离下一级还需 184 积分
一粒金砂(中级), 积分 16, 距离下一级还需 184 积分
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
在线时间3 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
楼主,很精彩的论述,为什么不写了呢?
在线时间3 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
&&看到帖子更新了,很开心! 楼主加油!
在线时间2 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
楼主,很精彩的论述,
在线时间35 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
恩,不错,讲得挺详细的
在线时间170 小时
威望2058 分
芯币723 枚
TA的帖子TA的资源
五彩晶圆(初级), 积分 2058, 距离下一级还需 1442 积分
五彩晶圆(初级), 积分 2058, 距离下一级还需 1442 积分
回复 楼主huo_hu 的帖子
请教楼主, 两相电机的单臂驱动和双臂驱动的差异?
单臂双臂不懂...那个是和车子有关的吗?&
/u/1283024
个人书库,持续更新中。
在线时间170 小时
威望2058 分
芯币723 枚
TA的帖子TA的资源
五彩晶圆(初级), 积分 2058, 距离下一级还需 1442 积分
五彩晶圆(初级), 积分 2058, 距离下一级还需 1442 积分
回复 楼主huo_hu 的帖子
追加一个问题, 相电流是按指数变化, spwm可以抵消指数变化和正弦变化之间的误差吗?
相电流是你控制输出的,指数变化就不是spwm了,你想要的是什么呢?&
/u/1283024
个人书库,持续更新中。
在线时间1238 小时
威望6070 分
芯币18117 枚
E金币300 枚
TA的帖子TA的资源
回复 13楼osoon2008 的帖子
单臂双臂不懂...那个是和车子有关的吗?
在线时间1238 小时
威望6070 分
芯币18117 枚
E金币300 枚
TA的帖子TA的资源
回复 14楼osoon2008 的帖子
相电流是你控制输出的,指数变化就不是spwm了,你想要的是什么呢?
在线时间97 小时
芯币226 枚
TA的帖子TA的资源
一粒金砂(中级), 积分 74, 距离下一级还需 126 积分
一粒金砂(中级), 积分 74, 距离下一级还需 126 积分
LZ讲的不错!得好好看看啊!
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 50, 距离下一级还需 150 积分
一粒金砂(中级), 积分 50, 距离下一级还需 150 积分
讲的挺好的
在线时间11 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 50, 距离下一级还需 150 积分
一粒金砂(中级), 积分 50, 距离下一级还需 150 积分
请问版主,采用中央对齐和边沿对齐,区别应该没什么把
如果载波比越大区别就越小,是也&
在线时间1238 小时
威望6070 分
芯币18117 枚
E金币300 枚
TA的帖子TA的资源
回复 19楼骑马看驴跑 的帖子
如果载波比越大区别就越小,是也
那么版主,变速最好是改变细分的脉冲宽度,还是通过快走细分表改变单步时间呢?
看网上别的大牛说pmw脉冲频率最好17.57KHZ。&
荣誉会员勋章
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
Powered by
逛了这许久,何不进去瞧瞧?}

我要回帖

更多关于 两相步进电机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信