搜索
bottom↓
回复: 20

请教SVPWM算法中T1,T2的计算

[复制链接]

出0入0汤圆

发表于 2011-7-25 11:16:26 | 显示全部楼层 |阅读模式
Mircrochip文档AN1017《使用dsPIC30F DSC实现PMSM电机的正弦驱动》的demo程序中,有两个问题不是很明白,请教大家:
1)在SVM.c文件中,有下面这条程序
// This is the maximum value that may be passed to the SVM
// function without overmodulation.  This limit is equivalent
// to 0.866, which is sqrt(3)/2.
#define VOLTS_LIMIT        28300
不太明白VOLTS_LIMIT的作用,以及为什么VOLTS_LIMIT的值会是0.866?
我的理解是:
当由6个基本电压空间矢量合成的Uout以近似圆形轨迹旋转时,其圆形轨迹的旋转半径受6个基本电压空间矢量幅值的限制。最大的圆形轨迹是6个基本矢量
幅值所组成的正六边形的内接圆,即输出电压的幅值为6个基本电压空间矢量幅值的sin60,即Sqrt(3)/2=0.866=Q15(28377).
不知道这样理解对不对,麻烦大家指点指点。
2)void SVM(int volts, unsigned int angle)
{
if(angle < VECTOR2)
        {                           
        angle2 = angle - VECTOR1;       
                                
                                                               
        angle1 = SIXTY_DEG - angle2;       

        t1 = sinetable[(unsigned char)(angle1 >> 6)];          //sin(60-x)
                                                  
        t2 = sinetable[(unsigned char)(angle2 >> 6)];          //sin(x)

        // Scale t1 to by the volts variable.
        t1 = ((long)t1*(long)volts) >> 15;
        // Scale t1 for the duty cycle range.
        t1 = ((long)t1*(long)tpwm) >> 15;                    
        // Scale t2 time
        t2 = ((long)t2*(long)volts) >> 15;
        t2 = ((long)t2*(long)tpwm) >> 15;

        half_t0 = (tpwm - t1 - t2) >> 1;                                                  
        PDC1 = t1 + t2 + half_t0;
        PDC2 = t2 + half_t0;
        PDC3 = half_t0;
        }
}
小的不是很明白这段程序?
我只知道T1,T2的计算公式为

(原文件名:未命名.JPG)
不明白程序中变量Volts与Uout,Ux.Ux+60的关系。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-11-4 15:59:28 | 显示全部楼层

(原文件名:200762151435477.jpg)

给个图大家一起分析一下,我现在也是在算T1和T2

出95入100汤圆

发表于 2011-11-4 16:45:14 | 显示全部楼层
一起交流一下,我最近在看AN1078,一起交流一下

出0入0汤圆

发表于 2011-11-4 22:21:13 | 显示全部楼层
你是怎么算T1和T2的呢

出0入0汤圆

发表于 2011-11-6 08:58:09 | 显示全部楼层
SVPWM就是一个工具,公式已经算好了,你就直接调用就可以,如果既想要弄明白其中的原理,建议你去看看专门的硕士论文,里面理论推导还是可以的,但是实际实现的部分就可以忽略了。

出0入0汤圆

发表于 2012-1-9 21:24:24 | 显示全部楼层
顶一下,正在研究

出0入0汤圆

发表于 2012-1-10 00:14:49 | 显示全部楼层
看下大功率变频器及交流传动。 或者英文版
7段 是 T0/4,Ta/2, Tb/2, T0/2, Tb/2, Ta/2, T0/4  这7段


Ta=Ts*m*sin(pi/3 - x)
Tb=Ts*m*sin(x)
T0=Ts-Ta-Tb

x是角度,m是调制因数 =(3^0.5)*(Vref)/Vd , Vref内切圆半径最大2*Vd/3,所以m 取值是0到1

出0入0汤圆

发表于 2012-1-10 00:45:18 | 显示全部楼层
学习了

出0入0汤圆

发表于 2013-11-13 16:16:37 | 显示全部楼层
学习一下SVPWM

出0入0汤圆

发表于 2014-3-20 20:27:44 | 显示全部楼层
几位留下的公式,我研究下。谢谢大家!

出0入0汤圆

发表于 2014-11-11 16:09:37 | 显示全部楼层
   楼主  这个 t1 = sinetable[(unsigned char)(angle1 >> 6)];          //sin(60-x)  中左移 6 位是什么意思??

出0入0汤圆

 楼主| 发表于 2014-11-12 08:34:47 | 显示全部楼层
水缸仔 发表于 2014-11-11 16:09
楼主  这个 t1 = sinetable[(unsigned char)(angle1 >> 6)];          //sin(60-x)  中左移 6 位是什么 ...

左移6位代表除以64.
在AN1017 svm.c有建171点的TAB表,这个表对应的一个扇区的SIN的Q15格式。
每个扇区的角度位0X2AAA,所以171*64=0X2AAA.

出0入0汤圆

发表于 2014-11-12 10:58:16 | 显示全部楼层
xk376632352 发表于 2014-11-12 08:34
左移6位代表除以64.
在AN1017 svm.c有建171点的TAB表,这个表对应的一个扇区的SIN的Q15格式。
每个扇区的 ...

楼主  请问   1.为什么要取171个数?
                 2 .为什么这171个点对应一个扇区的SIN,一个扇区只有60度,如果是取90度的点经过翻转可以得到所有角度的值!但是一个扇区怎么取到所有扇区的值?
                3.所有扇区的角度位为0X2AAA   意思是把60度分为0x2AAA份吗?  171*64=0x2AC0不是0x2AAA???

出0入0汤圆

发表于 2014-11-12 11:11:19 | 显示全部楼层
xk376632352 发表于 2014-11-12 08:34
左移6位代表除以64.
在AN1017 svm.c有建171点的TAB表,这个表对应的一个扇区的SIN的Q15格式。
每个扇区的 ...

楼主  还有看到一些论文中提到  : 标幺值  这有是什么意思?论文没看懂

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2014-11-12 11:31:42 | 显示全部楼层
水缸仔 发表于 2014-11-12 10:58
楼主  请问   1.为什么要取171个数?
                 2 .为什么这171个点对应一个扇区的SIN,一个扇区只有60度,如果是 ...

2)在不同扇区,角度处理的,代码中有如下处理:
        angle2 = angle - VECTOR1;                                                                  
            angle1 = SIXTY_DEG - angle2;  

3)0X2AAA/64=170.6 ,四舍五入 171


本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2014-11-12 11:34:11 | 显示全部楼层
水缸仔 发表于 2014-11-12 11:11
楼主  还有看到一些论文中提到  : 标幺值  这有是什么意思?论文没看懂

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2014-11-12 13:06:18 | 显示全部楼层
楼主  请问载波频率选取多少适合,输出频率要达到300hz-18000转,还是像SPWM一样载波频率随输出频率变化而变化?

出0入0汤圆

发表于 2014-11-12 16:34:59 | 显示全部楼层

楼主,请问  void SVM(int volts, unsigned int angle)  中的  angle是怎么计算得来的?  
                       
                        在Mircrochip官网找了好久没有找到 demo程序,只在百度上找到SVM.c这个文件,但是这个文件没有写  angle是怎么计算得来的?
                        楼主能传一份程序给我吗?
                        谢谢楼主!!楼主好人!!

出0入0汤圆

发表于 2014-11-12 16:35:29 | 显示全部楼层

332118774        @qq.com

出0入0汤圆

 楼主| 发表于 2014-11-12 21:56:08 | 显示全部楼层
水缸仔 发表于 2014-11-12 16:34
楼主,请问  void SVM(int volts, unsigned int angle)  中的  angle是怎么计算得来的?  
                       
                        在Mirc ...

参考Microchip的AN1017文档以及程式 。在官网上可以下载

出0入0汤圆

发表于 2014-11-13 11:07:17 | 显示全部楼层
xk376632352 发表于 2014-11-12 21:56
参考Microchip的AN1017文档以及程式 。在官网上可以下载

谢谢,谢楼主回答了我这么多问题!非常感谢!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-16 06:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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