Truetime網(wǎng)絡(luò)仿真_第1頁
Truetime網(wǎng)絡(luò)仿真_第2頁
Truetime網(wǎng)絡(luò)仿真_第3頁
Truetime網(wǎng)絡(luò)仿真_第4頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、網(wǎng)絡(luò)控制系統(tǒng)的調(diào)度研究與仿真(Truetime 工具)1. 節(jié)點(diǎn)的驅(qū)動(dòng)方式網(wǎng)絡(luò)控制系統(tǒng)中的傳感器一般采用時(shí)鐘驅(qū)動(dòng), 傳感器的時(shí)鐘即為系統(tǒng)的時(shí)鐘, 而控制器和執(zhí)行器既可以是時(shí)鐘驅(qū)動(dòng), 也可以是事件驅(qū)動(dòng)。 但事件驅(qū)動(dòng)相比于時(shí)鐘驅(qū)動(dòng)具有以下優(yōu)點(diǎn):(1) 控制器或執(zhí)行器為事件驅(qū)動(dòng)方式時(shí),從源節(jié)點(diǎn)(傳感器或控制器)發(fā)送的數(shù)據(jù)一旦到達(dá)目標(biāo)節(jié)點(diǎn) (控制器或執(zhí)行器) 便馬上執(zhí)行, 而在時(shí)鐘驅(qū)動(dòng)方式時(shí)控制器或執(zhí)行器的數(shù)據(jù)被執(zhí)行要等到規(guī)定的時(shí)間點(diǎn),因此事件驅(qū)動(dòng)方式客觀上減少了網(wǎng)絡(luò)誘導(dǎo)時(shí)延;(2) 控制器或執(zhí)行器為事件驅(qū)動(dòng)方式時(shí),避免了控制器或執(zhí)行器為時(shí)鐘驅(qū)動(dòng)方式時(shí)與傳感器時(shí)鐘同步的困難;(3) 控制器或執(zhí)行器采用

2、事件驅(qū)動(dòng)方式時(shí),避免了控制器或執(zhí)行器為時(shí)鐘驅(qū)動(dòng)方式時(shí)容易出現(xiàn)的空采樣和數(shù)據(jù)丟失,提高了反饋數(shù)據(jù)的利用率。事件驅(qū)動(dòng)相對(duì)于時(shí)鐘驅(qū)動(dòng)也有一定缺點(diǎn):(1) 在實(shí)際運(yùn)用中事件驅(qū)動(dòng)較難實(shí)現(xiàn)。(2) 部分實(shí)際的網(wǎng)絡(luò)控制系統(tǒng)不支持事件驅(qū)動(dòng)方式。2. TrueTime 工具箱結(jié)構(gòu)與功能Truetime 是由瑞典Lund 工學(xué)院 Henriksson 等人開發(fā)的一個(gè)基于Matlab/Simulink 的實(shí)時(shí)網(wǎng)絡(luò)控制系統(tǒng)的仿真工具箱,為NCS 理論的仿真研究提供了簡(jiǎn)易可行、功能齊全的手段,拜托了軟件編程實(shí)現(xiàn)特定的網(wǎng)絡(luò)通訊協(xié)議、通信延遲所帶來的困難,支持控制與實(shí)時(shí)調(diào)度同時(shí)仿真可以方便地仿真實(shí)時(shí)系統(tǒng)中的資源調(diào)度問題。T

3、rueTime 仿真軟件主要包括兩個(gè)基本模塊:內(nèi)核模塊(TrueTime Kernel )和網(wǎng)絡(luò)模塊(TrueTime Network ),如圖 1 所示。內(nèi)核模塊可以是時(shí)間驅(qū)動(dòng)也可以是事件驅(qū)動(dòng)的,它主要包含了一個(gè)實(shí)時(shí)內(nèi)核,A/D ,D/A轉(zhuǎn)換端口,與網(wǎng)絡(luò)模塊連接的信號(hào)端口(信號(hào)接收(Rcv ),信號(hào)發(fā)送(Snd),實(shí)時(shí)調(diào)度(schedule)顯示端口等,調(diào)度器與監(jiān)視器的輸出用于顯示仿真過程中公共資源(CPU、監(jiān)控器、網(wǎng)絡(luò))的分配,此外,它還有一個(gè)外部中斷通道(Interrupts )可以處理外部中斷。任務(wù)和中斷處理器的執(zhí)行需要通過用戶自定義函數(shù)來實(shí)現(xiàn)。調(diào)度策略使用一個(gè)優(yōu)先權(quán)函數(shù)來決定任務(wù)的屬

4、性。1/27圖 1 Truetime 工具箱網(wǎng)絡(luò)模塊是事件驅(qū)動(dòng)的,當(dāng)有消息進(jìn)入或離開網(wǎng)絡(luò)時(shí)它便執(zhí)行。一條消息包含的信息有發(fā)送和接收節(jié)點(diǎn)號(hào),用戶數(shù)據(jù)(如測(cè)量信號(hào)和控制信號(hào)),消息的長(zhǎng)度和其他可選的實(shí)時(shí)屬性(如優(yōu)先級(jí)或最終時(shí)限等)。網(wǎng)絡(luò)模塊包含兩個(gè)信號(hào)端口(信號(hào)接收(Rcv),信號(hào)發(fā)送(Snd),以及一個(gè)實(shí)時(shí)調(diào)度(schedule)顯示端口。其中收發(fā)信號(hào)端口可以通過Matlab 模塊擴(kuò)充至多個(gè)接口,TrueTime 中預(yù)定義了多種調(diào)度策略,包括固定優(yōu)先級(jí)(Fixed Priority ),單調(diào)速率( RM , Rate Monotonic ),截止期單調(diào)( DM , Dead line Monot

5、onic ),最小截止期優(yōu) 先 ( EDF , Earliest Dead line First ), 同 時(shí) , 它 還 有 多 種 介 質(zhì) 訪 問 控 制 協(xié) 議(CSMA/CD,CSMA/CA,Round Robin,FDMA或 TDMA )和相應(yīng)的參數(shù)可以選擇,如圖2 所示。圖 2 Truetime 網(wǎng)絡(luò)模塊Network number :網(wǎng)絡(luò)模塊的數(shù)量。Number of nodes :連接在網(wǎng)絡(luò)模塊的節(jié)點(diǎn)數(shù)量。Data rate (bits /s): 網(wǎng)絡(luò)傳輸速率。Minimum frame size(bits ) :協(xié)議的最小結(jié)構(gòu)長(zhǎng)度。Pre-processing delay (

6、 s) :信息在網(wǎng)絡(luò)接口上的發(fā)送時(shí)延。Post-processing delay (s):信息在網(wǎng)絡(luò)接口上的接收時(shí)延。Loss probability (01) :丟包率。利用 TrueTime 仿真軟件,網(wǎng)絡(luò)控制系統(tǒng)中的各個(gè)處理單元(包括傳感器、控制器和執(zhí)行器)都可以由計(jì)算機(jī)模塊構(gòu)建, 而網(wǎng)絡(luò)控制系統(tǒng)的實(shí)時(shí)網(wǎng)絡(luò)可以由所需協(xié)議的網(wǎng)絡(luò)模塊來構(gòu)建,另外,再結(jié)合 Matlab/Simulink 的其他控制模塊,就可以簡(jiǎn)便而又快速的構(gòu)建一個(gè)實(shí)2/27時(shí)的網(wǎng)絡(luò)控制系統(tǒng)。利用 TrueTime 仿真軟件包的優(yōu)點(diǎn)在于:( 1)由于該仿真軟件中兩個(gè)基本模塊具有通用性,在構(gòu)建各個(gè)處理單元時(shí)只需選用其相應(yīng)的接口功

7、能進(jìn)行連接即可,因此大大加快模型構(gòu)建的速度。( 2)該仿真軟件可以比較方便模擬各種實(shí)時(shí)調(diào)度策略,并通過 Scope 可以很方便地觀察各個(gè)任務(wù)的調(diào)度情況和對(duì)象的輸出情況。( 3)在網(wǎng)絡(luò)模塊中,可以很方便的模擬數(shù)據(jù)傳輸率、數(shù)據(jù)包的大小和丟包率等網(wǎng)絡(luò)參數(shù),有利于分析各類參數(shù)對(duì)網(wǎng)絡(luò)控制系統(tǒng)的性能影響。使用 TrueTime 進(jìn)行仿真時(shí), 首先要對(duì)網(wǎng)絡(luò)控制系統(tǒng)中的內(nèi)核模塊TrueTime Kernel 和網(wǎng)絡(luò)模塊 TrueTime Network 以及各個(gè)節(jié)點(diǎn)進(jìn)行初始化,在初始化中需要完成以下工作:1. 初始化功能塊內(nèi)核,設(shè)置功能塊輸入、輸出端口的數(shù)目和調(diào)度策略。2. 定義消息函數(shù),并根據(jù)節(jié)點(diǎn)采用的驅(qū)動(dòng)

8、方式,設(shè)置不同的消息調(diào)度策略。對(duì)于時(shí)鐘驅(qū)動(dòng)的節(jié)點(diǎn),調(diào)用 ttCreatPeriodicTask 函數(shù),設(shè)置周期性的任務(wù)調(diào)度策略,以實(shí)現(xiàn)3.定時(shí)采樣功能。對(duì)于事件驅(qū)動(dòng)的節(jié)點(diǎn),調(diào)用ttCreateInterruptHandler函數(shù),設(shè)置中斷式消息調(diào)度策略,使節(jié)點(diǎn)在接受到網(wǎng)絡(luò)數(shù)據(jù)后觸發(fā)相應(yīng)的消息。初始化網(wǎng)絡(luò)端口,設(shè)置節(jié)點(diǎn)對(duì)應(yīng)的網(wǎng)絡(luò)端口代號(hào)??刂凭W(wǎng)絡(luò)功能由TrueTimeNetwork功能塊實(shí)現(xiàn)。網(wǎng)絡(luò)類型、節(jié)點(diǎn)數(shù)、傳輸速率以及丟包率等參數(shù)可以通過TrueTime Network 功能塊的設(shè)置窗口進(jìn)行設(shè)置。具體的參數(shù)選項(xiàng)根據(jù)網(wǎng)絡(luò)類型的不同而不同。表1偽碼舉例偽碼名稱功能ttAnalogIn從輸入通道取

9、值ttAnalogOut設(shè)定輸出通道值ttSendMsg在網(wǎng)絡(luò)上發(fā)送信息ttGetMsg從網(wǎng)絡(luò)輸入隊(duì)列中獲取信息ttWait等一個(gè)事件ttCreateTimer在指定時(shí)間觸發(fā)中斷句柄ttSetpriority改變?nèi)蝿?wù)優(yōu)先級(jí)ttCurrentTime獲取當(dāng)前系統(tǒng)時(shí)間表 2 TrueTime 核心模塊接口功能接口功能A/D把從外界接收的模擬信息轉(zhuǎn)換成數(shù)字信息Interrupts為該模塊提供中斷句柄Rcv接收數(shù)字信息D/A把模擬信息轉(zhuǎn)換成數(shù)字信息輸出Snd發(fā)送數(shù)字信息Schedule和“ Monitors ”查看仿真過程中系統(tǒng)資源的分配情況Monitors和“ Schedule”查看仿真過程中系統(tǒng)資

10、源的分配情況P 如果需要,可以接通電池( TrueTime 提供電池模塊)TrueTime Network 模塊提供了3 個(gè)接口來進(jìn)行數(shù)據(jù)的傳遞或者監(jiān)控系統(tǒng)的運(yùn)行,其功能如表 3 所示。接口Snd接收由表 3 TrueTime 網(wǎng)絡(luò)模塊接口功能功能TrueTime Kernel 模塊的 Snd 端口發(fā)送的數(shù)字信息3/27Rcv發(fā)送數(shù)字信息至TrueTime Kernel 模塊的 Rcv 端口Schedule查看仿真過程中系統(tǒng)資源的分配情況上述 2 個(gè)模塊均為事件驅(qū)動(dòng),包括內(nèi)部事件和外部事件。內(nèi)部事件通常是由時(shí)鐘中斷觸發(fā)的,如時(shí)間隊(duì)列釋放一個(gè)任務(wù)或是計(jì)時(shí)終結(jié)都會(huì)引發(fā)時(shí)鐘中斷。 而外部事件主要是和

11、網(wǎng)絡(luò)模塊的外部中斷通道有關(guān),當(dāng)相應(yīng)的通道的信號(hào)值改變就會(huì)觸發(fā)中斷。除了計(jì)算機(jī)模塊的A/D 轉(zhuǎn)換借口的輸入信號(hào)是連續(xù)時(shí)間信號(hào)外,這兩個(gè)模塊所有端口的輸入都是離散時(shí)間信號(hào),輸出也都是離散時(shí)間信號(hào)。3. 仿真舉例根據(jù)節(jié)點(diǎn)不同的工作方式,可以得到不同的系統(tǒng)離散時(shí)間模型。為了對(duì)網(wǎng)絡(luò)控制系統(tǒng)進(jìn)行建模,首先對(duì)系統(tǒng)作如下假設(shè):1. 傳感器節(jié)點(diǎn)采用時(shí)間驅(qū)動(dòng)方式, 對(duì)被控對(duì)象的輸出進(jìn)行等周期采樣, 采樣周期為 h;2. 控制器節(jié)點(diǎn)和執(zhí)行器節(jié)點(diǎn)都采用事件驅(qū)動(dòng)方式, 即信息的到達(dá)時(shí)間即為響應(yīng)節(jié)點(diǎn)的動(dòng)作時(shí)間??刂葡到y(tǒng)將傳感器、控制器和執(zhí)行器作為系統(tǒng)的3 個(gè)節(jié)點(diǎn)分別用一個(gè)TrueTimeKernel模塊仿真, 傳感器節(jié)點(diǎn)

12、采用時(shí)間驅(qū)動(dòng)方式,它包含了一個(gè)周期性任務(wù),將定期采樣的信號(hào)通過網(wǎng)絡(luò)傳送到控制器節(jié)點(diǎn);控制器和執(zhí)行器節(jié)點(diǎn)采用事件驅(qū)動(dòng)方式,控制節(jié)點(diǎn)處理控制信號(hào)并將結(jié)果送至執(zhí)行器節(jié)點(diǎn),執(zhí)行器節(jié)點(diǎn)執(zhí)行控制信號(hào)并輸出結(jié)果。該網(wǎng)絡(luò)控制系統(tǒng)的仿真模型如圖3 所示。4/27圖 3 網(wǎng)絡(luò)控制系統(tǒng)仿真模型5/27圖 4 參數(shù)設(shè)置界面圖 5 以太網(wǎng)下的系統(tǒng)輸出圖 6 令牌網(wǎng)下的系統(tǒng)輸出圖 7 設(shè)備網(wǎng)下的系統(tǒng)輸出網(wǎng)絡(luò)傳輸過程中的數(shù)據(jù)丟失是影響網(wǎng)絡(luò)控制系統(tǒng)性能的另外一個(gè)重要的因素,通過設(shè)定不同的丟包率來研究其對(duì)系統(tǒng)性能的影響。6/27圖 8 參數(shù)設(shè)置界面無丟包:圖 9 系統(tǒng)的輸入和輸出丟包率 0.1:7/27圖 10 系統(tǒng)的輸入和輸

13、出丟包率 0.15:圖 11 系統(tǒng)的輸入和輸出丟包率 0.2:圖 12 系統(tǒng)的輸入和輸出丟包率越大, 對(duì)系統(tǒng)性能的影響越大,當(dāng)丟包率達(dá)到一定程度時(shí),就會(huì)使系統(tǒng)不再穩(wěn)定。( 1)在令牌網(wǎng)下,傳輸速率為1.5M :8/27圖 13 系統(tǒng)響應(yīng)曲線(無沖突、干擾和數(shù)據(jù)丟失)網(wǎng)絡(luò)干擾節(jié)點(diǎn)占網(wǎng)絡(luò)資源的20%情況下,調(diào)度策略為固定優(yōu)先級(jí)(Fixed Priority ),系統(tǒng)的輸出和網(wǎng)絡(luò)資源調(diào)度情況:圖 14 系統(tǒng)響應(yīng)曲線( 2)在令牌網(wǎng)下,傳輸速率為93.75Kbit/s ,調(diào)度策略為固定優(yōu)先級(jí)(Fixed Priority ):圖 15 系統(tǒng)響應(yīng)曲線9/27圖 16 網(wǎng)絡(luò)資源調(diào)度網(wǎng)絡(luò)干擾節(jié)點(diǎn)占網(wǎng)絡(luò)資源的

14、 20%情況下,系統(tǒng)的輸出和網(wǎng)絡(luò)資源調(diào)度情況,調(diào)度策略為固定優(yōu)先級(jí)( Fixed Priority ):圖 14 系統(tǒng)響應(yīng)曲線圖 15 網(wǎng)絡(luò)資源調(diào)度( 3)在令牌網(wǎng)下,傳輸速率為93.75Kbit/s ,網(wǎng)絡(luò)干擾節(jié)點(diǎn)占網(wǎng)絡(luò)資源的20%、丟包率為 10%情況下,調(diào)度策略為固定優(yōu)先級(jí)(Fixed Priority ),系統(tǒng)的輸出和網(wǎng)絡(luò)資源調(diào)度情況:10/27圖 16 系統(tǒng)響應(yīng)曲線圖 18 網(wǎng)絡(luò)資源調(diào)度在令牌網(wǎng)下, 傳輸速率為93.75Kbit/s ,網(wǎng)絡(luò)干擾節(jié)點(diǎn)占網(wǎng)絡(luò)資源的20%、丟包率為10%情況下,系統(tǒng)的輸出和網(wǎng)絡(luò)資源調(diào)度情況,調(diào)度策略為PrioRM (單調(diào)速率):圖 19 系統(tǒng)響應(yīng)曲線11/

15、27圖 20 網(wǎng)絡(luò)資源調(diào)度在令牌網(wǎng)下, 傳輸速率為93.75Kbit/s ,網(wǎng)絡(luò)干擾節(jié)點(diǎn)占網(wǎng)絡(luò)資源的20%、丟包率為10%情況下,系統(tǒng)的輸出和網(wǎng)絡(luò)資源調(diào)度情況,調(diào)度策略為PrioEDF :圖 20 系統(tǒng)響應(yīng)曲線圖 21 網(wǎng)絡(luò)資源調(diào)度在令牌網(wǎng)下, 傳輸速率為93.75Kbit/s ,網(wǎng)絡(luò)干擾節(jié)點(diǎn)占網(wǎng)絡(luò)資源的20%、丟包率為10%情況下,系統(tǒng)的輸出和網(wǎng)絡(luò)資源調(diào)度情況,調(diào)度策略為PrioDM :12/27圖 20 系統(tǒng)響應(yīng)曲線圖 21 網(wǎng)絡(luò)資源調(diào)度在網(wǎng)絡(luò)控制系統(tǒng)中, 不同的網(wǎng)絡(luò)傳輸協(xié)議,傳輸速率、干擾率、數(shù)據(jù)包的丟失率以及數(shù)據(jù)包的大小都會(huì)影響到網(wǎng)絡(luò)控制性能, 對(duì)于多任務(wù)的控制系統(tǒng)調(diào)度策略對(duì)控制性能也

16、有很大的影響。調(diào)度策略對(duì)控制系統(tǒng)性能的影響。網(wǎng)絡(luò)的調(diào)度問題:網(wǎng)絡(luò)控制系統(tǒng)是基于網(wǎng)絡(luò)的分布式控制系統(tǒng)。網(wǎng)絡(luò)控制系統(tǒng)中的所有控制信息都要通過實(shí)時(shí)網(wǎng)絡(luò)傳輸, 由于網(wǎng)絡(luò)帶寬的限制,網(wǎng)絡(luò)中傳送的信息不可避免產(chǎn)生碰撞、丟失和重發(fā)等現(xiàn)象, 因此必須對(duì)網(wǎng)絡(luò)中傳輸信息進(jìn)行合理調(diào)度,否則控制信息產(chǎn)生的較大時(shí)延,會(huì)降低控制系統(tǒng)的控制性能, 嚴(yán)重時(shí)將導(dǎo)致系統(tǒng)破壞, 因此在網(wǎng)絡(luò)控制系統(tǒng)的設(shè)計(jì)與研究中必須考慮網(wǎng)絡(luò)的調(diào)度問題。從仿真結(jié)果可見,網(wǎng)絡(luò)控制系統(tǒng)不僅依賴于傳統(tǒng)控制算法的設(shè)計(jì),而且依賴于網(wǎng)絡(luò)資源的調(diào)度與優(yōu)化, 由于調(diào)度的影響, 使得控制系統(tǒng)傳感器的采樣周期產(chǎn)生變化,不是一個(gè)定值,同時(shí)從傳感器檢測(cè)到執(zhí)行器之間時(shí)間也產(chǎn)生

17、了變化,從而使得系統(tǒng)產(chǎn)生波動(dòng),導(dǎo)致性能降低。13/27不同的調(diào)度策略將決定網(wǎng)絡(luò)與計(jì)算機(jī)的不同執(zhí)行與傳輸方式以及不同的控制性能。仿真表明,網(wǎng)絡(luò)控制系統(tǒng)那個(gè)的性能不僅與常規(guī)的控制系統(tǒng)的控制方法有關(guān), 而且與網(wǎng)絡(luò)的調(diào)度有關(guān),所以必須對(duì)網(wǎng)絡(luò)控制系統(tǒng)的控制方法與調(diào)度進(jìn)行集成研究。從圖中可以看出,當(dāng)無沖突任務(wù)、干擾節(jié)點(diǎn)和數(shù)據(jù)丟失時(shí),信號(hào)的傳輸延時(shí)是常數(shù),系統(tǒng)性能較好。 當(dāng)加入沖突任務(wù)、 干擾節(jié)點(diǎn)時(shí), 引起了信息在控制節(jié)點(diǎn)內(nèi)和網(wǎng)絡(luò)中對(duì)資源的爭(zhēng)奪,競(jìng)爭(zhēng)使某些低優(yōu)先級(jí)的任務(wù)處于等待狀態(tài)或閑置狀態(tài),這些任務(wù)不能得到及時(shí)處理, 導(dǎo)致系統(tǒng)延時(shí)變大 ,而且在多任務(wù)競(jìng)爭(zhēng)這個(gè)不確定特性下,時(shí)延是時(shí)變的, 從而使系統(tǒng)指標(biāo)惡化

18、。圖和圖分別為控制器調(diào)度圖和網(wǎng)絡(luò)調(diào)度圖,其中,信號(hào)高表示任務(wù)正在執(zhí)行,中表示任務(wù)在等待, 低表示任務(wù)閑置 。從圖可以看到各任務(wù)在控制器內(nèi)的執(zhí)行情況,從圖中可以看到各個(gè)節(jié)點(diǎn)信息在網(wǎng)絡(luò)中的傳輸情況。從圖中可以看到當(dāng)未加沖突任務(wù)和干擾節(jié)點(diǎn)時(shí),傳感器周期性的采集信號(hào),并通過網(wǎng)絡(luò)把信號(hào)傳給控制器, 控制器接收傳感信號(hào),計(jì)算出控制信號(hào)并通過網(wǎng)絡(luò)傳給執(zhí)行器,執(zhí)行器接收控制信號(hào)并產(chǎn)生相應(yīng)的動(dòng)作。此時(shí)控制器中存在控制任務(wù)調(diào)度,網(wǎng)絡(luò)中存在控制器節(jié)點(diǎn)和傳感器節(jié)點(diǎn)調(diào)度。當(dāng)控制器節(jié)點(diǎn)內(nèi)部存在沖突任務(wù),而網(wǎng)絡(luò)中存在干擾節(jié)點(diǎn)時(shí),控制器內(nèi)存在控制任務(wù)和沖突任務(wù)的調(diào)度, 網(wǎng)絡(luò)中存在控制器節(jié)點(diǎn)、傳感器節(jié)點(diǎn)和干擾節(jié)點(diǎn)的調(diào)度。由于沖

19、突任務(wù)和干擾節(jié)點(diǎn)的存在,使得信息在控制器節(jié)點(diǎn)內(nèi)處理時(shí)以及在網(wǎng)絡(luò)中傳輸時(shí)存在沖突和資源爭(zhēng)奪。該例中規(guī)定干擾具有最高優(yōu)先級(jí),所以從圖和圖, 可以看到控制器內(nèi)部沖突任務(wù)的執(zhí)行機(jī)率大, 而網(wǎng)絡(luò)中干擾信息的傳輸機(jī)率大,導(dǎo)致了傳感器的采樣周期發(fā)生變化,不是一個(gè)定值,同時(shí)從傳感器檢測(cè)到執(zhí)行器之間時(shí)間也發(fā)生了變化,從而使得系統(tǒng)產(chǎn)生波動(dòng),性能降低,如圖所示。仿真系統(tǒng)可以通過Proprocessing delay(發(fā)送時(shí)延)與Postprocessing delay(接收時(shí)延)進(jìn)行傳輸時(shí)延的設(shè)定。由于時(shí)延增加,系統(tǒng)的穩(wěn)定性降低。圖所示給出了網(wǎng)絡(luò)傳輸時(shí)延為0.001 的系統(tǒng)變化曲線,由于存在傳輸時(shí)延,系統(tǒng)振蕩加強(qiáng),

20、性能降低,網(wǎng)絡(luò)控制系統(tǒng)的處理時(shí)延會(huì)對(duì)系統(tǒng)性能產(chǎn)生很大的影響。,這里采用調(diào)整控制器參數(shù)方法進(jìn)行補(bǔ)償調(diào)節(jié)。TrueTime 模塊配置與初始化1.TrueTime Network 模塊的配置TrueTime Network 模塊的配置需要通過塊任務(wù)對(duì)話完成。包括:指定網(wǎng)絡(luò)模式 ( Networktype)、網(wǎng)絡(luò)模塊的訪問地址(Networknumber)、連接到該模塊的網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)(Number 偶發(fā) nodes)、通信速率( Data rate( bit/s) 0、最小數(shù)據(jù)幀( Minimum frame size ( bytes)、網(wǎng)絡(luò)發(fā)送端時(shí)延( Pre-processing delay ( s

21、)、網(wǎng)絡(luò)接收端時(shí)延( Post-processing delay( s)和信息傳輸丟失率 ( Loss probability( 0-1)等??晒┻x擇的網(wǎng)絡(luò)模式有 CSMA/CD(如 Ethernet)、 CSMA 、AMP(如 CAN )、Round Robin(如 Token Bus)、FDMA ( Frequency Division Multiple Access)、 TDMA ( Time Division Multiple Access ,如 TTP )和 Switched Ethernet 。2. TrueTime Kernel 模塊的配置和初始化TrueTime Kernel

22、模塊的配置可以通過快任務(wù)對(duì)話完成??梢酝ㄟ^任務(wù)對(duì)話配置的參數(shù)14/27有:指定初始化腳本函數(shù)名稱( Name of init function ( MEX of MATLAB )、選擇初始化腳本變量( Init function argument )、內(nèi)核模塊是否依賴電池( Battery )、時(shí)間漂移( Clock drift )和時(shí)間偏移量 ( Clock offset )等。某些其它的參數(shù)也可以通過命令ttSetKernelParameter 進(jìn)行設(shè)置。TrueTime Kernel 模塊的初始化(Initialization )涉及:指定仿真中模塊的輸入輸出通道地址( number o

23、f Inputs and outputs ),定義調(diào)度策略( scheduling policy ),創(chuàng)建任務(wù)( tasks)、中斷柄( interrupt handlers )、事件( events)和監(jiān)視器( monitors)等。 TrueTime Kernel 模塊的初始化通過編寫初始化腳本代碼來實(shí)現(xiàn)。每個(gè) TrueTime Kernel 模塊必須進(jìn)行初始化。 (在Matlab 中,某些初始化參數(shù)也可以在圖形界面窗口中通過選擇參數(shù)實(shí)現(xiàn))。從網(wǎng)絡(luò)調(diào)度圖中可以看到,事件驅(qū)動(dòng)型的控制器,在傳感器數(shù)據(jù)到達(dá)時(shí)立即計(jì)算出控制信號(hào);事件驅(qū)動(dòng)型的控制器,從采樣時(shí)刻運(yùn)作。 從 Ethernet 網(wǎng)絡(luò)控制

24、系統(tǒng)的仿真結(jié)果來分析,事件驅(qū)動(dòng)型的網(wǎng)絡(luò)控制系統(tǒng)比時(shí)間驅(qū)動(dòng)型的網(wǎng)絡(luò)控制系統(tǒng),在階躍響應(yīng)下, 超調(diào)量小, 回復(fù)時(shí)間短,系統(tǒng)性能明顯優(yōu)越。TrueTime 初始化問題:初始化中計(jì)算機(jī)內(nèi)核與網(wǎng)絡(luò)是兩個(gè)基本的初始化內(nèi)容,分別采用了ttInitKernel ( nbrInp ,nbrOutp , prioFcn )與ttInitNetwork ( nodenumber, handlename)形式表示。ttInitKernel中nbrlnp 為輸入通道的數(shù)目,nbrOutp 為輸出通道的數(shù)目,prioFcn 為采用的調(diào)度策略,而ttInitNetwork中 nodenumber 為網(wǎng)絡(luò)中節(jié)點(diǎn)的地址,han

25、dlername 為被調(diào)用的中斷句柄名,如ttInitKernel ( 1,0, RM )表示采用了RM (單調(diào)速率)調(diào)度策略。如網(wǎng)絡(luò)中節(jié)點(diǎn)4 控制器初始化為ttInitNetwork ( 4, msgRcv)。TrueTime 工具箱實(shí)例代碼(distributed ):1. function actuator_init %執(zhí)行器初始化% Distributed control system: actuator node% Receives messages from the controller and actuates% the plant.% Initialize TrueTime k

26、ernelttInitKernel(0, 1, 'prioFP' ); % nbr Of Inputs, nbr Of Outputs, fixed priority ,初始化內(nèi)核,設(shè)置功能塊輸入、輸出端口的數(shù)目和調(diào)度策略% Create actuator task 創(chuàng)建任務(wù)deadline = 100;prio = 1;ttCreateTask( 'act_task', deadline, prio, 'actcode'); 任務(wù)名稱,最終期限(截止期),代碼名稱% Initialize networkttCreateInterruptHand

27、ler( 'nw_handler' , prio, 'msgRcvActuator' ); 對(duì)于事件驅(qū)動(dòng)的節(jié)點(diǎn),調(diào)用 ttCreateInterruptHandler 函數(shù),設(shè)置中斷式消息調(diào)度策略, 使節(jié)點(diǎn)在接受到網(wǎng)絡(luò)數(shù)據(jù)后觸發(fā)相應(yīng)的15/27消息。ttInitNetwork(2,'nw_handler' ); % node #2 in the network 初始化網(wǎng)絡(luò)接口,網(wǎng)絡(luò)數(shù)目, 當(dāng)事件到達(dá)時(shí),激發(fā)的端口名稱2. function exectime, data = actcode(seg, data) switch seg,case 1,

28、data.u = ttGetMsg; 從網(wǎng)絡(luò)輸入隊(duì)列中獲取信息exectime = 0.0005; 執(zhí)行時(shí)間case 2,ttAnalogOut(1, data.u)設(shè)定輸出通道值,通道號(hào),通道值exectime = -1; % finishedend3. function controller_init(arg) 控制器初始化% Distributed control system: controller node% Receives messages from the sensor node, computes control signal % and sends it to the ac

29、tuator node. Also contains a high-priority% disturbing task.% Initialize TrueTime kernelttInitKernel(1, 0, 'prioFP' ); % nbrOfInputs, nbrOfOutputs, fixed priority 初始化內(nèi)核, 設(shè)置功能塊輸入、輸出端口的數(shù)目和調(diào)度策略% Controller parameters控制器參數(shù)設(shè)置,h為采樣周期,N 為采樣次數(shù)h = 0.010;N = 100000;Td = 0.035;K = 1.5;% Create task dat

30、a (local memory)data.u = 0.0;data.K = K;data.ad = Td/(N*h+Td);data.bd = N*K*Td/(N*h+Td);data.Dold = 0.0;data.yold = 0.0;% Create controller task deadline = h;prio = 2;ttCreateTask( 'pid_task' , deadline, prio, 'ctrlcode' , data); 任務(wù)名稱,最終期限(截止期),代碼名稱% Optional disturbance task 隨機(jī)擾動(dòng)任務(wù)i

31、f arg > 0offset = 0.0002;period = 0.007;prio = 1;ttCreatePeriodicTask( 'dummy' , offset, period, prio, 'dummycode' ); 對(duì)于時(shí)鐘驅(qū)動(dòng)的節(jié)點(diǎn),調(diào)用 ttCreatPeriodicTask 函數(shù),設(shè)置周期性的任務(wù)調(diào)度策略,以實(shí)現(xiàn)定時(shí)采樣功能。16/27end% Initialize networkttCreateInterruptHandler( 'nw_handler' , prio, 'msgRcvCtrl'

32、); 對(duì)于事件驅(qū)動(dòng)的節(jié)點(diǎn),調(diào)用ttCreateInterruptHandler 函數(shù),設(shè)置中斷式消息調(diào)度策略,使節(jié)點(diǎn)在接受到網(wǎng)絡(luò)數(shù)據(jù)后觸發(fā)相應(yīng)的消息。ttInitNetwork(3, 'nw_handler' ); % node #3 in the network ,初始化網(wǎng)絡(luò)接口,網(wǎng)絡(luò)數(shù)目,當(dāng)事件到達(dá)時(shí),激發(fā)的端口名稱4. function exectime, data = ctrlcode(seg, data) switch seg,case 1,y = ttGetMsg;% Obtain sensor value ,從網(wǎng)絡(luò)輸入隊(duì)列中獲取信息r = ttAnalogIn(1

33、);% Read reference value ,從輸入通道取值P = data.K*(r-y);data.u = P + D;data.Dold = D;data.yold = y;exectime = 0.0005;case 2,ttSendMsg(2, data.u, 80);% Send 80 bits to node 2 (actuator) ,在網(wǎng)絡(luò)上發(fā)送信息,發(fā)送數(shù)據(jù)內(nèi)容的 80 個(gè)字節(jié)到執(zhí)行器節(jié)點(diǎn)2exectime = -1; % finishedend5. function exectime, data = dummycode(seg, data)虛擬節(jié)點(diǎn)功能switch

34、seg,case 1,exectime = 0.004;case 2,exectime = -1;end6. function exectime, data = interfcode(seg, data)干擾節(jié)點(diǎn)功能BWshare = 0.0; % Fraction of the network bandwidth occupied by this node 節(jié)點(diǎn)占用網(wǎng)絡(luò)帶寬 if (rand(1) < BWshare)ttSendMsg(1, 1, 80); % send 80 bits to myself ,發(fā)送 80個(gè)字節(jié)給自己 endexectime = -1;7. functi

35、on interference_init% Distributed control system: interference node離散控制系統(tǒng)的干擾節(jié)點(diǎn)% Generates disturbing network traffic. 產(chǎn)生網(wǎng)絡(luò)干擾通信量% Initialize TrueTime kernelttInitKernel(0, 0, 'prioFP' ); % nbrOfInputs, nbrOfOutputs, fixed priority ,初始化內(nèi)核,設(shè)置功能塊輸入、輸出端口的數(shù)目和調(diào)度策略% Create sender task 創(chuàng)建發(fā)送任務(wù)offset =

36、 0;17/27period = 0.001;prio = 1;ttCreatePeriodicTask( 'interf_task' , offset, period, prio,'interfcode' );% Initialize networkttCreateInterruptHandler( 'nw_handler' , prio, 'msgRcvInterf' ); 對(duì)于事件驅(qū)動(dòng)的節(jié)點(diǎn),調(diào)用ttCreateInterruptHandler 函數(shù),設(shè)置中斷式消息調(diào)度策略, 使節(jié)點(diǎn)在接受到網(wǎng)絡(luò)數(shù)據(jù)后觸發(fā)相應(yīng)的消息。ttIn

37、itNetwork(1,'nw_handler' ); % node #1 in the network ,初始化網(wǎng)絡(luò)節(jié)點(diǎn)18. function exectime, data = msgRcvActuator(seg, data)執(zhí)行器與網(wǎng)絡(luò)連接的信號(hào)端口功能ttCreateJob('act_task') 創(chuàng)建任務(wù),任務(wù)名稱,負(fù)責(zé)激發(fā)到達(dá)的任務(wù) exectime = -1;9. function exectime, data = msgRcvCtrl(seg, data) 控制器與網(wǎng)絡(luò)連接的信號(hào)端口功能 ttCreateJob('pid_task

38、9; )exectime = -1;10. function exectime, data = msgRcvInterf(seg, data)干擾節(jié)點(diǎn)與網(wǎng)絡(luò)連接的信號(hào)端口功能msg = ttGetMsg;exectime = -1;11. function exectime, data = msgRcvSensor(seg, data)傳感器節(jié)點(diǎn)與網(wǎng)絡(luò)連接的信號(hào)端口功能disp('ERROR: sensor received a message' );exectime = -1;12. function exectime, data = senscode(seg, data)

39、傳感器節(jié)點(diǎn)功能switch seg,case 1,data.y = ttAnalogIn(1);從輸入通道取值exectime = 0.00005;case 2,ttSendMsg(3, data.y, 80); % Send message (80 bits) to node 3 (controller) 發(fā)送 80個(gè)字節(jié)到節(jié)點(diǎn)3(控制器)exectime = 0.0004;case 3,exectime = -1; % finishedend13. function sensor_init 傳感器初始化% Distributed control system: sensor node% S

40、amples the plant periodically and sends the samples to the controller node.% Initialize TrueTime kernelttInitKernel(1, 0, 'prioFP' ); % nbrOfInputs, nbrOfOutputs, fixed priority ,初始化內(nèi)核,設(shè)置功能塊輸入、輸出端口的數(shù)目和調(diào)度策略% Create sensor task 建立傳感器任務(wù)data.y = 0;offset = 0;period = 0.010;prio = 1;ttCreatePerio

41、dicTask( 'sens_task', offset, period, prio,'senscode', data); 對(duì)于時(shí)鐘驅(qū)動(dòng)的節(jié)點(diǎn),調(diào)用18/27ttCreatPeriodicTask 函數(shù),設(shè)置周期性的任務(wù)調(diào)度策略,以實(shí)現(xiàn)定時(shí)采樣功能。% Initialize network初始化網(wǎng)絡(luò)ttCreateInterruptHandler( 'nw_handler' , prio, 'msgRcvSensor' ); 對(duì)于事件驅(qū)動(dòng)的節(jié)點(diǎn),調(diào)用ttCreateInterruptHandler 函數(shù),設(shè)置中斷式消息調(diào)度策略,使

42、節(jié)點(diǎn)在接受到網(wǎng)絡(luò)數(shù)據(jù)后觸發(fā)相應(yīng)的消息。ttInitNetwork(4,'nw_handler' ); % node #4 in the networkDistributed Control System:包含了四個(gè)計(jì)算機(jī)節(jié)點(diǎn),時(shí)鐘驅(qū)動(dòng)的傳感器節(jié)點(diǎn)周期性的對(duì)過程進(jìn)行采樣,并通過網(wǎng)絡(luò)傳遞給計(jì)算機(jī)節(jié)點(diǎn)??刂迫蝿?wù)在這個(gè)節(jié)點(diǎn)上運(yùn)算控制信號(hào),并發(fā)送運(yùn)算結(jié)果給執(zhí)行器,立即執(zhí)行。同時(shí),干擾節(jié)點(diǎn)發(fā)送通過網(wǎng)絡(luò)干擾信號(hào),作為高優(yōu)先級(jí)任務(wù)在計(jì)算機(jī)節(jié)點(diǎn)執(zhí)行。干擾節(jié)點(diǎn)占用網(wǎng)絡(luò)的設(shè)置通過interfcode.m 中的變量 BWshare,當(dāng)設(shè)置為零時(shí)表示沒有干擾,同時(shí),研究網(wǎng)絡(luò)調(diào)度 (高電平代表節(jié)點(diǎn)發(fā)送,中

43、電平表示節(jié)點(diǎn)等待,低電平表示節(jié)點(diǎn)空閑)。改變網(wǎng)絡(luò)調(diào)度策略進(jìn)行研究。ttSendMsg /ttGetMsg stand-alone network blocks:時(shí)間觸發(fā)和事件觸發(fā)兩個(gè)實(shí)例表明單機(jī)網(wǎng)絡(luò)模塊用來模擬網(wǎng)絡(luò)閉環(huán)控制系統(tǒng)。在時(shí)間觸發(fā)實(shí)例中,發(fā)送模塊被脈沖發(fā)生器(周期為0.1s )觸發(fā),脈沖發(fā)生器的第二個(gè)節(jié)點(diǎn)有0.05s 的相位延遲。比例控制器補(bǔ)償白噪聲的干擾。在事件觸發(fā)實(shí)例中,當(dāng)過程輸出幅值超過0.25 時(shí),發(fā)送模塊被觸發(fā)??刂破饕彩鞘录|發(fā)的,第二個(gè)發(fā)送模塊輪流延遲0.001s 被觸發(fā)。網(wǎng)絡(luò)利用率8 個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的仿真模型:默認(rèn)條件下的仿真結(jié)果及網(wǎng)絡(luò)調(diào)度:19/27在令牌網(wǎng)下,傳輸速率為

44、93.75Kbit/s ,系統(tǒng)的輸出和網(wǎng)絡(luò)資源調(diào)度情況,調(diào)度策略為PrioRM (單調(diào)速率),(相同條件下,增加網(wǎng)絡(luò)節(jié)點(diǎn)對(duì)控制系統(tǒng)性能的影響):20/271. 網(wǎng)絡(luò)時(shí)延的影響:可以直接在模型的基礎(chǔ)上增加Transport delay模塊,(控制器與執(zhí)行器間,傳感器與控制器間)。圖 30 時(shí)延仿真模型圖在令牌網(wǎng)下,傳輸速率為 1.5Mbit/s ,延遲時(shí)間為 0.01s ,仿真結(jié)果如下:21/27圖 31 仿真結(jié)果將傳輸速率改為: 93.75Kbit/s 時(shí),其余的參數(shù)同上,圖 33 仿真結(jié)果3 網(wǎng)絡(luò)控制系統(tǒng)調(diào)度算法研究3.1引言研究網(wǎng)絡(luò)控制系統(tǒng)調(diào)度算法的目的在于使網(wǎng)絡(luò)中信息的傳輸滿足一定的時(shí)延要求,其解決的本質(zhì)問題在于合理分配網(wǎng)絡(luò)資源, 使控制系統(tǒng)中由于網(wǎng)絡(luò)的引入所帶來的時(shí)延限制在可以保證控制系統(tǒng)穩(wěn)定性的范圍之內(nèi), 滿足網(wǎng)絡(luò)控制系統(tǒng)的性能, 網(wǎng)絡(luò)控制系統(tǒng)性能主要包括帶寬利用率、信息的可調(diào)度比率、信息的平均響應(yīng)時(shí)間和網(wǎng)絡(luò)吞吐量等。從網(wǎng)絡(luò)層次看, 網(wǎng)絡(luò)控制系統(tǒng)的調(diào)度方法可以分為兩類:網(wǎng)絡(luò)底層的調(diào)度和應(yīng)用層的調(diào)度。網(wǎng)絡(luò)底層調(diào)度的過程是數(shù)據(jù)鏈路層通過一個(gè)鏈路活動(dòng)調(diào)度器控制網(wǎng)絡(luò)中各個(gè)現(xiàn)場(chǎng)設(shè)備對(duì)完了過傳輸介質(zhì)的訪問,通常是網(wǎng)絡(luò)接口設(shè)備按照特定的協(xié)議規(guī)范來決定數(shù)據(jù)包的發(fā)送順序。網(wǎng)絡(luò)底層調(diào)度是通過制定特定的網(wǎng)絡(luò)協(xié)議來實(shí)現(xiàn)某些調(diào)度算法的,因而調(diào)度缺乏靈活性,只能適應(yīng)少數(shù)算法。 應(yīng)用層的調(diào)度還

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論