一種數控DC電流源的設計與實現
統軟件設計在凌陽十六單片機應用開發工具unSPIDE1.16.1中進行,采用凌陽單片機匯編語言和標準C語言對單片機進行編程。主要實現5個功能:(1)系統的初始化,包括各外圍接口設備的初始化;(2)鍵盤輸入;(3)D/A、A/D轉換;(4)PID算法進行電流調整;(5)語音提示和電流顯示。其主程序流程圖如圖5所示。
圖5 主程序流程圖
A/D轉換部分程序主要用于將采樣電阻采到的模擬電壓信號轉換為數字信號。采樣信號由IoA6輸入并直接送入緩沖器P_ADC_MUX_Data,在ADC自動方式被啟用后,會產生一個啟動信號,此時,RDY=0,DAC0的電壓模擬量與外部的采樣模擬比較,以盡快找出外部信號模擬量的數字量,A/D轉換的結果保存在SAR內。當10位A/D轉換完成時,RDY=1,此時,通過讀P_ADC_MUX_Data單元可以獲得10位A/D轉換的數據。其IRQ1 中斷服務程序的流程圖如圖6所示。
圖6 IRQ1中斷服務程序的流程圖
PID算法程序主要用于修正實際輸出的電流值和設定值的偏差,調節下一次的輸出值,使輸出更接近于設定值,提高精度。具體控制過程為單片機經A/D芯片讀出實際電流Ik,然后和設定的電流Is比較,得出偏差值Ek=Is-Ik,單片機根據Ek的大小,調用PID公式,計算出本次電流調節的增量Δik,然后根據前一次的D/A轉換后輸出電流Iq-1,計算出本次電流的輸出Iq。
離散增量PID的計算公式為
ΔIk=Kp[(Ek-Ek-1)+K1Ek+KD(Ek-2Ek-1+Ek-2)]
=Kp(Ek-Ek-1)+K1’Ek +KD’(Ek-2Ek-1+Ek-2)
式中,K1’= Kp.K1, KD’= Kp×KD,Ek為本次采樣時刻的電流誤差,Ek-1為上次采樣電流誤差,Ek-2為再次采樣電流誤差值。
為了測試系統運行的準確性和可靠性,將設定量與反饋量的進行測試對比,誤差在0.01%之內,并且運行穩定,達到了預期目的,還增添了特色的音頻播放設計。
基爾霍夫電流相關文章:基爾霍夫電流定律
評論