如圖1為載波層疊A相上橋臂模塊電壓波形,根據波形可以看出模塊電壓發散,此問題由于模塊未均壓所致,須加入均壓模塊。以PD調制方式為例,上下橋臂各個模塊的載波頻率和相位相同,分別與調制波做對比,其中載波頻率為3KHz,載波比為mf =fc / fr=3000/50=60,調制度ma=Ar / NAc =1.8×2/(4×1)=0.9。當調制波大于載波,輸出1,否則輸出0。上橋臂輸出1的個數為上橋臂導通模塊的個數,下橋臂輸出1的個數為下橋臂導通的模塊個數,設上橋臂導通的個數為Nup,下橋臂導通的個數為Ndown。圖3為A相導通的模塊總數,有圖可知PD調制方式每相導通模塊數不恒為N,N為一個橋臂的模塊個數。
圖1 未均壓時A相上橋臂模塊電壓
圖2 A相PD調制
圖3 A相導通模塊個數
圖4 未均壓時A相的諧波分析
圖5 均壓后A相的諧波分析
圖6為均壓后的A相上橋臂模塊電壓波形,均壓后模塊電壓達到了穩定,在300V上下波動。
圖6 均壓后A相上橋臂模塊電壓波形
2.2 DSP實驗
2.2.1 開環PWM波設置
系統時鐘(SYSCLKOUT)的預定標處理將得到時間基準時鐘(TBCLK)。實驗板上晶振為30MHz,經過十倍頻后在進行二分頻得到75MHz時間基準時鐘。
#define epwm_TBCLK 75e6
//TBCLK在此設置為75MHz;
//因為TECLK=SYSCLKOUT/(HSPCLKDIV*CLKDIV)=150M/(1*2)
由下條語句設置PWM波頻率,由此計算出比較器A的值。其中可由PWM_CLK可以直接設置PWM波頻率。
#define PWM_CLK 5e3 // If diff freq. desired, change freq here.
#define SP epwm_TBCLK/(PWM_CLK*2)
#define number (PWM_CLK/50)
float d1;
d1 = 2*3.1415926/(number);
fPhase=(fPhase + d1);
EPwm1Regs.CMPA.half.CMPA =(Uint16)(0.95*SP*(sin(fPhase)+1)/2);
2.2.2 死區設置
要設置延時時間為2us,則將DB為150。
#define DB 150 //75個點是1us ; 75/75e3
EPwm1Regs.DBRED =DB; //死區上升延時寄存器
EPwm1Regs.DBFED =DB;
3遇到的問題及解決方法
- (1) 問題:開關電源無法輸出24V電壓?
解決方法:用萬用表測量電壓,發現接線錯誤,錯誤接線如下。要輸出24V電壓,須將-V3接地,+V3接正極。
圖7 錯誤接線
- (2) 問題:驅動輸入端為PWM波,輸出端卻輸出方波?
圖8 驅動輸出端輸出波形