一、实现目标与当前问题
使用TMCM-1640进行无刷直流电机转速控制,期望
转速误差 =(实际转速-目标转速) / 目标转速
的计算结果能够降低在1%以下,甚至达到0.1%~0.3%,并能够长时间保持稳定。
当前的调试结果无法达到这个要求,实际转速达到目标转速后,存在一个难以消除的波动区间。因此想询问如何减小这个波动区间以提高转速稳定性。
二、基础参数介绍
1.电机类型:无刷直流电机
2.电机极对数:1对
3.反馈输出器件:电机自带霍尔传感器、增量式编码器(4000PPR)
4.驱动器及固件版本:TMCM-1640、V2.11
5.调试软件及版本:TMCL-IDE、4.9.0
三、现象描述与问题
1、使用TMCM-1640进行速度控制时,实际转速到达目标转速后,实际转速存在一个固有的波动范围。修改电流环PI参数(#172:P parameter for current PID、#173:I parameter for current PID)和电流环调节时间(#134:Current regulation loop delay )、速度环PI参数(#234:P parameter for velocity PID、#235:P parameter for velocity PID),速度波动范围并不会发生明显变化,也和设置的目标转速的的大小无明确相关性。仅当修改速度环调节时间(#133:PID regulation loop delay )时波动范围会改变,关系为波动范围随速度环调节时间的增大而减少。测试数据见图表1-1、图表1-2、图表1-3。
目前速度环调节时间已经是该参数可设置的最大值(10ms),但转速精度无法达到要求。
除了电流环和速度环各自的PI参数、调节时间外,还可以修改哪些参数以提高转速精度?
2、关于电流环的调参方式,TMCM-1640中提出:其余PI参数置零,从小到大提高电流环的比例参数P,直到实际电流(#150:Actual motor current)到达目标电流(#155:Target current )的50%,再调节积分参数I。而实际调节中,当P增大到一定数值时,电机转动,实际电流发生变化,曲线呈正弦波的形状,无法到达目标电流的50%。测试图表见2-1。
有资料指出,电流环的PI参数可通过计算求出,与电机的电感、电阻、带宽有关,且调参时电机不会转动。
请问TMCM-1640的电流环能否通过计算求得PI参数?调参过程中电机转动时否是正常现象?
此外,请问是否能提供更为详细的TMCM-1640模块PID调参手册?
3、当使用编码器作为反馈驱动无刷电机时,需要对编码器/电机进行初始化(ENCODER / INITIALIZATION SETTINGS),但TMCM-1640的固件手册中并未提供详细的初始化步骤,对于初始化相关参数的描述也较为简单,导致使用时会出现初始化失败或初始化错误的情况。
请问能否提供具有详细编码器初始化步骤的手册或资料?
此外,当使用编码器作为反馈时,得到的速度波动范围反而比使用霍尔的更大,见图表3-1。根据相关经验,更高的分辨率应该能够得到更精确的控制精度,请问这是否是初始化错误造成的?还是有其他原因?
4、请问贵公司是否有使用TMCM-1640进行速度闭环控制的实例?如果有,请问能达到怎样的控制精度?能否提供达到该精度时的TMCL程序和硬件信息?
5、能否提供TMCM-1640的硬件电路原理图?
附录
图表1-1 基于霍尔时的波动范围、不同速度下的波动范围对应的速度-时间曲线
(1)540RPM时的整体、局部速度-时间曲线


(2)不同速度下局部的速度-时间曲线
结论:虽然实际速度的波形各不相同,但波动范围都大致为±25RPM,该波动范围与目标速度的大小无关。
|
目标速度/RPM |
局部的速度-时间曲线 |
|
540 |
![]() |
|
1000 |
![]() |
|
1500 |
![]() |
|
2000 |
![]() |
图表1-2 修改电流环、速度环PI参数对波动范围的影响
结论:修改双环的PI参数只会对速度-时间曲线的走向产生影响,比如响应时间、超调量等,并不会减小波动区间。
以下是测试数据:
|
双环PI参数 |
速度-时间曲线 |
|
P_Current = 500,I_Current = 70,P_Velocity = 300,I_Velocity = 100 |
![]() |
|
P_Current = 500,I_Current = 70,P_Velocity = 300,I_Velocity = 200 |
![]() |
|
P_Current = 500,I_Current = 70,P_Velocity = 200,I_Velocity = 200 |
![]() |
|
P_Current = 500,I_Current = 70,P_Velocity = 100,I_Velocity = 200 |
![]() |
|
P_Current = 500,I_Current = 70,P_Velocity = 400,I_Velocity = 200
|
![]() |
|
P_Current = 500,I_Current = 20,P_Velocity = 300,I_Velocity = 200 |
![]() |
|
P_Current = 500,I_Current = 100,P_Velocity = 300,I_Velocity = 200 |
![]() |
|
P_Current = 100,I_Current = 70,P_Velocity = 300,I_Velocity = 200 |
![]() |
图表1-3 双环调节时间与波动范围的关系
结论:电流环调节时间不会影响波动范围,增大速度环调节时间可以减小波动范围,但该值设为最大值(10ms)时仍无法符合要求。
下面是测试图表
|
双环调节时间 |
速度-时间曲线 |
|
T_ Current=10*50μs, T_Velocity=10 ms |
![]() |
|
T_ Current=10*50μs, T_Velocity=5 ms |
![]() |
|
T_ Current=10*50μs, T_Velocity=1 ms |
![]() |
|
T_ Current=5*50μs, T_Velocity=10 ms |
![]() |
|
T_ Current=2*50μs, T_Velocity=10 ms |
![]() |
图表2-1 电流环调参时的电流-时间曲线
|
电机状态 |
电流-时间曲线 |
|
未转动 |
![]() |
|
转动 |
![]() |
图表3-1 使用编码器作为反馈时的速度-时间曲线



















