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.

[参考译文] TMS320F280025C:TIDM-02010双电机转速环路问题

Guru**** 2455560 points
Other Parts Discussed in Thread: TIDM-02010

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1265560/tms320f280025c-tidm-02010-dual-motor-speed-loop-problem

器件型号:TMS320F280025C
主题中讨论的其他器件:TIDM-02010

我已使用 tidm_02010_dmpfc_002x 示例代码成功驱动电机旋转。

我的需求非常简单。 我不需要 PFC 或压缩机。 我只需要使用 TIDM-02010硬件来驱动双电机。 可以理解、它驱动两个风扇。 使用 TIDM-02010的原因是它支持高电压。 通过双电机例程、我可以快速验证项目。
但关于 tidm_02010_dmpfc_002x 示例、我有以下问题。 请让电机控制专家逐一解答我的问题。 谢谢:
1.在初始化代码中、我看到了 HAL_setupPWMsPhaseShift 函数、该函数设置电机1和电机2的相位移(在此问题中会自动忽略 PFC)。 为什么需要设置相位移? 只是为了避免中断吗? 我未曾尝试设置相移、但 ADC 电压的采集结果将比平均值高5V 左右? 为什么会这样呢?

2.如上所述、只需要驱动2个电机进行速度环路控制、但在代码中对电机1和电机2的处理似乎有所不同、因为我的电机最终通过电机2的通道旋转。 电机1工作异常。 我是否需要将电机2的逻辑修改为电机1?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Unknown 说:
    我当时没有设置相移、但 ADC 电压的采集结果将比平均值高出大约5V。 为什么会这样?

    没有完全理解您的问题。 相移不影响 ADC 电压。

    Unknown 说:
    2. 如上所述、我只需要驱动2个电机来进行速度环路控制、但在代码中对电机1和电机2的处理似乎不同、因为我的电机最终通过电机2通道旋转。 电机1工作异常。 我是否需要将电机2的逻辑修改为电机1?

    这取决于您的应用。 您可以为双电机使用其中一个、也可以仅作为示例。

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

    大家好、我注意到 motorState 的状态处理似乎与一般实验室的状态处理不同。 是否有文档说明了如何在程序中切换和运行 MOTOR_Status_e 的状态?

    在 tidm_02010_dmpfc_002x 示例中、如果难以理解 MOTOR_OL_START 的状态处理:

        else if(motorVars[MTR_2].motorState == MOTOR_OL_START)
        {
            angleFOCM2_rad = angleESTM2_rad;
    
            if(fabsf(estInputDataM2.speed_ref_Hz) >= fabsf(motorVars[MTR_2].speedForce_Hz))
            {
                motorVars[MTR_2].motorState = MOTOR_CL_RUNNING;
            }
        }

    如上所述、speed_ref_Hz 是预期速度闭环速度、Force_Hz 是宏定义的速度。 根据该过程、motorState 将首先经过 MOTOR_ALIGNMENT 状态、然后切换到 MOTOR_OL_START。 在 MOTOR_OL_START 的处理过程中、将判定 SPEED_ref_Hz >= Force_Hz、并且从 MOTOR_ALIGNMENT 转换到 MOTOR_OL_START 时、id 轴上的电流不是0、所以为什么要等待 SPEED_ref_Hz >= Force_Hz? 这将导致电机在启动后快速振动、一段时间后是否会切换到闭环速度操作?

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

    它仅用于通过 eSMO 运行电机。 如果电机以 FAST 运行、则将通过该过程。 大家可参考 TID 用户指南、源代码应易于理解操作过程。 它只是控制流、与估计器算法无关。 您可以根据自己的应用设计控制流。