蔡一天,奚學程,趙萬生(上海交通大學機械與動力工程學院,上海200240)
基于simulink-realtime的數(shù)控系統(tǒng)仿真與實驗平臺研究
蔡一天,奚學程,趙萬生
(上海交通大學機械與動力工程學院,上海200240)
提出一種采用simulink-realtime構建數(shù)控系統(tǒng)仿真實驗平臺的方法。首先,介紹了simulink-realtime的硬件部分結構及其軟件部分原理與設置。然后,詳述了基于simulink-realtime應用程序的開發(fā)流程,并以一個單軸PID控制器的程序開發(fā)為例。最后,以對輪廓誤差控制中典型的交叉耦合控制器研究證明了所搭建的仿真實驗平臺對于研究數(shù)控技術的實用性。
simulink-realtime;數(shù)控系統(tǒng);實驗平臺
數(shù)控系統(tǒng)作為數(shù)控機床的核心部分,其性能對于機床的加工精度和效率有著至關重要的影響。因此,研究先進的數(shù)控技術對于打破國外壟斷、提高裝備制造業(yè)水平有著重要意義。
但是,一般的商用數(shù)控系統(tǒng)往往是封閉的,這也意味著用戶無法知道其具體原理,也不能對其進行修改。因此,部分學者采用由PMAC運動控制卡來實現(xiàn)底層運動控制、而自己開發(fā)上層軟件的方法,這雖然部分地解決了數(shù)控系統(tǒng)開放性不足的問題,但當需要研究底層運動控制功能時,采用運動控制卡的方法仍使研究受到局限[1]。此外,部分研究人員采用自己開發(fā)數(shù)控系統(tǒng)的方法,但耗時較長,且需把過多精力投入到非核心技術的開發(fā)上[2-3]。也有其他學者采用開源數(shù)控系統(tǒng)(如LinuxCNC),在此基礎上進行修改以符合自身要求[4]。但這種方法需先對開源數(shù)控系統(tǒng)有一個較好的了解,前期耗費時間長,且所有算法功能都用C++語言實現(xiàn),在算法實現(xiàn)上也需花費很多精力。
本文利用Matlab軟件中的simulink-realtime實現(xiàn)從模型設計仿真到算法實現(xiàn)的無縫對接。利用simulink-realtime由仿真模型自動生成C語言代碼的功能,使原來最費時的算法實現(xiàn)階段時間幾乎縮短為0。并以此為基礎,集成數(shù)控系統(tǒng)中常用的功能模塊,搭建一個開放的數(shù)控技術仿真實驗平臺。
從核心功能上講,simulink-realtime是一組Matlab提供的幫助用戶從simulink模型快速創(chuàng)建實時程序,并自動下載到目標控制機的工具集。同時,它也包括了眾多的I/O硬件驅動,比如:模擬信號I/ O、數(shù)字信號I/O、脈沖產(chǎn)生與接收、CAN總線、網(wǎng)絡通信等。
1.1 硬件系統(tǒng)結構
Simulink-realtime具體實現(xiàn)時的硬件體系結構見圖1。開發(fā)機(development computer)負責Matlab程序、simulink仿真模型的搭建,通過simulink-realtime提供的編譯器編譯后下載到目標機中運行,之后開發(fā)機可實時調整程序中的參數(shù),并監(jiān)測和記錄程序運行的信號。開發(fā)機一般為裝有Windows系統(tǒng)并有Matlab程序的PC機。目標機往往也是PC機,當然也可以是如PC/104、CompactPCI形式的工控機。而I/O硬件通常指通過PCI擴展槽連接到目標機上的各種I/O板卡,最后通過這些I/O板卡控制真實的物理部件。
圖1 simulink-realtime系統(tǒng)架構圖
在開發(fā)機和目標機之間可采用2種通信方式:RS-232和ethernet。RS-232方式只能以一臺開發(fā)機對應一臺目標機,但Ethernet方式可支持一臺開發(fā)機對應多臺目標機,這是因為此時目標機和開發(fā)機之間是通過TCP/IP協(xié)議通信,兩者之間不是必須通過網(wǎng)線直接連接,完全可通過路由器接通。因此,ethernet的連接方式提供了更好的擴展性,且ethernet相對于RS-232通信更加不易受干擾,可支持長距離傳輸,數(shù)據(jù)傳輸速率快。因此,本文選用ethernet連接方式。
此處的硬件I/O板卡需為Matlab公司支持的型號,因為只有這部分板卡Matlab里的I/O驅動庫才提供simulink block形式的驅動。否則,需要用戶自己編寫硬件驅動,這會相當繁瑣。
1.2 軟件設置
從圖1可看出,如果要在目標機運行實時程序,需在目標機有一個實時操作系統(tǒng)。但這個實時操作系統(tǒng)并不是平時常見的如VxWorks、uc-os等,它是一個Matlab公司提供的名為 “simulink realtime kernel”的微型實時內核。因此,在目標機中不需由用戶預裝Windows或Linux等任何其他系統(tǒng)。
要在目標機啟動simulink real-time kernel,有以下4種方法:
(1)從光盤設備啟動。從CD/DVD啟動,需用戶自己刻錄光盤,成本較高且不方便。
(2)從移動盤啟動。從移動U盤或移動硬盤啟動,這時只需通過Matlab提供的工具制作啟動盤,然后通過USB接入目標機即可。
(3)DOS loader啟動。這要求目標機有DOS啟動系統(tǒng),且有其他諸多限制。
(4)網(wǎng)絡啟動。把實時操作系統(tǒng)放在一個開發(fā)機上,當開發(fā)機檢測到目標機啟動時,通過網(wǎng)絡把操作系統(tǒng)相關數(shù)據(jù)傳輸?shù)侥繕藱C,然后啟動系統(tǒng)。該方法要求目標機的BIOS支持從網(wǎng)絡啟動。
上述方法中,從移動盤啟動系統(tǒng)最為方便快捷且限制較小。因此,本文選取這種方法。
制作裝有simulink real-time kernel微型實時內核的U盤可通過Matlab提供的 “simulink real-time explorer”工具實現(xiàn)。只需在Matlab命令行中輸入“slrtexplr”;在Target面板中設置如下3個方面的屬性:
(1)開發(fā)機到目標機的連接屬性(Host-to-Target communication)。本文采用開發(fā)機和目標機用網(wǎng)線直接相連的方式,故連接方式選擇“TCP/IP”。目標機的相關網(wǎng)絡設置必須保證和開發(fā)機在同一個局域網(wǎng)中,即目標機的IP地址和開發(fā)機前3段必須相同,僅最后一段不同。且需注意開發(fā)機設為固定IP。
(2)目標機屬性(Target settings)。主要是設置目標機相關的屬性,如目標機是否為多核、是否為386/486體系架構等。
(3)啟動配置(Boot configuration)。由于本文選用從U盤啟動系統(tǒng),所以boot mode可選擇Removable Disk,然后就能創(chuàng)建啟動盤。同時需特別注意設置目標機的BIOS為優(yōu)先從U盤啟動系統(tǒng),否則一般都默認從硬盤啟動系統(tǒng)。
1.3 應用程序開發(fā)
基于simulink-realtime開發(fā)實時應用程序都是采用“基于模型的設計”思想,即一切以系統(tǒng)模型為基礎,用戶只需建立相應的算法模型,而不需關心具體的算法轉化為實時程序的細節(jié)。其開發(fā)過程見圖2。如本文的運動控制系統(tǒng),需對這個軸設計PID控制器以改善各軸的跟蹤性能。若交流伺服電機簡化為二階模型,則帶PID控制器的系統(tǒng)模型見圖3。
現(xiàn)在要設計PID控制器,并在目標機中實現(xiàn),因此需對上述模型進行實時化。首先,實時程序并不支持一般的Scope模塊,必須用simulink-realtime庫中專用的Scope。它支持實時數(shù)據(jù)顯示,或記錄數(shù)據(jù)到文件;另一方面,此時的傳遞函數(shù)1/(s2+3s+2)已用真實的物理系統(tǒng)代替,即交流伺服電機,所以傳遞函數(shù)模塊可刪去??刂葡到y(tǒng)信號和反饋信號需通過I/O板卡采集,因此還需添加相應的硬件驅動模塊。同時,由于采集到的反饋信號為脈沖信號,需經(jīng)過單位轉換才能接入閉環(huán),故在反饋處還需加入一個增益環(huán)節(jié)。假設此處采用的I/O板卡為NI公司的PCI-6221,則系統(tǒng)模型經(jīng)實時化改造后變?yōu)槿鐖D4所示。
圖2 simulink-realtime應用程序開發(fā)流程
圖3 單軸PID控制器模型
圖4 實時化改造后的單軸PID控制器模型
接下來,只要接通開發(fā)機和目標機,編譯經(jīng)過實時化改造的模型,下載到目標機就能在目標機運行這個PID控制器。這個編譯、下載、運行的過程只需簡單調用Matlab提供的命令或直接在GUI中操作即可。
最后,如需讀取記錄的數(shù)據(jù),可調用相應命令把記錄的數(shù)據(jù)文件從目標機復制到開發(fā)機,然后讀取到相應變量中。比如下列函數(shù)就可完成這個任務,其中tg為包含目標機的對象,filename為需要復制到開發(fā)機的數(shù)據(jù)記錄文件:
function scope_core_data=get_target_scope_data (tg,filename)
SimulinkRealTime,copyFileToHost(tg,filename);
scope_data=SimulinkRealTime.utils.get-FileScopeData(filename);
scope_core_data=scope_data.data(:,1);
end
由此可看出,所有工作都是圍繞系統(tǒng)模型展開,且用戶只需集中精力于算法開發(fā)就好。
本文基于simulink-realtime搭建的數(shù)控系統(tǒng)實驗平臺的硬件系統(tǒng)見圖5。其電控部分就是基于圖1所述的結構,I/O板卡選用NI公司的PCI6221,它包含兩路模擬輸出可控制電機,還自帶32位計數(shù)器可作為電機編碼器的反饋。機械部分為一個由滾珠絲杠傳動的兩軸X-Y交流伺服平臺。由于該平臺把一個軸置于另一個軸之上,這樣兩軸驅動的質量不同,從而保證兩軸的動態(tài)特性不匹配較明顯,更好地模擬了真實機床的情況。
圖5 實驗平臺硬件系統(tǒng)示意圖
在軟件方面,可劃分為如圖6所示的幾個模塊,各部分的功能如下:
(1)參數(shù)曲線生成模塊。目前高級的數(shù)控系統(tǒng)多用NURBS曲線來表示參數(shù)曲線,此模塊完成NURBS曲線相關的操作。
(2)插補算法模塊。從參數(shù)曲線生成一系列的插補點,可根據(jù)需要采用不同的插補算法。
(3)速度規(guī)劃模塊。合理規(guī)劃運動速度,可采用S型加減速等方法。
(4)模型辨識模塊。這主要是為了仿真方便,如上所述,simulink-realtime是以模型為核心的。若能辨識出系統(tǒng)模型,就能很方便地仿真相應的算法。
(5)基于繼電反饋的PID自整定模塊。單軸的PID控制器是最基本的控制器,而繼電反饋法又是整定PID參數(shù)的優(yōu)秀方法。
(6)輪廓誤差離線精確計算腳本。這主要是為了研究輪廓誤差控制等時驗證算法的效果。
(7)數(shù)據(jù)提取與存儲模塊。存儲數(shù)據(jù),方便以后進一步處理。
圖6 實驗平臺軟件部分模塊劃分
至此,數(shù)控系統(tǒng)實驗平臺完成,可用該平臺方便地進行數(shù)控技術各方面的研究。
本文以研究數(shù)控技術中的輪廓誤差控制技術為例,選用其中最經(jīng)典的交叉耦合控制器來證明所搭建實驗平臺的實用性。交叉耦合控制的思想是把輪廓誤差看作一個整體來控制,即意味著每個軸不但受本軸的影響,也接收其他軸的誤差信息。這樣,多軸之間能更好地協(xié)同,共同達到減小輪廓誤差的目的。
根據(jù)算法思想建立對于一個圓形軌跡的控制器模型(圖7)。其中,curve_data是用參數(shù)曲線生成、插補、速度規(guī)劃模塊一步步生成的參考指令點,兩個軸的系統(tǒng)模型可用系統(tǒng)辨識模塊獲得,單軸PID參數(shù)可通過繼電反饋法整定,而中間的PID控制器參數(shù)可通過建立如圖7所示模型后,用Matlab提供的PID參數(shù)整定工具自動整定,最后可用輪廓誤差離線精確計算腳本來估計控制器的效果。在確定算法后,將上述模型進行實時化改造(圖8),再調用系統(tǒng)相關工具編譯下載到目標機即可運行。
圖7 一個圓形輪廓的交叉耦合控制器模型
圖8 實時化后的交叉耦合控制器模型
在本實驗中,圓的半徑為40 mm,線速度為20 mm/s,有和沒有交叉耦合控制器時的輪廓誤差見圖9??梢?,交叉耦合控制器顯著減小了輪廓誤差,同時也證明本文搭建的實驗平臺能很好地滿足數(shù)控技術中的輪廓誤差控制技術研究的需要。
圖9 是否加入交叉耦合控制器的輪廓誤差對比
本文設計了基于simulink-realtime的數(shù)控系統(tǒng)仿真與實驗系統(tǒng)。相對于傳統(tǒng)的實驗平臺,它提供了極大的便利性,可大大減少通常算法實現(xiàn)時花費的大量時間。同時,該平臺以模型為核心的特點,很好地整合了從算法仿真到實現(xiàn)的過程。本文搭建的實驗平臺集成了數(shù)控技術中常用的各種模塊,具有很好的開放性,適于研究數(shù)控技術的各個方面。
[1] 陳昊,陳默,奚學程,等.六軸聯(lián)動電火花加工數(shù)控系統(tǒng)及機床[J].電加工與模具,2013(6):70-73.
[2] 邵昌旭,陳默,趙萬生.嵌入式電火花線切割加工數(shù)控系統(tǒng)原型[J].電加工與模具,2012(2):17-20.
[3] 吳文君,顧琳,徐笠云,等.基于ARM及嵌入式Linux的線切割數(shù)控系統(tǒng)開發(fā) [J].制造業(yè)自動化,2009,31(2):75-78.
[4] 豆尚成,陳成細,奚學程,等.基于Linux的線切割加工全軟數(shù)控系統(tǒng)[C]//第14屆全國特種加工學術會議論文集.蘇州,2011:199-205.
Study on a Simulation and Experiment Platform for CNC System Based on Simulink-realtime
Cai Yitian,Xi Xuecheng,Zhao Wanshen
(School of Mechanical Engineering,Shanghai Jiao Tong University,Shanghai 200240,China)
A simulation and experiment platform for CNC system is designed,in which simulinkrealtime is adopted as basic technology.First,the hardware requirement is introduced and the software specification is described in detail.Then the process of designing application program is presented and an example of designing PID controller for a single axis is given.Finally,the typical algorithm named‘cross couple controller’applied in contour control is selected to be realized in the proposed platform,which prove the platform′s practicability in researching CNC technology.
simulink-realtime;CNC system;experiment platform
TG659
A
1009-279X(2016)05-0024-04
2016-05-09
蔡一天,男,1989年生,碩士研究生。