找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3493|回复: 1
打印 上一主题 下一主题
收起左侧

无死区判断产生SVPWM波的Psim仿真实现源码与资料下载

[复制链接]
跳转到指定楼层
楼主
这是无死区判断产生SVPWM波的Psim仿真实现


新型无扇区空间矢量脉宽调制算法:


单片机源程序如下:
  1.    #include<stdio.h>
  2. #include<math.h>

  3. __declspec(dllexport) void simuser (t, delt, in, out)

  4. // t,delt,in,out 这几个变量的类型必须为double型
  5. // 其中,t为系统仿真时间;delt为时间步长;in为输入口;out为输出口;
  6. // in、out都以指针的形式给出,其个数由psim中dll文件决定,分别有1、3、6、12、20、25个
  7. // 不用的输入口必须接地,否则会出现错误

  8. double t, delt;
  9. double *in, *out;
  10. {
  11.     double w,M,theta,U_alpha,U_beta;
  12.         double Ts,X,Y,Z,Tx,Ty;
  13.         double Ta,Tb,Tc,Tcm1,Tcm2,Tcm3;
  14.         int    A,B,C,Sector;
  15.        
  16.         M  = in[0];
  17.         w  = in[1];
  18.         Ts = in[2];                         // PWM开关周期
  19.    
  20.         theta = w*t;
  21.        
  22.         U_alpha = M*cos(theta);
  23.         U_beta  = M*sin(theta);
  24.        
  25.         // 扇区判断
  26.     if (U_beta > 0)
  27.                 A = 1;
  28.         else
  29.                 A = 0;
  30.         if((sqrt(3)*U_alpha-U_beta) > 0)
  31.                 B = 1;
  32.         else
  33.                 B = 0;
  34.         if((sqrt(3)*U_alpha+U_beta) < 0)
  35.                 C = 1;
  36.         else
  37.                 C = 0;
  38.         Sector = A + 2*B + 4*C;      

  39.         X = sqrt(3)*U_beta*Ts;
  40.         Y = ((3*U_alpha+sqrt(3)*U_beta)*Ts)/2;
  41.         Z = ((-3*U_alpha+sqrt(3)*U_beta)*Ts)/2;
  42.        
  43.         // 各个扇区的具体作用时间选择;
  44.         switch(Sector)
  45.         {
  46.                 case 1:         // 第二扇区;
  47.                                 Tx = Z;
  48.                                 Ty = Y;
  49.                                 break;
  50.                 case 2:         // 第六扇区;
  51.                                 Tx = Y;
  52.                                 Ty= -X;
  53.                                 break;
  54.                 case 3:         // 第一扇区;
  55.                                 Tx = -Z;
  56.                                 Ty = X;
  57.                                 break;
  58.                 case 4:         // 第四扇区;
  59.                                 Tx = -X;
  60.                                 Ty = Z;
  61.                                 break;
  62.                 case 5:         // 第三扇区;
  63.                                 Tx = X;
  64.                                 Ty = -Y;
  65.                                 break;
  66.                 case 6:         // 第五扇区;
  67.                                 Tx = -Y;
  68.                                 Ty = -Z;
  69.                                 break;
  70.                 default:
  71.                                 break;
  72.         }
  73.         // 作用时间的饱和判断;
  74.         if((Tx+Ty) > Ts)
  75.         {  
  76.                 Tx = (Tx*Ts)/(Tx+Ty);
  77.             Ty = (Ty*Ts)/(Tx+Ty);
  78.         }

  79.         // 桥臂开通时刻;
  80.         Ta = (Ts-Tx-Ty)/4;
  81.     Tb = Ta + Tx/2;
  82.     Tc = Tb + Ty/2;

  83.         // Tcm1是A相上桥臂管子的开通时刻
  84.         // Tcm2是B相上桥臂管子的开通时刻
  85.         // Tcm3是C相上桥臂管子的开通时刻
  86.     switch(Sector)
  87.         {
  88.                 case 1:
  89.                         Tcm1 = Tb;
  90.             Tcm2 = Ta;
  91.             Tcm3 = Tc;
  92.                         break;
  93.                 case 2:  
  94.                         Tcm1 = Ta;
  95.             Tcm2 = Tc;
  96.             Tcm3 = Tb;
  97.                         break;
  98.                 case 3:  
  99.                         Tcm1 = Ta;
  100.             Tcm2 = Tb;
  101.             Tcm3 = Tc;
  102.                         break;
  103.                 case 4:
  104.                     Tcm1 = Tc;
  105.             Tcm2 = Tb;
  106.             Tcm3 = Ta;
  107.                         break;
  108.                 case 5:  
  109.                         Tcm1 = Tc;
  110.             Tcm2 = Ta;
  111. ……………………

  112. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
无扇区判断SVPWM_第一组.rar (796.52 KB, 下载次数: 37)



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:601253 发表于 2019-9-9 16:32 | 只看该作者
这个是七段式的SVPWM吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表