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.

[参考译文] BOOSTXL-BUCKCONV:tidu986a 上的 SFRA 产生意外结果

Guru**** 2515675 points
Other Parts Discussed in Thread: SFRA, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1554031/boostxl-buckconv-unexpected-results-from-sfra-on-tidu986a

器件型号:BOOSTXL-BUCKCONV
主题中讨论的其他器件:SFRASysConfig

工具/软件:

您好:

我一直按照 TIDU986a 运行实验、并有几个关于 SFRA 的异常情况:

  • 受控体与开环模型:
    • 当我运行实验 1 时、我会得到 D to Vo 响应。 SFRA 进行的扫描产生了两个结果:开环传递函数和被控对象传递函数。 在该测试背景下、开环传递函数是什么意思? 因为如果 CCM 降压转换器的 D-to-Vo 波特图、结果看起来非常奇怪。 以下是来自实验文档中有关开环传递函数的 SFRA 结果的屏幕截图、相位以接近–180 度的角度开始、这很奇怪。
    • 当我观察受控体传递函数时、这似乎更符合我从相位的角度对数输出电压响应的预期。 但是、直流增益值似乎非常低。 输出电压约为 2.3V、I 穿孔的占空比为 30%。 我预计增益为~17dB、但在受控体波特图中、增益约为 1.7。 如果有人能帮助我了解结果、那会很好。

  • 我遇到的下一个问题有点奇怪、是当我想看到较低的 ISR 执行速率对我的 D-to-Vo 传递函数的影响时。 我预计控制器执行频率越低、相位滚降的速度就越快、但我发现情况恰恰相反。 以下是在 200kHz 和 33kHz 频率下执行的受控体波特图的比较情况:

  

对于 33kHz、相位滚降似乎以更高的频率发生、这对我来说非常奇怪。 想知道是否有人可以帮助我了解这个结果。

注意:我修改了工程以使系统在 33kHz 下运行、为了确保正确运行、我在 ISR 中进行了引脚切换并在示波器上捕获了该工程(时间刻度不变,光标通过 CH1 上的引脚切换来指示 ISR 频率。 Ch2 是输出电压)。 请参阅下面的:

期待对 SFRA 工具进行澄清!

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

    尊敬的 Munadir:

    我目前正在研究这个问题。 同时、您是否可以参考我们的 C2000Tm 软件频率响应分析器 (SFRA) 库和补偿设计器用户指南? 此外、我们有几个视频记录了该工具、希望能够澄清您可能遇到的一些问题

    此致、

    彼得

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

    您好、Peter:

    感谢您的建议。 我 翻阅了 SFRA 库的文档 、试图了解受控体和开环模型的含义、但开环降压的奇怪结果使我感到困惑。 我特别看了这个部分:  

    我对此的理解是、对于开环控制器降压转换器、 “受控体模型“和“开环“模型中的频率分析应该相同、或者由于没有补偿器、“开环“频率响应看起来似乎没有意义。  

    总之、 我将对其进行更全面的了解。  

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

    尊敬的 Munadir:

    文档是否明确了您对此问题的疑问?


    此致、

    彼得

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

    嗨、Peter、不太好。 至于直流增益会低于预期的原因、调节差异仍然不明显。 然而,可能有一个非常简单的解释,人们可能可以通过挖掘代码找出.

    什么是更有趣的我和不太明显是 执行频率和相位滚降的影响没有意义。 对此有任何见解吗?

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

    您好:  

    专家将离开办公室直至 9/2/25。  

    此致、

    Carlos

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

    尊敬的 Munadir:

    电路板上对硬件进行了细微修改、以促进实现更好的控制环路性能、因此实际的 SFRA 图将与手册中显示的图略有不同。

    请注意、 滚降是一个可能沿两个方向发生的特性、具体取决于滤波器类型。 对于 低通滤波器、滚降会随着频率的增加而发生。 在高通滤波器或带通滤波器的下沿中、滚降随着频率的降低而发生。

    此代码采用了一个#define、用于定义 ISR 生成分频器。 它用于生成较低的执行频率吗?

    此致、

    彼得

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

    嗨、Peter、我基本上修改了 syscfg 文件(请参阅随附的内容)

                    name: "IsrRatio",
                    displayName: "Control Loop ISR Ratio",
                    default: 1,
                    onChange: recalc_IsrFreq,
                    options: [
                        {displayName: "Control ISR runs at Fsw",     name: 1},
                        {displayName: "Control ISR runs at Fsw / 2", name: 2},
                        {displayName: "Control ISR runs at Fsw / 3", name: 3},
    		            {displayName: "Control ISR runs at Fsw / 6", name: 6}

    基本上、我添加的最后一个选项“{displayName:“control ISR run at fsw / 6“、name:6}“就是这个选项。 我还想确保我的更改按预期运行、因此我将 GPIO 配置为在每次调用 ISR 时都切换。

    在“buck_user_setting.h"中“中、我添加了:

    #define BUCK_ISR_PIN_TOGGLE_GPIO        4
    #define BUCK_ISR_PIN_TOGGLE_CONFIG      GPIO_4_GPIO4

    在“buck.h"中“中、我添加了切换开关:

    #pragma FUNC_ALWAYS_INLINE(BUCK_runIsr)
    static inline void BUCK_runIsr(void)
    {
        //
        // Record the ePWM TBCTR value for informational purposes.
        // The value is helpful for measuring the sum of ADC ACQPS + ISR latency.
        // The value can also help to confirm that enough time has elapsed for
        //   the Vout ADC conversion to complete and arrive in ADCxRESULT
        //
        BUCK_isrEnter_ticks = EPWM_getTimeBaseCounterValue(BUCK_DRV_EPWM_BASE);
    
        GPIO_togglePin(BUCK_ISR_PIN_TOGGLE_GPIO); // Toggle GPIO to indicate ISR rate

    在“buck_hal.c"中“中、我设置方向和引脚配置:

    void BUCK_HAL_setupInterrupt(void)
    {
        // Adding handling for ISR pin toggle
        GPIO_setDirectionMode(BUCK_ISR_PIN_TOGGLE_GPIO, GPIO_DIR_MODE_OUT);
        GPIO_setPinConfig(BUCK_ISR_PIN_TOGGLE_CONFIG);

    除此之外、我没有对项目进行任何更改。 在我最初发布的文章中、我测量 GPIO4 以确保我的 ISR 按预期执行、并确认在 SysConfig 设置为以 200kHz 和 200kHz/6(我添加的设置)执行 ISR 时、我所做的修改都能正常执行。

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

    尊敬的 Munadir:

    这是有意义的,它看起来像你的修改工作. 除了 200kHz 和 33kHz 之外、您是否尝试过任何其他控制频率变化? 滚降的变化是否会在 2 个频率之间逐渐向与您预期的相反方向过渡?

    此致、

    彼得

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

    你好,彼得,我没有具体尝试过这一点。 让我试一试,并会让你发布.