西莫电机圈

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 7361|回复: 30

[原创] SVPWM三次谐波方法

[复制链接]

该用户从未签到

发表于 2016-4-20 21:36 | 显示全部楼层 |阅读模式

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

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

x
三次谐波注入方法产生是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;///马鞍型了
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过

签到天数: 5 天

连续签到: 2 天

[LV.2]偶尔看看I

发表于 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,不过不知道为什么低速跑还可以,不过有噪音,高速跑一会就过流了。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 5 天

连续签到: 2 天

[LV.2]偶尔看看I

发表于 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是啥玩意
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 5 天

连续签到: 2 天

[LV.2]偶尔看看I

发表于 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;
}
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 5 天

连续签到: 2 天

[LV.2]偶尔看看I

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

使用道具 举报

签到天数: 5 天

连续签到: 2 天

[LV.2]偶尔看看I

发表于 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-11-22 14:30 , Processed in 0.126631 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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