前面介紹過模擬VCO是通過改變電容充放電電流的大小實現調頻的,詳見LLC閉環仿真之L6599 VCO建模與工作原理分析。
那么數字環路該怎么實現呢?今天使用PSIM的C Block分享一下。
以前沿調制為例,如下圖:每個中斷周期內,軟件通過環路計算出需要的頻率(下圖綠色直線),然后基于DSP主頻內(這里設置的60MHz)累加的計數器(下圖三角波),當三角波峰值等于環路計算值時歸零(不同的工況有不同的環路輸出值,閉環時自動計算),所以數字發波的三角波峰值不固定,而上升斜率固定,并且可以直接歸零,這樣就得到不同的周期量實現調頻;
而模擬仿真是通過給電容充放電,其電壓峰峰值固定(ΔV),斜率不固定(跟充電電流相關),且不可直接從最大值歸零(電容放電需要時間)。
有了這個三角波后,即可發出想要的驅動,死區時間,輕載調寬移相等都可以通過操作三角波實現。
下圖為總體仿真原理圖:
一、輸出采樣
采樣比例設置為0.1,電壓基準為3.3V,ADC12位精度,若輸出為24V,則采樣為2.4,轉換為數字量即為2.4/3.3*2^12
C Block第一個框中定義初始量,其他參數保持默認即可。
在第三個框中讀取輸入輸出數值(第一個輸入口為in[0],依此類推)
二、電壓環
先定義初始值
然后在第三個框中設置中斷和環路計算
?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移位比較快,浮點型處理慢
? ??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即可。
另外PSIM也可以像simplis F11窗口一樣將參數定義在file文件中,這樣對于參數修改更方便。
這樣仿真就完成了,下面看下仿真波形:
參數都是隨意編的,希望能幫助硬件新人簡單的理解下LLC軟件發波原理吧。
聲明:本文轉載自積極向上電源仿真?公眾號,如涉及作品內容、版權和其它問題,請于聯系工作人員,我們將在第一時間和您對接刪除處理!?