久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

SVPWM算法的Dev C++仿真

作者:佚名   來源:本站原創   點擊數:  更新時間:2014年04月27日   【字體:

  今天看了@技術宅 的SVPWM文章 于是一時興起

看著這個東西:
http://wenku.baidu.com/link?url=0q05AB-vk1S_442Gb8ooY02doxwctGeEuKfFTAZGPhB5ioekgwfM-CpwyTALO9ueOjlcE_Rz2u3X11hcAvOu-SXhxuZHlmlbVlrfvXBrQnu
寫了一段SVPWM仿真程序 文章講的很清楚 大體院里窩都理解 如果能跟著進行推導一邊應該更能加深理解



下面素窩的程序 還沒有優化過 很多浮點數運算 單片機可能跑不起來的說:
/*
*    SVPWM program
*    By Rikka0_0
*    2014.4.47
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PWM_MAX_COUNT 100
void svpwm(double Umax,double Vdc,double angle,double* u,double* v,double* w){
        double Ua,Ub;
     double Usalfa,Usbeta;
     char sector;
     double X,Y,Z;
     double t1,t2;
      double ta,tb,tc;
        double p1,p2,p3;      
        
        Ua=sin(angle);
        Ub=sin(angle-M_PI*2/3);
       
        //Clarke
        Usalfa=Ua;
        Usbeta=(2*Ub+Ua)*0.57735026918963; //3^(-1/3)=0.57735026918963
       
        sector=0;  
        if(Usbeta>0)
            sector+=1;
       
        if(-Usbeta+1.732*Usalfa>0)
            sector+=2;
       
        if(Usbeta+1.732*Usalfa<0)
            sector+=4;
 
        X=1.732*Usbeta*PWM_MAX_COUNT;
        Y=(1.732*Usbeta+3*Usalfa)*PWM_MAX_COUNT/2;
        Z=(1.732*Usbeta-3*Usalfa)*PWM_MAX_COUNT/2;
        switch(sector){
            case 1:t1=Z;t2=Y;break;
            case 2:t1=Y;t2=-X;break;
            case 3:t1=-Z;t2=X;break;
            case 4:t1=-X;t2=Z;break;
            case 5:t1=X;t2=-Y;break;
            case 6:t1=-Y;t2=-Z;break;
        }
       
        t1=t1*Umax/Vdc;
        t2=t2*Umax/Vdc;
       
        if(t1+t2>PWM_MAX_COUNT){
            t1=PWM_MAX_COUNT*t1/(t1+t2);
            t2=PWM_MAX_COUNT*t2/(t1+t2);
        }
       
        ta=(PWM_MAX_COUNT-t1-t2)/2;
        tb=ta+t1;
        tc=tb+t2;
       
        switch(sector){
            case 1:*u=tb;*v=ta;*w=tc;break;
            case 2:*u=ta;*v=tc;*w=tb;break;
            case 3:*u=ta;*v=tb;*w=tc;break;
            case 4:*u=tc;*v=tb;*w=ta;break;
            case 5:*u=tc;*v=ta;*w=tb;break;
            case 6:*u=tb;*v=tc;*w=ta;break;
        }
}

int main (){
    double angle=0;
    double u,v,w;
    while(angle<4*M_PI){
        svpwm(310,550,angle,&u,&v,&w);
        printf("%d,%d,%d\n",(int)u,(int)v,(int)w);   
        angle+=2*M_PI*0.01;
    }
    system("Pause");
}
關閉窗口

相關文章

主站蜘蛛池模板: 欧美成人精品一区二区 | 色77777 | 超碰免费在线 | 日本一级大毛片a一 | 欧美xxxx性| 久久久久久久九九九九 | 国产激情小说 | 青青草手机视频 | 福利视频网址 | 欧美日韩精品在线观看 | 国产精品一区二区三区四区 | 日韩精品视频在线免费观看 | 日韩中文字幕视频 | 欧美国产日韩一区 | 欧美日韩国| 久久综合在线 | 91麻豆精品国产91久久久久久 | 一级国产片 | 日本免费视频 | 亚洲精品国产精品国自产观看浪潮 | 日韩a在线 | 久久精品国产一区 | 成人a在线 | 操操操操操操 | 免费看黄色aaaaaa 片 | 日韩欧美高清 | 中文字幕偷拍 | 一区二区三区四区视频 | 黄色影视 | 国产精品福利视频 | 午夜精品久久久久久久久久久久 | 久久精品视频国产 | 日本黄色三级视频 | 亚洲第十页 | 国产香蕉在线 | 性久久久久久久 | 日韩中文在线视频 | 久久久久久免费 | 中文字幕二区 | 国产成人一区二区三区 | 免费的一级片 |