打印
[电机及执行机构驱动]

pmsm可以开环驱动吗,程序如下,在该程序下,开环抖动,...

[复制链接]
1119|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
codycn|  楼主 | 2016-4-14 22:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PMSM, se, tc, IO, pi

//###########################################################################
//TITLE:       
//
//###########################################################################
//  版本 | 年   月 日         | Description of changes
// =====|=============|====== |===============================================
//  1.0 | 2012  09  18 |       | test
//###########################################################################
#include "DSP2833x_Device.h"     
#include "DSP2833x_Examples.h"   
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "float.h"

#define PI 3.1415926
#define PERIODIC 3750
#define N  200           //开环测试设定细分
#define delta  2* PI/N    //每步角度
#define baserpm 500

interrupt void epwm1_isr(void)
{
  GpioDataRegs.GPBDAT.bit.GPIO39 = 1;

                                                      
   encoder();
   Adconv();
   clark();                                            //clark变换-----------A,B,C->αβ
   park();                                             //park变换------------αβ->dq

//-----------开环测试-------------------------------------------------------
     Ualpha=Kp* cos(i* delta);  //w=2*PI*F
     Ubeta =Kp* sin(i* delta);
     i++;
     if(i>=N){i=1;}
                                          
     svpwm();

   GpioDataRegs.GPBDAT.bit.GPIO39 = 0;

   EPwm1Regs.ETCLR.bit.INT = 1;
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
}

void svpwm(void)
{
   //float Va,Vb,Vc,t1,t2,Ta,Tb,Tc;
   //int sector=0;

//-----------clark逆变换---------------------------------αβ->a,b,c 扇区判断
   Va=Ubeta;
   Vb=(-0.5)* Ubeta+0.8660254* Ualpha;
   Vc=(-0.5)* Ubeta-0.8660254* Ualpha;
   sector=0;
   if(Va>0){sector=1;}
   if(Vb>0){sector=sector+2;}
   if(Vc>0){sector=sector+4;}  

//------------------------X,Y,Z(Va,Vb,Vc),计算导通时间----------------------------
   Va=Ubeta;
   Vb=(0.5)* Ubeta+0.8660254* Ualpha;
   Vc=(0.5)* Ubeta-0.8660254* Ualpha;

  if(sector==3)     //扇区1 100  
   {
    t1=-Vc;
    t2=Va;

    Ta=0.25* (1-t1-t2);
    Tb=Ta+ 0.5* t1;
    Tc=Tb+ 0.5* t2;
   }
   else if(sector==1)//扇区2 110
   {
    t1=Vc;
    t2=Vb;

    Tb=0.25* (1-t1-t2);
    Ta=Tb+ 0.5* t1;
    Tc=Ta+ 0.5* t2;
   }
   else if(sector==5)//扇区3 010
   {
    t1=Va;
    t2=-Vb;

    Tb=0.25* (1-t1-t2);
    Tc=Tb+ 0.5* t1;
    Ta=Tc+ 0.5* t2;
   }
   else if(sector==4)//扇区4 011
   {
    t1=-Va;
    t2=Vc;

    Tc=0.25* (1-t1-t2);
    Tb=Tc+ 0.5* t1;
    Ta=Tb+ 0.5* t2;  
   }
   else if(sector==6)//扇区5 001
   {
    t1=-Vb;
    t2=-Vc;

    Tc=0.25* (1-t1-t2);
    Ta=Tc+ 0.5* t1;
    Tb=Ta+ 0.5* t2;
   }
   else if(sector==2)//扇区6 101
   {
    t1=Vb;
    t2=-Va;

    Ta=0.25* (1-t1-t2);
    Tc=Ta+ 0.5* t1;
    Tb=Tc+ 0.5* t2;
   }
   else               //扇区0,扇区7
   {
    Ta=0.5;
    Tb=0.5;
    Tc=0.5;
   }

   tmr1=Ta* PERIODIC;
   tmr2=Tb* PERIODIC;
   tmr3=Tc* PERIODIC;
   
   EPwm1Regs.CMPA.half.CMPA = tmr1;
   EPwm2Regs.CMPA.half.CMPA = tmr2;
   EPwm3Regs.CMPA.half.CMPA = tmr3;

}

//--------------------------------------循环
void alldeal(void)
{

   for(;;)
   int800=0x0;
}
//***************************end***********************************
//===========================================================================
// No more.
//===========================================================================

相关帖子

沙发
codycn|  楼主 | 2016-4-14 22:43 | 只看该作者
//-----------开环测试-------------------------------------------------------
     Ualpha=Kp* cos(i* delta);  //w=2*PI*F
     Ubeta =Kp* sin(i* delta);
     i++;
     if(i>=N){i=1;}
这是开环给定,用的是ti的28335

开环就是不带任何闭环,也没有编码器角度,相当于无传感器

使用特权

评论回复
板凳
codycn|  楼主 | 2016-4-14 22:49 | 只看该作者
电机接线正确,仿真给tmr1,tmr2,tmr3也为马鞍形

使用特权

评论回复
地板
jie888jie889999| | 2016-4-21 22:06 | 只看该作者
开环驱动 角度估计算法是关键

使用特权

评论回复
5
zhangsc1989| | 2016-4-30 00:35 | 只看该作者
开环控制,好像就是会抖动的吧。电流控制的好,电机不好也会抖动的。不是很懂

使用特权

评论回复
6
destiny_zzj| | 2016-8-2 12:00 | 只看该作者
你想多了,一般我们说的无感驱动都是指把电角度估算出来,而你的测试代码,纯粹就是给电机一个正弦电压罢了,相当于U/F控制,这个测试一半都是用来先期检验硬件是否正常的

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝