- 积分
- 372
- 回帖
- 0
- 西莫币
-
- 贡献
-
- 威望
-
- 存款
-
- 阅读权限
- 20
- 最后登录
- 1970-1-1
该用户从未签到
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 芦席一小生 于 2012-4-5 08:50 编辑
异步电机,采用矢量控制算法,无速度环,转矩电流指令值由油门踏板控制
测速传感器采用64齿的旋转编码器,输出两相信号到DSP,使DSP检测边沿,电机旋转一周,QEP电路能计数256次。
采用M法测速是没有问题的。
采用T法测速:每计数16次(即来了16个边沿信号),便计算一次速度,时间由PWM波的周期计算得到
现在碰到这样一个问题,电机刚启动时,有个蹭的一声异响,然后电机开始转,然后松开油门,电机停转,然后突然又蹭蹭的突然转几下,而且检测到的速度值有时候还会很大。
附上程序代码:
interrupt void T4UFINT_ISR(void)
{
long flag_u,T3cnt;
//下溢中断,代表电机反转
T3cnt=EvbRegs.T3CNT;
flag_u=EvbRegs.GPTCONB.bit.T3STAT;
if(flag_u==1)
{
if(flag_o==1)
{
Time=count1*83+(T3cnt-T3cnt_o)/75; //83为PWM波周期,单位为us,count1为三角波周期计数
}
if(flag_o==0)
{
Time=count1*83+(T3cnt+T3cnt_o)/75;
}
}
if(flag_u==0)
{
if(flag_o==1)
{
Time=count1*83-(T3cnt+T3cnt_o)/75;
}
if(flag_o==0)
{
Time=count1*83+(T3cnt_o-T3cnt)/75;
}
}
T3cnt_o=T3cnt;
flag_o=flag_u;
wr=402123860/Time; //_IQ10(wr)=(16*2*pi*1000000/256)*1024/Time
if(Time>402123860)
{
wr=0;
}
Time=0;
count1=0;
EvbRegs.EVBIFRB.bit.T4UFINT=1;
PieCtrl.PIEACK.all|=PIEACK_GROUP5;
EvbRegs.T4CNT=0x0010;
} |
|