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.

[参考译文] TMDSHVMTRINSPIN:使用 TMS320F280049C 和三相电源卡进行电机测试

Guru**** 2440010 points
Other Parts Discussed in Thread: C2000WARE, TMS320F280049C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1043046/tmdshvmtrinspin-motor-testing-with-tms320f280049c-and-3-phase-power-card

器件型号:TMDSHVMTRINSPIN
主题中讨论的其他器件:TMS320F280049CC2000WARE

大家好、团队成员

我们使用的是 TMS320F280049C 控制器和 TI 提供的无传感器 FOC 代码文件("C:\ti\c2000Ware_MotorControl_SDK_3_00_01_00\solutions\tmdshvmtrinaus\f28004x\ccs\sensorless_foc")

我们设计了具有三相输入电源的 HV-kit,可生成800Vdc 总线,我们使用的电机开关具有260V 电压和   7.4A 电流,FOC 库是否支持我的应用?  

1.我们需要控制电机的速度,如何控制?

2.为了控制速度,我需要更改哪些参数(注: 我们熟悉 motorVars.speedRefHz)如何控制逆变器的输出电压?

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

    FOC 库是一种与电源电压无关的软件算法、它取决于电机电气参数、如 Rs、Ls 和磁通。

    您可以查看 《MotorControl SDK InstaSPIN 实验指南》、并按照指南中的步骤使用 CCS 运行示例实验、该指南可在中找到  

    \ti\c2000\C2000Ware_MotorControl_SDK_ \solutions\common\sensorless_foc\docs\labs。

    如果您不熟悉 MotorControlSDK 中的 InstaSPIN-FOC 示例、可以尝试逐步运行 lab01至 lab07。 Lab07可用于电机速度闭环控制。 在运行 lab07之前、您应该使用 lab05来识别电机参数(Rs、Ls 和磁通)。 在运行 lab05和 lab07之前、您必须确保硬件套件适合电机驱动。

    逆变器的输出电压将由 FOC 算法根据运行速度自动设置、从而增加电机的负载。

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

    罗致光感谢您的回复、

    1.我们在第四个实验中正面临这一问题;

    问题:1. 我的电机在 Lab3中成功运行、在 lab4中运行平稳、没有任何急动或振动、但最后、如果我们将" motorVars.flagRunIdentAndOnLine 设置为零、我们的电机发出一个大声音、我的保险丝被熔断。  

    以下是 我根据我的三相硬件进行的 user.h 设置  

    #define USER_ADC_FULL_SCALE_VOLTGE_V      ((float32_t)(1200)
    #define USER_ADC_FULL_SCALE_CURRENT_A      ((float32_t)(20.0)
    #define USER_VOLTGE_FILTER_POLE_Hz       ((float32_t)(1254.8))

    2、我们   根据直流电压下的分压 器设置 USER_VOLTGE_FILTER_POLE_Hz (如下图所示)、我们参考 spruhj1h 进行此计算。



    我们在该参考手册中看到了一个条件、我们在下图中显示了这一情况  

    我们得到 USER_VOLTGE_FILTER_POLE_Hz 1254.8是这样的正确值,或者我们是否需要将电容器值(47nF)更改为任何其他值,
    我们没有得到 该 USER_VOLTGE_FILTER_POLE_Hz 的需求 以及它在 FAST 中可以使用的位置、  

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

    我对 user.h 文件中的以下参数感到困惑,这些值是如何根据这些值的计算基础设置的?

    请向我解释一下吗? 因为我们为此使用自己的硬件   

    #define IA_OFFSET_A (9.97279739)//~=0.5*USER_ADC_FULL_SCALE_CURRENT_A
    #define IB_OFFSET_A (9.95302963)//~=0.5*USER_ADC_FULL_SCALE_CURRENT_A
    #define IC_OFFSET_A (9.89870834)//~=0.5*USER_ADC_FULL_SCALE_CURRENT_A


    //! 简要介绍 A、B 和 C 相的 ADC 电压偏移
    #define VA_OFFSET_V (0.990514159)//~=1.0
    #define VB_OFFSET_V (0.986255884)//~= 1.0
    #define VC_OFFSET_V (0.983381569)//~= 1.0

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

    您可以使用 lab02获取这些偏移值、然后在 user.h 中设置这些检测值 通常、三相电流和电压检测电路可能有一点差异。

    每个相位的默认计算值应与下面的相同。

    IA/B/C_OFFSET_A = 0.5 * USER_ADC_FULL_SCALE_CURRENT_A

    VA/B/C_OFFSET_V= 1.0

    [引用 userid="461371" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1043046/tmdshvmtrinspin-motor-testing-with-tms320f280049c-and-3-phase-power-card/3870065 #3870065"]#define USER_VOLTGE_FILTER_POLE_Hz       ((float32_t)(1254.8))[/quot]

    如果您的电机不是低电感和高频电机、您可以增加电压感应电路的电阻器或电容器、以获得300~800Hz 的低 USER_VOLTGE_FILTER_POLE_Hz。

    Lab04仅使用 USER_ADC_FULL_SCALE_CURRENT_A 进行电流闭环以进行硬件验证。 您可以在 lab02和 lab03中先连接电机、然后检查 PWM 输出是否正确打开或关闭。 然后在 lab03和 lab04中检查电流和电压感应信号是否正确。 如果没有、请勿使用您自己的板运行以下实验。

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

    罗致光感谢您的回复、

    我们通过  lab02观察窗口设置 IA/B/C/OFFSET_A、  

    我们在 lab02和 lab03中检查了 PWM、我们观察到当我们将 motorVars.flagEnableSys 设置为1时、PWM 以50%的占空比开启20s、之后脉冲消失、 接下来、我们将   motorVars.RunIdentAndOnLine 设置 为1、然后启用脉冲、并将 motorVars.flagRunIdentAndOnLine 设置 为零、然后关闭脉冲。

    我们在 lab03中检查了电流波形、得到了如用户指南中所示的正弦波。
    我们在相位上感测的电压如下所示、偏移将影响代码中的电压值、

    在 TI-HV-kit 中、电压直接由分压器提供、没有任何偏移值、这意味着分压器上的输出为-value 至+ value、但 TMS320F280049c 的 ADC 范围仅为0-3.3V、FOC 算法将如何考虑该值? 因为我们要为电流感应电路等具有1.65基准的控制器提供该值  

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

    您好、Luo、
    此固有 FOC 是否适用于7kW 电机?

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

    该软件与电机的功率无关、但高压套件不能用于此类大功率电机。

    [引用 userid="461371" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1043046/tmdshvmtrinspin-motor-testing-with-tms320f280049c-and-3-phase-power-card/3872653 #3872653"]5.在 TI-HV-kit 中、电压直接从分压器提供、没有任何偏移值、这意味着分压器的输出为-value 至+ value、但 TMS320F280049c 的 ADC 范围仅为0-3.3V、FOC 算法将如何考虑该值? [/报价]

    在全部三相上使用50% PWM 占空比来感测相电压值、此值应该等于直流总线电压的一半。 使用感应值执行电压感应校准、但不会偏移电流感应电路。 实际上、电压偏移值用于三个相位之间的电压标度增益校准。 请按照指南设置头文件中的偏移值。

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

    大家好、感谢罗的回答、


    我们正在使用 TI-hv 套件、我们 使用 lab03对控制器进行了编程、我们在分压器处捕获了电压波形、如下图所示。

    2.我们正在得到1.24v 偏移的电压波形(波形如下图所示),您能解释一下产生该偏移值的原因是什么吗?


    根据 HV 套件原理图、电压直接连接到 ADC 引脚、而无需使用任何 ISO 运算放大器、

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

    电流和电压偏移通过在所有三相上使用50% PWM 占空比进行测量。 实际电流为零、ADC 输入值应约为1.65V、等于偏移基准电压。 相电压等于直流总线值的一半、电压偏移值等于感应相电压/直流总线电压= 0.5 (最新版本)、或等于2.0 *感应相电压/直流总线电压= 1.0。 电压偏移值是比例因子、而不是测量电压。 您可以参阅本指南中的 lab02和有关该实验的详细信息。

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

    您好、Luo、感谢您的回答、

    ‘‘调节速度 PI 控制器和电流控制器的“KP”和“KI”增益。 我们无需从用户指南和实际代码中的以下观察结果中进行任何澄清。

    1. 在 labs.h 中、我们观察到以下速度控制器 Kp 和 Ki 的公式(我在此处复制了这些公式以供参考)。

       

       2.在 user.c 中,为什么将 BWC_rps 乘以100? 以及 Bwdelta 值为何为8? 您能不能解释一下这些值的基础      是否已选择?

           pUserParams->BWC_rps = MATH_two_PI * 100.0;

           pUserParams->BWDelta =(float32_t) 8.0;

    下面是上述公式中第7实验的 Kp 和 Ki 值

    我们按照用户指南调整增益、但用户指南中的公式与 labs.h 公式不匹配。

    下面是用户指南示例图像

    在上面的示例中、为什么带宽比采样频率低20倍? 为什么 SpdKi 计算中的 Δ ꚍ= 1/200? 可以告诉我吗?

    最后、这些公式与第7个实验代码中给出的公式不匹配。 如何根据用户指南计算应用的 KP 和 KI 增益?

    谢谢  

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

    PI 控制器的此计算值基于您想要实现的电机参数和控制带宽、仅供您参考、您必须根据系统在实际情况下调整这些参数。

    [引用 userid="461371" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1043046/tmdshvmtrinspin-motor-testing-with-tms320f280049c-and-3-phase-power-card/3886361 #3886361"] 2. 在 user.c 中、为什么将 BWC_rps 乘以100? 以及 Bwdelta 值为何为8? 您能不能解释一下这些值的基础      已选择?[/报价]

    如上所述。 它是用于参考的设置控制带宽和阻尼因子、不是每个电机的正确值、您需要根据电机设置正确的值。  

    您可以查看一些有关 PID 控制器的教科书、这些教科书可能会对这些内容进行更详细的描述。

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

    罗致光感谢您的回复、

    1. 我们使用自己的三相驱动器和 TI 提供的 InstaspinFOC (TMS320F280049C)。
    2. “is03_hardware_test”实验中,我们的 PMSM 电机成功运行,我在下面的中附加了 CCS 波形(电压、电流和 SVGEN 输出)。
    3. “is04_signal_chain_test”实验中,我的电机也成功运行。
    4. 但在 lab05中、我们无法正确识别电机参数。在 Lab7中、我的电机不旋转
    5. 下面是电压、电流调节因数和 PWM 频率  

           

                #define USER_ADC_FULL_SCALE_VOLTGE_V        ((float32_t)(1200.0))

                #define USER_ADC_FULL_SCALE_CURRENT_A        ((float32_t)(20.0))

                #define USER_VOLTGE_FILTER_POLE_Hz              ((float32_t)(364.5))

               #define USER_PWM_FREQ_kHz                                ((float32_t)(5.0))  

       下面 是我们的电机参数。    

    #if (USER_MOTOR== Estun_EMJ_04APB22_A)
    #define USER_MOTOR_TYPE MOTOR_TYPE_PM
    #define USER_MOTOR_NUM_POLE_PAIRS (3)
    #define USER_MOTOR_RR_Ohm (2.4)
    #define USER_MOTOR_Rs_Ohm (4.86793718)
    #define USER_MOTOR_LS_D_H (0.003608008015)
    #define USER_MOTOR_LS_q_H (0.0036908008015)
    #define USER_MOTOR_RATed_VACK_VpHz (3.1)
    #define USER_MOTOR_磁 化电流_A (空)
    #define USER_MOTOR_RES_EST_CURRENT_A (10.0)
    #define USER_MOTOR_IND_EST_CURRENT_A (0.0)
    #define USER_MOTOR_MAX_CURRENT_A (3.8)
    #define USER_MOTOR_FLUX_EXC_FREQ_Hz (10.0)
    #define USER_MOTOR_NUM_ENC_SLOTS (2500.0)
    #define USER_MOTOR_INERING_Kgm2 (3.10002e-05)

    #define USER_MOTOR_FREQ_MIN_Hz (5.0)// Hz
    #define USER_MOTOR_FREQ_MAX_Hz (60.0)// Hz

    #define USER_MOTOR_FREQ_LOW_Hz (5.0)// Hz
    #define USER_MOTOR_FREQ_HIGH_Hz (50.0)// Hz
    #define USER_MOTOR_VOLT_MIN_V (45.0)//电压
    #define USER_MOTOR_VOLT_MAX_V (300.0)//电压

       下面  是我们的电压、电流感应电流和 DC_BUS 电压感应。

    下面是第三个实验中的电压和电流波形

    9. SVGEN 输出

    提前感谢

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

    请确保根据您自己的电路板正确计算以下参数。 并且不要在电流感应电路上添加大滤波电容器、请确保电流信号滤波器的截止频率必须远高于 PWM 频率。    

        #define USER_ADC_FULL_SCALE_VOLTGE_V        ((float32_t)(1200.0))

        #define USER_ADC_FULL_SCALE_CURRENT_A        ((float32_t)(20.0))

        #define USER_VOLTGE_FILTER_POLE_Hz              ((float32_t)(364.5))

    电流和电压检测的隔离放大器的延迟时间是多少? 如果延迟时间不同、并且电流的延迟时间较高、那么使用 InstaSPIN-FOC 可能会出现这种问题。