DTC控制,直接转矩控制详解

发布于:2024-12-08 ⋅ 阅读:(121) ⋅ 点赞:(0)

关于磁链矢量所在扇区及最优开关表的选择的思路分析和matlab/simulink实现

仿真参考袁雷老师的《现代永磁同步电机控制原理及MATLAB仿真》,但是由于书中所附代码和书中第四章中讲的实现不同,因此根据自己看的资料和理解重新整理并实现了一下。

这里采用的电压矢量与袁老师书中不同,定义为

附最优矢量开关表如图

 2.思路分析

3.Matlab/Simulink相关代码实现

sector


 
 
 
  1. function sys =mdlOutputs(t,x,u)
  2. if(u( 2) = = 0)
  3. N = 1; %如果输入值为 0,电压参考量在第一扇区
  4. else
  5. a 1 =u( 1);
  6. b 1 =u( 1) *(- 0.5) +(sqrt( 3) / 2) *u( 2); %%根据文章的计算公式得到
  7. c 1 =u( 1) *(- 0.5)-(sqrt( 3) / 2) *u( 2);
  8. if a 1 > 0
  9. a = 0;
  10. else
  11. a = 1;
  12. end
  13. if b 1 > 0
  14. b = 0;
  15. else
  16. b = 1;
  17. end
  18. if c 1 > 0
  19. c = 0;
  20. else
  21. c = 1;
  22. end
  23. N = 4 *a + 2 *b +c; %扇区计算
  24. end
  25. Sector_ table =[ 2 6 1 4 3 5];
  26. sys =Sector_ table(N);

 PMSM_switch


 
 
 
  1. function sys =mdlOutputs(t,x,u)
  2. %%根据文章的表格计算得到
  3. % V_ Table =[ 2 4 6 1 3 5; 4 1 5 2 6 3; 3 6 2 5 1 4 ; 5 3 1 6 4 2];
  4. V_ Table =[ 5 6 1 2 3 4; 6 1 2 3 4 5; 3 4 5 6 1 2; 2 3 4 5 6 1];
  5. % x = 2 *u( 1) +u( 2) + 1;
  6. x =u( 1) +u( 2) + 2;
  7. sector =u( 3);
  8. sys =V_ Table(x,sector);

 


网站公告

今日签到

点亮在社区的每一天
去签到