當前位置:編程學習大全網 - 編程語言 - 直流電流的數控設計

直流電流的數控設計

在電子設備中經常用到穩定性好、精度高、輸出可預置的直流電流源。本文設計的數控直流電流源能夠很好地降低因元器件老化、溫漂等原因造成的輸出誤差,輸出電流在20mA~2000mA可調,輸出電流可預置、具有“+”、“-”步進調整、輸出電流信號可直接顯示和語音提示等功能。硬件電路采用淩陽單片機SPCE061A為控制核心,利用閉環控制原理,加上反饋電路,使整個電路構成壹個閉環,在軟件方面主要利用PID算法來實現對輸出電流的精確控制。該系統可靠性高、體積小、操作簡單方便、人機界面友好。

系統硬件實現方案

本設計采用單片機作為主要控制部件,通過鍵盤預置輸出電流值並采用液晶模塊實時顯示。整個系統硬件部分由微控制器、電壓-電流轉換、鍵盤、顯示、直流穩壓電源和語音提示等模塊組成。系統組成框圖如圖1所示。

微控制器是整個系統的核心,負責整個系統的運作。為了實現簡化硬件電路、系統性能穩定可靠,便於實現語音播報、鍵盤設置和信息的實時顯示等功能的協調,通過多種方案論證後,微控制器選用淩陽公司的SPCE061A,該單片機內部集成有ADC、DAC、PLL、AGC、DTMF、LCD-Driver等電路(與IC型號有關)。它采用精簡指令集(RISC),指令周期均以CPU時鐘數為單位。另外,它還兼有DSP功能,內置16位硬件乘法器和加法器,並配備有DSP擁有的特殊指令,大大加速了各種算法的運行速度。同時可以在Windows環境下使用淩陽單片機應用開發工具,該工具支持標準C語言和淩陽單片機匯編語言,集匯編、編程、仿真等功能於壹體,大大加快了軟件開發過程。用該單片機作為控制器比較合適,在硬件電路簡單的前提下,容易實現A/D和D/A轉換、語音提示、PID運算等功能。

顯示模塊主要實現的功能是顯示設置的電流輸出值和其它人機交互信息。本部分可以采用七段數碼LED顯示器,顯示數字、簡單字母和小數點等信息,但由於其顯示信息單壹,人機交互不友好,本文采用字符型液晶顯示屏LCDSMC1602A模塊。該模塊具有輕薄短小、低壓微功耗、體積小、無輻射、平面直角顯示及影像穩定不閃爍等優點,且可視面積大、面效果好、分辨率高、抗幹擾能力強,適合用於顯示字母、數字、符號等信息,而且不需要擴展過多外圍電路,可由單片機直接進行控制輸出顯示。

電壓-電流轉換模塊由精密運放與三個晶體管組成的達林頓管電路構成。轉換電路利用晶體管平坦的輸出特性和深度負反饋電路使輸出電流穩定,如圖2所示,此V/I轉換電路的帶負載能力強,電流輸出範圍達0~3A。輸出電流Io經反饋電阻Rf得到壹個反饋電壓Vf,Vf= V11-V12,通過R5、R6加到運算放大器的兩輸入端,設運放兩端的電為V1、V2,Vi由單片機DAC輸出。因為理想運放的輸入電流約等於零,且V1=V2,則:

V12[1-R6/(R2+R6)]+ViR6/(R2+R6)=V11R1(R1+R6)

由於V12 =V11-Vf,則:

V11R2/(R2+R6)+(ViR6-VfR2)/(R2+R6)=V11R1/(R1+R5)

令R1=R2=10kW,R5 =R6 =1kW,則有Vf=ViR6/R2=Vi/10

若暫不考慮反饋時,

Io=Vi/(10Rf)

由此可見,輸出電流的標定由D/A轉換所得輸出電壓Vi和Rf的阻值決定,成線性變換。Rf由大線徑銅絲制作,其溫度系數很小(5ppm/℃),大線徑可以使其溫度影響減至最小。3個三極管應選用大功率管TIP122,且使用散熱片,以保證管子工作在線性區。

電壓-電流轉換模塊還有另外壹種方案,即采用三個運放構成輸出電流可變的電流源,如圖3所示。輸出電流I=Vi/R1,為使R1兩端的電壓保持恒定,由差分放大器IC1b通過射隨器IC1c監測R1兩端的電位,此電位經IC1b的7腳加到比較器 ICa的反相輸入端與Vref比較,根據比較結果使比較器的輸出端變化,直到平衡為止,即Vr1=Vi。電路中的電容用於補償ICa的頻率,減少控制環路的延時。只要R1=R2=R3=R4=R5,此電路的性能較好,但帶負載能力不強,環路延時補償對電路的穩定有較大影響。

系統鍵盤模塊可以采用獨立式或行列式(矩陣式)連接方式,該模塊主要完成對輸出電流和其它信息的設定。直流穩壓電源模塊為整個系統供電,語音模塊實現語音提示,使系統設計更具人性化,系統具有友好的工作界面。淩陽單片機內部集成有ADC、DAC、PLL、AGC、DTMF等模塊,語音功能可由軟件編程實現,不需要外接任何電路,有效利用了系統資源。

系統工作及軟件流程

通過以上對各模塊的分析,系統在工作過程中由SPCE061A單片機將被預置的電流通過換算進行D/A轉換,以輸出電壓驅動V/I轉換電路,並將該電流對應的電壓通過閉環回路,經信號處理電路作A/D轉換後輸入單片機系統,通過PID算法調整電流輸出。整個系統工作流程如圖4所示。

系統軟件設計在淩陽十六單片機應用開發工具unSPIDE1.16.1中進行,采用淩陽單片機匯編語言和標準C語言對單片機進行編程,以實現各種功能。主要包括: (1)系統的初始化,包括各外圍接口設備的初始化;(2)鍵盤輸入;(3)D/A、A/D轉換; (4)PID算法進行電流調整;(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所示。

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%之內,並且運行穩定,達到了預期目的,還增添了特色的音頻播放設計。淩陽SPCE061A單片機在該系統中使用,使系統功能齊全、外圍電路簡單、輸出精確,軟件編程采用C和匯編混合編程來實現,集兩種優點於壹身,豐富了編程思想,體現了很大的優越性。

  • 上一篇:怎樣使用matlab進行跳頻通信幹擾方面的仿真?(在線等,請高手進啊!!!)
  • 下一篇:國際通用的語言有哪些
  • copyright 2024編程學習大全網