基于Simulink的嵌入式網(wǎng)絡(luò)化控制仿真實(shí)現(xiàn)
摘要:實(shí)現(xiàn)了基于Simulink/Real-Time Workshop(RTW)的嵌入式網(wǎng)絡(luò)化控制仿真系統(tǒng),構(gòu)建了以ARM7TDMI型CPU為核,運(yùn)行uClinux操作系統(tǒng)的嵌入式平臺。建立了廣域網(wǎng)范圍的網(wǎng)絡(luò)環(huán)境,通過延時測量實(shí)驗(yàn)獲得了網(wǎng)絡(luò)延時統(tǒng)計特性,并針對該網(wǎng)絡(luò)環(huán)境下的分布式控制系統(tǒng)的前向通道和反饋通道分別提出了延時補(bǔ)償方法。同時系統(tǒng)還為用戶提供了離線仿真,和通過網(wǎng)絡(luò)在線指導(dǎo)現(xiàn)場控制的網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控功能。最后以直流電機(jī)為被控對象,在廣域網(wǎng)環(huán)境下進(jìn)行了網(wǎng)絡(luò)化控制系統(tǒng)實(shí)驗(yàn),驗(yàn)證了該系統(tǒng)的有效性。
本文引用地址:http://www.ex-cimer.com/article/171574.htm引言
網(wǎng)絡(luò)化控制系統(tǒng)NCS(Networked Control Systems)是指控制系統(tǒng)的各智能設(shè)備即傳感器,控制器和執(zhí)行器分布在不同地域空間,通過網(wǎng)絡(luò)形成閉合回路,各節(jié)點(diǎn)之間的數(shù)據(jù)和信息的交換需要網(wǎng)絡(luò)來實(shí)現(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ī)的控制試驗(yàn)實(shí)例,闡述了本仿真系統(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(通用公共許可證)公約的項(xiàng)目和完全開放代碼,是標(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)實(shí)現(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++編寫實(shí)現(xiàn),運(yùn)行在Windows 操作系統(tǒng)的PC 主機(jī),主要實(shí)現(xiàn)2 個功能:控制和監(jiān)視??刂乒δ茼憫?yīng)來自用戶的動作,如通過網(wǎng)絡(luò)修改遠(yuǎn)程的控制器參數(shù),查看過程變量實(shí)時數(shù)值;監(jiān)視功能為用戶顯示變量實(shí)時趨勢圖。服務(wù)器端運(yùn)行在嵌入式系統(tǒng)平臺,由ANSI C 編程實(shí)現(xiàn),主要處理來自客戶端的各種命令請求,并作出相應(yīng)的操作,使客戶端的用戶通過網(wǎng)絡(luò)實(shí)現(xiàn)各種監(jiān)控功能。使用TCP/IP 協(xié)議,客戶端采用WinSocket 服務(wù)器端采用Socket 實(shí)現(xiàn)通訊的監(jiān)控流程如圖2 所示。
系統(tǒng)實(shí)現(xiàn)
本系統(tǒng)采用Simulink/Real-time Workshop實(shí)現(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)的接口模塊,實(shí)現(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 實(shí)現(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 實(shí)現(xiàn)嵌入式應(yīng)用程序的過程。
由于Matlab 軟件通常安裝在Windows 操作系統(tǒng),為保證交叉編譯的順利進(jìn)行,安裝軟件Cygwin,以提供在Windows 下的虛擬Linux 環(huán)境。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論