找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

Flux电机有限元分析教程西莫团购入口 | 奖励入口当当网购物入口 | 奖励入口欢迎使用!西莫论坛App开放下载Motor-CAD电机多物理域设计教材购买入口 | 奖励入口
★新会员论坛须知★《西莫电机技术》第39期发售火热进行中Flux电机电磁阀有限元分析教程团购入口 | 奖励入口论坛微信公众平台欢迎入驻
西莫电机及相关产品供需交流群开放邀请★ 论坛VIP会员申请 ★Motor-CAD.MANATEE电磁热振动噪声教程 | 奖励入口西莫团队欢迎您的加盟!
宣传推广合作请联系QQ:25941174西莫电机论坛微信群正式开放Flux变压器与电抗器有限元分析团购入口 | 奖励入口西莫电机论坛技术版区QQ群汇总
查看: 2884|回复: 2

[原创] F2812 SVPWM程序IQmath版

[复制链接]

该用户从未签到

发表于 2012-5-7 14:20 | 显示全部楼层 |阅读模式 来自: 中国江苏镇江

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
F2812 SVPWM程序IQmath版 F2812 SVPWM程序IQmath版.rar (909 Bytes, 下载次数: 47)


  1. //======================================================================================================
  2. //IPark变换UD,UQ-->UALFA,UBETA获得给定信号
  3. //======================================================================================================
  4.   Ualfa = _IQmpy(Ud,Cosine) - _IQmpy(Uq,Sine);
  5.   Ubeta = _IQmpy(Uq,Cosine) + _IQmpy(Ud,Sine);
  6.    
  7. //======================================================================================================
  8. //通过UALFA,UBETA确定扇区Sector,根据扇区Sector计算Ta,Tb,Tc,SVPWM实现
  9. //======================================================================================================
  10.   B0=Ubeta;
  11.   B1=_IQmpy(_IQ(0.8660254),Ualfa)- _IQmpy(_IQ(0.5),Ubeta);// 0.8660254 = sqrt(3)/2
  12.   B2=_IQmpy(_IQ(-0.8660254),Ualfa)- _IQmpy(_IQ(0.5),Ubeta); // 0.8660254 = sqrt(3)/2
  13.   Sector=0;
  14.   if(B0>_IQ(0)) Sector =1;
  15.   if(B1>_IQ(0)) Sector =Sector +2;
  16.   if(B2>_IQ(0)) Sector =Sector +4;
  17.   X=Ubeta;
  18.   Y=_IQmpy(_IQ(0.8660254),Ualfa)+ _IQmpy(_IQ(0.5),Ubeta);// 0.8660254 = sqrt(3)/2
  19.   Z=_IQmpy(_IQ(-0.8660254),Ualfa)+ _IQmpy(_IQ(0.5),Ubeta); // 0.8660254 = sqrt(3)/2
  20.   if(Sector==0)
  21.   {
  22.    Ta=_IQ(0.5);
  23.    Tb=_IQ(0.5);
  24.    Tc=_IQ(0.5);
  25.   }
  26.   else if(Sector==1)
  27.   {
  28.    t1=Z;
  29.    t2=Y;
  30.    Tb=_IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));
  31.    Ta=Tb+t1;
  32.    Tc=Ta+t2;
  33.   }
  34.   else if(Sector==2)
  35.   {
  36.    t1=Y;
  37.    t2=-X;
  38.    Ta=_IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));
  39.    Tc=Ta+t1;
  40.    Tb=Tc+t2;
  41.    }
  42.   else if(Sector==3)
  43.       {
  44.    t1=-Z;
  45.    t2=X;
  46.    Ta=_IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));
  47.    Tb=Ta+t1;
  48.    Tc=Tb+t2;
  49.      }
  50.      else if(Sector==4)
  51.      {
  52.    t1=-X;
  53.    t2=Z;
  54.    Tc=_IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));
  55.    Tb=Tc+t1;
  56.    Ta=Tb+t2;
  57.      }
  58.      else if(Sector==5)
  59.      {
  60.    t1=X;
  61.    t2=-Y;
  62.    Tb=_IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));
  63.    Tc=Tb+t1;
  64.     Ta=Tc+t2;
  65.   }
  66.   else if(Sector==6)
  67.   {
  68.    t1=-Y;
  69.    t2=-Z;
  70.    Tc=_IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));
  71.    Ta=Tc+t1;
  72.    Tb=Ta+t2;
  73.   }
  74.   MfuncD1=_IQmpy(_IQ(2),(_IQ(0.5)-Ta));
  75.   MfuncD2=_IQmpy(_IQ(2),(_IQ(0.5)-Tb));
  76.   MfuncD3=_IQmpy(_IQ(2),(_IQ(0.5)-Tc));

  77.   MfuncF1=_IQtoF(MfuncD1);  //用于观察
  78.   MfuncF2=_IQtoF(MfuncD2);
  79.   MfuncF3=_IQtoF(MfuncD3);
  80. }
复制代码

评分

参与人数 1西莫币 -9 收起 理由
gellyares -9 广告贴!

查看全部评分

西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过

该用户从未签到

发表于 2012-5-11 09:30 | 显示全部楼层 来自: 中国湖南湘潭
不知道是不是正确的哦
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2013-1-30 23:50 | 显示全部楼层 来自: 中国辽宁沈阳
看看是什么程序
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

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

本版积分规则

西莫电机论坛微信公众平台欢迎您的关注!

QQ|Archiver|手机版|小黑屋|西莫电机圈 ( 浙ICP备10025899号-3|浙公网安备:33028202000436号 )

GMT+8, 2024-12-27 10:09 , Processed in 0.106732 second(s), 35 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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