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.

[参考译文] TMS320F280041C:MotorControl SDK v5_03 Lab03无电源

Guru**** 2460850 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1505603/tms320f280041c-motorcontrol-sdk-v5_03-lab03-no-power

器件型号:TMS320F280041C

工具/软件:

您好! 我有基于 MotorControl SDK v5_03的变频器工作版本。 我制造了一个更大的逆变器、但电机的功率有问题。 在实验01和实验02中、ADC 读数正确、电流传感器指向范围的中间点(它们是双向1.75V 中点)、输出线路上的电压传感器指向直流线路电压的50%。 问题是电机未通电。 一个简单的小型三相感应电机(0.250W)正在启动、但由于其上的电压较低。 如果我尝试使用带内部断n`t 路的0.55W 电机、它甚至不能拉动断路器。 我的直流线路电压为3x380=550V、因此 USER_NOMINAL_DC_BUS_VOLTAGE_V = 550V、USER_ADC_FULL_SCALE_VOLTAGE_V = 850V。 正如我所说、当我检查 adcData.DCBus_V 时、电压读数是正确的 我尝试了 USER_MOTOR_VOLT_MAX_V 的不同值 在我工作的较小版本中、该值为380。 当我降低  USER_ADC_FULL_SCALE_VOLTAGE_V 时、可以在引擎中实现更大的功率。 这使我想到应该增加输出电压有效值。 但是、如果我更改了这些参数、读数  会不正确、在尝试使用矢量控制并输入电机参数时会出现问题。 是否有一个可以更改的值来增加输出电压曲线的有效值和相应的电机功率?  

因为现在电源模块比工作版本大、我检查了控制器产生的脉冲与驱动器之后 IGBT 上的电压之间的延迟、并且延迟是不可分的(因为现在 IGBT 具有更大的输入电容、这可能会导致设置信号和实际执行之间的较大延迟以及电机上的较低电压)。 这不是问题。 PWM 通道的死区时间设置为200 (HAL_PWM_DBFED_CNT 和 HAL_PWM_DBRED_CNT)、我的时钟为100MHz、因此这应该是2us 死区时间、我的进位位频率为4kHz。

是否有办法在不更改 USER_NOMINAL_DC_BUS_VOLTAGE_V  和 USER_ADC_FULL_SCALE_VOLTAGE_V 的情况下增强 LAB03中的 PWM 曲线 ? 还是应该使用它们、直到我准备好生成适当的输出曲线?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="259455" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1505603/tms320f280041c-motorcontrol-sdk-v5_03-lab03-no-power ]我的直流线路电压为3x380=550V 、因此 USER_NOMINAL_DC_BUS_VOLTAGE_V =550V、USER_ADC_FULL_SCALE_VOLTAGE_V = 850V。

    尊敬的 Pavin:

    通常将标称直流母线电压设置为接近直流电源电压、而不是相电压的倍数。 如果您实际上提高了新的 PCB 工作电压、则必须调整滤波器极点和 ADC 输入电阻分压器、以便在样片上留出30%的开销。 因此、如果两个定制电路板之间的工作电压都没有变化、则不更改比例因子的原因、请检查电流传感器 ADC 输入极性设置是否正确。

     如果 PCB 工作电压增加以及电阻分压器发生变化、滤波器极点非常重要、需要更新。 请注意、1.65v 是 EPWM XBar 故障跳闸区域的典型 ADC CMPSS DACVAL-H/L 计数。 您可以添加以下更新后的代码截图并设置过流跳闸点(user.h)、与通用 MCSDK 更适合电机 ID 过程非常相似。

    代码 snip 必须添加一些新的结构值、但添加 CMPSS 电流保护是值得的。 从表面上看、MCSDK v5.04没有为 lab_is02,03,04,05,07,09等提供非常准确的 OVC 故障跳闸。 labs.h/c 结构 CMPSS 比较器计数值在以任何精度保护 HV 逆变器方面几乎没有效果。 TI 工程师随时准备好通过 PPB 通过 ADC 样本进行通用 MCSDK 电流监控。 尽管反相 DACVAL-L 计数2048-0为反相正弦波峰值电流接近零计数。 因此、当从4096中减去低侧反转计数值时、该值将是较小的数字、并且两个计数将呈现相等的当前跳闸点。 否则、EPWM DCB 值的 CMPSS 跳闸状态将 在 POR 后设置故障状态。  您可以调整计数以更接近高电流跳闸点、也许每个计数增加±1024。 保留 原始 DACVALL/H 计数 labs.h/c、在下面的 代码截图中弃用。  添加到 user.h 交流电机配置文件:

    #define USER_MOTOR_OVER_CURRENT_A  (n.nf)、//您的值(n.n)电机 OVC 故障跳闸区点。

    可以将相同的更新添加到存储的 userParams 配置文件。

    /*电流放大器最大分流电流*/
    userParams.User_ADC_Full Scale_Current_= USER_ADC_FULL_SCALE_CURRENT_A;

    //! \brief 定义系统的电流比例反转因子
    userParams.currentInv_sf = USER_M1_CURRENT_INV_SF;//新 CMPSSS DACVAL-H/L 03-24-25

      

    // Add to user.h
    //! \brief Defines the current scale invert factor for the system
    //!
    #define USER_M1_CURRENT_INV_SF      (4096.0f / USER_ADC_FULL_SCALE_CURRENT_A)
    
    //
    // set CMPSS_DACH/L values for on-chip comparator current protection
    // Modified 4-23-25 adding OVC fault value to existing motor profiles
    {
        uint16_t  cmpssCnt;
        float32_t overCurrent_A;
    
        for(cmpssCnt = 0; cmpssCnt < HAL_NUM_CMPSS_CURRENT; cmpssCnt++)
        {
            overCurrent_A = (userParams.overCurrent_A > userParams.maxCurrent_A) ?
                             userParams.maxCurrent_A : userParams.overCurrent_A;
    
            int16_t cmpValueH = (int16_t)(overCurrent_A * userParams.currentInv_sf);
    
              motorVars.dacCMPValH = 2048 + 256 - cmpValueH; //2048-4096 peak counts
    
            HAL_setCMPSSDACValueHigh(halHandle,
                                     cmpssCnt, motorVars.dacCMPValH); //motorVars.dacCMPValH
        }
        //
        for(cmpssCnt = 0; cmpssCnt < HAL_NUM_CMPSS_CURRENT; cmpssCnt++)
        {
            overCurrent_A = (userParams.overCurrent_A > userParams.maxCurrent_A) ?
                             userParams.maxCurrent_A : userParams.overCurrent_A;
    
            int16_t cmpValueL = (int16_t)(overCurrent_A * userParams.currentInv_sf);
    
              motorVars.dacCMPValL = 2048 - 256 - cmpValueL; // 2048-0 peak counts
    
            HAL_setCMPSSDACValueLow(halHandle,
                                    cmpssCnt, motorVars.dacCMPValL);
        }
    }

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

    我n`t 传感器有问题。 该550V 是在 I SET 该值之前在直流线路上测量的。 它不仅仅是计算、它给出了相同的值...  

    Lab03n`t 不使用电流和电压传感器来计算输出曲线。 它是开环控制。 n`t、我没有足够的功率。  USER_ADC_FULL_SCALE_VOLTAGE_V 的这种变化会导致对直流线路电压计算进行补偿、实际上会增加所生成曲线的幅度。 但这并不是正确的方法、因为现在所有电压传感器值的计算都不正确、我没有机会在矢量控制中转动电机。

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

    右开环。 但是、如果电机电流向上变化、并且您没有用于将 ePWM A/B 输出设置为高阻抗的出色 CMPSS 电流监控器、则仍然可能破坏 IGBT。 MCSDK 主要是为 DRV83xx SPI 驱动器开发的、它们设置 GPIO nFault 跳闸区、CMPSS 似乎是事后才考虑的问题、而且有点复杂。

    如果更改了 ADC 电流和分压器、仍需要更新滤波器极点值。 此外、运行 lab_is04以验证 ADC 传感器值和输入是否正常工作。 使用 CCS debug 和浏览以加载调试 Java 脚本、从而进行 lab_is04表达式监控。

    检查 CMPSS 寄存器是否未设置任何锁存器、H/L 位为单触发位。 通常情况下、会设置 PWM B 低侧锁存器、原因不明。 可以手动清除寄存器视图中的锁存器、并将 CLR 位设置为1。 合理的 HAL_CMPSS-H/L 在 lab_is02/03中仍处于活动状态、可能不在 while 循环中但仍然正常运行

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

    我不是这样的! 我在每个 IGBT 上都有去饱和保护。 n`t 过流或短路无法损坏 VTS。 只有过热,这不是一个问题,当我使用它的时间很短。  

    lab03和 lab04似乎无法n`t 用内部断裂来转动马达。 只有常规的三相异步电机。  USER_MOTOR_MAX_CURRENT_A 会裁剪输出振幅。 这就是n`t 没有权力的原因。  

    这就产生了融合。 我再次检查 lab07,现在一切都很好。 n`t 问题出现在我的软件中、该软件无法正确启动 lab07。 我的最后一个项目基于 lab07、我的代码中有一些与较小的 PCB 不同的地方。 我很快就会找到它。

    谢谢!

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

    在调试之前、应针对任何工程中的低侧分流器和电流传感器(V/A)设置峰峰值电流(而非峰值电流)进行该设置。  任何人都可以分辨双向电流传感器的峰值、而不是 p2p、因为首字母缩略词 MAX 似乎可以推断出峰值、而不是 p2p。   

    我在每个 IGBT 上都有去饱和保护。

    问题在于 CMPSS 触发故障、您可能设置了 Tz 动作限定器 PWM-A/B 跳闸低电平状态。 这确实会禁用导致 Tz 单触发操作的 PWM 输出、DESAT 与 MAX 电流设置错误无关。

    我们将上面优化的 OVC 故障检查代码添加到了 while 循环 lab_is07中。 当输出将基准输入驱动到3个低侧电流传感器时、将 DAC-A/B 编程放在 while 环路中也似乎很奇怪。    

    祝您好运、鼓励使用定制 PCB 测试适用于电机 ID 的通用 MCSDK。