STM32水溫控制系統硬件詳解
系統主要組成;鉑金測溫驅動電路(恒流源實現),市電電壓過零檢測電路.功率驅動電路(固態繼電器實現),小信號放大電路(儀用運放實現),STM32單片機最小系統.500W水溫加熱管.
本文引用地址:http://www.104case.com/article/201611/318075.htm1,鉑金電阻測溫驅動電路
驅動PT100鉑金測溫電阻.和電阻橋原理相似.利用1MA精密恒流源加在鉑金電阻一端,另一端接地.用另一個1MA精密恒流源加在精密100歐姆電阻一端,另一端接地.(選擇100歐姆,是因為PT100在零度時電阻值是100歐姆)
這是鉑金電阻驅動電路,R3是鉑金電阻,當溫度變化時電阻會發生變化,從而影響VF1和VF2之間壓差不為零。分別作為INA128儀表放大器的輸入端(儀表放大器的優點是輸入阻抗非常高,共模抑制比好,非常適合橋式電路)。經過放大輸出差模信號。但是其輸入的共模信號比較窄,最大也只能到達電源電壓附近,此時可以通過調節Ref端調節輸出電壓。再用OPA335完成10倍的放大工作使其輸出在合適的范圍,方便AD采集。
2,驅動電阻橋的是1毫安的電流源,必須選用精密電流源。保證電阻的變化不影響電流源的電流,如果不是精密電流源,那么電阻的變化就不能真正反應溫度的變化,影響整個系統的精度。我選用的是HowLand電流泵
這是1mA的電流源,經過試驗搭建非常穩定,適合用來驅動橋式測溫電路。
3,電熱絲驅動電路,用的是固態繼電器。性能穩定,但價格較貴。在調節加熱功率時用的過零檢測電路,通知單片機進入中斷,調節繼電器通斷時間,控制導通角,從而控制加熱功率。其實可以不用過零檢測,這里用到是因為這里用過零檢測,可以精確地調整輸入功率,控制更精確,對電網沖擊更小。使整個系統工作更穩定。
4,溫度控制算法,在控制領域因為水是滯后性比較嚴重的介質。在加熱功率的控制上,必須采用一定的算法控制,這里采用PID控制算法,簡單易行。通過調節比例,積分,微分常數,控制功率,避免超調。下面是程序算法模型
structPID{
unsignedintSetPoint;//設定目標DesiredValue
unsignedintProportion;//比例常數ProportionalConst
unsignedintIntegral;//積分常數IntegralConst
unsignedintDerivative;//微分常數DerivativeConst
unsignedintLastError;//Error[-1]
unsignedintPrevError;//Error[-2]
unsignedintSumError;//SumsofErrors
};
//PID處理函數
//=====================================================================================================*/
unsignedintPIDCalc(structPID*pp,unsignedintNextPoint)
{
unsignedintdError,Error;
Error=pp->SetPoint-NextPoint;//偏差
pp->SumError+=Error;//積分
dError=pp->LastError-pp->PrevError;//當前微分
pp->PrevError=pp->LastError;
pp->LastError=Error;
return(pp->Proportion*Error//比例項
+pp->Integral*pp->SumError//積分項
+pp->Derivative*dError);//微分項
}
此模型容易在單片機上實現,性能較好。經過實際驗證符合較高的要求。對于各個參數的選取,我才用的是配湊發,根據效果來不斷調整參數,最終調到合適的參數。
5,最后一點是AD采集的基準電壓源也很重要,直接影響采樣精度,如果可以盡量選用專用的基準電壓源芯片,控制AD采樣誤差。
以上是整個水溫控制系統的設計要點,比較簡單。但是對于理解PID控制有很大幫助,還有儀用運放的使用和電流源的使用橋式電路的使用。硬件和軟件都達到一定的鍛煉效果。
評論