学习FOC,不需要从Clark变换与Park变换开始!不需要从SVPWM开始!不需要从PID开始!S12ZVM的FOC方案,从硬件原理图到软件结构,从上位机调试到参数修改,从数学函数库到KP/KI调试,带您快速入门! S12ZVM系列产品是 NXP为 BLDC和PMSM控制精心设计的单芯片解决方案,内部集成了S12Z内核的处理器、栅极驱动器、稳压器、两路运放、CAN控制器、LIN收发器等,完全满足电机控制的应用,其资源基本上是为电机控制量身打造,其FOC双电阻方案如下框图。 1软件工程整体介绍: 建议使用Codewarrior10.6以上版本调试S12ZVM,导入工程后,左边蓝色框内就是代码的所有文件,其中重点介绍其中已经标了号的部分: 1、Config文件:其中主要是包含两个.H文件,分别是PMSM_appconfig.h和S12ZVM_devconfig.h。配置了电机的参数、保护参数、PI参数等等,更换不同的电机只需要简单配置此文件即可启动。 2、FreeMASTER_control文件:使用FreeMaster打开pmp文件,即可弹出上位机配置界面,轻松实现电机监控与控制。 3、M9S12ZVML128_PMSM文件是主函数所在文件。 4、src文件:实现FOC的位置估算、反电动势计算、电流电压温度等模拟量计算、主逻辑状态机控制等部分。 2上位机调试 上位机可通过SCI,CAN,BDM等方式与上位机通信。上位机控制截图如下图,其主要功能是两块,一是便于控制,二是实时观测。其中左边是实时返回的数据曲线(点击Speed即可看到实际速度与给定速度曲线),右侧是控制界面。 上位机的操作大大方便了电机的调试! 3主程序逻辑与中断 在软件的整体介绍里可以看到,标号为5的就是main函数,其实现的主要流程如下图。While(1)里一直在执行的就是FreeMASTER推送程序,用于实现上位机对全局变量的监控,这是代码的前台。 更为重要的是后台的中断,主要是ADC中断、PWM Reload中断。其中ADC中断实现相电流检测,检测完了之后就进行FOC计算,计算完毕后触发PWM Reload中断。 另外电路做了Fastloop和Slowloop,其中电流环属于FastLoop,通常执行频率为PWM的周期或者PWM周期的整数倍;速度环属于SlowLoop,通常执行频率为1ms到10ms。均可按照实际情况调整。 4状态机 在main函数可以看到其中有很关键的一句是:state与event的赋值!这是状态机的起始状态,整个程序只能是处于INIT、READY、CALIB、ALIGN、RUN、FAULT五大状态中,其中状态的转换是通过不同的事件所触发,值得注意的是,任一时刻发生错误时间,均可进入FAULT状态! 5小结 S12ZVM是为BLDC和PMSM控制量身打造,内部集成控制所需的所有资源,使得电机控制简单而又高效。再加上ZLG丰富的电机控制经验、强大的技术支持团队,使您快速完成开发! 如需关于S12ZVM的单电阻FOC方案所有资料,可以在底部留言。 DEMO板 ESC-10A-Auto2 |
|