搜索
bottom↓
回复: 3

ADI BF506的SVPWM代码

[复制链接]

出0入0汤圆

发表于 2011-10-21 20:44:43 | 显示全部楼层 |阅读模式
ADI的DSP推广较差,BF506芯片是新出的,个人感觉比较好用。这个SVPWM程序是我们自己写的。确实能够驱动电机。没有什么控制策略,只能产生波形而已。输出滤波之后电压不是正弦波,不知道什么原因。小弟新手,请各位高手指导。
void Tx_calc(float u_alfa,float u_beta)
{
        int N,A,B,C,BUF1,BUF2,BUF3;
        float X,Y,Z,T1,T2,T_temp,T_zero;
       
        A = (u_beta>0)*4;
        B = ( u_beta - 1.73205*u_alfa >0)*2;
        C = (1.73205*u_alfa+u_beta>0);
       
        N = A+B+C;
       
        X = 1.73205*Ts*(u_beta-1.73205*u_alfa)/Udc/2;
        Y = 1.73205*Ts*u_beta/Udc;
        Z = 1.73205*Ts*(1.73205*u_alfa+u_beta)/Udc/2;
       
        switch(N)
        {
                case 5: T1 =  Y; T2 = -X;  break;//Sector I
                case 7: T1 =  Z; T2 =  X;  break;//Sector II
                case 6: T1 = -Z; T2 =  Y;  break;//Sector III
                case 2: T1 =  X; T2 = -Y;  break;//Sector IV
                case 0: T1 = -X; T2 = -Z;  break;//Sector V
                case 1: T1 = -Y; T2 =  Z;  break;//Sector VI
                default:asm("nop;");
        }
       
        if(T1+T2>Ts)
        {
                T_temp = T1+T2;
                T1 = T1*Ts/T_temp;
                T2 = T2*Ts/T_temp;
        }
       
        T_zero = Ts-T1-T2;
       
        BUF1 = (int)(T_zero*f_sclk/4)-PWM_TM_BUF/2;
        BUF2 = (int)((2*T2+T_zero)*f_sclk/4)-PWM_TM_BUF/2;
        BUF3 = (int)((2*T1+2*T2+T_zero)*f_sclk/4)-PWM_TM_BUF/2;
       
       
        switch(N)
        {
                case 5:PWM_CHA_BUF=BUF3;PWM_CHB_BUF=BUF2;PWM_CHC_BUF=BUF1; break;
                case 7:PWM_CHA_BUF=BUF2;PWM_CHB_BUF=BUF3;PWM_CHC_BUF=BUF1; break;
                case 6:PWM_CHA_BUF=BUF1;PWM_CHB_BUF=BUF3;PWM_CHC_BUF=BUF2; break;
                case 2:PWM_CHA_BUF=BUF1;PWM_CHB_BUF=BUF2;PWM_CHC_BUF=BUF3; break;
                case 0:PWM_CHA_BUF=BUF2;PWM_CHB_BUF=BUF1;PWM_CHC_BUF=BUF3; break;
                case 1:PWM_CHA_BUF=BUF3;PWM_CHB_BUF=BUF1;PWM_CHC_BUF=BUF2; break;
                default:asm("nop;");
        }
}


下面是整个工程
点击此处下载 ourdev_687082QDH8OW.rar(文件大小:42K) (原文件名:SVPWM.rar)

出0入0汤圆

发表于 2011-10-23 08:09:58 | 显示全部楼层
ADI原厂的支持蛮强势的啊,官方的例程也还是蛮多的。去他们网站看下吧,或是联系FAE。我一般都是邮件联系FAE的。

出0入0汤圆

发表于 2011-10-26 23:03:42 | 显示全部楼层
这个要具体的调试一下看看外围电路什么的才能找到原因,光看代码的话也不知道是怎么回事。

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-5-5 01:28

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

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