吳 葛, 姚鴻泰, 周妙言
(華中科技大學電氣與電子工程學院,武漢 430074)
隨著“互聯(lián)網(wǎng)+”、AI、大數(shù)據(jù)和智能制造等前沿技術的迅猛發(fā)展,社會對于創(chuàng)新意識敏銳、實踐經(jīng)驗豐富、綜合素養(yǎng)優(yōu)秀、跨學科知識廣博的高素質和多元化人才的需求日益迫切。教育部在此背景下大力推動工程教育變革,并且給予工科教育更加嚴格的要求和期望。2016 年,我國工程教育認證加入了《華盛頓協(xié)議》,其理念是“學生中心、成果導向、持續(xù)改進”,培養(yǎng)學生具備解決復雜工程問題的能力[1-3]。教育部積極推行“新工科”建設,大力開拓新型工科專業(yè),并且不斷完善和優(yōu)化傳統(tǒng)專業(yè),使其成為一個多元、融合的整體,以提高學生的實踐技能和綜合素質[4-5]。實驗教學是工科專業(yè)培養(yǎng)學生的重要環(huán)節(jié),它不僅可提高學生的實踐技能、激發(fā)他們的創(chuàng)新精神,還可提升他們的綜合素質。對實驗教學進行全面改革與創(chuàng)新顯得尤為迫切[6-7]。
“自動控制原理”是自動化及相關專業(yè)的學科基礎課程,是一門理論與實踐并重的課程,其特點是工程性、方法性、綜合性強。在該課程實驗教學項目設計中貫徹落實“新工科”教育理念,對學生解決實際工程問題能力的培養(yǎng)以及未來發(fā)展具有重要意義。傳統(tǒng)自動控制實驗大多局限于電路實驗箱,實驗性質多為驗證性和演示性,缺乏系統(tǒng)性和設計性,難以滿足學生對自動控制原理的深入理解和實踐應用的需求,必須采取有效措施來提升自動控制實驗的質量和效果[8]。
工程實踐中,控制系統(tǒng)的設計多采用頻域設計,其前提是要得到精確的系統(tǒng)數(shù)學模型。但是系統(tǒng)中存在擾動和未建模動態(tài)特性,導致理論模型與實際系統(tǒng)相差較大[9]。
為幫助學生構建分析控制系統(tǒng)的方法,開發(fā)了基于Arduino與Matlab 相融合的自動控制實驗平臺,幫助學生體驗數(shù)據(jù)采集辨識系統(tǒng)模型;系統(tǒng)模型設計控制器;硬件在環(huán)系統(tǒng)調試。此外,還實現(xiàn)Arduino 平臺代碼自動生成、下載、運行,運行過程可以在Matlab 中觀察并且利用Simulink在線調試[10]。
基于Arduino與Matlab相融合的自動控制實驗平臺,利用Arduino 的I/O 采集控制系統(tǒng)的數(shù)據(jù),與Matlab通信進行數(shù)據(jù)分析仿真,Python 求解器參數(shù)優(yōu)化進行系統(tǒng)模型參數(shù)辨識,幫助學生搭建腳手架,構建一個方便提取系統(tǒng)模型的平臺,基于此平臺可完成控制算法的驗證以及硬件在環(huán)調試。
實驗平臺可集成不同的被控對象,本文以自制的溫度控制為例,其硬件結構如圖1 所示。由一個LED、加熱器和溫度傳感器(溫度傳感器通過導熱膠緊貼加熱器)組成,溫度傳感器并留有Arduino 接口,構成shield擴展板。

圖1 溫度控制系統(tǒng)硬件結構
以溫度控制系統(tǒng)為被控對象的Arduino 與Matlab相融合的自動控制實驗平臺的實施步驟如下:
(1)模型搭建。構建溫度控制系統(tǒng)的數(shù)學模型。
(2)數(shù)據(jù)采集。利用Arduino自帶的模數(shù)轉換器對特定端口進行數(shù)據(jù)采集,編寫特定函數(shù),將數(shù)據(jù)同步到Matlab。
(3)模型辨識。利用采集的數(shù)據(jù)對模型進行參數(shù)辨識,得到系統(tǒng)模型。
(4)控制器設計。在Matlab中利用其自帶的PID控制模塊作為主控制器,對辨識的模型進行控制器設計,確定控制器參數(shù)。
(5)代碼生成與下載。完成控制器設計仿真,進行代碼自動生成和在線燒寫至Arduino。
(6)硬件在環(huán)調試。通過Simulink 環(huán)境,實時調整控制器參數(shù),調整Arduino中PWM的輸出占空比來調整加熱器的輸出,并實時監(jiān)測溫度的變化情況。
溫度控制系統(tǒng)是執(zhí)行器(晶體管)產(chǎn)生的熱能通過傳導、對流以及輻射傳遞到測量設備(溫度傳感器)。
為創(chuàng)建晶體管輸入功率以及溫度傳感器測量溫度之間的動態(tài)響應模型,使用能量平衡進行推導。作如下假設與取值:
(1)在最大輸出時,晶體管加熱輸出功率為1 W;晶體管和散熱器的總質量為4 g。
(2)晶體管散熱片為鋼材質,其比熱容為500 J/(kg·K),加熱器和傳感器的表面積約為12 cm2,靜態(tài)空氣對流換熱系數(shù)約為10 W/(m2·K)。
晶體管產(chǎn)生的熱量主要損耗是通過對流和輻射傳熱從器件傳遞出去,使用能量平衡推導晶體管輸入功率與溫度傳感器測量溫度之間的動態(tài)響應模型。
式中:m為晶體管和散熱器總質量;c為鋼的比熱容;T為測量溫度;hin為系統(tǒng)吸收的熱量;hout為系統(tǒng)損耗的熱量。對式(1)進行改寫:
式中:U為空氣對流換熱系數(shù);A為加熱器和傳感器的表面積;T∞為環(huán)境溫度;?=0.9 為表面輻射系數(shù);σ =56.7 nW/(m2·K4)為斯忒藩-玻耳茲曼常數(shù);Q為加熱器在時間t內產(chǎn)生的熱量。
通過2.1 建模可見,模型涉及輻射散熱以及對流換熱等,其中環(huán)境影響和實際誤差難以通過理論準確計算。考慮通過分析系統(tǒng)的階躍響應來辨識系統(tǒng)模型。
搭建如圖2 所示的系統(tǒng)模型,圖中,橙色方框為溫度控制系統(tǒng);設置目標溫度為40 ℃,對系統(tǒng)進行開環(huán)測試,基于Arduino 和Simulink 聯(lián)合開發(fā)的庫,通過Matlab與Arduino 混合編程實現(xiàn)Arduino 對晶體管功率的控制,同時將實時讀取的溫度傳輸?shù)組atlab 的WorkSpace(temp_out),得到系統(tǒng)的階躍響應曲線如圖3 所示[11]。

圖3 溫控系統(tǒng)開環(huán)階躍響應(t =40)
由圖3 可見,溫度控制系統(tǒng)具有非線性、慣性大、時滯等特點,考慮引入一階純滯后模型(First Order Plus Dead Time Model,F(xiàn)OPDT)來描述,其傳遞函數(shù)
式中:K為穩(wěn)態(tài)增益;τ為滯后時間常數(shù);T為慣性時間常數(shù)。
由圖3 可大致計算出以上參數(shù):穩(wěn)態(tài)增益近似等于溫度的增量與設置溫度的比值,可得K≈1;滯后時間常數(shù)是施加階躍響應后到溫度開始上升的時間,可得τ≈20 s;慣性時間常數(shù)表明系統(tǒng)的上升速度,從0到穩(wěn)態(tài)值的95%約為5 個時間常數(shù),可近似得到T≈86 s。將3 個參數(shù)分別代入式(3)可得到一個大致的系統(tǒng)傳遞函數(shù)。
通過上述方式得到的參數(shù)過于粗略,考慮將實時溫度和時間數(shù)據(jù)導入Python 中,以上面粗略計算出的模型參數(shù)K、τ、T為初始條件,通過Python 求解器(部分代碼如圖4 所示)將模型預測值與實際測量值對比,并以誤差平方和最小化為優(yōu)化目標來調整參數(shù)。可計算出校正后的傳遞函數(shù)參數(shù)K=0.81、T=161.18、τ =12.23。

圖4 部分校正代碼
將溫度控制系統(tǒng),粗略仿真系統(tǒng)(校正前)和參數(shù)校正后系統(tǒng)(校正后)的響應繪制在同一坐標系下,如圖5 所示。可見,校正前系統(tǒng)響應趨勢與真實系統(tǒng)的差異較為顯著,而校正后的系統(tǒng)響應趨勢則更接近實際趨勢,更適合用于模擬溫度控制系統(tǒng)的工作情況。為了驗證這個結論,對校正后的仿真系統(tǒng)和溫度控制系統(tǒng)的階躍響應進行進一步的對比,將目標溫度值設置為40 ℃,得到校正后的仿真系統(tǒng)的階躍響應和溫度控制系統(tǒng)的實際階躍響應對比如圖6 所示。

圖5 校正前后預測對比

圖6 溫控系統(tǒng)與仿真系統(tǒng)的階躍響應
可見,所構建的系統(tǒng)的階躍響應與溫度控制系統(tǒng)的階躍響應有較高的相似度,可以采用其來對實際系統(tǒng)進行仿真測試。校正后的系統(tǒng)的模型
通過開環(huán)測試,發(fā)現(xiàn)系統(tǒng)并不能達到設定的溫度值,且抗干擾能力差,考慮引入控制器進行閉環(huán)控制,以達到調控溫度快速且穩(wěn)定達到設定值。
內模控制(Internal Mdel Control,IMC)是在控制器設計過程中增加過程模型的一種新型控制測控略[12]。它與傳統(tǒng)PID控制相比,內模控制只需整定一個參數(shù),這使得參數(shù)調整與系統(tǒng)的動態(tài)性能和魯棒性之間的關系更加明確,使得設計更加簡單,控制性能更優(yōu)。將內模控制與傳統(tǒng)PID結合,可提高PID控制器的控制水平。
圖7 展示了內模控制的基本結構,其中虛線部分為整個控制系統(tǒng)的內部結構,包含控制器GIMC(s),新的過程模型G~p(s)。Gp(s)為被控對象。為更好地描述輸出Y(s)、輸入R(s)和擾動D(s)之間的相互影響,對圖7 的結構進行轉換,結果如圖8 所示。

圖7 內模控制結構

圖8 內模控制等價結構
由圖8 可推導出整個控制器
于是有
根據(jù)圖7,可知反饋信號
理想的PID控制器
為設計基于IMC 的PID 的控制器,將式(5)與式(8)等價,從內模控制的角度設計PID控制器。
根據(jù)內模控制的設計方法[13-15]:
步驟1 將G~p(s)分解為穩(wěn)定部分和不穩(wěn)定的時滯部分,即:
步驟2 設計控制器時,為提高系統(tǒng)的穩(wěn)定性和魯棒性,考慮在最小相位上添加濾波器。IMC控制器
假設:
對式(12)中的純滯后時間使用一階Pade 近似,得:
將式(13)代入式(12),并按照式(9)進行分解:
由于式(12)為一階,令n=1,并將式(14)、(16)代入式(11),經(jīng)整理得
將式(17)與式(8)對比,可得
可見,此時只需調整一個參數(shù)ε,進而調整系統(tǒng)的閉環(huán)響應速度以及其整體控制性能。
辨識出來的模型如式(4),可令T=161.18,K=0.81,τ =12.23。
分別取ε為10、100 和310 時,根據(jù)3.2 推導的結果可得PID控制器的參數(shù)見表1。

表1 ε取不同值對應的PID參數(shù)
分別用上述參數(shù)來搭建PID控制器對式(4)模型進行仿真,為便于調節(jié)參數(shù),可直接使用Simulink里的PID模塊(也可通過數(shù)學關系搭建)。同時,為驗證系統(tǒng)的抗干擾能力,引入干擾信號(此處引入階躍干擾信號),如圖9 所示。

圖9 內模PID控制仿真模型
在600 s時,加擾動-10 ℃,得到的仿真結果如圖10 所示。

圖10 不同PID參數(shù)下的響應對比
由圖10 可見,基于IMC-PID 參數(shù)調整方法,能迅速使時延對象系統(tǒng)達到穩(wěn)定狀態(tài),并且超調量非常小。此外,圖10 還顯示,當ε值增大時,系統(tǒng)的反應速度會變得越來越慢,使得系統(tǒng)的上升時間增加,調節(jié)時間也相應延長。在實際應用中,建議使用較小的ε值。
基于辨識出來的模型,在Matlab 中應用IMC-PID算法仿真測試選擇合適的控制器參數(shù)之后,可進行代碼自動生成,并在線下載到Arduino。配置使用“Arduino Leonardo”控制板,設置Arduino端口號,并完成波特率的設置,設置完成保存后,回到Simulink編輯窗口,點擊“Run”開始自動下載并在完成后運行。
本項目采用的Arduino 平臺,擁有2 個串行通信端口,能與電腦進行數(shù)據(jù)交換,通過編寫串口通信代碼進行設置,可在Simulink 環(huán)境中在線調整IMC-PID 參數(shù),并可觀察實際信號的變化。
將溫度控制系統(tǒng)的目標溫度設置為40 ℃,使用仿真得到的IMC-PID參數(shù)對系統(tǒng)進行控制,觀察溫度變化,如圖11 所示。可見,溫度較快達到穩(wěn)定,且超調較小。

圖11 在線調試輸出
本文基于Arduino與Matlab相融合設計的自動控制實驗平臺,幫助學生體驗通過采集系統(tǒng)數(shù)據(jù)來辨識系統(tǒng)模型,基于系統(tǒng)模型進行控制器設計,同時實現(xiàn)基于Arduino平臺代碼的自動生成、自動下載運行以及硬件在環(huán)調試等功能,能滿足綜合性實驗教學要求,有助于提升學生工程實踐的能力。