西莫电机圈

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 2114|回复: 8

[求助] 求助2812矢量控制原程序区间判断说明

[复制链接]

该用户从未签到

发表于 2011-6-24 13:39 | 显示全部楼层 |阅读模式

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

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

x
void svgendq_calc(SVGENDQ *v)
{        

        _iq Va,Vb,Vc,t1,t2;
        _iq sector = 0;  /* sector is treated as Q0 - independently with global Q */
                                                                                                                                       
/* Inverse clarke transformation */
    Va = v->Ubeta;
    Vb = _IQmpy(_IQ(-0.5),v->Ubeta) + _IQmpy(_IQ(0.8660254),v->Ualfa);  /* 0.8660254 = sqrt(3)/2 */
    Vc = _IQmpy(_IQ(-0.5),v->Ubeta) - _IQmpy(_IQ(0.8660254),v->Ualfa);  /* 0.8660254 = sqrt(3)/2 */

/* 60 degree sector determination */
    if (Va>_IQ(0))                                 
       sector = 1;
    if (Vb>_IQ(0))
       sector = sector + 2;
    if (Vc>_IQ(0))   
       sector = sector + 4;
      
/* X,Y,Z (Va,Vb,Vc) calculations  */
    Va = v->Ubeta;                                                  /* X = Va */
    Vb = _IQmpy(_IQ(0.5),v->Ubeta) + _IQmpy(_IQ(0.8660254),v->Ualfa);   /* Y = Vb */
    Vc = _IQmpy(_IQ(0.5),v->Ubeta) - _IQmpy(_IQ(0.8660254),v->Ualfa);   /* Z = Vc */
      
    if (sector==1)  /* sector 1: t1=Z and t2=Y (abc ---> Tb,Ta,Tc) */
    {
       t1 = Vc;
       t2 = Vb;
       v->Tb = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));      /* tbon = (1-t1-t2)/2 */
       v->Ta = v->Tb+t1;           /* taon = tbon+t1 */
       v->Tc = v->Ta+t2;           /* tcon = taon+t2 */
    }
    else if (sector==2)  /* sector 2: t1=Y and t2=-X (abc ---> Ta,Tc,Tb) */
    {
       t1 = Vb;
       t2 = -Va;
       v->Ta = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));      /* taon = (1-t1-t2)/2 */
       v->Tc = v->Ta+t1;           /* tcon = taon+t1 */
       v->Tb = v->Tc+t2;           /* tbon = tcon+t2 */
    }      
    else if (sector==3)  /* sector 3: t1=-Z and t2=X (abc ---> Ta,Tb,Tc) */
    {
       t1 = -Vc;
       t2 = Va;
       v->Ta = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));      /* taon = (1-t1-t2)/2 */
       v->Tb = v->Ta+t1;           /* tbon = taon+t1 */
       v->Tc = v->Tb+t2;           /* tcon = tbon+t2 */
    }   
    else if (sector==4)  /* sector 4: t1=-X and t2=Z (abc ---> Tc,Tb,Ta) */
    {
       t1 = -Va;
       t2 = Vc;
       v->Tc = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));      /* tcon = (1-t1-t2)/2 */
       v->Tb = v->Tc+t1;           /* tbon = tcon+t1 */
       v->Ta = v->Tb+t2;           /* taon = tbon+t2 */
    }   
    else if (sector==5)  /* sector 5: t1=X and t2=-Y (abc ---> Tb,Tc,Ta) */
    {
       t1 = Va;
       t2 = -Vb;
       v->Tb = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));      /* tbon = (1-t1-t2)/2 */
       v->Tc = v->Tb+t1;           /* tcon = tbon+t1 */
       v->Ta = v->Tc+t2;           /* taon = tcon+t2 */
    }   
    else if (sector==6)  /* sector 6: t1=-Y and t2=-Z (abc ---> Tc,Ta,Tb) */
    {
       t1 = -Vb;
       t2 = -Vc;
       v->Tc = _IQmpy(_IQ(0.5),(_IQ(1)-t1-t2));      /* tcon = (1-t1-t2)/2 */
       v->Ta = v->Tc+t1;           /* taon = tcon+t1 */
       v->Tb = v->Ta+t2;           /* tbon = taon+t2 */
    }  
      
    v->Ta = _IQmpy(_IQ(2),(v->Ta- _IQ(0.5)));//_IQ(0.5)
    v->Tb = _IQmpy(_IQ(2),(v->Tb- _IQ(0.5)));//_IQ(0.5)
    v->Tc = _IQmpy(_IQ(2),(v->Tc- _IQ(0.5))); //_IQ(0.5)      

}
程序判断区间克拉克逆变换时使用_IQ(-0.5),但是后来计算导通时间时使用_IQ(0.5),为什么?

我认为这个程序首先进行了两相坐标到三相坐标的变化后,根据三相坐标中Va、Vb、Vc的值来判断电压矢量在哪个区间。但是区间判断的过程及IGBT的导通时间确定没有看懂,请各位老师指教。谢谢!
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过

该用户从未签到

发表于 2011-6-24 14:39 | 显示全部楼层
这是TI官网上面的吗?可以把官网的这个文档传上来可以么
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-6-24 16:08 | 显示全部楼层
回复 2# olaole
以上两个分别为区间判断、IGBT导通时间计算程序,一个是头文件。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-6-24 16:09 | 显示全部楼层
回复 2# olaole
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-6-24 16:09 | 显示全部楼层
附件传不上去啊
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2011-6-24 22:16 | 显示全部楼层
你告诉我个网址我去下,或者你把他们先弄成压缩包
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2011-6-25 10:41 | 显示全部楼层
判断扇区的时候系数就是负的,IQ(A,B)是乘法。
你是想知道怎么推出来的为什么是-0.5?
如果换个角度,你自己随便搞几个矢量,然后按这个计算方法顺着算一下,然后你发现是对的。

6楼可以自己去TI的网站找,有PMSM_X,X有若个个数值,针对不同电机、不同位置传感器的程序。不过好像都是定点运算的程序。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2012-2-26 19:46 | 显示全部楼层
请参阅《TMS320*281*DSP应用系统设计》一书 P239
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2012-2-27 09:09 | 显示全部楼层
百度搜索 svgen_dq.pdf
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-5 15:22 , Processed in 0.090758 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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