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.

[参考译文] CCS/TIDM-1000:VbusPM 和 VbusNM 的校准

Guru**** 2595800 points
Other Parts Discussed in Thread: C2000WARE-DIGITALPOWER-SDK, AMC1301, AMC1311

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/718532/ccs-tidm-1000-calibration-of-vbuspm-and-vbusnm

器件型号:TIDM-1000
主题中讨论的其他器件:C2000WARE-DIGITALPOWER-SDKAMC1301AMC1311

工具/软件:Code Composer Studio

您好!

我目前正在运行三相 Vienna PFC 解决方案、并希望校准总线电压。 使用 BusMeasurationRoutine Excel 文档、我输入了我测得的总线电压和 GUI 测量值、并运行了回归分析。 我不确定 接下来应该做什么。  用户指南中没有太多关于校准的信息。  我假设我使用回归分析生成的 Intercept 和 X 变量、只是不确定如何更改解决方案中的偏移和增益。

此致、

Luke Nicholson

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

    Luke 一旦您获得了 X 变量、即斜率和截距、就可以更改以下变量的值

    // y= mc+ b 方程,用于减少偏移和增益误差
    vBusPMMeas = m_VBusPMMeas *vBusPMMeas + b_VBusPMMeas;
    vBusMNMeas = m_VBusMNMeas * vBusMNMeas + b_VBusMNMeas;

    m_VBUS... 是 X 变量 I.e 斜率

    B_Vbus 是 y 截点

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

    谢谢 Manish、

    还有几个问题;

    1) 1) VDCBUS_MAX_SENSE 在 GUI 和.h 文件中设置为717.79、但当我查看计算电子表格时、Vbus_max_sense 的计算值为631.279。 它应该是631.279还是717.79? 电子表格中的值看起来与电路板和 sch 匹配。  

    2) 2)如果我想编写一段代码、以便在正常条件下运行时安全停止 PFC、最好的方法是什么? 我正在考虑使用 GPIO 从另一个处理器发送关断信号。 我已经添加了一个使用 clearTrip 变量和输入电压感测的简单自动启动功能。  

    3) 3)此外、我的其中一个输入电流波形的失真比其他波形稍大。 当输入电压为400VAC (L-L)且输出功率约为1900W 时、一相的 THD 为4%、而另一相为3.2%和2.4%、似乎大部分是输出的第九谐波。 所述相位为3.1%、而其他两相位为1.9%和1.2%。 我的所有反馈似乎都正常工作、输入和升压电感器是否只是略有变化?  

    谢谢、

    Luke Nicholson

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

    1.我注意到问题、现在建议使用717.79、我将在 xlsx 表中看到问题是什么、并且必须返回给您。

    2.禁用 PFC 的一个简单选项是执行软件强制跳闸。 即
    ePWM_forceTripZoneEvent (base、ePWM_TZ_FORCE_EVENT_OST);

    您必须在所有 PWM 模块上执行此操作。 但记住、当你回头时、你必须更加小心。

    3.您将此设备与哪个设备配合使用? F28004x 或 F28377xD?

    我假设您使用的是 C2000Ware-DIGITALPOWER-SDK 中的最新软件?

    从布局的角度来看、ADC 感应存在一个小问题。 您将看到、在开环下、一些通道上的噪声略高。

    我亦注意到,新界北总的分辨率可能会有所不同。 因此、为了获得最佳性能、我建议在最终产品中使用继电器。

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

    e2e.ti.com/.../amc1301_5F00_vbus_5F00_sense.TSC

    Luke、

    我回顾了我的笔记、似乎无法从 Excel 中进行真正的 Vsense 最大值计算、因为 AMC1301具有一些非理想因素。

    因此、我进行了 Tina 仿真(请参阅随附的)。 您可以看到、通过这种方法、我们得到的最大感应值为~700V、因为我没有进行这种 Tina 仿真、因此我使用了经验编号710、然后使用校准函数来抵消选择此710值时的任何误差。  

    我同意我需要 在 UG 中更好地说明这一点。 但希望这对您有所帮助。

    请注意、我们有更好的隔离式电压检测器件 AMC1311将是更好的选择、所需的校准也将大幅减少。  

    此致

    Manish Bhardwaj

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

    Manish、

    感谢您提供相关信息。 我使用 的是 F28377xD 控制器和最新的 C200Ware 软件。 我已附加输入电流的屏幕截图。 所有反馈似乎都正常工作、我的栅极驱动器看起来都很好。 如果对不正确的事情有任何想法、都是很好的。

    还有其他一些问题。

    1) 1)构建4中是否使用了 SD_Data_I1/2/3? 通过查看固件、我找到 了 readCurrent SDFMSignals 函数、但似乎从未使用过。  

    2) 2)我们仍在努力停止并安全地重新启动 PFC、现在、一旦我们停止、我们将设置以下变量 firstTimeGvLoop = 1、closeGvLoop = 0、closeGsLoop = 0、closeGiLoop = 0、duty1PU = 0、 duty2pu = 0、duty3pu = 0。 设置这些变量后、我们计划写入 clearTrip = 1以重新启动。 我们目前还没有测试过它、我们是否应该重置任何其他变量以安全地进行软启动?  

    此致、

    Luke Nicholson

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

    Luke、  

    1.对于 SDFM、您可以在 settings.h 文件中的用户部分下启用它、有一个选项  

    //选择感应选项,1表示 ADC,2表示 SD
    #define ADC_based_sensing 1.
    #define SDFM_based_sensing 2.
    #define sensing_option 1.

    2、很好的一点 是、你正在执行 closeGiLoop = 0、这实际上会强制 duty1pu = 1、duty2pu = 1、duty3pu = 1 (请参阅 ISR 代码)。 我还建议将 GV 补偿器上的内部存储元件归零、以便它重新开始。  (GV.I10)

    在波形上、您是否担心其中一个波形的失真稍大? 或者您更担心振幅变化?

    对于失真、我建议尝试 SDFM 选项、效果会更好、ADC 感应(由于布局)在其中一个反馈上具有更多的噪声、这会导致 失真。  

    对于振幅差异、请尝试绕过 NTC、我已经观察 到这些差异对测量有重大影响。  

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

    Manish、

    感谢反馈、这是我所关心的输入电流上的失真。 我更改为基于 SDFM 的感应、它对其进行了清理并极大地改善了我的谐波。 我们还成功添加了软启动正确的重新启动函数。

    还有另一个关于空载操作的问题。 PFC 以600Vdc 输出运行时、我可以成功移除大部分负载并保持稳压、但当我尝试进入空载时、输出会严重过冲、PFC 会关断。 我已经附加了一个屏幕截图、CH2是总线电压。 我将 VBUS_TRIP_LIMIT 设置为850Vdc、我们正在使用750Vdc 总线进行一些测试。 此外、当我尝试在无负载的情况下启动 PFC 时、它也会过冲并关断。  想知道您是否在无负载的情况下遇到过相同的问题、以及您是否有任何建议来解决该问题。

    另外还有一个关于 boardStatus 的问题、PFC 运行后、它似乎总是显示 NoFault。 即使我们导致总线过压跳闸或其他故障。 它似乎没有更新或正在快速复位。 这是查找故障信息的正确变量吗? 或者是否有另一个可保存故障状态的变量?  

    此致、

    Luke Nicholson

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

    Luke、

    1.在空载情况下,我不知道如何解决。 如果在无负载下无法轻松控制、则可以添加某种突发模式。

    2.对于电路板状态、我注意到 OVP 检测有一个问题、基本上只有电路板状态不存在故障时、OVP 检测才会运行、现在一旦发生跳闸且电压恢复跳闸被清除。

     IF (PWM_EMU_TRIP_STATUS (HIGH_FREQ_PWM1_BASE))

      {

        boardStatus=boardStatus_Idle;

      }

      否则、if (guiVbus > guiVbusTripLimit || guiVbusPM > 415.0

          || guiVbusMN > 415.0)

      {

        forceOSTPWMTrip (HIGH_FREQ_PWM1_BASE);

        forceOSTPWMTrip (high_FREQ_PWM2_base);

        forceOSTPWMTrip (high_FREQ_PWM3_base);

        boardStatus = boardStatus_OverVoltageTrip;

      }

      否则(fabs (guiVbusPM-guiVbusMN)>50)

      {

        forceOSTPWMTrip (HIGH_FREQ_PWM1_BASE);

        forceOSTPWMTrip (high_FREQ_PWM2_base);

        forceOSTPWMTrip (high_FREQ_PWM3_base);

        boardStatus = boardStatus_BUSImpanceTrip;

      }

      否则、如果(CURR_TRIP_LATCH_STATUS (Board_PROT_IL1_CUR))

      {

        boardStatus=boardStatus_OverCurrentTrip_IL1;

      }

      否则、如果(CURR_TRIP_LATCH_STATUS (Board_PROT_IL2_CUR))

      {

        boardStatus=boardStatus_OverCurrentTrip_IL2;

      }

      否则、如果(CURR_TRIP_LATCH_STATUS (Board_PROT_IL3_CUR))

      {

        boardStatus=boardStatus_OverCurrentTrip_IL3;

      }

      否则、如果(PWM_OC_TRIP_STATUS (HIGH_FREQ_PWM1_BASE)!= 0)

      {

        boardStatus=boardStatus_OverCurrentTrip;

      }

      其他

      {

        boardStatus = boardStatus_NoFault;

      }

    您可以尝试取消注释上述内容、以确保在 OVP 之后不会自动清除跳闸。