基于simulink-realtime的數控系統 仿真與實驗平臺研究
2018-3-29 來源:上海交通大學 作者:蔡一天,奚學程,趙萬生
摘要:提出一種采用simulink-realtime構建數控系統仿真實驗平臺的方法。首先,介紹了simulink一realtime的硬件部分結構及其軟件部分原理與設置。然后,詳述了基于simulink一realtime應用程序的開發流程,并以一個單軸PID控制器的程序開發為例。最后,以對輪廓誤差控制中典型的交叉禍合控制器研究證明了所搭建的仿真實驗平臺對于研究數控技術的實用性。
關鍵詞:simulink-realtime;數控系統;實驗平臺
數控系統作為數控機床的核心部分,其性能對于機床的加工精度和效率有著至關重要的影響。因此,研究先進的數控技術對于打破國外壟斷、提高裝備制造業水平有著重要意義。
但是,一般的商用數控系統往往是封閉的,這也意味著用戶無法知道其具體原理,也不能對其進行修改。因此,部分學者采用由PMAC運動控制卡來實現底層運動控制、而自己開發上層軟件的方法,這雖然部分地解決了數控系統開放性不足的問題,但當需要研究底層運動控制功能時,采用運動控制卡的方法仍使研究受到局限。此外,部分研究人員采用自己開發數控系統的方法,但耗時較長,且需把過多精力投入到非核心技術的開發上}z-o。也有其他學者采用開源數控系統(如LinuxCNC ),在此基礎上進行修改以符合自身要求[f410但這種方法需先對開源數控系統有一個較好的了解,前期耗費時間長,且所有算法功能都用C++語言實現,在算法實現上也需花費很多精力。
本文利用M at1ab軟件中的simulink-realtime實現從模型設計仿真到算法實現的無縫對接。利用simulink-realtime由仿真模型自動生成C語言代碼的功能,使原來最費時的算法實現階段時間幾乎縮短為0。并以此為基礎,集成數控系統中常用的功能模塊,搭建一個開放的數控技術仿真實驗平臺。
1. Simulink-realtime簡介
從核心功能上講,simulink一realtime是一組Mat1al)提供的幫助用戶從simulink模型快速創建實時程序,并自動卜載到目標控制機的工具集。同時,它也包括了眾多的I/0硬件馭動,比如:模擬信號I/0、數字信號I/0、脈沖產生與接收、CAN總線、網絡通信等。
1.1 硬件系統結構
Simulink-realtime具體實現時的硬件體系結構見圖1。開發機(development computer)負責Matlab程序、simulink仿真模型的搭建,通過simulink-real-time提供的編譯器編譯后卜載到目標機中運行,之后開發機可實時調整程序中的參數,并監測和記錄程序運行的信號。開發機一般為裝有Windows系統并有Matlab程序的 PC機。目標機往往也是PC機,當然也可以是如PC/104 , CompactPCI形式的工控機。而I/0硬件通常指通過PCI擴展槽連接到目標機上的各種I/0板卡,最后通過這些I/0板卡控制真實的物理部件。

圖1 simulink-realtime系統架構圖
在開發機和目標機之間可采用2種通信方式:RS-232和ethernet } RS-232方式只能以一臺開發機對應一臺目標機,但Ethernet方式可支持一臺開發機對應多臺目標機。
這是因為此時目標機和開發機之間是通過TCP/IP協議通信,兩者之間不是必須通過網線直接連接,完全可通過路由器接通。因此,ethernet的連接方式提供了更好的擴展性,且ether-net相對于RS-232通信更加不易受干擾,可支持長距離傳輸,數據傳輸速率快。因此,木文選用ether-net連接方式。
此處的硬件I/0板卡需為Matlab公司支持的型號,因為只有這部分板卡Matlab里的I/0 31}動庫才提供simulink block形式的馭動。否則,需要用戶自己編寫硬件馭動,這會相當繁瑣。
1.2 軟件設置
從圖1可看出,如果要在目標機運行實時程序,需在目標機有一個實時操作系統。但這個實操作系統并不是平時常見的如VxWorks,uc-os等,它是一個M atlal)公司提供的名為“simulink real-time kernel”的微型實時內核。因此,在目標機中不需由用戶預裝Windows或Linux等任何其他系統。要在目標機啟動simulink real-time kernel,有以卜4種方法:
(I) 從光盤設備啟動。從CD/DVD啟動,需用戶自己刻錄光盤,成木較高且不方便。
(2) 從移動盤啟動。從移動U盤或移動硬盤啟動,這時只需通過Matlab提供的工具制作啟動盤,然后通過USB接入目標機即可。
(3) DOS loader啟動。這要求目標機有DOS啟動系統,且有其他諸多限制。
(4) 網絡啟動。把實時操作系統放在一個開發機上,當開發機檢測到目標機啟動時,通過網絡把操作系統相關數據傳輸到目標機,然后啟動系統。該方法要求目標機的BIOS支持從網絡啟動。
上述方法中,從移動盤啟動系統最為方便快捷且限制較小。因此,木文選取這種方法。
制作裝有simulink real-time kernel微型實時內核的U盤可通過Matlal)提供的“simulink real-time explorer”工具實現。只需在Matlab命令行中輸入"slrtexplr";在Target而板中設置如卜3個方而的屬性:
(1) 開發機到目標機的連接屬性(Host-to-Tar-get communication)。木文采用開發機目標機用網線直接相連的方式,故連接方式選擇“TCP/IP"。目標機的相關網絡設置必須保證和開發機在同一個局域網中,即目標機的IP地址和開發機前3段必須相同,僅最后一段不同。且需注意開發機設為固定IP。
(2) 目標機屬性(Target settings )。主要是設置目標機相關的屬性,如目標機是否為多核、是否為386/486體系架構等。
(3) 啟動配置(Boot configuration )。由于木文選用從U盤啟動系統,所以boot mode可選擇Remov-able Disk,然后就能創建啟動盤。同時需特別注意設置目標機的BIOS為優先從U盤啟動系統,否則一般都默認從硬盤啟動系統。
1.3 應用程序開發
基于simulink一realtime開發實時應用程序都是采用“基于模型的設計”思想,即一以系統模型為基礎,用戶只需建立相應的算法模型,而不需關心具體的算法轉化為實時程序的細節。其開發過程見圖2。

圖二 simulink-realtime 應用程序開發流程
如本文的運動控制系統,需對這個軸設計PID控制器以改善各軸的跟蹤性能。若交流伺服電機簡化為二階模型,則帶PID控制器的系統模型見圖3。

圖三 單軸PID控制器模型
現在要設計PID控制器,并在目標機中實現,因此需對上述模型進行實時化。首先,實時程序并不支持一般的Scope模塊,必須用simulink一realtime庫中專用的Scope。它支持實時數據顯示,或記錄數據到文件;另一方而,此時的傳遞函數1/(sz+3s+2)已用真實的物理系統代替,即交流伺服電機,所以傳遞函數模塊可刪去。控制系統信號量和反饋信號需通過I/0板卡采集,因此還需添加相應的硬件馭動模塊。同時,由于采集到的反饋信號為脈沖信號,需經過單位轉換才能接入閉環,故在反饋處還需加入一個增益環節。假設此處采用的I/0板卡為NI公司的PCI-6221,則系統模型經實時化改造后變為如圖4所示。

圖4 實時化改造后的單軸PID控制器模型
接下來,只要接通開發機和目標機,編譯經過實時化改造的模型,卜載到目標機就能在目標機運行個PID控制器。這個編譯、下載、運行的過程只需簡單調用M atlal提供的命令或直接在GUI中操作即可。
最后,如需讀取記錄的數據,可調用相應命令把記錄的數據文件從目標機復制到開發機,然后讀取到相應變量中。比如卜列函數就可完成這個任務,其中t為包含目標機的對象,filename為需要復制到開發機的數據記錄文件:
function scope_ core data=get target_ scope data(tg, filename)
SimulinkRealTime,copyFilcToHost (tg, file-name;
scopes data =SimulinkRealTime. utils. get-FilcScopeData(filename);
scopes c<)二一Iata=scope data. data(:,1);
end
由此可看出,所有工作都是圍繞系統模型展開,且用戶只需集中精力于算法開發就好。
2、數控系統實驗平臺設計
本文基于simulink-realtime搭建的數控系統實驗平臺的硬件系統見圖5

圖5 實驗平臺硬件系統示意圖
其電控部分就是基于圖1所述的結構,I/0板卡選用NI公司的PCI6221,它包含兩路模擬輸出可控制電機,還自帶犯位計數器可作為電機編碼器的反饋。機械部分為一個由滾珠絲杠傳動的兩軸X-Y交流伺服平臺。由于該平臺把一個軸置于另個軸之上,這樣兩軸3動的質量不同,從而保證兩軸的動態特性不匹配較明顯,更好地模擬了真實機床的情況。
在軟件方而,可劃分為如圖6所示的幾個模塊,各部分的功能如下:
(1)參數曲線生成模塊。目前高級的數控系統多用NURBS曲線來表示參數曲線,此模塊完成NURBS曲線相關的操作。
(2)插補算法模塊。從參數曲線生成一系列的插補點,可根據需要采用不同的插補算法。
(3)速度規劃模塊。合理規劃運動速度,可采用S型加減速等方法。
(4)模型辨識模塊。這主要是為了仿真方便,如上所述,simulink一realtime是以模型為核心的。若能辨識出系統模型,就能很方便地仿真相應的算法。
(5)基于繼電反饋的PID自整定模塊。單軸的PID控制器是最基木的控制器,而繼電反饋法又是整定PID參數的優秀方法。
(6)輪廓誤差離線精確計算腳本。這主要是為了研究輪廓誤差控制等時驗證算法的效果。
(7)數據提取與存儲模塊。存儲數據,方便以后進一步處理。

圖6 實驗平臺軟件部分模塊規劃
至此,數控系統實驗平臺完成,可用該平臺方便地進行數控技術各方面的研究。
3、輪廓控制仿真與實驗
木文以研究數控技術中的輪廓誤差控制技術為例,選用其中最經典的交叉禍合控制器來證明所搭建實驗平臺的實用性。交叉禍合控制的思想是把輪廓誤差看作一個整體來控制,即意味著每個軸不但受本軸的影響,也接收其他軸的誤差信息。這樣,多軸之間能更好地協同,共同達到減小輪廓誤差的目的。
根據算法思想建立對于一個圓形軌跡的控制器模型(圖7)。

圖7 一個圓形輪廓的交叉耦合控制器模型
其中,curve data是用參數曲線生成、插補、速度規劃模塊一步步生成的參考指令點,兩個軸的系統模型可用系統辨識模塊獲得,單軸PID參數可通過繼電反饋法整定,而中間的PID控制器參數可通過建立如圖7所示模型后,用Mat1al)提供的PID參數整定工具自動整定,最后可用輪廓誤差離線精確計算腳木來估計控制器的效果。在確定算法后,將上述模型進行實時化改造(圖8),再調用系統相關工具編譯下載到目標機即可運行。

圖8 實時化后交叉偶合控制器模型
在本實驗中,圓的半徑為40 mm,線速度為20mm/s,有和沒有交叉禍合控制器時的輪廓誤差見圖9。

圖9 是否加入交叉耦合控制器的誤差對比
可見,交叉禍合控制器顯著減小了輪廓誤差,同時也證明本文搭建的實驗平臺能很好地滿足數控技術中的輪廓誤差控制技術研究的需要。
4、結束語
本文設計了基于simulink-realtime的數控系統仿真與實驗系統。相對于傳統的實驗平臺,它提供了極大的便利性,可大大減少通常算法實現時花費的大量時間。同時,該平臺以模型為核心的特點,很好地整合了從算法仿真到實現的過程。本文搭建的實驗平臺集成了數控技術中常用的各種模塊,具有很好的開放性,適于研究數控技術的各個方面。
投稿箱:
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com
更多相關信息