<p id="5vvtt"><ruby id="5vvtt"><mark id="5vvtt"></mark></ruby></p><p id="5vvtt"></p>

    <p id="5vvtt"></p>
    <ruby id="5vvtt"><b id="5vvtt"></b></ruby>

          <ruby id="5vvtt"></ruby>

          <ruby id="5vvtt"><mark id="5vvtt"></mark></ruby>
            1
            收藏
            微博
            微信
            復制鏈接

            如何在Psim中使用C語言實現LLC閉環仿真

            2023-09-14 10:51
            2114

            前面介紹過模擬VCO是通過改變電容充放電電流的大小實現調頻的,詳見LLC閉環仿真之L6599 VCO建模與工作原理分析。

            那么數字環路該怎么實現呢?今天使用PSIM的C Block分享一下。


            以前沿調制為例,如下圖:每個中斷周期內,軟件通過環路計算出需要的頻率(下圖綠色直線),然后基于DSP主頻內(這里設置的60MHz)累加的計數器(下圖三角波),當三角波峰值等于環路計算值時歸零(不同的工況有不同的環路輸出值,閉環時自動計算),所以數字發波的三角波峰值不固定,而上升斜率固定,并且可以直接歸零,這樣就得到不同的周期量實現調頻;

            而模擬仿真是通過給電容充放電,其電壓峰峰值固定(ΔV),斜率不固定(跟充電電流相關),且不可直接從最大值歸零(電容放電需要時間)。


            image.png


            有了這個三角波后,即可發出想要的驅動,死區時間,輕載調寬移相等都可以通過操作三角波實現。


            下圖為總體仿真原理圖:


            image.png


            一、輸出采樣

            采樣比例設置為0.1,電壓基準為3.3V,ADC12位精度,若輸出為24V,則采樣為2.4,轉換為數字量即為2.4/3.3*2^12

            C Block第一個框中定義初始量,其他參數保持默認即可。


            image.png



            在第三個框中讀取輸入輸出數值(第一個輸入口為in[0],依此類推)


            image.png



            二、電壓環

            先定義初始值


            image.png


            然后在第三個框中設置中斷和環路計算

            ?g_nStepCount++;

            //設置中斷累加,用以中斷計算環路

            Time_50kHz++;

            //輸出值設定

            Vout = in[1];

            //如60M主頻的DSP,需要50K中斷頻率,即60000k/1200=50k,所以仿真跑1200次就進一次中斷,進入后歸0

            if(Time_50kHz==1200)

            {? ?//計數器清零

            ????Time_50kHz = 0;

            ????//上個模塊輸出的輸出電壓采樣數字量

            ????VoutSample= in[0];

            ????//Q12格式,因前面定義的整型,精度低,所以先把該值*2^12,如下圖,然后再通過右移12位(即寫代碼時人為乘2^12,再用DSP除以2^12),DSP移位比較快,浮點型處理慢

            image.png


            ? ??Vref = (int)Vout*508400>>12;

            ????//輸出誤差

            ????Error =??Vref? - VoutSample? ;

            ????//簡單的PI處理,同樣為Q12

            ????VloopTemp =? VloopTemp + V_KP*Error;

            ????VLoopOut = (VloopTemp + V_KI*Error)>>12;

            ??? //限制最小頻率50khz,50K*1500=60M主頻

            ????if(VLoopOut>1200)

            ????VLoopOut = 1200;

            ????//限制最大頻率250khz,同上

            ????if(VLoopOut<240)

            ????VLoopOut = 240;

            }

            //計算結果輸出,即圖1綠色線

            out[0] = VLoopOut;


            三、發波控制

            定義完初始值后,通過以主頻為步進累加,峰值達到環路輸出值后歸0,這樣就得到一個三角波(圖1直角三角形)

            ?g_nStepCount++;

            //PWM周期計數器累加

            PWM_Cnt++;

            //讀取上個模塊的環路周期量

            Period = in[0] ;?

            //死區時間,如果需要調寬,加大死時間即可。加入條件語句通過Period和Deadtime的函數就可以實現調頻+調寬了,比模擬方式實現起來簡單多了

            Deadtime = 20;

            //半周期

            HalfPeriod = Period/2;

            //半周期值以下OUT0出高,然后插入死區,方波兩邊分各分一半

            if(PWM_Cnt > Deadtime/2 && PWM_Cnt < HalfPeriod - Deadtime/2)

            {

            out[0]=1;

            out[1]=0;

            }

            //半周期值以上OUT1出高,死區同上,仔細看三角波很好理解

            else if(PWM_Cnt > HalfPeriod + Deadtime/2 && PWM_Cnt < Period - Deadtime/2)

            {

            out[0]=0;

            out[1]=1;

            }

            //死區內均為低電平

            else

            {

            out[0]=0;

            out[1]=0;

            }

            //周期發波完成后計數器歸0

            if(PWM_Cnt==Period)

            PWM_Cnt=0;

            如果需要移相,也可能通過處理三角波實現,總之,數字發波比模擬發波確實方便很多,可以玩出各種花樣。

            最后,要在仿真器中模擬60MHz主頻,將仿真器仿真步長設置為16.667n即可。


            image.png


            另外PSIM也可以像simplis F11窗口一樣將參數定義在file文件中,這樣對于參數修改更方便。


            image.png


            這樣仿真就完成了,下面看下仿真波形:


            image.png


            參數都是隨意編的,希望能幫助硬件新人簡單的理解下LLC軟件發波原理吧。

            聲明:本文轉載自積極向上電源仿真?公眾號,如涉及作品內容、版權和其它問題,請于聯系工作人員,我們將在第一時間和您對接刪除處理!?

            登錄后查看更多
            0
            評論 1
            收藏
            侵權舉報
            聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表凡億課堂立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯系本站作侵刪。

            熱門評論0

            相關文章

            凡億課堂

            凡億課堂,專注電子設計職業技能培訓,讓知識鏈接價值,硬科技知識學習平臺~

            開班信息
            亚洲精品免费看>>在线免费观看视频>>亚洲精品免费看