步进电机测试以及控制

1.硬件平台
电机是两相混合式步距角1.8度,硬件平台是用STM32F103 ,电机驱动芯片THB6064AH。单片机对驱动芯片的控制只需要控制输入脉冲频率,THB6064AH的输入在 脉冲上升沿触发驱动芯片状态转换,脉冲最小宽度2us。细分选择1/2 , 1/8。

2.不同频率下电机运行状态
实际测试时,当脉冲频率较低时电机震动很大,比如1/2细分 Tcnt=1us ARR=4000时,电机翁翁作响,ARR=1000时就很平稳了,ARR=300时 转动力矩还是挺大的,而ARR=270左右电机就卡住无法转动了,似乎是因为共振。

3.矩频特性
步进电机测试以及控制
假设 F*Vrps=M,M为常数,Vrps正比于脉冲频率f。 在电机空载运行时我观察DCsouce的电流变化,DC=24V,当ARR=4000时 I=0.44A 与ARR=500时 I=0.47A, 电流变化不是很大,即P=F*Vrps变化不大。V正比于f 假设负载力矩恒定为Fm,当要求电机最快加速时,F=K/V-Fm , F=M*A ,A=dV/dt 计算后V(t)是一个SQRT(KX+b)函数,与同事的查找表相似。 实际带负载运动时的电流肯定和空载不一样,目前电机无法负载物加持测试,无从得知,所以只是对他做出猜测。
作VT曲线的目的在于使加速均匀变化,对减小受力器件的冲击,这和最短时间运动目标步数是互相矛盾的,如果要快速移动就必然会对受力器件造成冲击,若减小冲击必然速度慢。这需要根据应用场景选择,比如我同事的就选择时间短时间快速运动。 后续我又生成了sin(-pi/2,pi/2)的曲线做查找表,测试结果还不错,电机运行平稳。测试中发现如果S曲线选取的参数不同,低速时间较长,那么电机开始加速时就会震,减速也是。做加减速表的时候应该尽量剔除共振频率的ARR值,或者快速通过,减小共振。

4.FT图
关于程序实现。我们做出VT图,V正比F ,可以视为FT图,F是T的函数,需要知道T才能计算出F,因为我们是在中断中修改ARR,所以采用累加方式,从第一次IRQ开始,不断累加每次IRQ的时间,所以Tn+1=Tn+ 1/Fn , Fn+1=G(Tn)。 在excel里面输入公式求出T(n), F(n)数列 然后以T(n)为自变量F(n)为因变量 做图像分析。
4.1图一为S曲线 图二为正弦曲线

步进电机测试以及控制
步进电机测试以及控制

5.运动控制
运动步数控制. 假设S曲线1024个点,那么完整的加减速为2048个点,当要走的步数小于2048时 将曲线关于Y轴对折, 比如要走1024个点,那么加速表从0-511 减速表从 511-0 即可。 假设目标步数大于2048 则包含匀速运动,当匀速运动时使用定时器级联,在匀速时关闭输出PWM的定时器的中断,开一个定时器对输出pwm的定时器的更新事件计数,这样可以减少CPU资源消耗。
S曲线公式: F=G(t)=F0+(Fmax-F0)/1+E^(-a*t+b)
给出F0 T0=0;
根据 Tn+1=Tn+ 1/Fn , Fn+1=G(Tn)即可在excel上做出图像。