找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

Flux电机有限元分析教程西莫团购入口 | 奖励入口当当网购物入口 | 奖励入口欢迎使用!西莫论坛App开放下载Motor-CAD电机多物理域设计教材购买入口 | 奖励入口
★新会员论坛须知★《西莫电机技术》第39期发售火热进行中Flux电机电磁阀有限元分析教程团购入口 | 奖励入口论坛微信公众平台欢迎入驻
西莫电机及相关产品供需交流群开放邀请★ 论坛VIP会员申请 ★Motor-CAD.MANATEE电磁热振动噪声教程 | 奖励入口西莫团队欢迎您的加盟!
宣传推广合作请联系QQ:25941174西莫电机论坛微信群正式开放Flux变压器与电抗器有限元分析团购入口 | 奖励入口西莫电机论坛技术版区QQ群汇总
查看: 3865|回复: 1

[求助] 28335 eqep角度计算

[复制链接]

该用户从未签到

发表于 2012-9-5 14:14 | 显示全部楼层 |阅读模式 来自: 中国浙江杭州

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

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

×
我用Eqep测试角度时不正确,我的方法是这样的:
1、逆时针转动电机让编码器过零点,即Z相脉冲出现跳变沿,此时我观察EQep1Regs.QPOSCNT已经清零了,然后给电机通电,让电机吸到逆时针方向最近的d轴,记录EQep1Regs.QPOSCNT的计数值为477,我把这个值给CalibratedAngle;
2、上电时我根据编码器的UVW确定上电初始电角度,并把这个角度转化为EQep1Regs.QPOSCNT的计数值,比如UVW信号为101,即认为电角度处于0~60°区间,我取中间值30°,(电机为4对极,编码器为2500线),把电角度转化为EQep1Regs.QPOSCNT的计数值:     
转换公式如下:
Init_MechTheta =  (10000/360) *30/4    //Init_MechTheta  为上电时的初始机械角度,这样转换电角度,便于统一计算

tmp1 = (long)(((long)Init_MechTheta + (long)g_POSCNT_Err)*(long)qep1.MechScaler);   // Q0*Q30 = Q30
//g_POSCNT_Err = (当前周期的EQep1Regs.QPOSCNT计数值—上周期的EQep1Regs.QPOSCNT计数值)
//qep1.MechScaler为_IQ30(0.25/2500)

   qep1.MechTheta = (tmp1>>6);           // Q30 -> Q24
   qep1.MechTheta &= 0x00FFFFFF;                       
  // The following lines calculate p->elec_mech   
  qep1.ElecTheta = 4*qep1.MechTheta;  // Q0*Q24 = Q24
  qep1.ElecTheta &= 0x00FFFFFF;
3、电机旋转过编码器零点后,统一采用如下算法:
qep1.RawTheta = EQep1Regs.QPOSCNT + qep1.CalibratedAngle; // raw theta = current pos. + ang. offset from QA
  if(qep1.RawTheta < 0)
  {
   qep1.RawTheta = qep1.RawTheta + EQep1Regs.QPOSMAX;
  }
  if(qep1.RawTheta > EQep1Regs.QPOSMAX)
  {
   qep1.RawTheta = qep1.RawTheta - EQep1Regs.QPOSMAX;  
  }
  tmp1 = (long)((long)qep1.RawTheta*(long)qep1.MechScaler);   // Q0*Q30 = Q30                                       
      qep1.MechTheta = (tmp1>>6);           // Q30 -> Q24
      qep1.MechTheta &= 0x00FFFFFF;
      // The following lines calculate p->elec_mech   
  qep1.ElecTheta = 4*qep1.MechTheta;  // Q0*Q24 = Q24
  qep1.ElecTheta &= 0x00FFFFFF;

结果如下:
1、针对第2步,这样计算起始角度,给q轴电流,电机不能旋转,后来我就让g_POSCNT_Err 每隔1个控制周期(100us)累加一次,直到出现Z脉冲,然后采用第3步的角度计算方法,电机顺时针方向转起来,转到编码器Z脉冲的地方,就停止了;
2、请大家帮我看看我的计算方式有什么问题。
3、我有点疑问:qep1.CalibratedAngle是编码器Z相信号(即编码器零点)与电机A相轴线的夹角,第1步的测试方法对吗?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过

该用户从未签到

 楼主| 发表于 2012-9-5 14:20 | 显示全部楼层 来自: 中国浙江杭州
如果大家看到我的问题,觉得表达不清楚的地方,劳烦提出来。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

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

本版积分规则

西莫电机论坛微信公众平台欢迎您的关注!

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

GMT+8, 2024-12-23 15:40 , Processed in 0.044953 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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