找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

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

[原创] SVPWM三次谐波方法

[复制链接]

该用户从未签到

发表于 2016-4-20 21:36 | 显示全部楼层 |阅读模式 来自: 中国广东佛山

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

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

×
三次谐波注入方法产生是svpwm简单好用,再也不用算xyz,N,t1 t2了.

#define UVW 1
#define VUW 2
#define UWV 3
#define VWU 4
#define WUV 5
#define WVU 6

double  maxmidmin;
double mid;

void compare( double  u double v double w )
{
        if( u>= w)
        {
                if( v>= w)
                {
                        if( u>= v)
                        {
                                maxmidmin= UVW;                // u >= v >= w
                        }
                        else
                        {
                                maxmidmin= VUW;                // v >  u >= w
                        }
                }
                else
                {
                                maxmidmin= UWV;                // u >= w >  v
                }
        }
        else
        {
                if( v>= w)
                {
                                maxmidmin= VWU;                // v >= w >  u
                }
                else
                {
                        if( u>= v)
                        {
                                maxmidmin= WUV;                // w >  u >=  v
                        }
                        else
                        {
                                maxmidmin= WVU;                // w >  v >   u
                        }
                }
        }

}


compare( u, v, w );  //输入的uvw为 Ualpha 和 Ubeta 经过 clarke 后的 uvw
//正弦的波形       
        switch( maxmidmin){       
                case UVW:
                mid =((u + w) >> 1);
       
                        break;
                case UWV:
                        mid =  ((u + v) >> 1);
               
                        break;
                case VWU:
                        mid =((v + u) >> 1);
               
                        break;
                case VUW:
                mid =((v + w) >> 1);
                       
                        break;
                case WUV:
                        mid =((w + v) >> 1);
                       
                        break;
                case WVU:
                        mid = ((w + u) >> 1);
                       
                        break;
                default:
                        mid = 0;
                       
                        break;
        }
   

   
    ///////////ta//tb//tc
   
            u += mid;                       
        v += mid;
        w += mid;///马鞍型了
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过

签到天数: 10 天

连续签到: 1 天

[LV.3]偶尔看看II

发表于 2016-4-21 09:25 | 显示全部楼层 来自: 中国湖北武汉
你这个三次谐波注入是在spwm的基础是注入吗?注入应该注入cos(3x)才对,请问这种的原理是?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-4-21 09:33 来自手机 | 显示全部楼层 来自: 中国广东
xiaoxiao201005 发表于 2016-4-21 09:25
你这个三次谐波注入是在spwm的基础是注入吗?注入应该注入cos(3x)才对,请问这种的原理是?

自己做下仿真对比就知道了
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-4-21 09:42 来自手机 | 显示全部楼层 来自: 中国广东
这样比cos3x在单片机中跟快速更容易实现
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2016-4-21 10:08 | 显示全部楼层 来自: 中国山东青岛
嗯,这个方法已经get。
我还试过discontinuous PWM,不过不知道为什么低速跑还可以,不过有噪音,高速跑一会就过流了。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 10 天

连续签到: 1 天

[LV.3]偶尔看看II

发表于 2016-4-21 10:35 | 显示全部楼层 来自: 中国湖北武汉
你的Ta Tb Tc怎么求?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-4-21 10:40 来自手机 | 显示全部楼层 来自: 中国广东
illusion2012 发表于 2016-4-21 10:08
嗯,这个方法已经get。
我还试过discontinuous PWM,不过不知道为什么低速跑还可以,不过有噪音,高速跑一 ...

你是跑仿真还是实际测试呢
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-4-21 10:42 来自手机 | 显示全部楼层 来自: 中国广东
xiaoxiao201005 发表于 2016-4-21 10:35
你的Ta Tb Tc怎么求?

最后写马鞍型的那里就是
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2016-4-21 10:58 | 显示全部楼层 来自: 中国山东青岛
songwanjie 发表于 2016-4-21 10:40
你是跑仿真还是实际测试呢

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-4-21 11:01 来自手机 | 显示全部楼层 来自: 中国广东
illusion2012 发表于 2016-4-21 10:58
实际的测试啊

电流环带宽太大了吧,特别是d轴的,
discontinuous PWM是啥玩意
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 10 天

连续签到: 1 天

[LV.3]偶尔看看II

发表于 2016-4-21 11:12 | 显示全部楼层 来自: 中国湖北武汉
songwanjie 发表于 2016-4-21 10:42
最后写马鞍型的那里就是

没明白你的意思,你用uvw加上mid得出新的uvw,然后用新的uvw求ta tb tc?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2016-4-21 11:25 | 显示全部楼层 来自: 中国山东青岛
songwanjie 发表于 2016-4-21 11:01
电流环带宽太大了吧,特别是d轴的,
discontinuous PWM是啥玩意

减少PWM开关次数的,可以百度一下,我们这边没法上传图片或者附件,网络限制
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2016-4-25 14:44 | 显示全部楼层 来自: 中国北京
现在很多svpwm的计算都是采用楼主说的这种方式,也即参考电压加上电压中间值的一半,理论上这和七段式SVPWM是等效的,具体可以看各种文献。
不过楼主贴的代码bug实在太多,根本不适合用于嵌入式代码。

// f32Ua,f32Ub,f32Uc 为输入的正弦电压
// f32UaCmp, f32UbCmp, f32UcCmp为输出的调制波(马鞍波)
// iSQRT3=1/sqrt(3)
void SVPWM(void)
{
        FLOAT32 f32Umid = 0.0f;
           if((f32Ua - f32Ub) * (f32Ub - f32Uc) > 0)
           {
              f32Umid = f32Ub;
           }
           else if((f32Ub - f32Ua) * (f32Ua - f32Uc) >0)
           {
              f32Umid = f32Ua;
           }
           else
           {
              f32Umid = f32Uc;
           }

   f32Umid = f32Umid * 0.5f;

   f32UaCmp = 0.5f + (f32Ua + f32Umid) * iSQRT3;
   f32UbCmp = 0.5f + (f32Ub + f32Umid) * iSQRT3;
   f32UcCmp = 0.5f + (f32Uc + f32Umid) * iSQRT3;
}
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 10 天

连续签到: 1 天

[LV.3]偶尔看看II

发表于 2016-4-26 12:36 | 显示全部楼层 来自: 中国湖北武汉
陈四川 发表于 2016-4-25 14:44
现在很多svpwm的计算都是采用楼主说的这种方式,也即参考电压加上电压中间值的一半,理论上这和七段式SVPWM ...

你的Ua Ub Uc是要经过判断扇区计算出来的吧?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2016-4-26 13:32 来自手机 | 显示全部楼层 来自: 中国北京
xiaoxiao201005 发表于 2016-4-26 12:36
你的Ua Ub Uc是要经过判断扇区计算出来的吧?

不用啊,就是dq变换到静止坐标的值
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 10 天

连续签到: 1 天

[LV.3]偶尔看看II

发表于 2016-4-27 09:52 | 显示全部楼层 来自: 中国湖北武汉
陈四川 发表于 2016-4-26 13:32
不用啊,就是dq变换到静止坐标的值

如果不是,你这个方法就不用判断扇区了吧?不用扇区直接得到三相的占空比?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2016-11-22 15:46 | 显示全部楼层 来自: 中国北京
已入电机控制坑,学习了。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2016-12-7 11:11 | 显示全部楼层 来自: 中国广东深圳
该方法的相关文献能推荐下吗?找了很久没有找到。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2016-12-14 10:13 | 显示全部楼层 来自: 中国广东珠海
战略mark一下。学习了,能否提供一个相关文献呢,文献解释的比较浅显,适合我这种基础比较差的。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2017-4-15 08:42 | 显示全部楼层 来自: 中国山东潍坊
一直不断学习中…………
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-24 20:10 , Processed in 0.144208 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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