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.

[参考译文] MOTORWARE:Instaspin FOC -特定电机的电机识别失败

Guru**** 2538950 points
Other Parts Discussed in Thread: DRV8305, TMS320F28027F, MOTORWARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1042179/motorware-instaspin-foc---motor-identification-fails-for-specific-motor

器件型号:MOTORWARE
主题中讨论的其他器件:DRV8305TMS320F28027F

您好!

我正在使用 TMS320F28027F 和 DRV8305 EVM 进行 instaspin FOC 测试。 我之前已使用实验2c 和3a 识别并成功运行多个电机。

在电机(GM4108H-120T)上重复此过程、识别过程似乎无法完成。

我已根据此电子表格更新了参数

我将使用以下参数(除电子表格中的参数之外):

#define USER_R_OVER_L_EST_FREQ_Hz (100)

#elif (USER_MOTOR == GM4108H_120T)
#define USER_MOTOR_TYPE                 MOTOR_Type_Pm
#define USER_MOTOR_NUM_POLE_PAIRS       (11)
#define USER_MOTOR_Rr                   (NULL)
#define USER_MOTOR_Rs                   (NULL)
#define USER_MOTOR_Ls_d                 (NULL)
#define USER_MOTOR_Ls_q                 (NULL)
#define USER_MOTOR_RATED_FLUX           (NULL)
#define USER_MOTOR_MAGNETIZING_CURRENT  (NULL)
#define USER_MOTOR_RES_EST_CURRENT      (1.0)
#define USER_MOTOR_IND_EST_CURRENT      (-1.0)
#define USER_MOTOR_MAX_CURRENT          (1.5)
#define USER_MOTOR_FLUX_EST_FREQ_Hz     (9.0)

当我开始识别过程时、电机开始旋转(速度估算看起来关闭)、当电机达到额定磁通计算时、电机停止旋转。 在这一点之后、它会进行非常小的运动、并完成返回过大的磁通和电感值的过程。 电阻看起来正常(5.7欧姆)。

有关如何调试该参数或使用我的参数的内容的指南吗?

谢谢、

David

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

    电机上是否有负载? 电机的额定电流是多少? 您可以尝试根据规范调整 user.h 文件中的标识变量。 电机 。

    #define USER_MOTOR_RES_EST_CURRENT     (1.0)                              // A - 电机额定电流的10-30%

    #define USER_MOTOR_IND_EST_CURRENT     (-1.0)                            // A - 电机额定电流的10-30%、 足以实现旋转

    #define USER_MOTOR_MAX_CURRENT           (5.0)                              // A -  电机额定电流的30~150%

    #define USER_MOTOR_FLUX_EST_FREQ_Hz    (40.0)                           // Hz -电机的10~30%额定频率

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

    您好、Yanming、

    感谢您的输入、我们将尝试对这些数字进行调优。 每个以下链接的额定电流为1.5A:

    https://shop.iflight-rc.com/ipower-motor-gm4108h-120t-brushless-gimbal-motor-pro217

    未加载电机。 应该是吗?

    谢谢、

    David

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

    您可能会尝试使用以下识别参数运行 lab02c、如果仍有任何问题、请分享一些电流波形。

    #define USER_MOTOR_RES_EST_CURRENT     (1.0)                   

    #define USER_MOTOR_IND_EST_CURRENT     (-0.5)                          

    #define USER_MOTOR_MAX_CURRENT           (3.0)                              

    #define USER_MOTOR_FLUX_EST_FREQ_Hz    (60.0)                           

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

    您好、Yanming、  

    我已经尝试过您建议的设置、也尝试了这些值。 电机在斜升期间运转良好、并且 RS 计算准确。 一旦电机达到额定磁通量、它就会停止、不再移动。

    有什么想法可以让它在这个庄园停下来?

    其中一个相位的电流示波器捕获是否足够好、或者最好具有3个相位? 我可以测量三个通过感应电阻器、因为我只有一个电流探头。

    谢谢、

    David

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

    尊敬的 David:

    电机具有什么极对? 您可以尝试将 USER_MOTOR_IND_EST_CURRENT 从(-2.0)增加/减少到(-0.25)、而不更改任何其他内容。

    您可能只需要使用电流探头来测量一相电流。 最好在不同状态下捕获多个波形。 我想知道设置电流是否太大而导致电机失速、或者是否太小而无法启动旋转电机。

    您能否尝试使用 motorWare 中的 lab01c 运行电机、并了解什么基准电流可以使电机平稳旋转?

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

    您好、Yanming、  

    我已经完成了更多的测试。 正如您提到 的、我尝试了从(-2.0)到(-0.25)的 USER_MOTOR_IND_EST_CURRENT 不同值、但没有看到任何改进。

    我使用该电机运行了 lab01b 和 lab01c、lab01b 运行良好、但 lab01c 无法使其旋转(使用不同的 IQ、ID 值)。 为了确保这不是 PCBA 硬件的问题、我使用另一个电机(我在先前的测试中成功识别了该电机)运行了 lab01c 并使其旋转。

    lab01c 失败的原因可能是什么? 可能是电机坏了? 或者可能与它连接不良? 该电机在每个相位和 EVM 之间具有35cm 的24AWG 导线。
    我在使用 EVM 套件时进行了少量修改、它适用于其他电机、因此我很确定问题不是来自此处。

    作为参考、这是我为本例修改的所有变量的列表:
    #define USER_IQ_FULL_SCALE_FREQ_Hz   (110.0)//考虑400RPM 的最大速度和22个极(11对)
    #define USER_IQ_FULL_SCALE_VOLTAGE_V   (23)
    #define USER_ADC_FULL_SCALE_VOLTGE_V   (44.30)
    #define USER_IQ_FULL_SCALE_CURRENT_A     (7.0)
    #define USER_ADC_FULL_SCALE_CURRENT_A    (55.0)
    #define USER_PWM_FREQ_kHz         (45.0)
    #define USER_NUM_PWM_TICKS_PER_ISR_TICK    (3)
    #define USER_R_OVER L_EST_FREQ_Hz (100)//由于满量程频率 Hz 而受限
    #define USER_VOLTGE_FILTER_POLE_Hz (1044.3)

    #define USER_MOTOR_TYPE         Motor_Type_Pm
    #define USER_MOTOR_NUM_POLE_PAIRS   (11)
    #define USER_MOTOR_RES_EST_CURRENT   (1.0)
    #define USER_MOTOR_IND_EST_CURRENT   (-0.25)//尝试从-2.0到-0.1的不同值
    #define USER_MOTOR_MAX_CURRENT      (3.0)
    #define USER_MOTOR_FLUX_EST_FREQ_Hz  (60.0)
    谢谢、
    David
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在 lab1c 方面有一些经验、如果没有 Rs 和电感值、电机就不会旋转。 该极对数是多少? 您确定该电机具有奇数极对数吗? 我在使用提升电机的 lab2a 上遇到了同样的问题。 我的 ID 过程在磁通量最大时停止。 因此、我增加了最大电流和 RES_EST 电流。 这些值为已连接 RES_EST =0.1MAX_CURRENT。 提升电机具有内部断路功能、需要更高的电流才能开始旋转。 您可能需要类似的东西。 据我所知、最大电流由电机的最大浪涌电流决定、最高可比标称值高7倍。

    我希望这能有所帮助!

    此致!

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

    感谢 Yanming 和 Pavlin 的输入。 由于 lab01c 未按预期运行、因此电机似乎出了问题、因此我在示波器上检查了 BEMF (手动探测相位并旋转电机):

    A 相至 B 相:4.44V 峰间

    B 相至 C 相:13.3V 峰间值

    C 相至 A 相:12Vpk-pk

    电机的旋转速度不完全相同、但它已接近。 无论如何、A 相至 B 相显然存在一些问题。

    这能解释一下我提到的行为吗?

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

    尊敬的 David:

    您可能会尝试使用 lab01b 运行电机、并在电机平稳运行时监测示波器上应该非常相似的三相电流波形。 然后尝试使用 lab01c 运行电机。 lab01b 和 lab01c 都不需要精确的电气参数(Rs、Ls 和磁通)。 您只需根据规格设置正确的 v/f 配置文件。 例如额定电压、频率等。

    #define USER_MOTOR_FREQ_LOW                            (10.0)                        // Hz -建议将电机额定频率设置为10%

    #define USER_MOTOR_FREQ_HIGH                            (180.0)                     // Hz -建议设置为额定电机电频率的100%

    #define USER_MOTOR_FREQ_MAX                             (200.0)                     // Hz -建议将电机额定频率设置为120%

    #define USER_MOTOR_VOLT_MIN                                (3.0)                       //电压-建议设置为额定电机电压的15%

    #define USER_MOTOR_VOLT_MAX                              (18.0)                        //伏特-建议设置为额定电机电压的100%

    如果 lab01c 或 lab01b 无法运行电机、这意味着电机或硬件套件上存在问题。

    [引用 userid="385068" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1042179/motorware-instaspin-foc---motor-identification-fails-for-specific-motor/3856668 #3856668"]#define USER_ADC_FULL_SCALE_CURRENT_A    (55.0)[/QUERT]

    您使用的逆变器的最大电流对于该电机而言似乎过高、电流感应分辨率可能不足以顺利运行/识别电机。 如果可能、您可能会尝试通过更改逆变器板上的电流感应电路来提高相电流采样分辨率。

    最好增大分流电阻器、使 USER_ADC_FULL_SCALE_CURRENT_A 达到6~9A、因为该电机的负载电流仅为1.5A。

    BTW、最好将 USER_IQ_FULL_SCALE_FREQ_Hz 设置为200Hz、因为最大速度为1025rpm、极对为11。

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

    您好、Yanming、感谢您的输入、运行 lab01c 刚刚证实了我对电机损坏的理论。 由于我有其他电机在工作、并且这个电机每相返回不同的 BEMF、我将假定电机有问题。