基于DSP實現(xiàn)可并機(jī)的逆變電源
4.2.1 系統(tǒng)初始化模塊
系統(tǒng)初始化模塊包括:中斷及優(yōu)先權(quán)設(shè)置、PWM設(shè)置、定時設(shè)置、A/D設(shè)置、通用輸入輸出口設(shè)置、通信口設(shè)置等。系統(tǒng)初始化模塊是DSP工作的開始,程序放在DSP_ init()子程序及appcofig.h程序中。
4.2.2 數(shù)字正弦信號產(chǎn)生及輸出穩(wěn)定模塊
數(shù)字正弦信號產(chǎn)生及輸出穩(wěn)定模塊,又分為信號采樣及處理模塊、輸出穩(wěn)定模塊、PWM重加載中斷服務(wù)模塊等3個子模塊。
其中信號采樣及處理模塊又分為:A/D采樣,有功功率計算,無功功率計算,功率因數(shù)計算,輸出電壓有效值計算,輸出電流有效值計算等。
輸出信號穩(wěn)定模塊主要任務(wù)是根據(jù)給定的標(biāo)準(zhǔn)信號(輸出220V)和輸出的反饋信號之差采用模糊算法,以最快的速度把輸出電壓調(diào)整到標(biāo)準(zhǔn)值。
PWM重加載中斷優(yōu)先級最高。為保證以最快的速度完成PWM重加載工作,此程序采用匯編語言,利用DSP56F805的快速16位數(shù)的乘法,在約3μs內(nèi)完成重加載的計算工作。
4.2.3 補(bǔ)償模塊
逆變器在帶感性負(fù)載時,一方面功率因數(shù)降低,降低了逆變器的有功功率,另一方面滯后的電流會給逆變器帶來危害。補(bǔ)償模塊的作用是在帶感性負(fù)載時,用投入適當(dāng)電容的方法對感性負(fù)載進(jìn)行補(bǔ)償。根據(jù)信號采樣模塊計算出無功功率Q和本機(jī)最大允許無功功率ΔQ,采用模糊算法以最快的速度把無功功率調(diào)整到允許范圍內(nèi)。
4.2.4 并機(jī)均流模塊
并機(jī)均流模塊是為多單元并聯(lián)輸出時用的。它不僅保證各單元輸出電壓的幅度、頻率、相位一致,而且還要求各單元的輸出負(fù)載均流。通過CAN總線對參與并機(jī)的各單元電流進(jìn)行分析、計算,使本單元電流為總電流的1/N,達(dá)到均流的目的。
定時鎖相電路用來檢測相位和頻率,使數(shù)字正弦信號產(chǎn)生器輸出的相位和頻率一致。
4.2.5 故障檢測處理模塊
故障檢測處理模塊分別對輸入電壓太高或太低、輸出電壓太高或太低、輸出過載,PWM電路故障、機(jī)內(nèi)溫度、開關(guān)管狀態(tài)進(jìn)行檢測。對所檢測的故障分為兩類分別進(jìn)行不同情況處理:對于非致命性故障采用故障顯示及報警;對于致命性故障除采用故障顯示及報警外,還關(guān)閉PWM工作以防進(jìn)一步損害其它器件。
4.2.6 顯示模塊
顯示模塊是用來顯示逆變電源的工作狀態(tài)和參數(shù),顯示的參數(shù)主要有Vin、Iin、Vout、Iout、Pout、θ等。由于采用16X2的LCD,每次只能顯示Vout及另一個參數(shù),通過循環(huán)按動S2鍵可顯示其它參數(shù)。
4.2.7 通信模塊
通信模塊是獨立于其它模塊單獨工作的,通過CAN總線管理進(jìn)行多單元通信工作。各并聯(lián)運行的單元之間,采用數(shù)據(jù)包的方式進(jìn)行通信。數(shù)據(jù)包中包含有一個數(shù)據(jù)包標(biāo)志及若干個數(shù)據(jù)塊。每個數(shù)據(jù)中又包含了參與并聯(lián)單元的標(biāo)識號、輸出電流值等信息。通信模塊就是負(fù)責(zé)管理數(shù)據(jù)包的發(fā)送和接收工作,它是獨立工作的。它和并機(jī)均流模塊采用通信的方式傳送數(shù)據(jù),并機(jī)均流模塊計算出本機(jī)的輸出電流后把它放在緩沖區(qū)內(nèi),并通知通信模塊發(fā)送信號,當(dāng)通信模塊收到并機(jī)均流模塊的發(fā)送信號后,等到數(shù)據(jù)包到達(dá)本機(jī)后,本機(jī)狀態(tài)加入數(shù)據(jù)包中并發(fā)送出去,同時也向并機(jī)均流模塊發(fā)送有效數(shù)據(jù)包信號。并機(jī)均流模塊收到通信模塊發(fā)送來的信號后就到緩沖區(qū)中取走數(shù)據(jù)。
本系統(tǒng)采用Motorola公司的MSCAN軟件進(jìn)行CAN通信軟件的編程,方便快捷。
4.3 主程序清單
主程序框圖見圖7,主程序清單如下:
main ( )
{
Dsp_init ( ) ; /* 系 統(tǒng) 初 始 化 * /
adc_tans ( ) ; /* 輸 入 電 壓 采 樣 * /
chech_VI _ IAI_TT( ); /* 檢 查 輸 入 電 壓 是 否 合 適 * /
while ( 1 )
{
if ( PWMA_INT_F!=0 ) /* 是 否 有 PWM重 加 載 中 斷 到 來 * /
{
adc_trans ( ) ; /* 把 A/D采 樣 結(jié) 果 送 入 相 應(yīng) 緩 沖 區(qū) * /
bace_hot_protect( ); /* 送 出 脈 沖 調(diào) 寬 波 形 到 PWMA4 * /
if(OP_FLAG!=0 ) /* 判 斷 是 否 過 零 * /
{
phase_Output_U2_Change ( ) ; /* 橋 式 開 關(guān) 倒 相 * /
Move_Buffers ( ) ; /* 將 第 一 級 緩 沖 區(qū) 內(nèi) 容 轉(zhuǎn) 存 到 第 二 級 緩 沖 區(qū) * /
Multiple_count ( ); /* 計 算 有 功 功 率 P, 視 在 功 率 S、 電 壓 有 效 值 、 電 流 有 效 值 * /
If ( STRAT_FLAG = 0 ) /* 是 否 剛 開 機(jī) * /
{
Narmal_V2_corr_kh ( ); /* 正 常 計 算 脈 寬 * /
}
else
{
Start_V2_corr_kk ( ); /* 慢 起 動 , 計 算 脈 寬 * /
}
count_IACP ( ) ; /* 均 流 計 算 * /
count_power_compensate ( ) ; /* 功 率 因 素 補(bǔ) 償 計 算 * /
check_VI_IAI_TT ( ); /* 檢 測 輸 入 電 壓 是 否 異 常 , 是 否 過 載 , 溫 度 是 否 過 高 * /
}
}
}
}
評論