郭 鵬,曲 波
(蘇州大學,江蘇 蘇州 215021)
智能電源可以通過計算機控制輸出不同的精準電壓,并且具有完整的保護電路。其典型的應用領域是在自動在線測試(ICT)儀器中,根據不同的需求變換參數,只需將要發送的命令寫入流程中即可,免除人工操作,提高生產效率,降低成本并且操作也相對靈活。目前這種小型程控電源多被國外儀器廠壟斷,價格也比較昂貴。本文提出了由STM32F103RBT6控制輸出電壓,然后根據實際情況配以相應算法進行自適應調整的一種方案。STM32作為一款當前比較流行的微處理器芯片,外設比較豐富,市場價格比較低,但是工作頻率也相對較低,因此,本系統采用兩種不同的算法依次對輸出進行自適應調整,大大減少了處理器的運算量,從而提高了自適應調整的速度。
本設計可由PC機或者PLC遠程控制,它們通過USB接口通信,USB接口由串口通過FT232RL轉換得來,其作用除了與上位機通信,還可以作為程序調試接口。本系統有兩路獨立輸出,充分利用了STM32的外設,圖1所示為其中一個通道的硬件結構圖。

圖1 系統硬件結構圖
系統中唯一的外部輸入電壓為12 V,設計中用到的所有其他電壓值均由其轉換得來。
總體的思路為片內D/A輸出一個電壓,通過放大電路后得到所需電壓值,并且由A/D對輸出參數采樣,在此使用 A/D的注入型通道(Injected channel),因為這個采樣過程不是連續循環掃描模式,而是配合定時器,以一定的頻率采樣,在定時器中斷函數中運行算法并自適應調整的工作過程。系統中,STM32的供電由NCP1117提供,放大及反饋電路如圖2所示。

圖2 放大及反饋電路
A/D以及D/A的參考電壓為 2.5 V,由穩壓芯片ISL60002產生,其輸出精度可達1 mV,符合精度要求。由于STM32芯片自身的原因,其D/A的最小輸出電壓為200 mV,所以直接放大無法做到0~10 V的要求,因此在放大器反相端增加一個補償電路,其補償值選用0.5 V,根據虛短和虛斷原理可得等式:

將 R1,R2,R3,R4值 代 入 上 式 , 得 Vout_1=9Vdac-4.5 V,即當 Vdac輸出為 0.5 V時,電源輸出電壓為 0 V,從而避開了D/A最小輸出200 mV的限制。輸出電壓Vout1由兩個精密電阻分壓后作為反饋送回到STM32的A/D通道,作為電壓自適應調整的硬件環境。由于所用放大器OPA544為非軌至軌型放大器,要得到0 V的電壓,必須在其V-端放置一個負電壓,此設計中選用-5 V,由集成開關電源芯片LM2611產生,產生電路如圖3所示。

圖3 -5 V電壓產生電路
調整過程中,首先考慮放大器本身及外圍電阻的誤差所導致的輸出誤差;其次,由于電源穩定輸出的過程中,負載的變化也會導致輸出電壓的微小變化,這時也要快速對輸出進行微調以確保在負載變化的情況下也可以穩定輸出,整個調整的過程可以稱作自適應的過程。由于所用處理器STM32F103VET6最高的處理速度只有72 MHz,因此在選擇調整算法的時候必須考慮到運算量問題,如果連續采用運算量較大的算法調整,必定會影響整個系統的工作效率。本系統采用兩種不同的算法,既會較快地對輸出進行調整,又不會產生太大的運算量。
首先采用的方法是最小二乘法數據擬合算法調整。
最小二乘法數據擬合是曲線擬合的一種,使用比較簡單,比較適用于在非DSP處理芯片中使用,其主體思想為:根據 N個樣點擬合一條小于(N-1)次的曲線,并使這條曲線與所有樣點的距離平方和最小[4]。
在此設計中,使用這個算法做輸出前調整。由于開始時實際輸出和期望輸出的差值會比較大,如果直接較大幅度及較高頻率的跳變有可能會造成尖峰和震蕩,這樣從時間和精度上都會為自適應調整過程造成一定的不良影響。所以采用數據曲線擬合的方法,調整之前,在目標電壓周圍采集若干個點,通過這若干個點擬合一條曲線,然后沿曲線向目標電壓移動,次數根據調整幅度確定,當誤差小于10 mV的時候停止移動,并打開保護開關開始向用電器輸出電壓,同時啟用另一種算法來持續自適應調整,具體分析步驟如下。
根據已知點數n確定一個多項式模型:

則矛盾方程組可記為Aα=β,其對應的正規方程組為ATAα=ATβ,又因為 β為非零向量,所以方程組的解唯一,即為最優近似解。此解使得曲線和所有點距離的平方和函數可以取得極小值,從而求得的最小二乘法擬合多項式為:

倘若將此調整過程看作一個系統,系統的輸入即為上位機要求的電源輸出值,而實際的輸出值則為系統的輸出。本設計中,采取5個樣點來擬合一條二次曲線,樣點的選取根據上位機指令以及實際的硬件參數而定,選在要求輸出值的附近。調整系統的工作流程如圖4所示。

圖4 調整系統工作流程
(1)調整前,若調整系統輸入為V0時的實際輸出值為 V0+△V(通過 A/D 采樣得到),誤差為 △V,則輸入為V0-△V時,輸出更接近于理想值。
(2)為使理想輸入值靠近于曲線段中間位置,選取的 5 個樣點的橫坐標分別為 V0-3△V,V0-2△V,V0-△V,V0,V0+△V,它們的縱坐標分別為與之對應的 A/D采樣值。
(3)根據上述方法進行數據擬合得到曲線 y=f(x),再根據要求輸出的電壓 V0,求出對應的 x0=f-1(V0),x0即為需要D/A輸出參數。
為了驗證這種方法的可行性,進行了如下實驗:
預設要求電源輸出為6 V,即調整系統的輸入為6 V,實驗得出,通過A/D采樣得調整系統輸出為6.357 V,誤差為0.357 V,根據上述方法取5個樣點,實驗測得這5個樣點為表1所示。

表1 實驗采樣樣點
通過上述最小二乘法數據擬合原理,STM32處理器計算出來的擬合曲線為:

按照要求,當 y=6 時,方程的有效解為 x=5.620,此時變換D/A輸出參數,將5.620 V作為調整系統的輸入,通過 A/D采樣測得實際的輸出為 5.996 V,此時的誤差僅為4 mV,故證明,這個調整算法是可行的,并且在速度和準確度方面都能夠得到較好的效果。
上述實驗及使用中的多次實踐證明,經過最小二乘法數據擬合方法調整過的輸出電壓是接近要求值的,這時打開保護開關,開始向用電器供電,然而由于電源從空載到帶載轉變時,其輸出會產生細微變動,所以在打開保護開關之前,啟用另外一種算法(二分法),對輸出進行持續的自適應調整,即不斷地根據采樣值細微改變輸出,并貫穿于整個工作過程。
這兩種算法中,最小二乘法相對復雜,運算量較大,但是調整次數較少,用在輸出之前的幅度較大的自適應調整,有效避免了電壓振蕩;相反,二分法的運算量相對較少,適用于在整個工作過程中的自適應調整,調整頻率為100 Hz,即每10 ms進行一次,較高的調整頻率有效抑制了紋波。
過流保護是電源設計中非常重要的部分,當輸出過載或者短路的時候,承擔著保護電源本身及用電器的作用。本設計中的過流保護部分采用了軟件保護和硬件保護雙保險的設計。保護電路如圖5所示。

圖5 過流保護電路
通斷開關采用FDN360P,為單通道 P型 MOSFET,其反應時間短及多次導通截止不易損壞的特點,使其成為此處的最佳選擇。軟件保護和硬件保護是平行、獨立工作的,任何一個起作用都會使FDN360P截止,停止供電。
(1)protectpoint_1 為軟件保護端,MAX4372 為電 流放大器[2],在此為 10倍放大R10兩端的電壓,通過不斷掃描A/D采樣值的方法軟件監控電流大小,采用A/D的規則通道 (Regularchannel) 以及連續轉換模式(Continuous conversion mode),這樣在電流過大的情況下,處理器端可以及時檢測到。同時啟用A/D模擬看門狗(AWD)功能,如果采樣值大于預設閾值,則啟動軟件保護,即PD12置高,FDN360P截止,停止輸出。
(2)protectpoint_2 為 硬件 保護 端 ,LMV358 用 作 電 壓比較器,TLC555構成一個單穩態觸發器[3],當 MAX4372的輸出端電壓大于2 V時,即電流超過1 A,則比較器輸出低電平,觸發單穩態,TLC555輸出為高電平,FDN360P截止,停止供電。同時,電容C7不斷充電,當V0升高到2VCC/3時,輸出為低電平,FDN360P導通,電源正常供電,此時如果電流依然過大,則再次觸發保護,這樣就形成了一個不斷嘗試導通的過程,直到負載正常為止。此種保護為硬件保護,反應時間快,單穩態觸發器及FDN360P動作時間之和大約40 ns,可以有效保護電源本身及用電器的安全。
本系統包含了電壓的預設、采樣、校準、自適應調整、輸出以及保護的軟件和硬件的設計,避開了硬件自身及外界環境的不良影響。成功將數據擬合及二分法移植到本系統中,兩種算法的巧妙配合大大減少了乘加運算次數,使其在主頻不是很高的小型嵌入式產品上得到實現,同時調整速度也比使用單一算法調整快。電路設計中,數字地和模擬地是隔離開的,很大程度上降低了高頻數字信號對電源輸出精度的影響。保護電路方面,軟硬件雙層保護大大提升了系統的穩定性。系統與遠程控制端的接口采用通用的USB接口,使其兼容性更強、應用范圍更廣。
[1]張旭,亓學廣,李世光,等.基于STM32電力數據采集系統的設計[J].電子測量技術,2010,33(11):90-93.
[2]楊紅紅,張琛等.電流傳感放大器MAX471/MAX472的原理及應用[J].電子技術應用,2000(2):64-65,68.
[3]譚琦耀.基于 555電路的單穩態觸摸開關設計[J].煤炭技術,2012(6).
[4]陸毅,翟麗芳.基于最小二乘法擬合的熱電偶溫勢特性的虛擬設計[J].系統仿真技術,2010(1):49-52.
[5]RM0008 Reference manual.ST Semiconductors.DocID 13902 Rev 9.