This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/DRV8301-69M-KIT:实验12b 编码器分辨率问题

Guru**** 1821780 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/929686/ccs-drv8301-69m-kit-lab-12b-problem-with-encoder-resolution

器件型号:DRV8301-69M-KIT

工具/软件:Code Composer Studio

您好!

我使用 的是 TMDSCNCD28069MISO Piccolo F28069M controlCARD。 我正在使用实验12b、编码器分辨率为18000 PPR、我的 BLDC 电机有5个极对。 我将编码器分辨率定义如下  

#define USER_MOTOR_ENCODER_LINES     (18000)

在编译之后、我有一条警告: #62-D:整数运算结果超出范围

我认为、为了发出警告、寄存器 QPOSMAX 的值等于 6462 (我认为对于分辨率为18000的编码器、该值应等于4*18000=72000)、下一个问题是、当我手动将电机1顺时针旋转时 、"st_obj.vel.conv.POR_mrev "中的值会增加到10、 接下来减小、旋转一周 后"st_obj.vel.conv.POR_mrev  大约等于-8.5。    

   

是否有办法解决这个问题?

感谢你的帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如下所示更改定义

    #define USER_MOTOR_ENCODER_LINES     (18000升)

    #define USER_MOTOR_ENCODER_LINES     (18000.0F)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    感谢你的答复。 我更改  了 USER_MOTOR_ENCODER_LINESS_LINESS_LINUTERINAINSING 的定义和 警告 、令人失望的是、寄存器 QPOSMAX 的值是正确的71998。 我仍然遇到"st_obj.vel.conv.POR_mrev"问题、当寄存器 QPOSCNT = 6465时、该变量等于1

     当手动将电机1顺时针旋转时、寄存器 QPOSCNT 中的值等于71998、 "st_obj.vel.conv.POR_mrev" 等于 -8、86

      "mech_angle_gain"是否存在将编码器计数转换为 Q24机械角度的问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    确保电机和编码器的物理连接正确完成、运行 lab02b 以识别电机参数、运行 lab12a 以识别系统的惯性和摩擦。

    顺便说一下、对于具有编码器的 PMSM、需要进行校准、校准将在示例实验中自动完成。