淺談數控直流電流源的設計與實(shí)現
圖5 主程序流程圖圖 A/D轉換部分程序主要用于將采樣電阻采集的模擬電壓信號轉換為數字信號。采樣信號由IoA6輸入并直接送入緩沖器P_ADC_MUX_Data,在A(yíng)DC自動(dòng)方式被啟用后,會(huì )產(chǎn)生一個(gè)啟動(dòng)信號,此時(shí)RDY=0,DAC0的電壓模擬量與外部的采樣模擬量相比較,以盡快找出外部信號模擬量的數字量,A/D轉換的結果保存在SAR內。當10位A/D轉換完成時(shí),RDY=1,此時(shí),通過(guò)讀P_ADC_MUX_Data單元,可以獲得10位A/D轉換的數據。其IRQ1 中斷服務(wù)程序的流程如圖6所示。 圖6 IRQ1 中斷服務(wù)程序的流程圖 PID算法主要用于修正實(shí)際輸出的電流值和設定值的偏差,調節下一次的輸出值,使輸出更接近于設定值,提高精度。具體控制過(guò)程為:?jiǎn)纹瑱C經(jīng)A/D轉換芯片讀出實(shí)際電流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為再次采樣電流誤差值。 結語(yǔ) 為了測試系統運行的準確性和可靠性,可以對設定量與反饋量進(jìn)行測試,誤差在0.01%之內,并且運行穩定,達到了預期目的,還增添了特色的音頻播放設計。凌陽(yáng)SPCE061A單片機在該系統中使用,使系統功能齊全、外圍電路簡(jiǎn)單、輸出精確,軟件編程采用C和匯編混合編程來(lái)實(shí)現,集兩種優(yōu)點(diǎn)于一身,豐富了編程思想,體現了很大的優(yōu)越性。
通過(guò)以上對各模塊的分析,系統在工作過(guò)程中由SPCE061A單片機將被預置的電流通過(guò)換算進(jìn)行D/A轉換,以輸出電壓驅動(dòng)V/I轉換電路,并將該電流對應的電壓通過(guò)閉環(huán)回路,經(jīng)信號處理電路作A/D轉換后輸入單片機系統,通過(guò)PID算法調整電流輸出。整個(gè)系統工作流程如圖4所示。
圖4 系統工作流程圖
系統軟件設計在凌陽(yáng)十六單片機應用開(kāi)發(fā)工具unSPIDE1.16.1中進(jìn)行,采用凌陽(yáng)單片機匯編語(yǔ)言和標準C語(yǔ)言對單片機進(jìn)行編程,以實(shí)現各種功能。主要包括: (1)系統的初始化,包括各外圍接口設備的初始化;(2)鍵盤(pán)輸入;(3)D/A、A/D轉換; (4)PID算法進(jìn)行電流調整;(5)語(yǔ)音提示和電流顯示。其主程序流程如圖5所示。
評論