基于Simulink的嵌入式網(wǎng)絡(luò)化控制仿真系統(tǒng)實現(xiàn)
引言
網(wǎng)絡(luò)化控制系統(tǒng)NCS(Networked Control SystEMS)是指控制系統(tǒng)的各智能設(shè)備即傳感器,控制器和執(zhí)行器分布在不同地域空間,通過網(wǎng)絡(luò)形成閉合回路,各節(jié)點之間的數(shù)據(jù)和信息的交換需要網(wǎng)絡(luò)來實現(xiàn)。它是將當(dāng)今先進(jìn)的網(wǎng)絡(luò)通信技術(shù),計算機(jī)技術(shù)和控制技術(shù)融為一體的分布式控制系統(tǒng)。雖然網(wǎng)絡(luò)化控制在工業(yè)控制,過程控制和樓宇自動化等方面得到了廣泛的應(yīng)用,但網(wǎng)絡(luò)控制系統(tǒng)的理論研究卻相當(dāng)不成熟[1]。本文利用在工程領(lǐng)域廣泛使用的Simulink仿真軟件,結(jié)合軍事和民用領(lǐng)域應(yīng)用成熟的嵌入式微處理器構(gòu)架開發(fā)了網(wǎng)絡(luò)化控制仿真系統(tǒng),為進(jìn)行網(wǎng)絡(luò)化控制系統(tǒng)的理論研究提供了有利工具。
由于目前工業(yè)控制領(lǐng)域使用的通信技術(shù)都是自成體系、互不開放的。國際上新頒布的IEC61158現(xiàn)場總線標(biāo)準(zhǔn)包括了8種不同的類型,要使它們之間互相兼容和互可操作幾乎是不可能的。因此,積極采用以太網(wǎng)技術(shù)已成為工業(yè)網(wǎng)絡(luò)的發(fā)展趨勢。目前基于以太網(wǎng)的網(wǎng)絡(luò)化控制系統(tǒng)得到了全世界自動化領(lǐng)域?qū)W者們的關(guān)注。鑒于此,本文所開發(fā)的仿真系統(tǒng)是專為基于以太網(wǎng)的網(wǎng)絡(luò)化控制而設(shè)計的。
由于網(wǎng)絡(luò)化控制系統(tǒng)是控制技術(shù)和網(wǎng)絡(luò)通訊技術(shù)相結(jié)合的產(chǎn)物,因而對它的分析設(shè)計也通常從控制和網(wǎng)絡(luò)兩個角度進(jìn)行。從網(wǎng)絡(luò)角度考慮,一般是對通信協(xié)議進(jìn)行改進(jìn),解決延時,丟包,亂序等網(wǎng)絡(luò)帶給控制系統(tǒng)的問題,減小對控制系統(tǒng)的影響;從控制角度出發(fā),則是在已有的網(wǎng)絡(luò)結(jié)構(gòu)和協(xié)議下,設(shè)計控制系統(tǒng)的結(jié)構(gòu),開發(fā)控制算法,補(bǔ)償網(wǎng)絡(luò)延時,以保證系統(tǒng)的穩(wěn)定。本仿真系統(tǒng)是從控制的角度設(shè)計的。
本文建立了以32位嵌入式RISC(Reduced Instruction Set Computer)微處理器結(jié)構(gòu)ARM7TDMI S3C4510B為CPU核,基于Simulink/RTW開發(fā)的嵌入式網(wǎng)絡(luò)化控制仿真系統(tǒng)的軟硬件結(jié)構(gòu)平臺。結(jié)合對無刷直流電機(jī)的控制試驗實例,闡述了本仿真系統(tǒng)的具體應(yīng)用。
網(wǎng)絡(luò)化控制仿真系統(tǒng)
嵌入式系統(tǒng)平臺構(gòu)架
本系統(tǒng)以嵌入式系統(tǒng)為硬件平臺,其硬件構(gòu)架如圖1。該嵌入式系統(tǒng)硬件平臺選用Samsung 公司的基于ARM7TDMI核芯的S3C4510B微處理器作為嵌入式系統(tǒng)的CPU。S3C4510B 32位嵌入式RISC微控制器是為基于以太網(wǎng)的現(xiàn)場網(wǎng)絡(luò)控制系統(tǒng)提供的低成本高性能的微控制器。它支持8位、16位和32位尋址方式,具有16M×32位的尋址能力,可方便的構(gòu)建較大的存儲空間。為了降低整個系統(tǒng)的成本,S3C4510B將外圍設(shè)備和處理器內(nèi)核集成在一塊芯片上,提供片上外圍設(shè)備主要有2通道UART,2通道HDLC,1通道MII接口,Ethernet控制器,中斷控制器,JTAG接口,PLL時鐘發(fā)生器和2個定時器等。
系統(tǒng)選用HY29LV160作為FLASH存儲器,每片提供1M×16位的存儲空間,兩片并聯(lián)構(gòu)成1M×32位的代碼存儲空間;選用HY57V641620作為SDRAM存儲器,每片提供4M×16位的存儲空間,兩片并聯(lián)構(gòu)成4M×32位的代碼運(yùn)行空間,相對較大的RAM空間有利于提高系統(tǒng)性能和執(zhí)行較復(fù)雜的控制算法。有源晶振為S3C4510B提供外部時鐘信號,通過內(nèi)部的鎖相環(huán)(PLL)電路,作為系統(tǒng)的工作頻率,PLL兼有頻率放大和信號提純的功能,因此,系統(tǒng)可以較低的外部時鐘信號獲得較高的工作頻率,最高可達(dá)50MHz。
此外,目標(biāo)系統(tǒng)還擴(kuò)展了8路16位高速A/D和2路12位高速D/A,為被控對象提供控制接口。用100M/10M高速以太網(wǎng)物理層收發(fā)器DM9161擴(kuò)展以太網(wǎng)控制器。4×4的鍵盤和數(shù)碼管顯示為系統(tǒng)提供了現(xiàn)場調(diào)試手段。
ARM7TDMI構(gòu)架的CPU不帶MMU即內(nèi)存管理單元,可選用uClinux作為相應(yīng)的操作系統(tǒng),這是一個完全符合GNU/GPL(通用公共許可證)公約的項目和完全開放代碼,是標(biāo)準(zhǔn)Linux的一個分支,專用于沒有MMU的CPU,并且為嵌入式系統(tǒng)做了許多小型化的工作,具有內(nèi)嵌網(wǎng)絡(luò)協(xié)議,支持多種文件系統(tǒng),編譯后內(nèi)核目標(biāo)文件在600KB左右。
仿真系統(tǒng)軟件結(jié)構(gòu)
本仿真系統(tǒng)為用戶提供網(wǎng)絡(luò)和內(nèi)核兩類接口模塊。網(wǎng)絡(luò)模塊由Simulink 提供的專為用戶自行開發(fā)代碼的系統(tǒng)函數(shù)(S-Function)實現(xiàn),代碼采用C 語言編寫,主要有UDP/IP,TCP/IP 兩種通信協(xié)議模塊,同步機(jī)制模塊,延時測量模塊,控制算法模塊和延時補(bǔ)償模塊。
內(nèi)核模塊包括讀模塊,寫模塊,訪問系統(tǒng)硬件平臺片上外圍和擴(kuò)展硬件資源的I/O 模塊,如A/D 模塊,D/A 模塊,外部中斷源模塊,定時器模塊等。內(nèi)核模塊除用系統(tǒng)函數(shù)完成用戶空間編程外,還需在uClinux 中進(jìn)行內(nèi)核空間編程。
此外,仿真系統(tǒng)還提供了網(wǎng)絡(luò)監(jiān)控功能,使不在控制現(xiàn)場的用戶及時掌握控制系統(tǒng)的運(yùn)行狀況。該功能主要由客戶端和服務(wù)器兩部分完成,即構(gòu)成Client/Server 模式??蛻舳颂峁┡c用戶的交互,由VC++編寫實現(xiàn),運(yùn)行在Windows操作系統(tǒng)的PC 主機(jī),主要實現(xiàn)2 個功能:控制和監(jiān)視??刂乒δ茼憫?yīng)來自用戶的動作,如通過網(wǎng)絡(luò)修改遠(yuǎn)程的控制器參數(shù),查看過程變量實時數(shù)值;監(jiān)視功能為用戶顯示變量實時趨勢圖。服務(wù)器端運(yùn)行在嵌入式系統(tǒng)平臺,由ANSI C 編程實現(xiàn),主要處理來自客戶端的各種命令請求,并作出相應(yīng)的操作,使客戶端的用戶通過網(wǎng)絡(luò)實現(xiàn)各種監(jiān)控功能。使用TCP/IP 協(xié)議,客戶端采用WinSocket 服務(wù)器端采用Socket 實現(xiàn)通訊的監(jiān)控流程如圖2 所示。
系統(tǒng)實現(xiàn)
本系統(tǒng)采用Simulink/Real-time Workshop實現(xiàn)仿真系統(tǒng)中運(yùn)行在嵌入式平臺的代碼部分。
Simulink是Mathworks公司推出的,用于控制算法設(shè)計和系統(tǒng)動態(tài)建模的可視化仿真分析環(huán)境,其Real-TimeWorkshop(RTW)工具箱能根據(jù)所組建的Simulink框圖自動生成優(yōu)化的C語言代碼,結(jié)合與目標(biāo)硬件相關(guān)的接口模塊,實現(xiàn)對Simulink描述的控制系統(tǒng)的仿真,使用戶從編寫代碼的繁冗勞動中解脫,縮短程序開發(fā)周期。
嵌入式硬件平臺的應(yīng)用程序開發(fā)與傳統(tǒng)開發(fā)有所不同。受嵌入式系統(tǒng)有限資源的限制,應(yīng)用程序的開發(fā)一般采用主從模式,即程序的設(shè)計,編譯和鏈接在PC 機(jī)(通常運(yùn)行有Linux)上進(jìn)行,最終生成的可執(zhí)行代碼運(yùn)行在嵌入式系統(tǒng)中,這個過程為交叉編譯過程。
利用RTW 實現(xiàn)將Simulink 的框圖生成在仿真系統(tǒng)的嵌入式平臺上運(yùn)行程序的主要步驟為:
1) 編寫通用的與Simulink 框圖接口的網(wǎng)絡(luò)程序;
(2) 在裝有Matlab 的PC 機(jī)上安裝交叉編譯工具鏈arm-elf-gCC,包括編譯器,鏈接器,二進(jìn)制工具等;
(3) 在Simulink 中構(gòu)建被控系統(tǒng)的仿真框圖;
(4) 根據(jù)目標(biāo)硬件的不同,修改RTW 中集成的makefile模板文件,并將在(1)中編寫的代碼,加入到編譯鏈接的源碼列表,修改系統(tǒng)目標(biāo)文件;
(5) 打開相應(yīng)RTW 對話框,選中要使用的系統(tǒng)目標(biāo)文件后,代碼的生成,編譯,下載及在嵌入式系統(tǒng)上運(yùn)行等一系列過程將在幾分鐘內(nèi)自動完成。
圖3 描述了仿真系統(tǒng)軟件整體結(jié)構(gòu)及Simulink/RTW 實現(xiàn)嵌入式應(yīng)用程序的過程。
由于Matlab 軟件通常安裝在Windows 操作系統(tǒng),為保證交叉編譯的順利進(jìn)行,安裝軟件Cygwin,以提供在Windows 下的虛擬Linux 環(huán)境。
延時特性分析及補(bǔ)償方法
網(wǎng)絡(luò)化控制系統(tǒng)的分析和設(shè)計比傳統(tǒng)的點對點控制復(fù)雜的主要原因在于網(wǎng)絡(luò)延時。在采用以太網(wǎng)的分布式網(wǎng)絡(luò)化控制系統(tǒng)中,雖然以太網(wǎng)傳輸?shù)膶崟r性隨著快速以太網(wǎng)和交換式以太網(wǎng)技術(shù)的發(fā)展得到了解決,但由于有限的網(wǎng)絡(luò)資源被網(wǎng)絡(luò)中的多個節(jié)點共享,使控制系統(tǒng)中的實時信息不能及時傳送,加之包交換的網(wǎng)絡(luò)間延時的不確定性,嚴(yán)重影響了系統(tǒng)的控制性能,甚至造成系統(tǒng)的不穩(wěn)定。因此,網(wǎng)絡(luò)化控制仿真平臺要提供對真實網(wǎng)絡(luò)環(huán)境的模擬必須首先明確網(wǎng)絡(luò)延時的特點。
延時分布特性
往返時間round trip time 簡稱為rtt,是指小數(shù)據(jù)包從網(wǎng)絡(luò)源節(jié)點A 發(fā)出,經(jīng)網(wǎng)絡(luò)到達(dá)目的節(jié)點B 后又返回到A 所用的時間。本文在實驗裝置所訪問的廣域網(wǎng)環(huán)境下進(jìn)行rtt測量,以便從測量數(shù)據(jù)中分析得到延時分布特性。測量使用仿真系統(tǒng)的延時測量模塊。該模塊采用Van JaCOBson 提出的高精度測時思想,用Simulink 系統(tǒng)函數(shù)實現(xiàn)。
圖4 是在網(wǎng)絡(luò)處于正常條件下,實際測得實驗裝置所使用的廣域網(wǎng)的rtt 分布。測量進(jìn)行了1000 次,其均值為0.3877s,均方差為0.0106s。從頻域角度分析,得到的功率譜密度如圖5 所示。根據(jù)帶限白噪聲定義,即功率譜密度函數(shù)僅在某些有限頻率范圍內(nèi)取異于零的常數(shù),為理論分析的簡化,將測得的延時近似為低通白噪聲,這可由低通白噪聲對功率譜密度的定義
可知。Srinivasagupta 也指出將大多數(shù)的網(wǎng)絡(luò)延時近似為白噪聲是合理的。
相對于具有較大截止頻率,即時間常數(shù)較大,動態(tài)響應(yīng)較慢的系統(tǒng),由于允許的采樣周期較長,該數(shù)量級的網(wǎng)絡(luò)延時對控制系統(tǒng)的影響也許可以忽略,但當(dāng)被控