接下来讲FOC变频驱动器的制作,相较于通用的变频器和驱动器,FOC矢量控制驱动最大的优势是可以对主轴电机进行闭环控制。当然有其利必有其弊,缺点是特定的FOC控制器只能配特定的主轴电机,就像三菱的伺服控制器没法驱动台达的伺服电机一样(注:无刷伺服电机底层驱动都是FOC的)。完整的FOC驱动程序很复杂的,源代码估计有十几万行,好在像ST意法半导体、TI德州仪器这些半导体厂把代码都做成了开源库,这样研发难度一下子就降低了很多。首先需要买一套ST公司的开发套件,包括一块单片机开发板和一块FOC驱动板。这套开发套件起到3个作用:第一是用来测出电机的各项参数包括相电阻、相电感、KV值、转子惯性量等各个参数;第二是用来作为驱动器硬件画电路板的参考板(套件的原理图电路图和程序都是开源的);第三是用来作为程序的烧录器和调试器。
参照这开发套件开源的电路图画好我自己的电路板,主控芯片选的是ST的STM32F302CBT6,这颗芯片带有浮点数硬件运算单元,更适合处理FOC算法程序,而且内置有比较器和运放单元,这样可以省掉很多外围芯片,提高可靠性。驱动MOS管选的是IRF3205,最大电流110A,内阻仅8毫欧,发热量非常小。画好电路板外发嘉立创打板,立创商城购买元件,嘉立创完成部分贴片元件的焊接,剩下的直插元件手工焊好,这样电路部分就完工了。软件部分也不是很复杂,用ST Motor Profiler这个软件测出电机的各项参数后导入ST Motor Control Workbench这个软件,然后配置好驱动程序的各个参数,前后大概百来个参数,都要配置正确,任何一个配置错误都会导致电机无法驱动起来。配置好后在KEIL软件里进行编译最后烧录进主控芯片软件就算是大功告成了。虽然还是有点小复杂,但相较于从头开始编写一套FOC驱动控制程序已经算是非常简单了。出于保守稳重的考虑,主轴电机和驱动程序最高转速都设置在了12000RPM,最低转速为3000RPM,全程转速都是无编码器闭环控制的(通过测电机第三相的换向时间来获得转速信息进行闭环控制),实时转速通过主控芯片的一个DAC引脚输出,配合一块高精度电压表头可以实时显示。