如何在24小时之内完成伺服控制器设计?妮姐和豆豆就使用了一个“神器”,真的快速地完成了——
(资料图片)
这个“神器”就是TMC4671,有多神,先卖个关子,大家继续往下看。
电机控制最复杂的是算法
电机控制,用简单的硬件电路就可以,但是无法做到稳定、高速、精确。如果在要求不高的场合,这些简单的硬件控制也是可行的,但到了工业控制、机器人以及其他更精细的场合中,显然需要对电机的速度、电流、位置进行高精度的闭环控制了。但问题又来了,对电机的高精度控制,离不开控制算法。
电机控制算法通过运算向电机提供适当的驱动信号,预测电机转载的位置,尽快地和尽平稳地使电机转速达到指令速度,并维持这个速度。一旦电机转速达到了指令速度,即使在各种不利因素的干扰下也应该保持速度值不变。针对不同的电机、不同的应用,需要选择合适的控制算法。
稚晖君曾在知乎发布了一篇关于“【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术”的文章,把他学习FOC算法过程中看到的一些有关无刷电机矢量控制的资料和个人理解整理分享出来。相信大多数做电机调试的小伙伴都看过,虽然稚晖君已经深入简出的介绍了,但基本上要看上N遍才能看懂理解,甚至需要要花1,2个月的时间,才能弄出来一套能用的控制算法。
谁要是能帮我们搞定算法,那就完美了!这个事,早在三年前,就实现了,就是用TMC4671!
TMC4671是什么神器?
TMC4671是一款ADITrinamic于2020年发布的全球首个具有针对BLDC/PMSM和两相步进电动机以及直流电动机和音圈的磁场定向控制的全集成伺服控制器IC、集成ADC、位置传感器接口(增量式编码器,HALL信号等)和位置插值器的完整组件。全集成就是它最大的特点:
✦硬件上,集成了ADC、位置传感器接口(增量式编码器,HALL信号等)和位置插值器的完整组件。
✦软件上内置了算法库,包括位置和速度控制、FOC算法和控制、PWM驱动引擎、电流环检测,以及编码器引擎等。
其中转矩环核心的FOC算法,将FOC算法包含的Park,反Park变化等时间关键性的计算都集成在芯片中。因此开发动态伺服控制器只需几行代码,就可以轻松驱动像我们常见的无刷电机、永磁同步电机等。
一句话就是:TMC4671就是一个全能选手,电机控制的活基本全能搞定,不管是直流,步进,还是BLDC。
24小时真的能完成吗?
能。
不过,需要借助达尔闻朋友、技术型授权代理商世健提供的这套TCM4671方案,以及Trinamic的TMCL IDE。
只有TCM4671显然不行的,因此在这块开发板上还有MCU、驱动器、MOSFET、以及通信接口、电源管理等,具体信号链框架如下:
驱动器TMC6100同样也来自Trinamic,含有3个半桥,可以用于高压BLDC,PMSM和伺服电机。此外,还有8 VDC至60 VDC的宽电压范围,以及0.5 A,1 A或1.5 A的可编程栅极电流,通过六个外部MOSFET控制电机,它可以驱动功率从瓦到千瓦的各种电机。
这块开发板的通信方式有两种,一种是板子上的32位MCU,通过RS485或者CAN总线与外部PC进行通信后,控制TMC4671;一种是使用USB-SPI-RTMI工具,通USB转SPI直接连接到TMC4671进行调试。两种方式使用的上位机软件是不同的,前者使用的是由世健设计开发的上位机软件,后者使用的是官网的TMCL-IDE。
世健的上位机软件,经过MCU的处理,用户可以根据自己应用场景,参考源码进行调试,比较适合二次开发的项目,而TMCL-IDE提供软件工具可以用来调试不同控制环路,RTMI 是调试、监控和系统配置的最简便的方式。
我们本次的目的是让电机动起来,不进行二次开发,所以选择TMC-IDE进行环路控制与调试。
首先,需要把固件代码烧录到MCU中。如果使用这个方案的话,世健提供了源码,方便用户二次开发。
然后,连接好所有的硬件之后,就可以上电、打开TMCL-IDE软件了。
在IDE里,可以直观地看到TMC4671的寄存器参数的值。只要仔细阅读datasheet,就知道每个寄存器的意义。
接下来就是对调节电流环、速度环、位置环的PI调参。对于电流环,在IDE中使用Torque Flux / Tuning和Step response工具调整。Torque转矩/Flux磁通工具在开环模式下确定PI参数。确定PI参数后,一键更新到寄存器中就可以了。
当电流环调节完成之后,就要对速度环调节了,使用的是 step response tool (closed loop) 闭环阶跃响应工具。对TMC4671的0x58寄存器:PID_VELOCITY_I、PID_VELOCITY_IP ,进行调节,让实际速度达到目标速度即可。
对于位置环的调试,需要前面的电流环和速度环配置好之后,使用阶跃响应工具来调试。同速度环一样,也是直接进行寄存器的操作,在PID_POSITION_I和PID_POSITION_P寄存器中,设置 PI 位置控制器的初始值,通过阶跃响应工具查看具体的效果即可。
对于开发一套基于TMC4671的伺服控制系统,基本的流程就是:世健的开源代码(可二次开发)—电流环、速度环、位置环的参数调节——高精度的控制电机运动。所以,真的有可能在24小时完成哦。
对于这套电机控制方案,两个最直观的使用体验:
1)不需要死磕控制算法,使用世健的这套TMC4671的话,他们提供了源码,并且可做二次开发,这就相当于站在巨人的肩膀,他们把最基础的底层已经搭建好了,我们只需要针对自己的应用优化就可以了。
2)TMC4671配合TMCL-IDE,真是简单又好用。IDE可以自动识别电机参数,所有参数调试都是图形化的。速度环、电流环、位置环获得相应的P和I的值,更新到TMC4671的寄存器中,或者直接对寄存器进行操作就可以了。
编辑:黄飞
标签: