基于单片机步进电机ppt答辩_基于MCU和DSP的步进电机控制技术分析

来源 | 控制与传动

步进电机已经渗透入我们生活的方方面面,本文介绍了一些重要的步进电机相关技术,为开发人员基本了解步进电机的工作原理提供了足够的信息,同时也介绍了用微控制器或数字信号处理器控制步进电机的方法。

dda343dd1819a31f7a7a93282adc2725.png

步进电机也叫步进器,它利用电磁学原理,将电能转换为机械能,人们早在20世纪20年代就开始使用这种电机。随着嵌入式系统(例如打印机、磁盘驱动器、玩具、雨刷、震动寻呼机、机械手臂和录像机等)的日益流行,步进电机的使用也开始暴增。

不论在工业、军事、医疗、汽车还是娱乐业中,只要需要把某件物体从一个位置移动到另一个位置,步进电机就一定能派上用场。步进电机有许多种形状和尺寸,但不论形状和尺寸如何,它们都可以归为两类:可变磁阻步进电机和永磁步进电机。本文重点讨论更为简单也更常用的永磁步进电机。

1、步进电机的构造

如图1所示,步进电机是由一组缠绕在电机固定部件--定子齿槽上的线圈驱动的。通常情况下,一根绕成圈状的金属丝叫做螺线管,而在电机中,绕在齿上的金属丝则叫做绕组、线圈、或相。如果线圈中电流的流向如图1所示,并且我们从电机顶部向下看齿槽的顶部,那么电流在绕两个齿槽按逆时针流向流动。根据安培定律和右手准则,这样的电流会产生一个北极向上的磁场。

575ba9c40f7785070cb3956a94ba33d6.png

现在假设我们构造一个定子上缠绕有两个绕组的电机,内置一个能够绕中心任意转动的永久磁铁,这个可旋转部分叫做转子。图2给出了一种简单的电机,叫做双相双极电机,因为其定子上有两个绕组,而且其转子有两个磁极。如果我们按图2a所示方向给绕组1输送电流,而绕组2中没有电流流过,那么电机转子的南极就会自然地按图中所示,指向定子磁场的北极。

再假设我们切断绕组1中的电流,而按图2b所示方向给绕组2输送电流,那么定子的磁场就会指向左侧,而转子也会随之旋转,与定子磁场方向保持一致。

接着,我们再将绕组2的电流切断,按照图2c的方向给绕组1输送电流,注意:这时绕组1中的电流流向与图2a所示方向相反。于是定子的磁场北极就会指向下,从而导致转子旋转,其南极也指向下方。

然后我们又切断绕组1中的电流,按照图2d所示方向给绕组2输送电流,于是定子磁场又会指向右侧,从而使得转子旋转,其南极也指向右侧。

ec9bff680eeb6b7175f5c9959e0f09b7.png

最后,我们再一次切断绕组2中的电流,并给绕组1输送如图2a所示的电流,这样,转子又会回到原来的位置。

至此,我们对电机绕组完成了一个周期的电激励,电机转子旋转了一整圈。也就是说,电机的电频率等于它转动的机械频率。

如果我们用1秒钟顺序完成了图2所示的这4个步骤,那么电机的电频率就是1Hz。其转子旋转了一周,因而其机械频率也是1Hz。总之,一个双相步进电机的电频率和机械频率之间的关系可以用下式表示:

fe=fm*P/2 (1)

其中,fe代表电机的电频率,fm代表其机械频率,而P则代表电机转子的等距磁极数。

从图2中我们还可以看出,每一步操作都会使转子旋转90°,也就是说,一个双相步进电机每一步操作造成的旋转度数可由下式表示:

1 step= 180°/P (2)

由等式(2)可知,一个双极电机每动作一次可以旋转180°/2=90°,这与我们在图2中看到的情形正好相符。此外,该等式还表明,电机的磁极数越多,步进精度就越高。常见的是磁极数在12和200个之间的双相步进电机,这些电机的步进精度在15°和 0.9°之间。

6767613cf6986dd10191d92cb018941c.png

图3给出的例子是一个双相、6极步进电机,其中包含3个永久磁铁,因而有6个磁极。第一步,如图3a所示,我们给绕组1施加电压,在定子中产生一个北极指向其顶部的磁场,于是,转子的南极(图3a中红色的“S”一端)转向了该图的上方。

接着,在图3b中,我们给绕组2施加电压,定子中产生一个北极指向其左侧的磁场。于是,转子的一个距离最近的南极转向了图的左方,即转子顺时针转动了30°。第三步,在图3c中,我们又向绕组1施加一个电压,在定子中产生一个北极指向图下方的磁场,从而又使转子顺时针旋转30°到达图3c所示的位置。

而在图3d中,我们给绕组2施加电压,在定子中产生一个北极指向定子右侧的磁场,再一次使转子顺时针旋转30°,到达图3d所示的位置。最后,我们再向绕组1施加电压,产生一个如图3a所示的北极指向定子上方的磁场,使得转子顺时针旋转30°,结束一个电周期。如此可以看出,4步电激励造成了120°的机械旋转。

也就是说,该电机的电频率是机械频率的3倍,这一结果符合等式(1)。此外,我们从图3和等式(2)也能看出,该电机的转子每一步旋转30°。

e4fbf41fdb17d084393b4846e8e60a22.png

如果同时向两个绕组输送电流,还能增大电机的扭矩,如图4所示。这时,电机定子的磁场是两个绕组各自产生的磁场的矢量和,虽然这一磁场每一次动作仍然只使电机旋转90°,就象图2和图3中一样,但因为我们同时激励两个电机绕组,所以此时的磁场比单独激励一个绕组时更强。由于该磁场是两个垂直场的矢量和,因此它等于单独每个场的2×1.414倍,从而电机对其负载施加的扭矩也成正比增大。

2、电机的激励顺序

既然我们知道了一系列激励会使步进电机旋转,接下来就要设计硬件来实现所需的步进序列。一块能让电机动起来的硬件(或结合了硬件和软件的一套设备)就叫做电机驱动器。

从图4中可以看出我们怎样激励双相电机的绕组才能使电机转子旋转,图中,电机内的绕组抽头分别被标为1A、1B、2A和2B。其中,1A和1B是绕组1的两个抽头,2A和2B则是绕组2的两个抽头。

首先,要给脚1B和2B施加一个正电压,并将1A和2A接地。然后,给脚1B和2A施加一个正电压,而将1A和2B接地,这一过程其实取决于导线绕齿槽缠绕的方向,假设导线缠绕的方向与上一节所述相符。依次进行下去,我们就得到了表1中总结的激励顺序,其中,“1”表示正电压,“0”表示接地。

cfc5abd0e63e3f4b7c11548779c1e9af.png

电流在电机绕组中有两种可能的流向,这样的电机就叫做双极电机和双极驱动序列。双极电机通常由一种叫做H桥的电路驱动,图5给出了连接H桥和步进电机两根抽头的电路。H桥通过一个电阻连接到一个电压固定的直流电源(其幅度可根据电机的要求选取),然后,该电路再经过4个开关(分别标为S1、S2、S3和S4)连接到绕组的两根抽头。这一电路的分布看起来有点象一个大写字母H,因此叫做H桥。

从表1中可以看出,要激励该电机,第一步应将抽头2A设为逻辑0,2B设为逻辑1,于是,我们可以闭合开关S1和S4,并断开开关S2和S3。接着,需要将抽头2A设为逻辑1,2B设为逻辑0,于是,我们可以闭合S2、S3,并断开S1和S4。与此类似,第三步我们可以闭合S2、S3并断开S1和S4,第四步则可以闭合S1、S4并断开S2、S3。

对绕组1的激励方法也不外乎如此,使用一对H桥就能产生需要的激励信号序列。表2所示就是激励过程中每一步开关所在的位置。

0aa9242e9b6ef1a3301b0c728124e73a.png

注意,如果R=0,而开关S1和S3又不小心同时闭合,那么流经开关的电流将达到无穷大。这时,不但开关会被烧坏,电源也可能损坏,因此电路中使用了一个非零阻值的电阻。尽管这个电阻会带来一定的功耗,也会降低电机驱动器的效率,但它可以提供短路保护。

3、单极电机及其驱动器

前面我们已经讨论了双极步进电机和驱动器。单极电机与双极电机类似,不同的是在单极电机中外部能够接触到的只有每个绕组的中心抽头,如图6所示。我们将从绕组顶部抽出的抽头标为抽头B,底部抽出的标为抽头A,中间的为抽头C。

有时我们会遇到一些抽头没有标注的电机,如果我们清楚步进电机的构造,就很容易通过测量抽头之间的阻值,识别出哪些抽头属于哪根绕组。不同绕组的抽头之间阻抗通常为无穷大。如果经测量,抽头A和C之间的阻抗为100欧姆,那么抽头B和C之间的阻抗也应是100欧姆,而A和B之间的阻抗为200欧姆。200欧姆这一阻抗值就叫做绕组阻抗。

ead6ea59a1f7b71460a43c92cf3e3c2c.png

图7给出一个单极电机的单相驱动电路。从中可以看出,当S1闭合而S2断开时,电流将由右至左流经电机绕组;而当S1断开,S2闭合时,电流流向变为由左至右。因此,我们仅用两个开关就能改变电流的流向(而在双极电机中需要4个开关才能做到)。表3所示为单极电机驱动电路中,每一步激励时开关所处的位置。

虽然单极电机的驱动器控制起来相对简单,但由于在电机中使用了中心抽头,因此它比双极电机更复杂,而且其价格通常比双极电机贵。此外,由于电流只流经一半的电机绕组,所以单极电机只能产生一半的磁场。

在知道了单极电机和双极电机的构造原理之后,当我们遇到一个没有标示抽头也没有数据手册的电机时,我们就能自己推导出抽头和绕组的关系。带4个抽头的电机就是一个双相双极电机,我们可以通过测量导线之间的阻抗来分辨哪两个抽头属于同一个绕组。带6个抽头的电机可能是一个双相单极电机,也可能是一个三相双极电机,具体情况可以通过测量导线之间的阻抗来确定。

fb509c0c95c538ee33de50cfa24218eb.png

4、电机控制

本文前面讨论的电机控制理论可以采用全硬件方案实现,也可以用微控制器或DSP实现。图8说明了如何用晶体管作为开关来控制双相单极电机。每个晶体管的基极都要通过一个电阻连接到微控制器的一个数字输出上,阻值可以从1到10M欧姆,用于限制流入晶体管基极的电流。每个晶体管的发射极均接地,集电极连到电机绕组的4个抽头。电机的中心抽头均连接到电源电压的正端。

每个晶体管的集电极均通过一个二极管连接到电压源,以保护晶体管不被旋转时电机绕组上的感应电流烧坏。转子旋转时,电机绕组上会出现一个感应电压,如果晶体管集电极没有通过二极管连接到电压源,感应电压造成的电流就会涌入晶体管的集电极。

392c9e86641b57b537d3d35687507c9f.png

举个例子,假设数字输出do1为高而do2为低,于是do1会使晶体管T1导通,电流从+V流经中心抽头和T1的基极,然后由T1的发射极输出。但此时do2处于断开状态,因此电流无法流经T2。这样推理下去,我们就能将表3改为驱动电机所需的微控制器数字输出的改变顺序。

一旦清楚了驱动电机所需的硬件和数字输出的顺序,我们就可以对最顺手的微控制器或DSP编写软件,实现这些序列。

5、固件控制

我本人在一块Microchip PIC16F877上,利用1N4003二极管和2SD1276A达灵顿晶体管实现了以上谈到的电机控制器。PIC的PortA第0位到第3位用来做数字输出。电机采用在Jameco购买的5V双相单极电机(Airpax [Thomson]生产,型号为M82101-P1),并且用同一个5V电源为PIC和电机供电。但在真正应用时,为避免给微控制器的电源信号引入噪声,建议大家还是分别用不同的电源为电机和微控制器供电。

56ad2305f7e5f97e7d1345cd3e362066.png
c6fe175e7619afc70386dda448e14886.png

列表1给出了控制程序的汇编源代码,该程序每50毫秒旋转电机一次。首先,程序会将微控制器的数字输出初始化为表4中第一步的值,然后每隔50毫秒(此时间常数由程序中的常量waitTime定义)按照正确的顺序循环输出数字信号。若需使电机反向旋转,只需按与表4所示相反的顺序输出数字信号即可。

本人所用的电机为24极电机,即每一步输出可以控制电机旋转180°/24=7.5°。电机每50毫秒旋转7.5°,也就是每2.4秒转一周。如果将常量waitTime减小一半,电机转速会加快一倍。但因为转子受惯性、摩擦力和其他机械限制,所以电机转速有一个上限,当定子磁场旋转过快时,转子的转速无法跟上,导致电机的旋转也无法跟上,开始跳动(skipping)。如果这时再降低欧姆aitTime,电机很可能干脆就停止旋转。

除了本文重点讨论的双相电机以外,步进电机还有其他类型,如三相步进电机或四相步进电机。另外还有一些双相步进电机,它们只有一个中心抽头,同时连接到两个绕组的中心点,这类步进电机外部有5个抽头引出。

同样,步进电机也不是电机家族中的唯一成员,最古老也最简单的电机是直流(DC)电机。早期的直流电机使用电刷,现在已经不再流行。如今常见的无刷直流电机,就是利用电子线路代替电刷进行换向的直流电机,这类电机中不存在电刷老化问题,因此其寿命比有刷直流电机长很多。

还有一种感应电机,其工作原理与步进电机或直流电机完全不同。直流电机采用的是直流电压源,而感应电机则采用交流(AC)电压源,并且步进电机和直流电机中转子与定子磁场的旋转是同步的,而感应电机中转子的转速滞后于定子磁场的转速。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335133.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

div获取第一个子节点jquery_【antd】Tree组件子节点不完全勾选获取父节点的值

注意⚠️:这篇文章适用于后台返回的树结构比较多的情况下,如果数据比较少的情况下,可以参考我的上一篇文章,操作起来比较简单我们在实际操作tree组件和后台交互的时候一般都是需要将父节点传过去,如图:点击…

修改value_Python | 快速修改或命名N个文件夹名称,你会吗?

#欢迎交流:shuilinggan163.com#工作中,经常会遇到需要修改或新建很多文件的文件命,是一件重复且头疼的事情,下面一组Python代码,轻松教你快速实现!程序一:根据文件(SSSSSS)新建并命名空文件夹im…

簇的局部变量中布尔类型_java基础2(变量、常量、数据类型)

一、注释(1)什么是注释?解释说明的文字(注释的内容不会被编译)(2)注释的作用①对代码的解释说明 ②便于后期维护(3)注释的分类:①单行注释 //单行注释作用域:只在当前行有…

数位进制转换详解

文章目录进制进制转换二进制和十进制互相转换十进制 → 二进制十进制正整数 → 二进制十进制负整数 → 二进制十进制负小数 → 二进制十进制小数 → 二进制二进制 → 十进制二进制负整数 → 十进制二进制的正整数 → 十进制二进制小数 → 十进制二进制的负小数 → 十进制八进制…

旋转散点图_聚类分析的结果如何用散点图展示出来?

SPSS系统聚类输出的树状图广受用户喜爱,二阶聚类也可以输出一系列美观的可视化图形用来观察聚类效果,但我们发现Kmeans均值聚类没有提供可视化程度高的图形,那怎么办,我们自己来制作。数据小兵推荐使用3D散点图全方位观察K均值聚类…

async 打包异常_重新打包流中的异常

async 打包异常Java 8已有两年历史,但是仍然存在社区尚未为其开发好的解决方案库的用例,甚至边缘用例。 如何处理流管道中的检查异常就是这样一个问题。 Stream操作接受的功能接口不允许实现抛出已检查的异常,但是我们可能要调用许多方法。 显…

补码基础

关于补码,有如下比较有趣的演化过程: 假如计算机中使用 4 位的二进制表示数据,如图-2,最多能表示 0 到 15(10 进制),之后有牛人做了 一个细微改动,如图-3,将所有二进制以 1 开头的数(大于 7 的数)放到 0 之…

身份验证错误错误指定的句柄无效_基于 Web 端的人脸识别身份验证「实践」

作者:沫沫 政采云前端团队转发链接:https://mp.weixin.qq.com/s/fRDpXixnLIy9c0Uh2tMezQ前言近些年来,随着生物识别技术的逐渐成熟,基于深度学习的人脸识别技术取得了突破性进展,准确率显著提高。现阶段,人…

打开 谷歌浏览器exe_专治各种网银不服:两步开启微软Edge浏览器IE兼容模式

此前微软已经预告过Microsoft Edge将支持IE模式,即可以在该浏览器下使用IE模式加载某些特定的需要的网站。不过在后续更新中微软又突然改口不再面向普通用户提供此功能,而企业级用户若要使用还需要管理员提前配置。现在这款浏览器的正式版已经发布&#…

aspose word 获取标题_Word干货|多级标题的自动编号怎么添加?

在对Word文档进行排版时,大家普遍认为的一个难点就是对多级标题添加自动编号,本期Word妹与大家分享相关技巧的使用。1、添加样式选中文本,点击开始——样式——选择标题1,相同的样式则可以借用F4来实现。PS:以同样方式…

Java集合类梳理

文章目录集合框架CollectionListList常用方法ArrayListArrayList常用方法LinkedListLinkedList常用方法VectorVector 常用方法StackStack 常用方法SetHashSetHashSet 常用方法LinkedHashSetLinkedHashSet 常用方法TreeSetTreeSet常用方法EnumSetEnumSet 常用方法MapHashMapHash…

增加第三方插件_AE插件排行!!

大家好是万能的懒懒酱After effects为视觉效果艺术家和动画设计师带来了大量的效果。然而,第三方开发人员提供了更多独特插件,供After Effects使用。在这里可以帮助你了解哪些插件是最流行的最受欢迎的。第10名:Looks(多功能调色插…

mysql 连续签到天数_签到功能实现,没有你想的那么复杂(一)

1 签到定义以及作用签到,指在规定的簿册上签名或写一“到”字,表示本人已经到达。在APP中使用此功能,可以增加用户粘性和活跃度.2 技术选型redis为主写入查询,mysql辅助查询. 传统签到多数都是直接采用mysql为存储DB,在大数据的情况下数据库的压力较大.查…

java包装项目_项目包装组织

java包装项目程序包是Java的基本概念,是您开始用该语言编程时偶然发现的第一件事。 作为一个初学者,您可能不太关注软件包的结构,但是随着您成为经验丰富且成熟的软件开发人员,您开始考虑可以采取哪些措施来提高其效率。 有几个主…

如何开发 Servlet 程序

文章目录如何开发 Servlet步骤 1:写一个类步骤 2:编译步骤 3:打包步骤 4:部署步骤 5:启动服务器步骤 6:访问 servletServlet 开发示例不使用 IDE 开发(手动编译和部署)步骤 1&#x…

报任安书文言现象_语文老师精心总结【文言文常考点】够你从初一用到初四!...

点击本号菜单栏 免费获取学习资料▼今天给大家整理了初中文言文的一些常用知识点:特殊句式和古今异义,这些只是文言文学习模块中的一部分,除此之外,其他大家需要在平时积累的文言文知识点有下面这些:文言文高频词、古代…

参数化测试 junit_JUnit 5 –参数化测试

参数化测试 junitJUnit 5令人印象深刻,尤其是当您深入研究扩展模型和体系结构时 。 但是从表面上讲,编写测试的地方,开发的过程比革命的过程更具进化性 – JUnit 4上没有杀手级功能吗? 幸运的是,至少有一个&#xff1a…

devexpress textedit调整文字何文本框的间距_手把手教学:用PPT做效果超赞的文字效果...

本文总计:2391 字预计阅读时间:6 分钟昨天文章的头图,貌似反馈还不错,挺多人比较感兴趣。所以,今天就分享一下,这种文字排版效果,是怎么做出来的。而且今天的实现手法与效果,做了一些…

IntelliJ IDEA for Mac 如何取消双击shift键打开全局搜索弹窗

取消双击shift键打开全局搜索弹窗 按ShiftcmdA,打开如下图的搜索框: 输入Registry搜索后打开如下的窗口: 3. 找到“ide.suppress.double.click.handler”,将后面的复选框勾上,勾选上复选框后直接关闭退出,…

vb6 判断打印机是否有效_吊打面试官 | 算法之如何判断括号是否有效?

今天要讲的这道题是 bilibili 今年的笔试真题,也是一道关于栈的经典面试题。经过前面文章的学习,我想很多朋友已经看出来了,我接下来要写的是一个关于「算法图解」的系列文章,中间可能会穿插少量的其他类型的文章,但「…