王 莉,陳 虹
(揚州大學 能源與動力工程學院,江蘇 揚州 225009)
“自動控制原理”是工科專業一門重要專業基礎課程,需要學生掌握系統參數變化對系統性能的影響,達到分析系統、設計系統的目的[1]。課程除了理論教學外,實驗教學也是其中不可缺少的環節。為了克服自動控制實驗教學存在的問題,我們開發了虛擬實驗臺實現計算機的模擬演示來作為硬件實驗前的補充[2]。過去的實驗教學大多都是基于Matlab和虛擬儀器開發平臺LabVIEW[5]的共同開發,可以彌補兩者之間缺點,我們利用它和Matlab兩者混合開發編程后,可以獲得顯著優點。因為LabVIEW的顯示效果很好,容易使用及操作,可以彌補 Matlab的不足。而且,Matlab在 LabVIEW中被調用時其功能可完全實現,從而可避免在Lab-VIEW中的復雜的設計[3-5]。
本文設計的虛擬實驗系統實驗界面簡單,參數改變方便。基于自動控制原理實驗,參考計算機控制技術實驗。實現的7個功能包括線性系統的時域分析設計、線性系統的頻域分析設計、線性系統的根軌跡分析設計、線性離散系統的分析設計、PID超前(滯后)校正的設計、某汽車的運動仿真設計和某飛機的運動仿真設計。系統整合前面版包括一個子面板,一個確定按鈕,一個停止按鈕和功能選單。功能選單包括上面提到的7個功能子模塊,當選定一個功能模塊后,點擊確定鍵,子面板上將顯示相應的功能模塊前面板。圖1為該實驗平臺的總體框架,圖2為每個子模塊主要構成。

圖1 總體程序框圖

圖2 子模塊程序框圖
本功能模塊能夠實現如下功能:①以兩種形式輸入閉環傳遞函數,有多種輸入信號類型可供選擇進行實驗;②顯示響應曲線,時間和幅值上限參數可調;③計算并顯示系統的動態性能指標,包括超調量、延遲時間、上升時間、峰值時間和調節時間;④判斷系統的穩定性,并計算出閉環方程特征根進行驗證。
線性系統時域分析功能模塊的前面板設計如圖3所示,此圖為單位階躍信號的響應結果。

圖3 線性系統時域分析功能模塊的前面板
輸入信號類型選擇包括階躍信號、脈沖信號、斜坡信號和加速度信號。通過對時間、幅值上限進行調整,可以清楚看出信號響應的變化規律。系統的響應參數能夠顯示系統的動態與穩態性能(除了穩態誤差,其它的響應參數均只在階躍信號輸入時有效)。閉環方程特征根能夠用來判斷系統的穩定性,可以結合圖形驗證。響應曲線圖將顯示輸入傳遞函數響應曲線,當選擇不同類型的輸入信號時,左上角的標簽名稱將自動變成對應的輸入型號類型。該功能模塊僅當點擊運行按鈕后才會刷新數據,這樣就避免了輸入數據還沒有修改完畢系統就已經刷新導致的錯誤。
本功能模塊能夠實現如下功能:①能夠以兩種形式輸入傳遞函數;②選擇頻率響應曲線類型,包括波特圖,奈奎斯特圖和尼科爾斯圖。在顯示不同類型的頻率響應曲線時,顯示圖表的坐標系將變為對應的曲線類型;③計算并顯示系統的幅值裕度、相角裕度、相角穿越頻率和截止頻率等參數。
本模塊和時域分析模塊一樣,運算部分均由Matlab腳本節點完成,只要調用對應的函數即可完成運算。不同的是,由于本模塊的XY圖屬性需要經常變化,故使用了大量屬性節點來改變包括圖是否可見、標簽的修改、XY軸名稱的修改和平面類型的選擇。線性系統的頻域分析模塊如圖4所示,此圖為奈奎斯特圖的仿真結果。

圖4 奈奎斯特圖的仿真結果
本功能模塊夠實現如下功能:①計算開環極點和開環零點;②調整實軸和虛軸的標尺范圍;③顯示根軌跡圖形。
線性系統根軌跡分析功能模塊的前面板包括傳遞函數輸入模塊、坐標軸上下線設置、開環傳遞函數零極點顯示、跟軌跡圖顯示和運行按鈕。圖5為根軌跡分析模塊的前面板。

圖5 根軌跡的仿真結果
此模塊在編程時需要注意以下問題:用Matlab計算當需要產生3條曲線時,Matlab就將其變為了一個有3列的二維數組。而LabVIEW在讀取這些數據時是按行讀取,然后轉為一維數組,此時將出現錯誤,無法得到正確圖像。所以,必須考慮如何將二維數組轉化為一維數組,否則LabVIEW是不能夠顯示的。
圖6為線性離散系統分析功能模塊的前面板,目前顯示為脈沖響應仿真結果。

圖6 脈沖響應仿真結果
本功能模塊能夠實現如下功能:①輸入傳遞函數,包括時域函數和頻域函數;②改變采樣周期和采樣長度;③選擇響應類型,包括脈沖響應和階躍響應;④計算系統的特征根并顯示;⑤判斷系統的穩定性;⑥對一個時域或頻域函數進行Z變換,并顯示出變換結果;⑦顯示Z變換波形。
本功能模塊能夠實現如下功能:①輸入傳遞函數;②選擇輸入類型,包括階躍輸入和任意函數輸入;③修改PID參數;④計算并顯示動態性能參數;⑤顯示PID控制波形。
PID超前(滯后)校正模塊的設計難點在于,如何能夠計算系統對于任意輸入函數的響應。在這里,使用了Matlab中的lsim函數,它可以計算我們需要的響應。但在使用lsim函數時,它的參數為系統的傳遞函數G,輸入信號的時域函數u和時間信息t,而且要求u和t的長度一致,這就需要將t的值代入到u式中進行計算。這個問題在純Matlab環境下,只要先輸入t,再輸入u即可解決,但在需要外部傳遞輸入函數是卻不能這么解決。為了解決這個問題,我們使用了eval函數,它可以將一個符號表達式轉化成與t同維的矩陣。
本模塊能夠實現如下功能:①輸入傳遞函數;②顯示速度變化波形圖,位移變化波形圖和運動軌跡波形圖;③逐點顯示波形數據,以反映速度及位移變化的快慢情況。且逐點顯示時間間隔可調。
該模塊的設計難點在于:①速度變化圖和位移變化圖采用的是waveform chart顯示,所以前一次顯示的數據仍會保留在屏幕上,需要手動清空;②運動軌跡圖由于同時需要x方向和y方向的位移信息,所以只能使用XY圖顯示,而XY圖不能保存前一次的顯示數據,如果像waveform chart一樣使用,每次就只能顯示一個點的數據。在下一次點下運行按鈕之后,還要將XY圖的數據清零。
對于難點①的解決方案,采用了數組初始化節點,將waveform chart的歷史數據清零。難點②的解決方案是采用移位寄存器,將每次的數據和以前的數據構成數組,同時判斷移位寄存器中數組大小與此次運算總點數的關系,當數組大于等于總點數時,就將移位寄存器數組初始化。
本模塊實現的功能與汽車運動類似,唯一不同就是運動軌跡是三維曲線圖。這里我們增加了是否開啟投影功能,即運動軌跡在XY平面、XZ平面和YZ平面的運動投影。
控制系統仿真是隨著虛擬儀器和控制理論等的發展而不斷進步的,它在工業開發生產等領域的作用是不可替代的。同時,人們也開始認識到仿真技術在教育領域的應用價值,它除了可以輔助高校的科研工作,在實驗教學方面也具有如利用率高,易維護等諸多優點。
本仿真平臺充分利用了LabVIEW在軟件化測量編程和Matlab在數據處理方面的優勢,通過混合編程將兩者合理地結合,最終完成了控制系統仿真平臺的設計。該仿真平臺適用于課堂教學,能夠將書本上的公式和理論轉化成直觀的圖形,也能夠加深學生對書本知識的理解。
[1] 胡壽松.自動控制原理[M].北京:科學出版社,2008
[2] 程 鵬.自動控制原理實驗教程[M].北京:清華大學出版社,2008.
[3] 張若青,羅學科,王民.控制工程基礎及Matlab實踐[M].北京:高等教育出版社,2008
[4] 楊樂平,李海濤,楊磊.LabVIEW 程序設計與應用(第 2版)[M].北京:電子工業出版社,2005
[5] 陳飛,陳惠俠.基于LabVIEW 和Matlab的自動控制虛擬實驗系統[J].四川:實驗科學與技術2009.02