【电气工程自动化】直流无刷电机-运动控制实验报告.docxVIP

【电气工程自动化】直流无刷电机-运动控制实验报告.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《运动控制系统综合实验》 实验报告 小组成员 : 直流无刷电机实验报告 一、 实验目的 通过对 8257 的编程控制,发出可以驱动直流无刷电机的六路 PWM 波,实现对电机的控制。 二、 实验原理 直流无刷电机驱动原理 这部分在 PPT里有详细介绍,简单来说就是要根据转子上的 三个霍尔传感器的状态发出下一步所需的三相电流。刚开始时我 对这部分原理迟迟不能搞透彻,对着向量图思考了好久,就是不 能把霍尔传感器的状态和所需电流方向对应起来。主要问题是那 PPT上的向量图没有清楚的思考步骤,导致我把定子的磁场一直当成转子的看,当然搞不清楚。后来在和身边同学交流后才明白。然后我按照六步驱动法得到了逆时针转动所需的霍尔状态表,如图 1 左,经验证此状态表是可以成功驱动电机的。 搞定逆时针转动后我趁热打铁,把顺时针转动的霍尔状态表也写了出来。但是最开始我想当然的以为把逆时针的状态倒过来对应霍尔传感器的值电机就会反转,经过试验后证明这种思路是错误的,电机还是逆时针转动。我想了好久没想明白,只好又从头推了一遍顺时针转动所需的状态表,如图一右。前后对比我们 发现相同霍尔状态时,正反所需的电流恰好相反, 也即相差 180°。 再回想推导过程中实际是用下一个状态的电流对应本状态的霍尔 值,我一下豁然开朗。我判断电机在某一位置时允许有 60°的误 差,逆时针转动时上一个状态加上 60°,顺时针转动时则减去 60°,所以顺时针逆时针转动正好差了 180°。 霍尔传感器的状态和所需电流如下表: 逆时针转动 顺时针转动 HaHbHc A B C A B C 001 - 0 + + 0 - 101 0 - + 0 + - 100 + - 0 - + 0 110 + 0 - - 0 + 010 0 + - 0 - + 011 - + 0 + - 0 相序确定 上述表格中 A,B,C其实是我们假定的,与霍尔元件 HaHbHc 对应的ABC并不对应, 所以我们还要确定一下三相相序。 考虑到我们只给三相电机提供A正B负的电流时, 电机转子应该停在一个确定的位置, 而这个位置对应的霍尔状态值为010。那么当我们任意通入一正一负的电流时, 若霍尔状态值为010,此时正电流即A相,负电流即B相。按此方法即可确定相序,所用的A正B负程序如下: 写在main里面是为了一直发出A正B负的电流。 8257 的编程原理 一直以来涉及到程序的地方都让我很头痛, 不过这次还好, codewarrior 采用 C语言,还是可以熟练应用的。概括说来, 我们所编写的程序应能按照上述表格发射正确的 PWM 波,为 此需添加 PWM 模块,并应用里面的 Submodule 子模块。每个 模块可以产生两路 PWM,所以我们需要三个子模块。通过对 module 里的 value 赋值可以控制该路波的发出与占空比, 从而 发出所有的 PWM。 三、 实验中遇到的问题与解决 显然在实验过程中大家都碰到了许多问题,困扰我们的问题比较 多,其中比较大比较重要的有以下几个: PWM 模块的配置 虽然关于 PWM 模块的设置助教老师讲过一遍,但怎奈需 要配置的参数太多,前几周我都没能把 PWM 波完整的发出去, 更别提受控制的波形。 好在通过查找相关资料我终于搞明白如何调整占空比,如下所示: 通过给 VAL2、 VAL3赋值即可控制 PWM23 开通的时间。这是一个 Sub里的一个频道 A,对频道 B和其他 Sub方法是一样的。这样我们终于可以发出 6 路 PWM,但此时这些 PWM 还不受 控制,是一起输出的,下一个问题是怎么控制 PWM 的输出。 PWM 输出的控制 开始时我想反正占空比是可以固定不变的, 那就控制频道 的输出与否就可以控制 PWM 的输出了。刚好我在 PWM 自带 的函数库里看到了控制某路输出 enable/diaable 的函数,如下: 因此就采取这种方法进行编程。但是不知为何,采用 enable/disable 的方法编写的程序就是不能正确工作,而且逻 辑上程序也没有错误, 在多次讨论找不到错误后我就向身边的 同学请教,又学会了另一种方法, 即通过对三个模块的 VAL2、 VAL3、VAL4、VAL5的不断赋值来控制,相关函数如下: 采用这种方式要注意每次对某个模块复制后要加上一行 LDOK,即将寄存器里的值赋给 VAL,否则 VAL的值不会改变。 采用这种方式还有一个好处就是可以改变占空比, 而且非常简单。 电机连线 经过好久的调试后 PWM 波终于可以按规定变化,接上电机后电机也可以转起来, 但我们发现转不一会儿电机就发出大量热,手摸上去都受不了。而且电机转的不太均匀,有不太强的震动。开始时以为是电机的问题,但换了一个后还是发热,后来经询问 老师后我们想到虽然电机能转,但可能电机的

文档评论(0)

明若晓溪 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档