电气工程自动化直流无刷电机运动控制实验报告.docx
《电气工程自动化直流无刷电机运动控制实验报告.docx》由会员分享,可在线阅读,更多相关《电气工程自动化直流无刷电机运动控制实验报告.docx(8页珍藏版)》请在冰豆网上搜索。
电气工程自动化直流无刷电机运动控制实验报告
《运动控制系统综合实验》
实验报告
小组成员:
直流无刷电机实验报告
一、实验目的
通过对8257的编程控制,发出可以驱动直流无刷电机的六路PWM波,实现对电机的控制。
二、实验原理
1.直流无刷电机驱动原理
这部分在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
2.相序确定
上述表格中A,B,C其实就是我们假定的,与霍尔元件HaHbHc对应的ABC并不对应,所以我们还要确定一下三相相序。
考虑到我们只给三相电机提供A正B负的电流时,电机转子应该停在一个确定的位置,而这个位置对应的霍尔状态值为010。
那么当我们任意通入一正一负的电流时,若霍尔状态值为010,此时正电流即A相,负电流即B相。
按此方法即可确定相序,所用的A正B负程序如下:
写在main里面就是为了一直发出A正B负的电流。
3.8257的编程原理
一直以来涉及到程序的地方都让我很头痛,不过这次还好,codewarrior采用C语言,还就是可以熟练应用的。
概括说来,我们所编写的程序应能按照上述表格发射正确的PWM波,为此需添加PWM模块,并应用里面的Submodule子模块。
每个模块可以产生两路PWM,所以我们需要三个子模块。
通过对module里的value赋值可以控制该路波的发出与占空比,从而发出所有的PWM。
三、实验中遇到的问题与解决
显然在实验过程中大家都碰到了许多问题,困扰我们的问题比较多,其中比较大比较重要的有以下几个:
1.PWM模块的配置
虽然关于PWM模块的设置助教老师讲过一遍,但怎奈需要配置的参数太多,前几周我都没能把PWM波完整的发出去,更别提受控制的波形。
好在通过查找相关资料我终于搞明白如何调整占空比,如下所示:
通过给VAL2、VAL3赋值即可控制PWM23开通的时间。
这就是一个Sub里的一个频道A,对频道B与其她Sub方法就是一样的。
这样我们终于可以发出6路PWM,但此时这些PWM还不受控制,就是一起输出的,下一个问题就是怎么控制PWM的输出。
2.PWM输出的控制
开始时我想反正占空比就是可以固定不变的,那就控制频道的输出与否就可以控制PWM的输出了。
刚好我在PWM自带的函数库里瞧到了控制某路输出enable/diaable的函数,如下:
因此就采取这种方法进行编程。
但就是不知为何,采用enable/disable的方法编写的程序就就是不能正确工作,而且逻辑上程序也没有错误,在多次讨论找不到错误后我就向身边的同学请教,又学会了另一种方法,即通过对三个模块的VAL2、VAL3、VAL4、VAL5的不断赋值来控制,相关函数如下:
采用这种方式要注意每次对某个模块复制后要加上一行LDOK,即将寄存器里的值赋给VAL,否则VAL的值不会改变。
采用这种方式还有一个好处就就是可以改变占空比,而且非常简单。
3.电机连线
经过好久的调试后PWM波终于可以按规定变化,接上电机后电机也可以转起来,但我们发现转不一会儿电机就发出大量热,手摸上去都受不了。
而且电机转的不太均匀,有不太强的震动。
开始时以为就是电机的问题,但换了一个后还就是发热,后来经询问老师后我们想到虽然电机能转,但可能电机的频率与PWM的变化频率并不一样,电机可能没有跟上PWM的变化频率。
正常运行时电机的ABC三相应该正好与PWM的三相对应,但如果A相接正确而BC相接反时电机也会转,只不过效率不高而且转的不稳。
经过确定相序后发热的问题也随之消失。
四、实验感想(?
?
?
)
这次实验主要就是靠自己动手,从刚开始时什么也不会到最后成功驱动电机,中间我们付出了很多时间与精力,但也学到了很多。
按常老师的话说这次课程主要就是锻炼我们自主学习知识的能力,特别就是查找资料的能力。
虽然刚开始几周助教老师讲解时我没听太懂,但助教老师把相关资料都放在电脑里了,想瞧随时都可以瞧。
通过几周的研究特别就是查找codewarrior里的帮助,我既搞懂了原理,也明白了应该怎么实现。
有时实在想不通某个问题我还会与身边的同学讨论讨论,大家交流一下互相的想法基本都能解决问题。
通过这次课程我觉得我基本已经可以花费一些时间来掌握一门自己从没接触过的技能,学习的能力得到了很大的提高。
常老师对待科研的态度也给我留下了深刻印象,对待科研一定要认真,一点马虎都要不得。
对我们的课程我们也有一些小小的反馈,希望老师能瞧一下:
首先电源转换器瞧上去就很危险,220V的火线都露在表面,说不好就有漏电的危险。
另外实验的驱动电路经常电到我们,漏电比较严重。
不过想要更换实验设备关系到许多问题,所以我们也只好抱怨一下。
另外希望常老师能把每个阶段的任务都给我们明确一下,不然好多次在实验室大家都不知道该干嘛,就坐在那儿等助教来讲。
遮掩效率比较低下,也不便于有些能力强的同学自主完成任务。
步进电机实验报告
一、步进电机驱动原理
与直流无刷电机相比,步进电机结构比较简单,驱动原理也相对简单。
其内部接线图如下:
本次实验用的就是四步步进电机,共四根接线,两两一组控制2只线圈。
为了让电机顺利转起来,比如逆时针转动,我们需要先给线圈AC通正电,再给线圈BD通正电,再给AC通负电,再给BD通负电。
一个周期共四个状态,所以称为四步步进电机。
由于实验所用板子输出的就是三相电,所以在接线时须将BC或AD接在同一相,用相间电压Uab,Ubc做AC、BD电压。
二、PWM控制
通过上面的分析知道要驱动步进电机只需要按顺序发出四个状态的PWM波即可。
不过由于没有反馈检测,我们无法确认应该在何时切换PWM,进入下一个状态。
考虑到电机的转子旋转90°(这时需切换状态)需要一定时间,我们可以在每个状态之间加上延时,根据延时的多少来控制电机的转速。
程序实现如下:
其中a可以改变,以调节转速。
a越小延迟越小,每个状态间切换的时间越短,电机的转速越快。
不过由于转子转速有上限,所以a不能太小,否则转子转速会跟不上PWM状态的变化,从而出现震动等问题。
有了上面的程序要实现反转就非常简单了,只需AB通完正后通DB,再通BA,再通BD即可
课程建议(?
?
?
)
1)在课程安排上,在学期初就明确地把课程目标与课程任务告诉我们,让我们清楚的知道这门课我们要做什么,这样在理论学习的时候才可以更好地掌握相关的知识。
2)在讲解理论的同时结合实验,让我们可以边做边学,避免像这学期一样在后面实验的过程中,忘记很多前面所学的基础知识。
可以让我们更扎实,更清楚明白的掌握所学的内容。
3)建议小班教学,这个学期上课的人太多,我们觉得教学效果不就是很好,后面的同学在老师进行演示的时候,我们很多时候无法跟上。
觉得学的很不清楚。
4)希望可以再多配几个助教,由于助教少,很多遇到的无法解决的问题无法得到及时解决,助教经常两个屋子跑,很辛苦。
5)希望能出一本运动控制的实验指导书,这样可以供我们清楚明白的有条理的进行学习。
6)我们上课所用的参考资料很乱,不清晰,很多我们需要用到的东西却没有,希望老师可以把所用资料进行整理,分类,这样可以供我们参考。
7)希望在以后的课上,如有外面公司的人来讲课,希望可以有老师在场。
公司的人可能不就是很了解课程进度,教学目标,可能效果不就是很好。
8)硬件的稳定性有待加强,板子与电脑的连接不好,希望提高其各方面得性能。