概述
两相四线步进电机
1.工作功率条件
电压12V直流电流,静态电流<0.5A(测试为0.032A)功,恒压工作电流是0.7-1.1A,功率=8.4W-13.2W。
横流0.24-0.28A之间,电压24V,功率=5.76w—6.72W.
2.两相四线步进电机工作原理
步进电机是一种数字脉冲驱动的电机,通过改变步进电机输入的脉冲总数、频率以及各相绕组的通电顺序,可以得到不同的运行特性。采用H桥直流电机驱动芯片LMD18200实现对步进电机全数字化驱动控制。
(1)两相:即两个线圈A+,A-为一个线圈,B+,B-为一个线圈,;
(2)四线:顾名思义电机与外的接口只有四根线,分别为A+,A-,B+,B-;
(3)电机的脉冲信号由LMD18200芯片提供,步进电机将周期性的脉冲信号(dira,dirb两相)在内部转换为磁极信号,产生电流信号,脉冲的正反可以驱动电机正转和反转。但是必须转完一圈才能停止,如果选择全步则4拍为一个循环,防止磁极错乱,如果选择半步8拍,则8拍为一个循环,防止磁极错乱。
(4)电机步距角
一个象限50个齿轮,
如果四拍四个象限,则步距角=360/(504)=1.8°;
200个脉冲转一圈
如果八拍八个象限,则步距角=360/(508)=0.9°。
400个脉冲转一圈
(5)电机转动步数计算
转动的角度可以根据转动拍数来决定,由于dira和dirb产生一个脉冲转动1.8°,四拍为一个周期需要1.84=7.2度。角度过于大了,很多时候需要角度细分!后去计算应该转动的步数。四拍则步数=转动的角度/7.2;
(6)电机驱动的信号参数设置
pwma,pwmb控制电机的负载能力,这里设置pwma是4000hz,50%的占空比。
dira,dirb两个绕阻产生一个磁极,来控制电机转动的方向和频率速度。一开始电机启动需要启动频率,需要看电机的参数设置,转动起来后在加速。
左转:dira :0110 ; dirb:0011;
右转:dira: 0011; dirb: 0110;
(7)电机转速与频率关系
如果四拍,200个脉冲转1圈,通过设置脉冲的频率就可得到转速了。假设电机设置1000hz,则1000hz/200=5r/s
一般电机用r/min来描述,则560=300r/min。
(8)电机转动角度与转速的关系
(我的底层都是以4拍为一个周期来计算,因此在计算角度和计算速度都是用的四倍的关系)
因为1hz=1.8°/s,则一个周期4拍,4f/speed,计算出f后除以2则为半个周期的参数,进行控制取反为一个频率周期。
(9)电机运行速度控制
但是一般在电机转动的过程中需要匀速加速减速,需要对速度的控制精度。
因为电机在上电之后需要一个启动频率,如果一开始频率过快会失步,或者导致电机转动不起来,产生丢步。在运转的过程中频率过快会导致电机停止时刻刹不住,达不到对电机的控制。一开始电机频率过慢可以转动,但是在运转过程中频率过慢,则转动的时间需要很久。因此本工程也是对电机的速度进行一个变速的处理。
(10)本工程模块控制加减速逻辑
采用根据步数来控制加速匀速减速的方案。
一个模块用到除法器IP核计算需要的步数,
一个模块控制电机的频率参数更换,
输入到两个底层模块(正转模块,反转模块)控制正转反转的信号dira,dirb,pwma,pwmb,brakea,brakeb。
(11)工程的模块划分
1.指令接收控制模块:控制电机的制动brake_a,brake_b,与左转,右转方向,以及步数IP除法器计算。
2.光栅编码器度数模块
3.电机频率与速度控制模块(根据步数进行控制频率参数 )
4.两个底层模块(左转方向和右转方向)控制dira,dirb,pwma,pwmb
(12)测试经验
在运行的过程中需要实时对光栅编码器的数据进行读,监测电机运转的情况,因此在指令接收控制模块在步数倒数三步的时刻,进行停止电机转动,重新计算所需要的步数,用低速去完成过度。
(13)踩过的坑
1.在四拍的控制上面没有搞明白
2.一上电调试电机没动的解决方案,检查电压,电流,然后检查每一个pwma,pwmb输出频率37Khz,驱动力矩大小,dira,dirb的A+,A-相位差是否是90°,B+,B-之间相位差是否是90°;A与B之间相差180°。
频率400hz,转动的速度,最大选择1500hz。
一开始使用200hz转动,太慢了,看不出来一直在响。更改为400hz就成功了,迁入频率;
pwma,pwmb是力矩能力,越小则力矩越大,越转不动,pwma需要频率大一些力矩小才能转动起来,一开始设置400hz,转不动。
用chipscope抓取状态机跳转,之前因为黑金的fpga写法使用nextstate,导致没有切换state,状态机一直在一个状态内跳转,没有驱动起来电机。先不接电机,先测FPGA到LMD18200的引脚信号,检查相位是否是相差90°后再连接四根线。
还有一次没有转动,因为用的国产的fpga芯片,他再处理if语句的时候,没有写else 语句没有跳转出状态机
四根线A+,A-,B+,B-之间必须是90°相位之差,一直再颤动,但是不转动,需要检查四根线顺序,每个电机的线也不一致,黑绿红蓝。
还有几次是因为转换芯片烧了,导致fpga输出不到lmd18200引脚上面;
最后
以上就是端庄抽屉为你收集整理的两相四线步进电机与LMD18200驱动器与电机加速减速的全部内容,希望文章能够帮你解决两相四线步进电机与LMD18200驱动器与电机加速减速所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复