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-F280025C:如何使用电机控制 SDK

Guru**** 2580495 points
Other Parts Discussed in Thread: DRV8353, LAUNCHXL-F280025C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1109760/launchxl-f280025c-how-to-work-with-motor-control-sdk

器件型号:LAUNCHXL-F280025C
主题中讨论的其他器件:DRV8353

您好!

 在因文档不完整而进行大量工作后:

我有一个电机旋转电机(类似于)、它采用了具有  LAUNCHXL-F280025C 和 DRV8353的电机控制 SDK (V4.00)的通用项目。

电机:Allied Motion KM062 / 15极/ 24V

电机参数:

#define USER_MOTOR1_TYPE MOTOR_TYPE_PM
#define USER_MOTOR1_NUM_POLE_PAIRS (15)
#define USER_MOOST1_RR_OHM (NULL)
#define USER_MOALE1_Rs_Ohm (0.192211851f)//meas UNI 实验室(0.201803967)
#define USER_MOALE1_LS_D_H (9.02345652e-05f)//meas UNI 实验室(8.16669053e-05)
#define USER_MOALE1_LS_q_H (9.02345652e-05f)//meas UNI 实验室(8.16669053e-05)
#define USER_MOTOR1_RATGE_VLUX_VpHz (0.0223167749f)//(0.0219697803)// PM 电机、因此始终为0:在文档中的某个位置声明
#define USER_MOTOR1_MLEADCING_CURRENT_A (NULL)//PM 电机、因此始终为0
#define USER_MOUST1_RES_EST_CURRENT_A (1.5f)
#define USER_MOV1_IND_EST_CURRENT_A (-1.5f)
#define USER_MOOST1_MAX_CURRENT_A (5.0f)//4.1 (4.1*24V =
#define USER_MOTOR1_FLUX_EXC_FREQ_Hz (90.0f)//MOTOR=3600rpm/60sec = 60Hz * 15polepare = 900 -> 10-30%
#define USER_MOTOR1_NUM_ENC_SLOTS (500)//编码器 HEDL-5540-A11,未使用->使用霍尔
#define USER_MOUST1_INERING_Kgm2 (61.0e-06f)


#define USER_MOARO1_FREQ_NEARZEROLIIMIT_Hz (5.0f)// Hz

#define USER_MOOST1_RATed_VOLTGE_V (24.0f)
#define USER_MOTOR1_RATID_SPEED_KRPM (3.0F)

#define USER_MOUST1_FREQ_MIN_Hz (1.0f)// Hz
#define USER_MOOST1_FREQ_MAX_Hz (900.0f)// Hz

#define USER_MOOST1_FREQ_LOW_Hz (10.0f)// Hz
#define USER_MOALE1_FREQ_HIGH_Hz (100.0f)// Hz
#define USER_MOALE1_VOLT_MIN_V (1.0f)//电压
#define USER_MOOST1_VOLT_MAX_V (24.0f)//电压

#define USER_MOUST1_FORCE_DELT_A (0.05f)// a
#define USER_MOUST1_ALIGIN_DELT_A (0.01f)// a
#define USER_MOUST1_FLUX_CURRENT_A (0.5f)// a
#define USER_MOUST1_ALIGN CURRENT_A (1.5f)// A
#define USER_MOUST1_STARTUP_CURRENT_A (3.5f)// A
#define USER_MOTOR1_TOFIT_CURRENT_A (2.0f)// A
#define USER_MOA1_MOALE_CURRENT_A (7.5f)// A

#define USER_MOALE1_BRAKE_CURRENT_A (1.0f)// A
#define USER_MOALE1_BRAKE_TIME_DELAY (12000U)// 60s/5ms

#define USER_MOUST1_SPEED_START_Hz (30.0f)
#define USER_MOUST1_SPEED_FORCE_Hz (25.0f)
#define USER_MOUST1_ACCEL_START_Hzps (10.0f)
#define USER_MOUST1_ACCEL_MAX_Hzps (20.0f)

#define USER_MOUST1_SPEED_FS_Hz (3.0F)

//仅适用于编码器
#define USER_MOTOR1_ENC_POS_MAX (USER_MOTOR1_NUM_ENC_SLOTS * 4 - 1)
#define USER_MOUST1_ENC_POS_OFFSET (668)

//仅适用于 eSMO
#define USER_MOOLE1_KSLIDE_MAX (0.75f)//
#define USER_MOUST1_KSLIDE_MIN (0.15f)

#define USER_MOUST1_PLL_KP_MAX (6.75f)//
#define USER_MOUST1_PLL_KP_MIN (0.75f)
#define USER_MOALE1_PLL_KP_SF (5.0f)

#define USER_MOUST1_BEMF_THRESHOLD (0.5f)
#define USER_MOOST1_BEMF_KSLF_FC_Hz (1.0f)
#define USER_MOA1_THETA_OFFSET_SF (1.0f)
#define USER_MOALE1_SPEED_LPF_FC_Hz (200.0f)

//对于 I-BLDC
#define USER_MOALE1_RAMP_START_Hz (3.0F)
#define USER_MOV1_RAMP_END_Hz (30.0f)
#define USER_MOUST1_RAMP_DELAY (5)

#define USER_MOOST1_ISBLDC_INT_MAX (0.015f)
#define USER_MOOST1_ISBLDC_INT_MIN (0.010f)

//进行 Rs 在线校准
#define USER_MOALE1_RSONLINE_WAIT_TIME (60000U)// 5V/300s (以5ms 为基准)
#define USER_MOALE1_RSONLINE_ACT_TIME (24000U)//2min/120s (以5ms 为基准)

霍尔传感器根据文档进行了校准。

电机测试:

##################

在 DMC_LEVEL_3 (启用 FAST 和霍尔)中:

将电机旋转至100Hz 大约需要4秒钟(在通过 CANbus 启用之后)。 前3秒电机旋转速度非常慢。

从 AG 向上旋转电机。 100Hz 至400Hz 非常谐振、10Hz 至100Hz 需要3-4秒。

电机在低速时可以/能够旋转(运转)、但在较高速度下、它将进入模过流状态。

在  DMC_LEVEL_3 (仅启用霍尔)中:

同上。

当从电路板上断开霍尔导线时、电机将以正确的速度运行(尽管 SPED_Hz = 0)、但斜升速度非常慢。

如何实现? 禁用 FAST ...

##################

在  DMC_LEVEL_4 (启用 FAST 和霍尔)中:

将电机旋转至100Hz 大约需要4秒钟(在通过 CANbus 启用之后)。 前3秒电机旋转速度非常慢。

从 AG 向上旋转电机。 100Hz 至400Hz 非常谐振、10Hz 至100Hz 需要3-4秒。

电机可以在没有 模过流的情况下高速旋转、但低速不是很好(电机噪声很大)。

编辑:

有时、在停止电机(通过 CANbus)并再次启动时、最长需要10秒。

在 DMC_LEVEL_4 (仅启用霍尔)中:

电机 会有一点摇晃、然后快速(1秒)加速并由于 模过流而停止。

无法进行正常控制。  

断开霍尔导线时、电机会发出一些声音、但 NO 不会加速(也没有 模电流过大)。

##################

我根据手册中的内容(spruj26.pdf)启动了这个项目清理。 然后、我将所需的所有文件复制到独立项目的目录中。 (或其他->更改1个文件您将更改所有项目、并且不会返回)。 话虽如此: 新安装的 MC SDK 和我从中提取的独立项目之间的行为没有区别(因此它可用于 SVN、并且会返回)。

--

那么、我必须怎么做才能使该电机正常运转?

我认为硬件看起来还可以(电机+霍尔导线、三次检查)。

此外、如何设置所有的密炼隔离片 LAUNCHXL-F280025C? 该文档仅显示一个"新的未设置"板、不清楚如何设置所有拨杆开关(另一个板隐藏拨杆开关)。

鉴于上述情况、代码存在问题(除 CANbus 控制外、未更改代码)。

请指导我、或给我一些提示、告诉我在哪里查找。 代码中的注释很少、文档中缺少足够的参数说明。  

是否有人将此通用项目与电机+FAST+HALL 结合使用、并且能够如广告中所说成功地旋转电机?

如果需要、我可以提供更多信息。

BR、

吕德

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

    如实验指南中所述、 您可以参考 LAUNCHXL-F280025C 的用户指南、根据需要设置其他开关/跳线。 实际上、您只需按照实验指南(spruj26.pdf)所示设置相关开关。

    F28002x 系列 LaunchPad 开发套件(https://www.ti.com/lit/pdf/spruiw8)

    本实验仅使用 FAST 或霍尔效应来同时运行电机、您可以尝试先使用 FAST。 请设置正确的电机参数或识别 用于在构建级别4中运行电机的电机参数。  

    您可以尝试在 CCS 内运行电机并设置速度/加速度、而不是  使用 CANbus 进行通信数据、因此很容易就能知道问题来自控制算法或通信延迟。

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

    如实验指南中所述、 您可以参考 LAUNCHXL-F280025C 的用户指南、根据需要设置其他开关/跳线。 实际上、您只需按照实验指南(spruj26.pdf)所示设置相关开关。

    是的、文档仅显示"全新未设置"板、不清楚如何设置所有 DIP 开关(另一个板隐藏了 DIP 开关)。

    该文件还指出,令我担忧的是:  

    S3、位置 GPIO24-0>0、位置 GPIO32->1、将 F280025C 置于等待引导模式、以降低连接问题或之前加载的代码执行的风险

    (图片骤降开关与文本不匹配)

    但如何设置 S2?

    本实验仅使用 FAST 或霍尔效应来同时运行电机、您可以尝试先使用 FAST。  

    因此、如果我正确理解:您可以将其组合在一起(启用了 HAL&FAST)、但当两者都启用时、使用哪一个呢? 我正在/之前期望它同时使用这两种器件、因此电机控制固件可以在小转后"知道"其位置。

    请设置正确的电机参数或识别 用于在构建级别4中运行电机的电机参数。  

    这些是制造商 Allied Motion 给出的参数:

    标称电源电压直流总线:24V

    额定输出功率:120W

    额定转速:3600 RPM

    额定转矩:0.318 nm

    峰值扭矩:1.43牛米

    额定电流 RMS (相位):4.1A

    空载速度:3659 RPM

    转子惯性(x10-6):61.

    极对数:15.

    如何将其适应这些参数?

    #define USER_MOTOR1_TYPE MOTOR_TYPE_PM
    #define USER_MOTOR1_NUM_POLE_PAIRS (15)
    #define USER_MOOST1_RR_OHM (NULL)
    #define USER_MOALE1_Rs_Ohm (0.192211851f)//meas UNI 实验室(0.201803967)
    #define USER_MOALE1_LS_D_H (9.02345652e-05f)//meas UNI 实验室(8.16669053e-05)
    #define USER_MOALE1_LS_q_H (9.02345652e-05f)//meas UNI 实验室(8.16669053e-05)
    #define USER_MOTOR1_RATGE_VLUX_VpHz (0.0223167749f)//(0.0219697803)// PM 电机、因此始终为0:在文档中的某个位置声明
    #define USER_MOTOR1_MLEADCING_CURRENT_A (NULL)//PM 电机、因此始终为0
    #define USER_MOUST1_RES_EST_CURRENT_A (1.5f)
    #define USER_MOV1_IND_EST_CURRENT_A (-1.5f)
    #define USER_MOOST1_MAX_CURRENT_A (5.0f)//4.1 (4.1*24V =
    #define USER_MOTOR1_FLUX_EXC_FREQ_Hz (90.0f)//MOTOR=3600rpm/60sec = 60Hz * 15polepare = 900 -> 10-30%
    #define USER_MOTOR1_NUM_ENC_SLOTS (500)//编码器 HEDL-5540-A11,未使用->使用霍尔
    #define USER_MOUST1_INERING_Kgm2 (61.0e-06f)


    #define USER_MOARO1_FREQ_NEARZEROLIIMIT_Hz (5.0f)// Hz

    #define USER_MOOST1_RATed_VOLTGE_V (24.0f)
    #define USER_MOTOR1_RATID_SPEED_KRPM (3.0F)

    #define USER_MOUST1_FREQ_MIN_Hz (1.0f)// Hz
    #define USER_MOOST1_FREQ_MAX_Hz (900.0f)// Hz

    #define USER_MOOST1_FREQ_LOW_Hz (10.0f)// Hz
    #define USER_MOALE1_FREQ_HIGH_Hz (100.0f)// Hz
    #define USER_MOALE1_VOLT_MIN_V (1.0f)//电压
    #define USER_MOOST1_VOLT_MAX_V (24.0f)//电压

    #define USER_MOUST1_FORCE_DELT_A (0.05f)// a
    #define USER_MOUST1_ALIGIN_DELT_A (0.01f)// a
    #define USER_MOUST1_FLUX_CURRENT_A (0.5f)// a
    #define USER_MOUST1_ALIGN CURRENT_A (1.5f)// A
    #define USER_MOUST1_STARTUP_CURRENT_A (3.5f)// A
    #define USER_MOTOR1_TOFIT_CURRENT_A (2.0f)// A
    #define USER_MOA1_MOALE_CURRENT_A (7.5f)// A

    #define USER_MOALE1_BRAKE_CURRENT_A (1.0f)// A
    #define USER_MOALE1_BRAKE_TIME_DELAY (12000U)// 60s/5ms

    #define USER_MOUST1_SPEED_START_Hz (30.0f)
    #define USER_MOUST1_SPEED_FORCE_Hz (25.0f)
    #define USER_MOUST1_ACCEL_START_Hzps (10.0f)
    #define USER_MOUST1_ACCEL_MAX_Hzps (20.0f)

    #define USER_MOUST1_SPEED_FS_Hz (3.0F)

    //仅适用于编码器
    #define USER_MOTOR1_ENC_POS_MAX (USER_MOTOR1_NUM_ENC_SLOTS * 4 - 1)
    #define USER_MOUST1_ENC_POS_OFFSET (668)

    //仅适用于 eSMO
    #define USER_MOOLE1_KSLIDE_MAX (0.75f)//
    #define USER_MOUST1_KSLIDE_MIN (0.15f)

    #define USER_MOUST1_PLL_KP_MAX (6.75f)//
    #define USER_MOUST1_PLL_KP_MIN (0.75f)
    #define USER_MOALE1_PLL_KP_SF (5.0f)

    #define USER_MOUST1_BEMF_THRESHOLD (0.5f)
    #define USER_MOOST1_BEMF_KSLF_FC_Hz (1.0f)
    #define USER_MOA1_THETA_OFFSET_SF (1.0f)
    #define USER_MOALE1_SPEED_LPF_FC_Hz (200.0f)

    //对于 I-BLDC
    #define USER_MOALE1_RAMP_START_Hz (3.0F)
    #define USER_MOV1_RAMP_END_Hz (30.0f)
    #define USER_MOUST1_RAMP_DELAY (5)

    #define USER_MOOST1_ISBLDC_INT_MAX (0.015f)
    #define USER_MOOST1_ISBLDC_INT_MIN (0.010f)

    //进行 Rs 在线校准
    #define USER_MOALE1_RSONLINE_WAIT_TIME (60000U)// 5V/300s (以5ms 为基准)
    #define USER_MOALE1_RSONLINE_ACT_TIME (24000U)//2min/120s (以5ms 为基准)

    ------

    我多次执行识别部分。 并且应该是正确的。

    您可以尝试在 CCS 内运行电机并设置速度/加速度、而不是使用 CANbus 进行通信数据、因此很容易就能知道问题来自控制算法或通信延迟。

    我修改了(CANbus)代码、因此我可以发送1条消息以提供速度(和加速度)。 例如、没有通信延迟。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="441792" URL"~μ C/support/microcontrollers/c2000-microcontrollers-group/c2000-f/C2000-microcontrollers-forume/1109760/launchxl-f280025c-how-use-tor-user-control-sdk/4113709#4113709"]但如何设置 S2?

    无论您是否在 CCS 调试中运行该实验、最好按照上述用户指南中的说明将实验设置为(0/GOIO24、1/GPIO32)。 如果您想在没有调试仿真器的情况下独立运行实验、则需要将 S2设置为(1/GPIO24、1/GPIO32)从闪存引导。

    [引用 userid="441792" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forume/1109760/launchxl-f280025c-how-use-tor-use-control-sdk/4113709#4113709"]如何将其适应这些参数?

    您只需设置电机参数和一些参数即可快速完成。 上面列出的许多参数作为注释或名称用于 eSMO 和 ISBLDC 算法。 因此、您只需根据电机规格设置参数、如果数据表中没有、则可以识别电机参数(Rs、Ls 和磁通)。

    #define USER_MOTOR1_TYPE MOTOR_TYPE_PM
    #define USER_MOTOR1_NUM_POLE_PAIRS (15)
    #define USER_MOALE1_Rs_Ohm (0.192211851f)//meas UNI 实验室(0.201803967)
    #define USER_MOALE1_LS_D_H (9.02345652e-05f)//meas UNI 实验室(8.16669053e-05)
    #define USER_MOALE1_LS_q_H (9.02345652e-05f)//meas UNI 实验室(8.16669053e-05)
    #define USER_MOTOR1_RATGE_VLUX_VpHz (0.0223167749f)//(0.0219697803)// PM 电机、因此始终为0:在文档中的某个位置声明
    #define USER_MOUST1_RES_EST_CURRENT_A (1.5f)
    #define USER_MOV1_IND_EST_CURRENT_A (-1.5f)
    #define USER_MOOST1_MAX_CURRENT_A (5.0f)//4.1 (4.1*24V =
    #define USER_MOTOR1_FLUX_EXC_FREQ_Hz (90.0f)//MOTOR=3600rpm/60sec = 60Hz * 15polepare = 900 -> 10-30%
    #define USER_MOUST1_INERING_Kgm2 (61.0e-06f)

    #define USER_MOOST1_RATed_VOLTGE_V (24.0f)
    #define USER_MOTOR1_RATID_SPEED_KRPM (3.0F)

    #define USER_MOUST1_FREQ_MIN_Hz (1.0f)// Hz
    #define USER_MOOST1_FREQ_MAX_Hz (900.0f)// Hz

    请捕获一些电流波形并将其发布、以帮助我们了解问题。 谢谢!

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

    好的、可以了。 请不要关闭主题。

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

    抱歉、如果您在几天内没有任何其他问题、我们必须先关闭此主题。