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.

[参考译文] TMS320F280025:MotorControl SDK - ACIM 的标识

Guru**** 2463330 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1488864/tms320f280025-motorcontrol-sdk---identification-of-a-acim

器件型号:TMS320F280025

工具/软件:

您好、

我正在使用 MotorControl SDK (5.0.2)内的通用电机控制工程、并希望识别 ACIM。 我已经确定了很多 PMSM、但以前从未有过 ACIM、我在那里解决了一些问题。

硬件规格:

-定制(完美适用于 PMSM 和测量的电流+电压匹配的实值通过 OSCi 验证)

-电流测量范围: 8.25A

ACIM:

-采用星形配置的400VAC

-标称转速为2830rpm

- 2个极

-标称电流为3.4A

-测量的相间电阻为13.4欧姆

- 2.2千瓦

因此、由于电机没有更多的参数、因此我想确定它。 电阻估算值为6.7欧姆、这可能是有效的(认为对于相线至中性线、此值为/sqrt (3))、然后电机开始转动。 在发现磁化电流约为1.08A 后、电机正常运行、然后在尝试识别电感时失速。  motorVars_M1.flagEnableRunAndIdentify 变为零、但它会以某种方式尝试识别电感并获得一个值、然后该值降至零。 然后、它甚至进入转子电阻估算、现在发生了误差。 有什么想法、我在这里遗漏了什么?

#define USER_MOTOR1_TYPE                   MOTOR_TYPE_INDUCTION
#define USER_MOTOR1_NUM_POLE_PAIRS         (1)
#define USER_MOTOR1_Rr_Ohm                 (NULL) 
#define USER_MOTOR1_Rs_Ohm                 (NULL)
#define USER_MOTOR1_Ls_d_H                 (NULL) 
#define USER_MOTOR1_Ls_q_H                 (NULL) /
#define USER_MOTOR1_RATED_FLUX_VpHz        (0.8165f*230.0f/50.0f) //STAR: 230VAC, DELTA: 400VAC
#define USER_MOTOR1_MAGNETIZING_CURRENT_A  (NULL) 
#define USER_MOTOR1_RES_EST_CURRENT_A      (1.5f)
#define USER_MOTOR1_IND_EST_CURRENT_A      (NULL)
#define USER_MOTOR1_MAX_CURRENT_A          (2.5f)
#define USER_MOTOR1_FLUX_EXC_FREQ_Hz       (5.0f)
#define USER_MOTOR1_NUM_ENC_SLOTS          (NULL)
#define USER_MOTOR1_INERTIA_Kgm2           (7.06154e-03f)

#define USER_MOTOR1_FREQ_NEARZEROLIMIT_Hz  (1.0f)          // Hz

#define USER_MOTOR1_RATED_VOLTAGE_V        (400.0)
#define USER_MOTOR1_FREQ_MIN_Hz            (1.0)           // Hz
#define USER_MOTOR1_FREQ_MAX_Hz            (400.0)         // Hz

#define USER_MOTOR1_FREQ_LOW_Hz            (5.0)          // Hz
#define USER_MOTOR1_FREQ_HIGH_Hz           (200.0)         // Hz
#define USER_MOTOR1_VOLT_MIN_V             (20.0)          // Volt
#define USER_MOTOR1_VOLT_MAX_V             (200.0)         // Volt

#define USER_MOTOR1_FORCE_DELTA_A          (0.05f)          // A
#define USER_MOTOR1_ALIGN_DELTA_A          (0.01f)          // A
#define USER_MOTOR1_FLUX_CURRENT_A         (0.5f)           // A
#define USER_MOTOR1_ALIGN_CURRENT_A        (USER_MOTOR1_MAX_CURRENT_A)           // A
#define USER_MOTOR1_STARTUP_CURRENT_A      (USER_MOTOR1_MAX_CURRENT_A)           // A
#define USER_MOTOR1_TORQUE_CURRENT_A       (USER_MOTOR1_MAX_CURRENT_A)           // A
#define USER_MOTOR1_OVER_CURRENT_A         (7.0f)           // A

#define USER_MOTOR1_SPEED_START_Hz         (1.0)
#define USER_MOTOR1_SPEED_FORCE_Hz         (25.0)
#define USER_MOTOR1_ACCEL_START_Hzps       (10.0)
#define USER_MOTOR1_ACCEL_MAX_Hzps         (10.0)

#define USER_MOTOR1_SPEED_FS_Hz            (3.0)

// only for encoder, N/A
#define USER_MOTOR1_ENC_POS_MAX            (USER_MOTOR1_NUM_ENC_SLOTS * 4 - 1)
#define USER_MOTOR1_ENC_POS_OFFSET         (668)

// Only for eSMO, N/A
#define USER_MOTOR1_KSLIDE_MAX             (1.50f)
#define USER_MOTOR1_KSLIDE_MIN             (0.15f)

#define USER_MOTOR1_PLL_KP_MAX             (7.25f)
#define USER_MOTOR1_PLL_KP_MIN             (1.25f)
#define USER_MOTOR1_PLL_KP_SF              (5.0f)
#define USER_MOTOR1_PLL_KI                 (2.8125E-06f)    // Not used, reserve

#define USER_MOTOR1_BEMF_THRESHOLD         (0.5f)
#define USER_MOTOR1_BEMF_KSLF_FC_SF        (2.0f)
#define USER_MOTOR1_THETA_OFFSET_SF        (1.0f)
#define USER_MOTOR1_SPEED_LPF_FC_Hz        (200.0f)

// for IS-BLDC, N/A
#define USER_MOTOR1_RAMP_START_Hz           (1.0f)
#define USER_MOTOR1_RAMP_END_Hz             (30.0f)
#define USER_MOTOR1_RAMP_DELAY              (1)

#define USER_MOTOR1_ISBLDC_INT_MAX          (0.015f)
#define USER_MOTOR1_ISBLDC_INT_MIN          (0.010f)

#define USER_MOTOR1_SPEED_CTRL_DIRECT_SET   (true)
#define USER_MOTOR1_SPEED_CTRL_KP           (0.4f) //2.0f //0.4f
#define USER_MOTOR1_SPEED_CTRL_KI           (0.01f) //0.025f //0.01f

// for Rs online calibration
#define USER_MOTOR1_RSONLINE_WAIT_TIME      (60000U)    // 5min/300s at 5ms base
#define USER_MOTOR1_RSONLINE_WORK_TIME      (24000U)     //2min/120s at 5ms base

这里似乎是一个类似的问题: e2e.ti.com/.../5659741

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

    问题:在电感和 RR 校准过程中、PWM 完全关闭是否正确? 因为估计器似乎是这样做的、然后接近一些有意义的值、但我不知道它如何禁用 PWM?

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

    问题在于磁电流估算灵敏度过高、转子锁定状态下没有超时

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

    您好、Hans、

    我有一个类似的情况,你到底是什么意思,当你说转子状态不超时?
    motorVars_M1.flagEnableRunAndIdentify 变为0然后使 motorVars_M1.flagEnableRunAndIdentify  1后、是否需要立即锁定转子?

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

    您可以在锁定转子的 EST 输入参数中设置超时、以便在关闭后有足够的时间将其锁定。 然后打开  motorVars_M1.flagEnableRunAndIdentify  1、它应该从电感估算开始。 但无论如何,它不是真的工作对我,不知何故识别频率在亚赫兹区域。 TI 告诉我、较新的微控制器不支持 ACIM 的识别、我不知道为什么它们不能这样做(可能电机控制器失控、无法移植)

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

    非常感谢您的解释。 我目前正在进行电机参数识别、如您所述、转子已被安全锁定。 然而、在使用这些参数时、无法实现有效控制。 例如、将目标速度设置为30Hz 时、一旦速度达到约27Hz、电机会突然停止。