打印
[DSP编程]

飞思卡尔DSP8346官方给的程序中用来确定转子位置的算法

[复制链接]
959|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
w1120120736|  楼主 | 2017-1-14 22:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*******************************************************************************
*
* Module: GetActualPositionEl()
*
* Description:
*       The function returns actual electrical position.
*               
* Returns: actual electrical position. -1 <= result <1 correspond to
*                   -PI <= result <= PI
*
* Global Data: None
*
* Arguments: None
*
* Defines:
*   MOTOR_POLE_PAIRS - number of motor pole pairs
*
* Range Issues: None
*
* Special Issues: None
*
*******************************************************************************/
static Word16 GetActualPositionEl(void)
{
        return(mpysu_asm( (ioctl(QTIMER_B1, QT_READ_COUNTER_REG, 0) * PULSES_THETA_COEF_SCALE_W16 * \
                                                MOTOR_POLE_PAIRS), PULSES_THETA_COEF_UF16));
}


#define MOTOR_POLE_PAIRS                                3        /* motor pole pairs */

#define        PULSES_PER_REVOLUTION                        1024/* number of encoder pulses per one revolution */  

#define        PULSES_THETA_COEF_SCALE_W16                (65536 / 4 / PULSES_PER_REVOLUTION)

#define        PULSES_THETA_COEF_UF16                        32768 * (65536.0 / 4.0 / PULSES_PER_REVOLUTION) / PULSES_THETA_COEF_SCALE_W16

这个是飞思卡尔DSP8346官方给的程序中用来确定转子位置的算法,求问这个具体的实现方法有人能受累解释一下么?特别是为什么要乘以32768 * (65536.0 / 4.0 / PULSES_PER_REVOLUTION) 这个数?谢谢大家了,没有多少金币,见谅啊

相关帖子

沙发
zhangmangui| | 2017-1-18 21:41 | 只看该作者
具体不清楚这款的方法  
个人觉得首先确定编码器等反馈回路的线数
也就是转一周来多少个脉冲    然后这样对准参考点开始计数

使用特权

评论回复
板凳
w1120120736|  楼主 | 2017-2-4 21:12 | 只看该作者
zhangmangui 发表于 2017-1-18 21:41
具体不清楚这款的方法  
个人觉得首先确定编码器等反馈回路的线数
也就是转一周来多少个脉冲    然后这样对 ...

谢谢你。好人啊

使用特权

评论回复
地板
zhangmangui| | 2017-2-4 23:56 | 只看该作者

还望多多分享  指点

使用特权

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

本版积分规则

6

主题

11

帖子

0

粉丝