分享

【入门必备】3分钟带你上手FOC

 myallmy 2019-03-20

学习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


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多