打印

DIY 交流异步电机控制器!!口号 能走多远就走多远!!!!!!!

[复制链接]
楼主: electron0101
手机看帖
扫描二维码
随时随地手机跟帖
21

这玩意就玩玩而已

看国内变频器厂家 没几个真正实现矢量控制的

使用特权

评论回复
22
zhousd| | 2009-5-15 10:40 | 只看该作者

18年前俺设计过一款单相交流调速器,

是为了杜绝PWM方案调制的噪音,用于交流风扇自然风的发生。

原理非常的简单,把交流变直流---再变交流。通过调节直流电压控制输出的交流电压,用8031做主控制。

当时由于成本的关系,没法普极,就是再有钱的人也没法拥有这么牛皮的无噪仿真风(有钱有什么了不起!),这就是搞技术的其中一个乐趣。

使用特权

评论回复
23
electron0101|  楼主 | 2009-5-15 19:55 | 只看该作者

同意!!!!!!!!!!!

31楼: 这玩意就玩玩而已 

看国内变频器厂家 没几个真正实现矢量控制的----------------------
---------------------------------------------------------------


目前硬件 基本无问题

就是速度 估算 !还没有 搞通!!

 

使用特权

评论回复
24
electron0101|  楼主 | 2009-5-15 19:56 | 只看该作者

Netjob 能否提供些 速度估算的资料???

Netjob  能否提供些 速度估算的资料???

使用特权

评论回复
25
electron0101|  楼主 | 2009-5-15 20:01 | 只看该作者

最近除了吃饭睡觉 就是 调 程序!

最近除了吃饭睡觉 就是 调  程序!

上班调上班的程序 下班 调  下班的程序

一个月 也没有晒几天太阳.

日子过的太快了  NND  一晃就星期五了 
 太快了 过的心慌!!!

使用特权

评论回复
26
因特网用户| | 2009-5-15 20:24 | 只看该作者

都说了 可用Mras估算速度

还有其他的方法 
你自己TI网站上面找代码去,肯定有
TI还有用神经网络估算速度的例子

使用特权

评论回复
27
huangqi412| | 2009-5-16 08:53 | 只看该作者

只会三相无刷无感电机。。。

使用特权

评论回复
28
electron0101|  楼主 | 2009-5-25 14:08 | 只看该作者

找到了 2个 这个是居于 同步估算

使用特权

评论回复
29
electron0101|  楼主 | 2009-5-25 14:08 | 只看该作者

滑差

使用特权

评论回复
30
electron0101|  楼主 | 2009-5-25 14:18 | 只看该作者

基于电流模型

使用特权

评论回复
31
electron0101|  楼主 | 2009-5-25 14:19 | 只看该作者

基于????????????

使用特权

评论回复
32
electron0101|  楼主 | 2009-5-25 15:10 | 只看该作者

Smopos

extern int isalfa;                                /* Q15 alfa axis phase current */                        
extern int isbeta;                                /* Q15 beta axis phase current */
extern int isalfae;                                /* Q15 alfa axis estimated current */
extern int isbetae;                                /* Q15 beta axis estimated current */    
extern int vsalfa;                                /* Q6 alaf axis phase voltage */        
extern int vsbeta;                                /* Q6 beta axis phase voltage */
extern int esalfa;                                /* Q6 alfa axis back EMF */
extern int esbeta;                                /* Q6 beta axis back EMF */
extern int zalfa;                                /* Q6 alfa axis sliding control */
extern int zbeta;                                /* Q6 beta axis sliding control */
extern int quadrant;                            /* determine the rotor angle quadrant */                            
extern int thetatemp;
extern int thetae;                                /* estimated rotor position angle */
extern int tana[180];
extern int gujun;

void Smopos(void)

    Frac16 tempf1;
    Frac16 tempf2;
    Frac16 tempf3;
     long int temp32;    
     long int temp33;
     int n1;
    int n2;    
     int fsmopos=26693;                            /* motor dependent plant matrix */
     int gsmopos=495;                            /* motor dependent control gain */
     int kslf=1980;                                /* sliding control filter gain */
     int kslide=1010;                             /* sliding mode control gain */

/* Sliding Mode Current Observer... */
  temp32=(L_mult(fsmopos,isalfae))>>16;                            /* Q15 */
  temp33=(L_mult(gsmopos,(vsalfa-esalfa-zalfa)))>>7;            /* Q15 */
  isalfae=(int)(temp32+temp33);                                    /* Q15 */
  temp32=(L_mult(fsmopos,isbetae))>>16;                            /* Q15 */
  temp33=(L_mult(gsmopos,(vsbeta-esbeta-zbeta)))>>7;            /* Q15 */    
  isbetae=(int)(temp32+temp33);                                    /* Q15 */

/* Sliding Control Calculator... */
  if(isalfae>isalfa)
  zalfa=kslide;                                                    /* Q6 */
  else if(isalfae<isalfa)
  zalfa=-kslide;                                                /* Q6 */
  else 
  zalfa=0;                                                        /* Q6 */
  
  if(isbetae>isbeta)
  zbeta=kslide;                                                    /* Q6 */
  else if(isbetae<isbeta)
  zbeta=-kslide;                                                /* Q6 */
  else    
  zbeta=0;                                                        /* Q6 */
  
/* Back EMF Calculator... */
  temp32=(L_mult(kslf,(zalfa-esalfa)))>>16;                        /* Q6 */
  esalfa=esalfa+(int)(temp32);                                    /* Q6 */
  temp33=(L_mult(kslf,(zbeta-esbeta)))>>16;                        /* Q6 */
  esbeta=esbeta+(int)(temp33);                                    /* Q6 */
  
  
  
/* Rotor Angle Calculator... */  
/* To determine the quadrant */

  tempf2=-esalfa;
  tempf1=esbeta;
  
//  gujun=tempf1;
 // gujun=tempf2;

  if(tempf2>0)                                                    /* 0 to 180 degree */
  {
      if(tempf1>0)                                                /* 0 to 90 degree */
      {
          if(tempf1>tempf2)                                        /* 0  to 45 degree */                                  
              quadrant=1;                                            /* 45 to 90 degree */
          else
               quadrant=2;
      }                             
      else                                                        /* 90 to 180 degree */
       {
           tempf1=-tempf1;
          if(tempf1>tempf2)                                                                                                                  
              quadrant=4;                                            /* 135 to 180 degree */                
      else
               quadrant=3;                                            /* 90  to 135 degree */
      } 
  } 
   
  else                                                             /* 180 to 360 degree */                                         
  {
      tempf2=-tempf2;                                            
    if(tempf1>0)                                                /* 270 to 360 degree */
      {
          if(tempf1>tempf2)                                  
              quadrant=8;                                            /* 315 to 360 degree */                
          else
               quadrant=7;                                            /* 270 to 315 degree */
      }                             
      else
       {
           tempf1=-tempf1;                                            /* 180 to 270 degree */
          if(tempf1>tempf2)                                  
              quadrant=5;                                            /* 180 to 225 degree */                
          else
               quadrant=6;                                            /* 225 to 270 degree */
      }     
  }

/* To calculate the tan(theta) */
  if(tempf1<tempf2)
  tempf3=div_s(tempf1,tempf2);                                    /* cotangent value */
  
  else
  tempf3=div_s(tempf2,tempf1);                                    /* tangent value */


  if(tempf3<tana[23])
  n1=0;
  else 
  n1=1;
  
  thetatemp=0;
  for(thetatemp=0;thetatemp<23;thetatemp++)
  {
  if(tempf3>(tana[22*n1+thetatemp]))
  n2=thetatemp;    
  else 
  break;
  }
     
  thetae=23*n1+n2;                                                /* calculalte the rotor position angle (0 to 45) */
  switch(quadrant)
  {
      case(1):                            
    {
         thetae=thetae;
    }break;
    case(2):                            
    {
         thetae=90-thetae;
    }break;
    case(3):                            
    {
         thetae=90+thetae;
    }break;
    case(4):                            
    {
         thetae=180-thetae;
    }break;
    case(5):                            
    {
         thetae=180+thetae;
    }break;
    case(6):                            
    {
         thetae=270-thetae;
    }break;
    case(7):                            
    {
         thetae=270+thetae;
    }break;
    case(8):                            
    {
         thetae=360-thetae;
    }break;
  }
  
  
}

使用特权

评论回复
33
electron0101|  楼主 | 2009-5-25 15:18 | 只看该作者

NND 总算找到了呵呵!!!

使用特权

评论回复
34
McuPlayer| | 2009-5-25 17:14 | 只看该作者

开始流行玩电力电子了?

使用特权

评论回复
35
electron0101|  楼主 | 2009-5-25 21:05 | 只看该作者

每次去电脑 城!到处 都是 .........寒啊!

使用特权

评论回复
36
electron0101|  楼主 | 2009-5-27 12:01 | 只看该作者

同步转速减去 转差不就是 实际的速度么

使用特权

评论回复
37
ocon| | 2009-5-27 21:34 | 只看该作者

以前在研究所混的时候看别人弄过,

转起来不难,难的是产品化。

使用特权

评论回复
38
electron0101|  楼主 | 2009-5-28 10:20 | 只看该作者

呵呵 转起来不难 但是转的好难啊!!

低速转的 好更难!!

使用特权

评论回复
39
itelectron| | 2009-6-20 19:34 | 只看该作者

换马甲继续!写CODE中

使用特权

评论回复
40
chenglcd| | 2009-6-21 16:40 | 只看该作者

我也很感兴趣这个

不过应该停有难度

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则