四相步进电机控制系统设计课程设计论文(编辑修改稿)内容摘要:

电机的工作方式 说明 ( 1) 四 相单 四 拍工作方式 在这种工作方式下 ,A、 B、 C、 D 三相轮流通电 ,电流切换三次 ,磁场旋转一周 ,转子向前转过一个齿距角。 因此这种通电方式叫做三相单三拍工作方式。 这时步距角 b (度 )为: mzb /360 ○ 1 式中 :m──定子相数。 z ──转子齿数 表 1 单 四 拍的相位控制 步序 控制位 工作 状态 控制 模型 D 相 C 相 B 相 A 相 1 0 0 0 0 0 0 0 1 A 01H 2 0 0 0 0 0 0 1 0 B 02H 3 0 0 0 0 0 1 0 0 C 04H 4 0 0 0 0 1 0 0 0 D 08H ( 2) 四 相双 四 拍工作方式 这种工作方式每次都是有两相导通 ,两相绕组处在相同电压之下 ,以 AB─ BC─ CD─DA— AB(或反之 )方式通电 ,故称为双 四 拍工作方式。 以这种方式通电 ,转子齿所处的位置相当于 八 拍控制方式中去掉单 四 拍后的 四 个位置。 它的步距角计算公式与单 四 拍时的公式相同。 广东药学院电子信息工程 课程设计说明书 13 表 2 双 四 拍的相位控制 步序 控制位 工作 状态 控制 模型 D 相 C 相 B 相 A 相 1 0 0 0 0 0 0 1 1 AB 03H 2 0 0 0 0 0 1 1 0 BC 06H 3 0 0 0 0 1 1 0 0 CD 0CH 4 0 0 0 0 1 0 0 1 DA 09H ( 3) 四 相 八 拍工作方式 在这种工作方式下 ,绕组以 A— AB— B— BC— C— CD— D— DA— A 时序 (或反时序 )转换 8 次 ,磁场旋转一周 ,转子前进一个齿距 ,每次切换均使转子转动 176。 , 故这种通电方式称为 四 相 八 柏工作方式。 其步距角 b 为: mzmzb /1802/360  ○ 2 表 3 六 拍的数学模型 步序 控制位 工作 状态 控制 模型 C 相 B 相 A 相 1 0 0 0 0 0 0 0 1 A 01H 2 0 0 0 0 0 0 1 1 AB 03H 3 0 0 0 0 0 0 1 0 B 02H 4 0 0 0 0 0 1 1 0 BC 06H 5 0 0 0 0 0 1 0 0 C 04H 6 0 0 0 0 1 1 0 0 CD 0CH 7 0 0 0 0 1 0 0 0 D 08H 广东药学院电子信息工程 课程设计说明书 14 8 0 0 0 0 1 0 0 1 DA 09H 设计说明及流程图 设计说明:在此设计中,采用的是 四 相步进电机,对于步进电机模块的程序设计采用循环程序设计方法。 先把正反转向的控制模型存放在内存单元中,然后再逐一从单元中取出控制模块并输出。 首先启动, 通过 P1 口读入所需的工作方式,即 选择步进电机的拍数,然后读入正反转的控制 ,再来输出对应的控制 模型 来 驱动步进电机转动。 广东药学院电子信息工程 课程设计说明书 15 取出要显示的数据 送 一位 位段码到 P0 口输出 送位选码到 输出 延时 4 位显示 完 修改 数组地址 求下一位选码 将该数据化为 10 进制数,每位分别储存 扫描 50 次完 计数减 1 开始 返回 数码管步数显示模块 设计说明:步数 显示模块 是整个程序里的一个子 程序。 其 是用 4 位八段数码管来显示工作步数。 先将 要显示的数化为 10 进制数,每位分别储存, 从 P0 口输出显示码, P2 口输入位选码, 需要一定的 延时,让此位 数字 显示闪烁出来。 然后修改数组地址,求下一位位选码继续显示,直至输出四位数。 这个扫描过程重复 50 次,保证人眼能观察到步数显示。 流程图如图 11: 图 11 数码管显示模块流程图 广东药学院电子信息工程 课程设计说明书 16 6 仿真调试记录 如图 12 所示,当选择电机工作在单 四 拍, 正 转 的 模式下, SW1 SW1 接高电平 , SW1SW13 接低电平 ,系统启动, SW14 接高电 平 ,电机开始转动。 LED 四位显示屏显示工作步数,LED 指示灯 红 灯亮显示电机 正 转的状态。 图 12 仿真图 7 心得体会 本次课设是在实习之中穿插进行的,所以时间比较紧张,给课设的顺利完成增加了难度。 计算机控制技术是一门应用性很强综合性很强的学科,在 这次 课设中,我充分感受到了这一点,在老师给的课题之中,是来自于各个方 面各个领域的应用,不得不说,计算机控制很强大,确实改变了我们的生活。 课设里最困难的部分就是编写程序和仿真调试,也许硬件连接没问题,程序运行没问广东药学院电子信息工程 课程设计说明书 17 题,但是,当把程序导入,发现电动机就是不转, 灯 就是不亮,数码管就是乱跳,这是很考验耐心的时候,一遍一遍地去调试程序,修改连接部分,有时真的看着很崩溃,但是当你不放弃地调试,才有仿真成功的可能 ,在这种反复中,对我们自身的能力是提高很多的。 另一个收获就是关于软件的使用了。 PROTEUS,KEIL51,以前好像也用过,但是平时 较少接触,这次的课设让我比较熟练的掌握了这两个 学习软件强大的功能,而且发现从 PROTEUS里导出来的电路图特别漂亮和清晰。 计算机控制技术一直是自己比较喜欢的一门学科,拿到课程设计的题目也想着可以好好检验自己的学习成果,一直认为,期末考试是所谓的应试教育,而课程设计似乎更加地考验所学的知识,所谓实践与理论相结合就是这个道理吧。 课程设计总能让我有一种我站在山面前的感觉,看上去比较陌生高大,但是攀登的技巧早已在平时的学习中习得,不断地去攀登,不断地在回味课堂上老师讲的东西,书本上的东西,这是一种奇妙的体验。 我明白遇到的电路或者课题并不一定在你的知识范围之 内,而面对新的东西,我们要冷静地去寻求解决之道,去搜寻网络资源,图书馆资源以及和同学们的讨论之中,再结合自己所学过的知识来吃透理解那些未知的东西,扩宽知识面,这样就会觉得学到了远远超过课堂的东西,但是却源于课堂,想必这就是课设的意义吧,很有收获。 广东药学院电子信息工程 课程设计说明书 18 附录:程序清单 include //Motor sbit F1 = P3^0。 sbit F2 = P3^1。 sbit F3 = P3^2。 sbit F4 = P3^3。 //sbit TIM=P3^4。 define m 500 /////////////////////////////////////// //步进电机驱动 unsigned char MotorStep=0。 unsigned int MotorTimer = 0。 unsigned int TIM,CT,STEP=0,TIM1,num。 void InitMotor() { 广东药学院电子信息工程 课程设计说明书 19 F1 = 1。 F2 = 1。 F3 = 1。 F4 = 1。 } void SetMotor() { // if(Speed == 0) return。 if(P1amp。 0x01)//单四 { if(P1amp。 0x10)// 正 switch(MotorStep) { case 0: if(TIM) { P3=0xb1。 //F1 = 0。 F2 = 0。 F3 = 0。 F4 = 1。 MotorStep = 1。 TIM=0。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。