董惠娟,隋明揚,王 奕,彭高亮,陳志剛
機電系統控制基礎課程實驗中傳遞函數辨識方法及關鍵技術
董惠娟,隋明揚,王 奕,彭高亮,陳志剛
(哈爾濱工業大學 機電工程學院,黑龍江 哈爾濱 150001)
機電系統控制基礎課程最重要的實驗是機電系統傳遞函數的參數辨識。該文采用作者自行研制的硬件可配置、軟件可編程、內容可擴展、多參數可調的設備,描述了基于掃頻法獲得機電系統數學模型傳遞函數和Bode圖的辨識方法,以及影響辨識精度的3個主要關鍵技術:電樞電壓輸入與轉速的標定方法、輸出信號存儲方法和時鐘精度獲取方法。給出了C#編程的關鍵程序代碼和注釋。通過該實驗,揭示Bode圖和機電參數的內在關聯。
機電系統控制基礎;傳遞函數;Bode圖;掃頻法;辨識精度
本文基于自制的硬件可配置、軟件可編程、參數可調節、內容可擴展的多參數可調實驗裝置,開展了系列實驗,實驗內容具有科學性、啟發性、創新性和實用性,這些實驗不但涵蓋了古典控制理論的知識,而且體現了機械工程學科主要課程的多個關鍵知識點。由于參數可調,所有設備的參數和運動副形式都不相同,避免了學生的抄襲,有利于公正評價學生動手能力[1]。在這些系列實驗中,機電系統數學模型傳遞函數的獲取和參數辨識是最為基礎的實驗之一,也是控制理論模型中最為重要的。本文重點講述基于掃頻法獲取機電系統傳遞函數和Bode圖的具體方法,以及影響數學模型精度的各關鍵技術。
自行研制的機電系統有3種運動形式:直線運動、旋轉運動和二維平面運動。以角位置伺服系統為例,機械結構組成效果和控制系統示意圖分別如圖1和圖2。文獻[1]中詳細給出了伺服控制系統的組成和工作原理,在此就不再贅述。

1-直流伺服電機;2-磁滯阻尼器;3-軸承和軸承座;4-可調負載;5-增量式旋轉編碼器;6-膜片聯軸器;7-底座。

如圖1所示系統,直流伺服電機作為驅動元件,輸入信號本應該是電機轉子的角位置正弦或角速度余弦,但是由于電機電樞電壓和轉子轉速成正比,所以,輸入信號設為電機電樞電壓的余弦,輸出是負載的角位置正弦。輸入電機電樞電壓和輸出角位置信號的關系如圖3所示。
從圖3可以看出,當輸入信號頻率低于系統的截止頻率時,輸出信號的幅值大于輸入信號幅值,反之亦然。

圖2 角位置伺服系統控制系統組成框圖

圖3 余弦輸入信號與角位置輸出波形對比(wc為截止頻率)
幅頻特性曲線為

式中,()為幅值,為輸入(出)信號角頻率(rad/s);為輸出軸角位置極值(°);0為系統余弦輸入電壓幅值(V)
由于在本實驗系統中,計算機取代了模擬調節器,而計算機只識別數字信號[4-6],數字控制量輸出,經過D/A轉換和信號放大后,作為電機的電樞電壓,公式(1)中的0是D/A轉換后的余弦輸入電壓幅值,在本實驗中為5 V。把該電壓作為輸入信號,即此機電系統的廣義對象的傳遞函數包括了控制算法程序、D/A轉換、信號放大、電機轉子、負載及聯軸器等所有環節。

相頻特性曲線平滑連接即可。根據幅頻特性和相頻特性曲線可以直接寫出系統的傳遞函數。
本文的輸入信號為電機電樞電壓的余弦(圖3(a))。由于本實驗采用計算機數字控制器取代模擬調節器[1],所以需要對電機電樞電壓的余弦信號進行離散。C# 程序中實現代碼如下:
Uaa =a * Math.Cos((Math.PI) * 2 * fHz *
* 0.001); (3)
其中,a是輸入信號幅值;fHz是輸入信號頻率;是采樣節點。
如圖4所示,由于電機本身的安裝、電機驅動器的死區、摩擦等因素,正反轉不僅斜率不同,而且存在死區[7-9]。為了將公式(3)的電樞電壓輸入對應成電機轉速,需要將轉速與電樞電壓線性化,如圖4中的點劃線為線性化后的關系曲線。

圖4 電機轉速和電樞電壓關系的標定
在參數辨識實驗中,為了提高參數辨識精度,輸入信號的離散時間間隔和采樣周期都較短,存儲數據量較大,如何將時間、輸入信號、輸出信號保存是參數辨識精度的關鍵技術之一。
VS 開發環境下,數據存儲具有多種方式,本實驗采用文件流FileStream,以流的形式讀寫文件內容。編寫了類WriteToTxtClass,其源代碼WriteToTxtClass. cs如下:
public WriteToTxtClass(string str) //在創建類的同時,執行初始化操作
{
myStream = new FileStream(str, FileMode. OpenOrCreate, FileAccess.Write);
//創建類FileStream的實例,使用指定的路徑str、創建模式OpenOrCreate、寫權限初始化該實例
myStream.SetLength(0); //設置緩沖區長度,為0
myStreamWriter = new StreamWriter(myStream); //創建類StreamWriter的實例
myStreamWriter.Flush(); //寫入并清空緩存區
myStreamWriter.BaseStream.Seek(0, SeekOrigin.Begin); //設置當前流的位置指向文件開頭
}
設計窗體界面時,使用一個文件保存對話框控件saveFileDialog1。在主程序中,限定文件類型,在對話框中輸入文件名,創建文件路經:
WriteToTxtClass writer = null; //聲明類WriteToTextClass實例
……;
saveFileDialog1.FileName = ""; //輸入文件名
saveFileDialog1.Filter = "txt files(*.txt)|*.txt"; //限定文件名類型為*.txt
saveFileDialog1.ShowDialog(); //創建文件保存對話框
fileName = saveFileDialog1.FileName;
writer = new WriteToTxtClass(fileName); //創建類WriteToTextClass實例,執行初始化操作
……
每次采樣時,使用類WriteToTxtClass中的數據記錄函數存儲數據:
writer.RecordResult(i.ToString() + ' ' + Uaa.ToStr-ing() + ' ' + pvSave.ToString());
生成*.txt文件格式如圖5。
使用Matlab或其他數據處理軟件,可以很方便地處理生成的*.txt格式文件,計算輸出信號的幅值及相位差[10]。根據各頻率下的幅值、相角關系,繪制系統的Bode圖,并且對系統的數學模型參數進行辨識。

圖5 生成*.txt格式文件
機電系統數學模型的參數辨識精度取決于輸入信號精度,以及輸出角位置的檢測精度。在本實驗系統中,輸入信號是D/A輸出的電樞電壓的控制量,由程序以離散形式提供[11-13],為了提高精度,不僅要減小輸入信號的離散周期,還需提高程序的時鐘精度。
本實驗比較了兩種定時器,一個是VS軟件開發環境下的計時器Timer1。另一個是自行編寫的計時器WindowsTimer1。
由于Timer1. Internal低于10 ms計時器失效,本實驗設置Timer1. Internal=10 ms,輸入余弦電樞電壓和輸出角位置,利用C#自動記錄,見圖6,圖6(a)和圖6(b)分別為2 Hz和5 Hz信號,黑色曲線為輸入信號,紅色曲線為輸出信號。
從圖6可以看出,輸出幅值波動較大,因此影響數學模型辨識的精度。

圖6 使用Timer時輸入/輸出信號
為了提高時鐘精度,本實驗利用Windows的winmm.dll動態鏈接庫,調用API函數,自行編寫了計時器類WindowsTimer1:
class WindowsTimer1
{
……;
[DllImport("winmm.dll")]
public static extern uint timeEndPeriod(uint uMilliseconds);
[DllImport("winmm.dll")]
public static extern uint timeBeginPeriod(uint uMilliseconds); //設置時間1ms
[DllImport("winmm.dll")]
static extern uint timeGetTime(); //獲取windows逝去的時間
……;
public void start()
{
start_Value=timeGetTime(); //記錄windows初始時間
}
public long get_time() //計算當前時間與初始時間的時間間隔
{
stop_Value = timeGetTime(); //獲取windows終止時間
n = stop_Value - start_Value; //返回時間間隔
return n;
}
}
在掃頻程序中,建立類class WindowsTimer1的實例Timer1,
WindowsTimer1 Timer1= new WindowsTimer1();
利用自行編寫的類和函數,實現每1ms的輸入信號的離散和采樣。在本文中,無論輸入信號頻率多少,均離散化5 s信號,即5000個輸入信號和采樣:
WindowsTimer1 Timer1= new WindowsTimer1();
for (timer1.start(); i < 5000; i = timer1.get_time())
{ ……; }
同理,使用自行編制的計時器WindowsTimer1,時間間隔為1 ms,輸入余弦電樞電壓和輸出角位置,利用C# 自動記錄。圖7中(a)和(b)分別為2 Hz和5 Hz信號,黑色曲線為輸入信號,紅色曲線為輸出信號。
從圖7可以看出,輸出幅值波動較小。

圖7 使用WindowsTimer時輸入/輸出信號
“機電系統控制基礎”課程的實驗建設過程中,基于掃頻法辨識機電系統傳遞函數和Bode圖的實驗最為關鍵。本實驗中,保證辨識精度的3個主要關鍵技術為電樞電壓輸入/轉速的標定方法、輸出信號存儲方法和時鐘精度獲取方法。
[1] 董惠娟,李灝宇,石勝君.用于機電系統控制基礎課程的多參數可調實驗[J].實驗技術與管理,2019, 36(9): 36–40, 91.
[2] 李東,陳強,孫振國,等.倒立擺教學實驗系統的設計與應用[J].實驗技術與管理,2006, 23(9): 100–102, 106.
[3] 沈偉,蘭山.伺服系統頻率特性測試方法研究[J].實驗技術與管理,2011, 28(11): 268–271.
[4] 林遂芳,郭會軍,李強,等.基于LabVIEW的氣動比例伺服系統模型辨識研究[J].實驗技術與管理,2009, 26(6): 76–79.
[5] 何德峰,俞立,徐建明.基于MATLAB的現代控制理論實驗教學實踐[J].實驗技術與管理,2016, 33(3): 123–126.
[6] 趙霞,王祝萍,賈海航.連續系統離散化方法的比較與解析初探[J].工業和信息化教育,2015(10): 71–76, 82.
[7] KARA T, EKER ?. Nonlinear modeling and identification of a DC motor for bidirectional operation with real time experiments[J]. Energy Conversion and Management, 2003, 45(7): 1087–1106.
[8] BHUSHAN B, SINGH M. Adaptive control of DC motor using bacterial foraging algorithm[J]. Applied Soft Computing Journal, 2011, 11(8): 4913–4920.
[9] 黑沫,張連超,廖洪波,等.機電聯合建模在直驅伺服系統設計中的應用[J].光學精密工程,2014, 22(9): 2416–2422.
[10] 王艷穎,王珍,郭麗環.直流電動機傳遞函數測定的實驗研究[J].實驗技術與管理,2008, 25(8): 38–40.
[11] 趙霞,李蓉艷.采樣定理與確定系統采樣周期的教學方法研究[J].工業和信息化教育,2014(5): 24–29.
[12] 楊鵬.一種PID控制仿真的實現[J].計算技術與自動化,2013, 32(1): 25–27.
[13] 閆明明,楊平,熊靜琪.基于“計算機控制技術”的機器人行走控制實驗設計[J].實驗技術與管理,2014, 31(3): 173–175.
Identification method of transfer function and key technologies in Control Foundation of Electromechanical System course
DONG Huijuan, SUI Mingyang, WANG Yi, PENG Gaoliang, CHEN Zhigang
(School of Mechatronics Engineering, Harbin Institute of Technology, Harbin 150001, China)
The undergraduates majored in mechanical engineering are quite good at analyzing an engineering system from the sides of space, mechanism and motion. However, the main course, Basic Control of Mechanical and Electrical Systems, focuses on its model. The essential experiment of this course, the identification of transfer function, offers solution. In this work, the authors describe the identification method of both transfer function and Bode diagram using sweep frequency method. All experiments were carried out using a self-developed experiment device which is hardware configurable, software programmable, content expandable and multi-parameter adjustable. It is noted that there are three key technologies that affect the identification accuracy, being the calibration of voltage input and speed, the signal storage and clock accuracy acquisition. In addition, C# programmed key codes and annotations are provided by the authors. Through this experiment, the internal relationship between Bode diagram and electromechanical parameters is revealed in this work.
Basic Control of Mechanical and Electrical Systems, sweep frequency method, transfer function, Bode diagram, identification accuracy
TH-39;TP273
A
1002-4956(2019)11-0036-04
10.16791/j.cnki.sjg.2019.11.010
2019-04-02
黑龍江省教育廳2017年度高等教育教學改革研究一般研究項目(SJGY20170676)
董惠娟(1968—),女,河北武邑,教授,博士生導師,主要研究領域為功率超聲波應用技術、光纖傳感技術和機電一體化裝備。E-mail: dhj@hit.edu.cn