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.

[参考译文] LAUNCHXL-F280039C:通用实验室电机控制- LAUNCHXL-F280039C &amp 中的4级问题;BOOSTXL-3PhGanInv + Teknic_M2310PLN04K

Guru**** 2478765 points
Other Parts Discussed in Thread: BOOSTXL-3PHGANINV, LAUNCHXL-F280039C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1467088/launchxl-f280039c-issues-with-level-4-in-universal-lab-motor-control---launchxl-f280039c-boostxl-3phganinv-teknic_m2310pln04k

器件型号:LAUNCHXL-F280039C
主题中讨论的其他器件: BOOSTXL-3PHGANINV

工具与软件:

尊敬的 TI 支持团队:

我目前使用与 BOOSTXL-3PhGanInv 模块配合使用的 LAUNCHXL-F280039C  和4级通用电机控制实验室固件来控制电机。

在成功完成之前的所有级别后、我在4级运行电机时遇到了一些奇怪的情况。

我附上了一个图、其中包含数据日志和示波器波形的图形、以便更好地实现可视化。 这些图形是使用 motor_datalog_fp2.graphProp 从生成的<install_location>\solutions\universal_motorcontrol_lab\common\debug

测量设置:

  • 相电流(IA)在 BOOSTXL-3PhGanInv 的 IA 引脚上测量。
  • 在 VA 引脚上测量相电压(VA)。
  • 为简单起见、随附的图被构造为具有三列的表:
    1. 固件级别。
    2. Code Composer Studio (CCS)中的图。
    3. 相应的示波器波形。

测试设置:

  • 无传感器快速和编码器方法均经过测试。
  • PWM 频率:45kHz。
  • 电机转速:100Hz。
  • user_mtr1.h为确保完整性、附加文件中包含了各种计时器、滤波器和电机参数的设置。

观察和问题:

  1. 4级非正弦电流:
    在3级(开环)中、电流波形完全是正弦波、如图1和图2所示。 但在4级、电机启动期间电流波形为正弦波形、但当电机达到设定速度时会失真(图3-6)。
    为什么电流波形在4级失去了它们的正弦波形?

  2. FAST 与编码器的差异:
    图3、4、5和6清楚地显示了 FAST 和编码器之间的电流波形差异。 例如、图4 (FAST)中显示的失真不同于图6 (编码器)中显示的失真。
    什么可能导致 FAST 和编码器之间出现这种差异?

  3. 相电压偏移:
    比较图7、8中的相电压测量值(VA):

    • 图7 (ADC 测量)显示了明显的负失调电压。
    • 图 8 (示波器测量)未显示此失调电压。
      尽管执行了级别1中的偏移校正过程、该问题仍然存在。
      什么可以解释 ADC 测量中的负失调电压?

非常感谢您有关这些问题的见解、有助于解决电流波形的失真问题。 如果需要更多信息、请告知我。

感谢您的支持!

Marco Lasagni

e2e.ti.com/.../2117.user_5F00_mtr1.h

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

    Marco

    感谢您提供深入的问题和相关的背景信息、这对您非常有帮助。

    对于构建级别4、请注意启动过程包括初始开环阶段、不考虑电机反馈-根据提供的信息、这可能是电流开始正弦但失去这种形状的原因。

    我首先想到的问题来源是、您使用的 Teknic 电机与选择参数值时使用的电机有些偏离、这会导致电机反馈被错误地解释。 然后、在闭环系统中、轻微的失真当然会放大。

    最后、如果要了解 DATALOG 工具与示波器的差异、我建议打开 CCS Expressions 窗口并查看其中的电压值。 如果"Expressions"窗口中的电压值与示波器测量值匹配、则数据记录器存在调节问题。 如果电压值与数据日志图匹配、则这可能与其余失真的值有关。

    调试问题:

    1. 如果运行电机识别过程并使用 InstaSPIN-FOC FAST 生成的值、该行为是否持续存在?

    2. 在 CCS Expressions 窗口中查看电压值时、您看到的值是否与数据日志图或示波器读数中的值相匹配?

    3. 电机是否平稳旋转? 即没有振动等表明存在明显的对齐或参数问题

    请告诉我电机 ID 测试的结果、如果这样做无法解决问题、请还请回答其他问题。

    此致、
    Jason Osborn

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

    尊敬的 Jason:

    感谢您的详细答复。

    即使在执行电机识别过程(使用结果与默认值几乎相同的参数)之后、行为仍会保持不变、电流波形仍然严重失真。

    我们正在使用通用实验室中引用的完全相同的 Teknic 电机、以及依赖于类似于 BOOSTXL-3PhGaNInv 的电路的其他 TIDA。

    现在、我将重点介绍如何修复电流波形失真。 你怎么看? 您还有其他建议或想法吗?

    此致、
    Marco

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在、我将重点讨论如何解决电流波形失真问题。

    尊敬的 Marco:  

    除了 Jasons 注释之外、您是否可以验证调试脚本是否显示正确的全调制模式 启用了 eQEP 编码器? 检查代码(motor_common.c)应启用三个位置、还应启用 motor1_drive.c 行339、motorVars_M1.flagEnableFWC =显示错误的 CCS 调试监视器。 示波器和 DAC 电压、电流捕获(启用编码器)看起来像是控制模式为 SVM_MIN_C 确保项目通用符号同时启用了 FAST 和 eSMO 符号。 BTW:FOC 级别3是控制模式(ENCODER_n)、采用 eSMO 的 FAST 是估算器库函数。 看似 FWC 模式会检查 SVM_MIN_C TRUE 以显示半波或全波形式、具体取决于连接的 DCLINKSS 可选板。

    #if!defined (MOTOR1_ISBLDC)
    SVGEN_setMode (obj->svgenHandle、SVM_COM_C);
    #endif //! MOTOR1_ISBLDC

    // Patched code:
        /* Motor ID use SVM_COM_C */
        //if(objUser->flag_bypassMotorId == true)
        if(motorVars_M1.flagEnableFWC == true && objUser->flag_bypassMotorId == true)
        {
    #if defined(MOTOR1_DCLINKSS)
            obj->svmMode = SVM_COM_C;
    #else   // !(MOTOR1_DCLINKSS)
            obj->svmMode = SVM_MIN_C;
    #endif  // !(MOTOR1_DCLINKSS)
            obj->flagEnableFWC = true;  //was true
        }
        else
        {
            obj->svmMode = SVM_COM_C;
            obj->flagEnableFWC = false;
        }

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

    您好!

    感谢您发送编修。

    我对您的请求作了一些澄清:

    1. 调试脚本验证:

      • motor1_drive.c,第339行,我找到: eQEP_enableModule(obj->qepHandle);
        这似乎启用了 eQEP 模块、但我不确定应该在中检查三次什么motor_common.c。 您能解释一下我需要寻找什么吗?
    2. motorVars_M1.flagEnableFWC 行为:

      • 在 代码中、该标志设置为 true。
      • 禁用它不会引起任何明显的变化。
    3. 示波器和 DAC 捕获(电压/电流采集):

      • 启动时、控制模式最初为 SVM_COM_C、但是之后切换到 SVM_MIN_C
      • 在 设置 MotorVars_M1.svmMode = SVM_COM_C 后、我确实观察到性能略有改善  (如随附数据中所示)。
    4. 澄清 SVM_Mode_e:
      您能解释一下以下模式之间的用法差异吗?

      typedef enum {
      SVM_COM_C = 0, //!<
      SVPWM common SVM mode SVM_MIN_C = 1, //!< DPWM minimum SVM mode
      SVM_MAX_C = 2, //!< DPWM maximum
      SVM SVM_DQ_S = 3 //!< SVPWM standard DQ mode
      } SVM_Mode_e;
      • 何时应使用每种模式?
      • 它们如何影响调制和电机控制性能?
    5. 有关 您发布的已修补代码的说明
    6. 电流检测配置注意:

      •  电流检测正确设置为 systemVars.currentSenseType = CURSEN_TYPE_ININLINE _SHUNT;

    感谢您的帮助!

    此致!

    Marco Lasagni

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

    尊敬的 Marco:

    请查看通用文档文件夹路径中的通用电机实验室指南 PDF。 它将解释大部分剩余问题。  

     电流检测正确设置为 systemVars.currentSenseType = CURSEN_TYPE_ININLINE _SHUNT;

    仅适用于具有直列式分流器或三个低侧分流器的逆变器、具体取决于所使用的逆变器类型。