平头哥CDK助力中科昊芯HX2000系列芯片之双电机有感FOC控制系统专题(四)永磁电机双闭环FOC控制

描述

V2.12.1,平头哥剑池集成开发环境(CDK)推出最新版。

电机

 

自中科昊芯推出专题阐述HXS320F28034双电机有感FOC控制系统实现以来,第一期主要分析了双电机有感FOC控制原理,第二期着重分析了永磁BLDC的霍尔位置开环控制,第三期着重分析了永磁BLDC的双闭环调速,本期基于平头哥半导体有限公司的剑池集成开发环境(简称“CDK”)V2.12.1版本与HXS320F28034驱动一体板联合开发永磁PMSM的双闭环有感FOC调速,永磁双闭环有感FOC双电机协调控制内容将在下期展开。

 

PMSM双闭环有感FOC原理如图1,系统给定转速n*与差分增量式编码器计算所得实际转速nfbk相比较,经速度PI运算得到q轴电流给定值iq*,采用id*=0控制,与霍尔电流采样得到三相实际电流ia,ib,ic,经CLARK与PARK变换所得d轴与q轴电流id,iq进行比较,经电流PI输出调节电压Ud*,Uq*,经反PARK变换得到调节电压Uα*,Uβ*,经空间矢量脉宽调制SVPWM输出三路开关管切换时间Tcm1,Tcm2,Tcm3,与三路PWM输出的三角载波相比较得到六路调制脉宽,驱动控制三相六桥臂MOSFET逆变器通断,实现双闭环调速。

电机

图1

依照上述原理,设计HXS320F28034 PMSM双闭环有感FOC系统如图2,通过GPIO按键控制电机使能与转速给定,转子位置与速度检测通过QEP模块实现,电流采样通过ADC模块实现,经双闭环PI调节输出PWM波的导通脉宽,从而实现电机调速。硬件连接如图3,图中的小黑色电路板为差分编码转换器,读者可根据需要自行采购。

电机

图2

电机

图3
 

系统所采用的软硬件开发环境详见《芯教程|平头哥CDK助力中科昊芯HX2000系列芯片之双电机有感FOC控制系统专题(一)第一期:双电机有感FOC控制原理》。


 

根据上述分析,基于CDK开发PMSM双闭环FOC有感调速,代码包括:PWM、QEP的外设GPIO引脚配置、三路三相PWM波输出配置,QEP初始化配置与差分编码器位置采样、转速与电角度计算、ADC初始化配置与电流采样、PMSM斜坡启动编码器校正、PI调节算法、CLARK、PARK正逆变换、SVPWM算法调制的EPWM事件触发中断服务程序,主程序执行调用,其中SVPWM算法调制的EPWM事件触发中断服务程序代码为:

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
1.void INTERRUPT epwm1_isr(void)
2.{
3. /*出于安全考虑,默认驱动板上电时封波,按下GPIO7后,电机开始启动*/
4. if(GpioDataRegs.GPADAT.bit.GPIO7==0)
5. {
6.  epwm_flag++;
7. }
8.
9. /*判断启动脉冲信号是否产生,产生后电机开始启动*/
10. if(epwm_flag!=0)
11. {
12.  /*启动计时*/
13.  start_step++;
14.
15.  /*扇区读取:用于获取确定的转子初始位置与对应的SVPWM初始扇区*/
16.  sector_uvw();
17.
18.  /*斜坡启动与调速:300rpm斜坡加速启动后调速,300个计数内完成启动*/
19.  if((speed_ref<300)&&(start_step<=300))
20.  {
21.   /*斜坡启动*/
22.   start_ramp();
23.  }
24.  else
25.  {
26.   /*调速*/
27.   speed_regulated();
28.  }
29.
30.  /*转速闭环*/
31.  speed_loop();
32.  /*电流闭环*/
33.  current_loop();
34.
35.  /*给定固定初始角度使电机转过最大反电势点,读取校正值=此时脉冲计数*/
36.  theta=theta_open;
37.
38.  /*根据差分编码器的霍尔信号判断电机反电势是否处于最大值*/
39.  if(theta==NA*_IQ7(PI/3)+_IQ7(PI/6))
40.  {
41.   iel_int++;
42.  }
43.  /*反电势最大时,切电角度闭环,使编码器零位与电机零位对齐,完成启动*/
44.  if(iel_int!=0)
45.  {
46.   /*计算电角度*/
47.   theta=freq*_IQ7(2*PI);
48.  }
49.
50.  /*两相旋转坐标系变换到两相静止坐标系*/
51.  iPark();
52.
53.  /*空间矢量旋转变换*/
54.  svpwm_motor();
55.  /*调制占空比输出配置*/
56.  epwm_compare();
57. }
58.
59. /*清除事件中断的INT全局中断*/
60. EPwm1Regs.ETCLR.bit.INT=1;
61.
62. /*中断应答,锁定IER的第3组中断向量*/
63. PieCtrlRegs.PIEACK.all=PIEACK_GROUP3;
64.}

CDK上开发PMSM双闭环FOC有感控制程序,其编译结果为:

电机

 

编译通过后,就可以开始调试了,调试结果如下:

电机

 

调试后,控制PMSM在400rpm~600rpm调速效果如下:
 

电机


 

 

 

关于中科昊芯
 

“智由芯生 创享未来”,中科昊芯是数字信号处理器专业供应商。作为中国科学院科技成果转化企业,瞄准国际前沿芯片设计技术,依托多年积累的雄厚技术实力及对产业链的理解,以开放积极的心态,基于开源指令集架构RISC-V,打造多个系列数字信号处理器产品,并构建完善的处理器产品生态系统。产品具有广阔的市场前景,可广泛应用于工业控制及电机驱动、数字电源、光伏、储能、新能源汽车、消费电子、白色家电等领域。

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分