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.

[参考译文] tms570ls3137 drv8301 Clarke 和 ADC 中断

Guru**** 2473960 points
Other Parts Discussed in Thread: TMS570LS3137, MOTORWARE

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/672956/tms570ls3137-drv8301-clarke-and-adc-interrupt

主题中讨论的其他器件:TMS570LS3137MOTORWARE

我有  DRV8301-LS31-KIT。  我有 TMS570LS3137 控制器。 我想使用场定向控制来控制我的电机。 此外、我希望从正交编码器获得反馈。 换言之、我想用它的传感器而不是无传感器控制来控制我的电机。 为此 、我使用的是  

Motorware_1_00_03\sw\solutions\coder_speed\boards\drv8301kit_revD\hercules\tms570ls3137\projects 

此外、我使用的是 Code Composer Studio v5 、因此我可以导入 projetcs 并使用微控制器控制我的电机。  

Q1)  

我对代码中的 Clarke 变换算法(clarkeHandle)感到惊讶、因为它与下面的理论方程不同。

Ialfa=IA
Ibeta=(ia+2*ib)/sqrt (3)

但是在该方案中;

pOutVec->Value[0]= pInVec->Value[0]* alpha_SF;
pOutVec->Value[1]=(pInVec->Value[0]+(pInVec->Value[1]* 2))* BETA_SF;

alpha_sf = 1.00且 beta_sf = 1.00

我认为该 BETA_SF 应为1/sqrt (3)而不是1.00。 我无法理解为什么 BET_SF 值为1.00?

Q2)  我的 电机电流通过低侧感测电阻进行测量。 从感应电阻器低电平读取正确的电机电流  
A 侧和 B 侧桥臂开关应接通。 换句话说、当低侧开关导通时、我应该通过 ADC 读取感测电压。 古怪  
部分代码正在执行该中断?

 

Q3) 我的电机额定电流为7.1安。 然而、在中、代码速度饱和为0.71A (速度控制输出为电流基准)。 该1/10的标度来自哪里?

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

    我将您的问题转交给我的一位具有电机控制经验的同事、以便了解他是否可以解决您的问题并提供指导。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Denizdeniz、

    请在 doc 文件夹中找到应用手册:

    C:\ti\hercules\MotorWare\v1.0.3.03\sw\solutions\ccs_encoder_speed\boards\drv8301kit_revD\hercules\tms570ls3137\projects\ccs5\project01\docs
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,QJ Wang。 感谢您的快速回答、但本文档不 包含我的问题的解决方案。 如果您能为我提供更多帮助、我将不胜感激。

     

    谢谢、此致
    Denizdeniz

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

    有人可以帮助我吗?

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

    您好!

    Q1)您回答正确。 alpha_sf =1、而 beta_sf=1/sqrt (3)

        换算系数需要通过调用函数来设置:

        Clarke_setScaleFactors (Clarke_handle clarkeHandle、const _IQ alpha_SF、const _IQ beta _SF)

    Q2)电流由低侧感应电阻器测量、ADC 采样由 PWM 信号触发。  如果 NHET 被用来生成 PWM 信号、那么触发器被设计在 NHET RAM 中。

    ADC ISR 为:

    adc1Group0Interrupt (void);

    adc1Group1中断(空);

    adcGetData (adcREG1、adcGROUP1、obj->AdcResults1)

    DRV_GET_adcData (DRV_Handle handle)

    -->用于读取 ADC 结果 (以 drv.h 为单位)

    Q3) PID_setGains (drv->pidSpdHandle、drv->velocityKp、(drv->velocityKi * T)、(drv->velocityKd / T));

    PID_setMinMax (drv->pidSpdHandle、-0.71、0.71);

      最小值和最大值设置为-0.71和0.71。 此值映射到您的最小和最大电流输出值。 应根据具体应用对其进行校准。