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:快速启动期间发生过压

Guru**** 2550460 points
Other Parts Discussed in Thread: TMS320F280025, TIDM-02010, MOTORWARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1234371/tms320f280025-overvoltage-during-flying-start

器件型号:TMS320F280025
主题中讨论的其他器件: TIDM-02010MOTORWARE

尊敬的支持团队:

我正在使用我自己的电机和 DRV8353RS、3个分流器和 TMS320F280025 lanch pad。

电机运行正常、我只是在快速启动期间有一个小问题。

我使用 SDK 4_02_01_00中的通用电机控制实验。

如前所述、这些参数已设置:

  obj->flagEnableFlyingStart = true;  

obj->flyingStartTimeDelay =(uint16_t)(objUser->ctrlFreq_Hz * 0.5f);// 0.5s

#define USER_MOTOR1_SPEED_FS_Hz       (3.0F)

在快速启动期间、发生过压(28V 电源约为10V)、请参阅以下内容:

黄色:直流电压

蓝色:电机中的电流(10mV=500mA)

粉色:MOT B 电压

如您所见、当标志 motorVars_M1.flagEnableRunAndIdentify 设置为1时、电流在调节为0之前需要几 ms、在此期间、直流电压会过冲

然后在0.5秒之后、电机按预期加速。

不启用偏移计算。

我想到的是电流调节器设定点设置不正确的情况。

我尝试增加快速启动延迟、但只是延迟电机加速时的时间、过冲是相同的。

您能帮助我减少这个过压吗?

谨致问候

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

    您好!

    您的电机在重新启动之前是否在启用快速启动的情况下并朝所需方向(匹配 USER_MOTOR1_SPEED_FS_Hz)旋转? 您能否尝试绘制转子角度图、看看它在开始向电机输出之前是否正确检测到角度/速度。 可使用外部 DAC 或 CCS 图形工具绘制。

    请参阅下面的 TIDM-02010文档以获取参考:

    图3-32是风扇电机在具有快速启动功能的情况下运行时的屏幕截图。 该屏幕截图显示
    CH1 (黄色):DAC 输出的转子角度
    CH2 (绿色):DAC 输出的感测相电流
    CH4 (粉色):使用电流探头测量的相电流

    此致!

    凯文

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

    您好!  

    您的电机在重新启动之前是否在启用快速启动时旋转并朝所需方向(匹配 user_motor1_speed_fs_Hz)?

    是的、电机正按所需方向旋转。

    您能否尝试绘制转子角度以查看它是否在开始向电机输出之前正确检测了角度/速度。 可以使用外部 DAC 或 CCS 图形工具绘制图。

    请参阅下方的测量:

    粉色:直流电压

    绿色:DAC CH_B = adcData.I_A.值[0]

    蓝色:电动机中的电流

    黄色:DAC CH_A = angleFOC_rad

    您分享的图与我的图不同、您分享的图是电机电流增加以驱动负载时的情况、即在快速启动延迟后。  在快速启动延迟之后、我没有任何过压。

    此致。

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

    您正在使用什么观测器算法? 快吗? eSMO? 目前、快速启动仅适用于 FAST 估算器。

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

    是的、使用 FAST。

    为了了解相关信息、我在过去曾遇到过旧版 Motorware 和旧版评估套件的问题(此时、快速启动不是 Motorware 的标准行为)。

    请参阅以下内容:

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/327771/flying-start-overvoltage

    原因如下:

    -在评估套件上使用的驱动程序需要几毫秒来初始化=>我可以用我自己的硬件解决这个问题。

    -在启用电流控制器之前,有必要将两个电流控制器都选为电机的反电动势

    快速启动是电机控制 SDK 的一部分、因此我认为无需添加此代码、但可能是错的。

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    -在启用电流控制器之前,必须将两个电流控制器种子到电机的反电动势

    它是可选的、具体取决于硬件。 在您开始运行电机之前 FAST 估算器似乎无法工作。 正确的波形应该与上面发布的图片 Kevin 相似。 FAST 估算器一直被启用来在速度闭环使电机旋转前检测转子角度和速度。

    您是否在示例项目中进行了任何更改? 还是只通过设置上述标志来启用快速启动?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正确的波形应该类似于上面发布的图片 Kevin [/报价]

    我没有对此感到烦恼、正如我说过的、Kevin 发布的波形不是同时出现的:

    在标准通用电机控制实验中、有0.5s 的超时时间。 在此超时期间、Id 和 Iq 设置为0、 在超时结束时、Id 和 Iq 设置为正常值。

    我们可以在 Kevin 波形中看到、电流开始增加、这意味着超时开始出现在屏幕上(左侧)。

    仅在启用 PWM 时、过压和我的波形才会超时。 在超时结束时、我不会有任何问题。

    作为参考、我尝试延迟几毫秒的 PWM 启用、但结果是相似的。

    我做了一些小的改变,但它不应该有这样的影响。 我将进行验证、或返回到原始电机控制实验室。

    此致。

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

    为了获得更多信息、我进行了附加测试:

    -返回到原始的电机控制实验室  SDK 4_02_01_00 (没有任何更改其他电机参数和启用快速启动):过压是相同的

    -返回到一个旧的项目与 SDK 4_00_00_00 :过压较低(除以3 )。

    因此我将重点放在 KP/Ki 上,特别是 ID 和 IQ 电流,它们与4_00_00和4_02_01不同:所以使用相同的 KP , 我也降低了4_02_01的过压。

    再次增加、过压再次降低。

    峰值电流减小不是很多、但会更快地下降到零、这有助于解决过压问题。

    当然、结果更好、但最好不要存在峰值电流、因为在最终的工程中、电压和电容器将会不同、因此可能会产生更大的影响。

    此致。

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

    主要问题是 FAST 估算器在电机启动前不工作。 问题是电路板上电后首次启动电机、还是在任何时候启动电机?

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

    这是在任何时候。

    我作了以下测量:

    我在电机相位添加了一个 RC 滤波器,这样我就可以看到 PWM 开关电压的平均值。 我可以清楚地看到、启用 PWM 后、电机相位之间的电压在短时间内不会跟随反电动势、这会产生第一个也是更高的电流峰值。

    因此对于我来说、电流控制器需要与反 EMF 对齐。

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

    您好、Manu36:

    您是否尝试在周期影子加载 CMPA 开启和强制加载时更改任何 PWM 设置(hal.c)? 不知道 EMF 是否通过 PARK 使其与 PWM 驱动器更好地同步在以下设置。 显然、当存在角度时、估算器正在您的捕获中运行、但 PWM 为 MIA、它看起来像是发生了电感反冲。 在 x49c driverlb 中找不到软件调用的注释 SYNC、并且传递编译器警告。 零时的同步输出脉冲将使两个通过主器件的从器件与 CMPA 匹配保持同步。 值得一试、看看这是否有助于缩短或抑制电气干扰。

    //EPWM_setPeriodLoadMode (obj->pwmHandle[cn]、epwm_period_direct_load);

    //将周期加载模式静默影子加载设置为
    EPWM_setPeriodLoadMode (obj->pwmHandle[cn]、epwm_period_shadow_load);

    EPWM_setSyncOutPulseMode (obj->pwmHandle[cn]、epwm_sync_out_pulse_on_counter_zero);

    //epwm_enableSyncOutPulseSource (obj->pwmHandle[cn]、epwm_sync_out_pulse_on_software);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    -我在电机相位上添加了一个 RC 滤波器,这样我就可以看到 PWM 开关电压的平均值

    这话什么意思?  是否要在逆变器的输出端为电机线路添加 RC 滤波器? 什么 RC 滤波器?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否尝试更改任何 PWM 设置(hal.c),因为周期影子加载 CMPA 时使用与强制加载时使用[/报价]

    否。

    我尝试了建议的更改( epwm_setSyncOutPulseMode (obj->pwmHandle[cn]、epwm_sync_out_pulse_on_counter_zero); 由于错误而被 epwm_enableSyncOutPulseSource (obj->pwmHandle[cnt]、epwm_sync_out_on_pulse_on_CNTR_zero)所取代)。

    没有明显的差异。

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

    RC 滤波器只是并联来滤除 PWM 频率以进行范围测量。 我只需在 上一个测试中添加它、它以前没有连接。 我不记得 R 和 C 的值、我很久以前做过这个、但电阻器可能预示着会干扰 FOC 的电流存在差异。

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

    直接加载 PWM 功能怎么样? 在500ms 延迟期间似乎有某种东西钳制(锁定)或禁用 PWM 输出。 似乎快速启动应将占空比设置为50%(零电流)、以便逆变器在500ms 内不会进入再生状态。 假设示波器捕获指示在 PWM 不存在时出现电压尖峰。 电压尖峰是否会触发 OVC 故障?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在500ms 延迟期间似乎有人钳制(锁定)或禁用 PWM 输出

    我对此感到不安:

    -见第一个后文的粉色波形,我们可以看到 PWM 开关频率和电流波形也会不同,如果是这种情况(由于 Iq/Id 稳压器,不是由于已经在旋转的电机的速度变化,电流收敛到零)。 此外、我还清楚地看到、如果更多稳压器需要激活、更改 IQ/ID 稳压器会降低过压。

    似乎快速启动应该设置50%的占空比(零电流),这样逆变器在500ms 内不会进入再生状态[/报价]

    再生不是在500ms 期间、而是仅在50ms 期间、当 IQ 和 ID 调节器将电流稳定为0时、不再有再生。

    我不同意50%占空比。 如果电机正在旋转、它将产生与50%占空比不同的电压、并产生流动的电流。 在启用 PWM 之前、占空比应该设置为每个相位的相应 BEMF。

    这就是为什么我说:  

    为了了解相关信息、我在过去曾遇到过旧版 Motorware 和旧版评估套件的问题(此时、快速启动不是 Motorware 的标准行为)。

    请参阅以下内容:

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/327771/flying-start-overvoltage

    原因如下:

    -在评估套件上使用的驱动程序需要几毫秒来初始化=>我可以用我自己的硬件解决这个问题。

    -在启用电流控制器之前,有必要将两个电流控制器都选为电机的反电动势

    [/报价]

    此致。

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    再生时间不是在500ms,而是只有50ms,当 IQ 和 ID 调节器将电流稳定到0时,不再有再生。

    我看到 PWM 正在驱动相位、但以某种方式导致50ms 时间内的电感电流上升。 我刚刚回忆起读数为500ms 的延迟、没有注意到捕获到50ms 的时间、因为示波器 LCD 显示 Delta X 1.3秒。 播种电流控制器似乎是一个减缓电流上升的奇怪的方法。 同样、如果它没有触发 OVC 故障、那么问题也不是那么严重。

    或许最好在 PWM 控制下让电机减速、消除500ms 的快速启动延迟。 减速代码 snip 可以正常运行、但尚未使用快速启动进行测试、但它恢复以设置轨迹速度、没有问题。  

                // Just increase or decrease the trajectory speed
                else
                {
                    TRAJ_setMaxDelta(trajHandle_spd,
                              (motorVars.accelerationStart_Hzps / USER_ISR_FREQ_Hz));
                }     
         
    /***********************************************************************************/
    
                /* Should motor decelerate or regenrate */
                if(bMainDecel)
                {
                    /* reduce acceleration, slowly decelerate to a stop */
                    motorVars.speedRef_Hz = USER_FORCE_ANGLE_FREQ_Hz; //USER_MOTOR_FREQ_LOW_HZ
    
                    /* Disable PWM drive anywhere near low hertz speed */
                    if(motorVars.speed_Hz <= USER_FORCE_ANGLE_FREQ_Hz)
                    {
                        /* Set EPWM A/B outputs disabled
                        * high impedance regeneration */
                        HAL_disablePWM(halHandle);
                        /* set user throttle pedal trajectory speed */
                        motorVars.speedRef_Hz = USER_MOTOR_SPEED_REF_HZ;
                        // update the reference to the trajectory of speed
                        //TRAJ_setTargetValue(trajHandle_spd, motorVars.speedRef_Hz);
                        /* Set motor offline not running */
                        motorVars.flagRunIdentAndOnLine = false;
                        /* leave controller enabled */
                        motorVars.flagEnableSys = true;
                        /* Clear the stop flag */
                        bMainDecel = false;
                        /* Update HID motor stopped */
                        bMainStop = true;
                    }
                }
     

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

    我不确定、您是否想要尝试控制减速而不是真正快速启动?

    如果为 true、则无法用于我的应用。 需要快速启动(但正如我看到的、电机在快速启动时速度较慢、较低的 速度是过压、我可以允许快速启动、速度对于过压是可以的、如果速度过高、 我可以等待速度降低)。

    实际上、OVC 不会跳闸、但我不会使用最终电路板和最终电机。 最终电路板将在几周内提供、但最大电压(尤其是电容器电压)将接近标称电压(就成本和尺寸而言)。 因此、只可接受低过压(10%至20%)。

    接收电流控制器似乎是减缓电流上升的奇怪方式

    我不确定、启用 PWM 时、如果 PWM 生成的电压与电机电压的相位和振幅不同、它始终会根据较高的电压产生电流、正或负。 电流控制器会更改 PWM 以收敛为零、但反应总是需要时间。  

    说实话、这不是我的想法、不同的 TI 专家在论坛上讨论这个问题(在过去和我一起或与其他人一起)。

    有传感器解决方案我们在启用 PWM 之前在正确的点内部设置 SVM、这时没有电流流过...

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不确定,您是否想要尝试控制减速而不是真正的快速启动?

    在 PWM 控制下看似 FOC 在减速、然后在某个点(无延迟)置位飞行启动命令、或只是减速并通过节气门位置或其他方式恢复到新的设定的轨迹速度。  现在使用液晶屏上的 START (开始)按钮在减速时恢复、不快速启动并且没有 OVTH 问题。

    SDK 可以将 DRVIC 的 SPI 滑行命令置为有效、但半桥不知道是什么。 MCSDK 具有 SDK 不具有的制动命令、但它可能具有比简单减速更激进的启动速率、轨迹节拍计数可匹配设定的启动速率。 这是我的下一个 SDK 实验、但 MCSDK 在 FOREVER 循环中具有默认且更快的启动速率、ISR 25µs 的抽取频率为20kHz。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    RC 滤波器只是并行用来过滤 PWM 频率以进行范围测量。

    不能在电机线上添加任何会使 FAST 估算器无法正常工作的 RC 滤波器。

    如何停止和启动电机?  是否要在 CCS 调试表达式窗口中更改"motorVars_M1.flagEnableRunAndIdentify"?

    您能否发布您在 user_mtr1.h 中使用的电机参数?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何停止和启动电机?  在 CCS 调试表达式窗口中更改"motorVars_M1.flagEnableRunAndIdentify"?

    您能否发布在 user_mtr1.h 中使用的电机参数?

    #define USER_MOTOR1_TYPE MOTOR_TYPE_PM
    #define USER_MOTOR1_NUM_POLE_PAIRS (4个)
    #define USER_MOTOR1_RR_OHM (NULL)
    #define USER_MOTOR1_Rs_Ohm (0.285154581)
    #define USER_MOTOR1_LS_d_H (0.00202809973)
    #define USER_MOTOR1_LS_Q_H (0.00202809973)
    #define USER_MOTOR1_RATED_FLUX_VpHz (0.191983)
    #define USER_MOTOR1_MAGNETIZING_CURRENT_A (NULL)
    #define USER_MOTOR1_RES_EST_CURRENT_A (1.0f)
    #define USER_MOTOR1_IND_EST_CURRENT_A (-0.8f)
    #define USER_MOTOR1_MAX_CURRENT_A (6.0f)//au 代替3
    #define USER_MOTOR1_FLUX_EXC_FREQ_Hz (50.0f)
    #define USER_MOTOR1_OVER_CURRENT_A (9.0f)//替换6.5
    #define USER_MOTOR1_RATED_VOLTAGE_V (24.0f)

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

    我将在示例实验中检查和测试快速启动功能、并尽快为您提供反馈。 应用是什么?  

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

    这是一种 FAN 应用。

    感谢您的支持(这是我们之所以选择 TI 而不是竞争对手解决方案的部分原因、这是非常值得赞赏的)。

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

    由于我们没有低压风扇、因此使用高压套件在高压风扇上进行了测试。 快速启动功能在该风扇上运行良好。 让我尝试找出在您停止电机时估算器不能继续工作的原因。 如果启用了快速启动、快速启动将使 FAST 估算器始终能够检测转子角度和速度。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请让我尝试找出为什么在您停止电机时估算器不能继续工作的原因。 如果启用了快速启动、快速启动将使 FAST 估算器始终能够检测转子角度和速度。

    有什么新闻吗?

    此致。

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

    在示例实验中、快速启动功能看起来效果很好。 您可以尝试将较小的值设置为"flyingStartTimeDelay "、以降低电压升压值。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在示例实验中似乎快速启动效果良好

    这意味着什么?

    没有过压? 没有电流峰值? 我无法想象在启用 PWM 时将 PWM 设置为50%会出现不同的行为。 影响会因电机快速启动时的速度、直流链路电容值和其他参数而异。

    从外部来看、如果我没有查看电压、快速启动也会起作用。 如果产生过压、我需要使电容器(值或电压)过大。 我不知道为什么要这样做。

    我仍然认为、启用 PWM 时、应根据每个电机相位上的 BEMF 设置 PWM 占空比。

    此致