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