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.

[参考译文] DRV8312-69M-KIT:DRV8312-69M-KIT

Guru**** 2534590 points
Other Parts Discussed in Thread: DRV8312, MOTORWARE, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/832121/drv8312-69m-kit-drv8312-69m-kit

器件型号:DRV8312-69M-KIT

您好!


-->我想使用霍尔传感器控制 NEMA 17电机(随 DRV8312套件提供)。 因此、我将折叠折页文档(sprabz4.pdf)中介绍的 BLDC_sensored 项目的6个构建级别、并且我不会放弃调整 PI 增益所必须采取的方法、增加/减少变量"CurrentSet"的润滑脂以调整转矩命令。 我不清楚。 此外,输出"speed1.Speed"不会移动,并且被阻止到值(-8.163487077(Q-value(24)),   当我将标志 IloopFlag 置为1时,速度会达到一个真正的高速,这是未知的原因。

-->此外,在级别6中,当我将标志“EnableFlag”设置为1时,电机开始缓慢旋转,然后当标志“SpeedLoopFlag”亮起时,速度突然以接近最大的速度旋转。 "speed1.Speed"输出的值仍然与上述值相同、并且不会改变。

-->此外,在构建级别4中,我想顺时针和逆时针旋转电机,我用参考设计提供的代码反转换向序列所做的就是。 但问题是、在顺时针方向上、扭矩似乎不够(强度不如逆时针顺序)。 因此、当我以逆时针方向启动电机时、电机可以轻松地移动负载、而当我以顺时针方向启动电机时、电机直到提供手动脉冲才能移动负载。

最后,我的最后一个问题是,是否有义务按照 Motorware 的实验(20)使用我的 BLDC_Sensored 项目? 如果是,那是什么?

感谢您阅读我的内容、并关注我的问题。

此致。




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

    如果您将 F28069M controlCARD 与 DRV8312-KIT 搭配使用、则需要按如下所示更改.cmd 文件中 IQmath 的某些内存分配、因为示例项目中的原始.cmd 文件用于 F28069。

    FPUTABLES:origin = 0x3FD590,length = 0x0006A0 //引导 ROM 中的 FPU 表*/
    IQTABLES:origin = 0x3FDC30,length = 0x000B50 //引导 ROM 中的 IQMath 表*
    IQTABLES2:origin = 0x3FE780,length = 0x00008C //引导 ROM 中的 IQMath 表*
    IQTABLES3:origin = 0x3FE80C,length = 0x0000AA /*引导 ROM 中的 IQMath 表*/

    2.请确保霍尔传感器和电机线路的连接顺序正确、您可以在构建级别4中始终将"ClosedFlag"设置为"false"、以检查计算出的反馈速度和霍尔传感器的输入 是否正确。

    构建级别4通过开环控制运行电机、仅用于验证霍尔传感器输入和反馈速度、不支持双向运行。

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

    首先、非常感谢您的回复。

      然后、更改.cmd 文件中的代码后、speed_PR 模块运行良好、而 speed1.speed 会发生变化并显示良好的值。

     

      但是、在5级和6级的闭环中仍然存在相同的问题、换向序列似乎不适合顺时针旋转电机(逆时针旋转得完美)。 我关于改变方向的代码如下:

     

    //  连接 PWM_DRV 模块的输入并调用 PWM 信号生成

    //  更新宏。

    //----------------------------------

      if (ClosedFlag=true)

      {

          IF (HALL1.CmtnTrigHall=0x7FFF)

          {

     

              PreviousState = pwm1.CmtnPointer;

     

              如果(DIRECTION =false){

                  //对以下 if-else-if 语句进行注释

                  //换向状态的反相霍尔逻辑。

                  IF (HALL1.HallGpioAccepted == 5)

                      pwm1.CmtnPointer = 0;

     

                  否则、如果(HALL1.HallGpioAccepted=1)

                      pwm1.CmtnPointer = 1;

     

                  否则、如果(HALL1.HallGpioAccepted == 3)

                      pwm1.CmtnPointer = 2;

     

                  否则、如果(HALL1.HallGpioAccepted == 2)

                      pwm1.CmtnPointer = 3;

     

                  否则、如果(HALL1.HallGpioAccepted == 6)

                      pwm1.CmtnPointer = 4;

     

                  否则、如果(HALL1.HallGpioAccepted == 4)

                      pwm1.CmtnPointer = 5;

              }

              否则、如果(DIRECTION == true){

     

                 //对以下 if-else-if 语句进行注释

                  //用于换向状态的非反相霍尔逻辑。

                  IF (HALL1.HallGpioAccepted==2)

                      pwm1.CmtnPointer = 0;

     

                  否则、如果(HALL1.HallGpioAccepted == 6)

                      pwm1.CmtnPointer = 1;

     

                  否则、如果(HALL1.HallGpioAccepted == 4)

                      pwm1.CmtnPointer = 2;

     

                  否则、如果(HALL1.HallGpioAccepted == 5)

                      pwm1.CmtnPointer = 3;

     

                  否则、如果(HALL1.HallGpioAccepted=1)

                      pwm1.CmtnPointer = 4;

     

                  否则、如果(HALL1.HallGpioAccepted == 3)

                      pwm1.CmtnPointer = 5;

              }

     

          }  // Hall1.CmtnTrigHall = 0x7FFF

      }   // ClosedFlag=true

     

      其他

          pwm1.CmtnPointer =(int16) mod1.Counter;

     

    pwm1.DutyFunc = rmp2.out;

    BLDCPWM_MACRO (pwm1)

     

    //方向= false 以逆时针方向旋转电机,方向= true 以顺时针方向旋转电机。

     

    电机可以在两个方向上旋转,但在两个方向(顺时针方向)中的一个方向旋转,会产生奇怪的噪音(不正常)。 在这个方向上、SPED_PR 模块不工作、并且这个模块的所有输出被冻结。

     

    -->此外,在构建级别6中,我现在可以更改参考值。 但问题是当我把一个速度基准输入(SpeedRef)作为示例0.5 (Q-Value 24)时。 电机开始缓慢地旋转至0.21、然后在3或4秒内保持此恒定速度、然后突然将其速度增加至值0.5。

    (改变方向的问题在这里也是一样的)。

     

    -->最后,我是否必须折叠实验5d、5e 或12? 是否有必要像5级中所说的那样调整 PI 增益?

     

      感谢您的耐心和帮助。

     

      此致

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

    如 上所示、您需要根据反向旋转的霍尔逻辑正确设置换向状态、因为示例项目仅支持单方向旋转。 您还必须更改 MOD6CNT_MACRO 以进行反向旋转。

    2.是的、如果您还想实现良好的性能、则需要根据您的电机调整 PI 增益。

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

    感谢您的回复。 为了调整 BLDC 项目的 PI 增益、我必须特别关注哪些实验?
    此外、我还完成了您对 MOD6CNT_MACRO 的更改以及换向状态代码的更改所说的内容。 电机可以朝另一个方向旋转、但我需要提供手动脉冲以产生启动扭矩、最后电机开始运行。 问题在于、电机在这个新方向上会发出很多声音、而在另一个方向上不会发出声音。 这似乎不是正常的... 您是否了解此问题的原因?

    感谢您的阅读。

    此致。

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

    1.您可以通过以下链接下载 c2000ware

    http://www.ti.com/tool/c2000ware

    您可以找到有关调优 PID 主题的文档(PID 控制器调优指南.pdf)

    C:\ti\c2000Ware_2_00_00_02\libraries\control\DCL\c28\docs

    2.请确保换向状态的霍尔逻辑在两个方向旋转时都是正确的、您可以先尝试构建级别4来调整相关模块、然后在以下级别中启用速度或电流闭环。

    请使用霍尔输出或换向信号捕获电流波形、以帮助理解您的问题吗?