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.

[参考译文] TMDXIDDK379D:将 IDDK -R2.2.1评估套件与 LAUNCHXL-F28069M 搭配使用、用于 instaspin 运动评估。

Guru**** 2585275 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/647831/tmdxiddk379d-using-iddk--r2-2-1-eval-kit-with-launchxl-f28069m-for-instaspin-motion-evaluation

器件型号:TMDXIDDK379D

遇到保险丝在 Lab12A 中烧坏以及在 EC2004中 ID 失败的问题、 可以以200RPM 的速度运行 lab01b。 我是否可以知道问题出在哪里?   

修改了以下 user.h

hvkit_rev1p1     典型用法的#define USER_IQ_FULL_SCALE_VOLTAGE_V (240.0)//(450.0)// 450.0示例

#define USER_ADC_FULL_SCALE_VOLTGE_V    (236.4)//(409.6)   // 409.6 hvkit_rev1p1电压调节

#define USER_IQ_FULL_SCALE_CURRENT_A      (10.0)  // hvkit_rev1p1典型用法的10.0示例

#define USER_ADC_FULL_SCALE_CURRENT_A     (12.0)//(19.89)   // 19.89 hvkit_rev1p1电流调节

#define USER_NUM_CURRENT_SENSORS       (2)  //为在全速范围内实现最佳性能,可实现100%占空比

用户电机规格:  

#define USER_MOTOR_RES_EST_CURRENT (0.5)//在电机识别期间、用于 Rs 估算的最大电流(安培、浮点数)、10-20%额定电流
#define USER_MOTOR_IND_EST_CURRENT (-0.5)//在电机识别期间、用于 LS 估算的最大电流(负电流、浮点数)、只需足够的时间即可启用旋转
#define USER_MOTOR_MAX_CURRENT (1.8)//关键:在 ID 和运行时使用、设置所提供速度 PI 控制器向 IQ 控制器输出的最大电流命令的限制
#define USER_MOTOR_FLUX_EST_FREQ_Hz (20.0)//在电机识别期间、最大命令速度(Hz、浮点)、额定电流~10%
#define USER_MOTOR_ENCODER_LINs (2500.0)//电机正交编码器上的线数
#define USER_MOTOR_MAX_SPEED_KRPM (3.0)//电机的最大速度

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    电流反馈似乎是一个问题、我使用的是 LEM 电流反馈 IFB_V、IFB_W 我是否应该将它们传递给 I.Value[1]&I.Value[2]?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您需要写入 gAdcData.I.value[]数组、该数组被传递到 Clarke 变换以生成 ia,b

    肖恩

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

    谢谢。 我想确认如何将 LEM 反馈写入 gAdcData.I.value[]数组? 我应该将 IFB_V、IFB_W 写入到 Value[0]/value[1]或 Value[1]/value[2]中吗?
    Clark_run 似乎始终采用值[0][1][2]作为 a、b、c 相位反馈。 但对于 IDDK-R2.2.1上的 LEM 传感器、反馈仅来自 b、c 相位。

    Clark 运行:
    if (numSensors == 3)

    pOutVec->value[0]=_IQmpy (lshft_1 (pInVec->value[0])-(pInVec->Value[1]+ pInVec->Value[2])、alpha_SF);
    pOutVec->value[1]=_IQmpy (pInVec->value[1]- pInVec->value[2]、beta_SF);

    否则、如果(numSensors == 2)

    pOutVec->value[0]=_IQmpy (pInVec->value[0]、alpha_SF);
    pOutVec->value[1]=_IQmpy (pInVec->value[0]+ lshft_1 (pInVec->Value[1])、BET_SF);


    我的另一个问题是电流为什么会超出我的设置?
    USER_MOTOR_MAX_CURRENT (1.8)
    USER_MOTOR_RES_EST_CURRENT (0.5)
    USER_MOTOR_IND_EST_CURRENT (-0.5)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于此处的相位顺序无关紧要、因此您可以通过几种方法来解决此问题。 您可以将 b、c 标记为 a、b 并正常传入、在这种情况下、您只需将 LEM 反馈分配给 I.value[0]、I.value[1]并传递给函数。 i. value[]成为 pInVec、[0、1]在"else if"分支中运行

    您还可以使用以下方法预先计算第三相:
    I.值[0]=-(IB+IC)
    I.值[1]= IB
    I.值[2]= IC

    并使用 if (numSensors=3)分支

    肖恩