1.TrueTime工具箱
(1)TrueTime工具箱簡(jiǎn)介
TrueTime工具箱是基于MATLAB/Simulink的仿真工具箱,是瑞典Lund學(xué)院在2002年開(kāi)發(fā)的,可以實(shí)現(xiàn)控制系統(tǒng)和實(shí)時(shí)調(diào)度的仿真。
作為一款專(zhuān)業(yè)的科學(xué)計(jì)算軟件,MATLAB在各個(gè)領(lǐng)域都有著廣泛的應(yīng)用。MATLAB將人所不能達(dá)到的數(shù)據(jù)處理和計(jì)算能力和可視化編程加載在一起,并且其擁有大量的由各個(gè)領(lǐng)域的專(zhuān)家學(xué)者所編寫(xiě)的函數(shù),這些函數(shù)的調(diào)用可以輕易地解決一些問(wèn)題,為人們處理問(wèn)題帶來(lái)難以想象的便利。
在MATLAB被正式研究并投入使用之前,各國(guó)的專(zhuān)家學(xué)者或從業(yè)者基本都是使用FORTRAN和C語(yǔ)言所編程的軟件等來(lái)進(jìn)行相關(guān)領(lǐng)域的編程研究。但此類(lèi)軟件由于兼容性不強(qiáng)、在性能上也有所欠缺,同時(shí)并沒(méi)有如同MATLAB那般完善且專(zhuān)業(yè)的內(nèi)置函數(shù)和標(biāo)準(zhǔn)庫(kù),故而,一直難以在市場(chǎng)和相關(guān)領(lǐng)域占主導(dǎo)地位。但隨著MATLAB的出現(xiàn),各國(guó)的專(zhuān)家學(xué)者得到了進(jìn)行相關(guān)研究的有力工具,同時(shí)原先在控制領(lǐng)域中使用的庫(kù)類(lèi)則被淘汰或選擇在MATLAB上重建。時(shí)至今日,經(jīng)過(guò)Math Works公司對(duì)MATALAB不斷地改進(jìn)和補(bǔ)充以及各國(guó)專(zhuān)家學(xué)者為其提供的改進(jìn)建議,MATLAB已經(jīng)能夠適用于多領(lǐng)域,并在這些領(lǐng)域都占有舉足輕重的位置。
TrueTime的功能可以說(shuō)是十分完備。它不僅可以作為探索網(wǎng)絡(luò)上的大多數(shù)問(wèn)題對(duì)系統(tǒng)有何影響的一種工具,還能夠?yàn)?a href="http://wenjunhu.com/v/tag/2562/" target="_blank">算法的設(shè)計(jì)提供很大的幫助,除了這些,它還有很多的優(yōu)點(diǎn)。網(wǎng)絡(luò)控制系統(tǒng)涉及控制、實(shí)時(shí)調(diào)度、網(wǎng)絡(luò)通信等內(nèi)容,為系統(tǒng)的分析與設(shè)計(jì)制造了不少的阻礙,而TrueTime工具箱為網(wǎng)絡(luò)控制系統(tǒng)的仿真研究提供了清晰有效的策略,是一個(gè)理想的網(wǎng)絡(luò)控制系統(tǒng)仿真平臺(tái)。
(2)工具箱模塊介紹
TrueTime仿真工具箱包括實(shí)時(shí)內(nèi)核模塊(TrueTime Kernel)、網(wǎng)絡(luò)模塊(TrueTime Network)、無(wú)線網(wǎng)絡(luò)模塊(TrueTime Wireless Network)、電池模塊(TrueTime Battery)、發(fā)送信息模塊(TrueTime Send)和接收信息模塊(TrueTime Receive)六種Simulink接口類(lèi)型模塊。本文中詳細(xì)介紹實(shí)時(shí)內(nèi)核模塊(TrueTime Kernel)和網(wǎng)絡(luò)模塊(TrueTime Network)的作用、接口及相應(yīng)的功能。
圖1 TrueTime仿真工具箱
① 實(shí)時(shí)內(nèi)核模塊(TrueTime Kernel)
該模塊具有及時(shí)性和快速性,里面包含A/D接口、D/A接口、網(wǎng)絡(luò)接口和外部通道,調(diào)度器(Schedule)和監(jiān)視器(Monitors)的輸出可以用來(lái)顯示CPU、Monitors和網(wǎng)絡(luò)的分配情況。該模塊是根據(jù)使用者的需求來(lái)工作的,使用者派給它一個(gè)任務(wù),遇到中斷,它便去執(zhí)行。任務(wù)的執(zhí)行與中斷句柄通過(guò)MATLAB語(yǔ)言或C++語(yǔ)言編寫(xiě)的代碼實(shí)現(xiàn)。
圖2 TrueTime Kernel模塊內(nèi)部結(jié)構(gòu)
表1 TrueTime Kernel模塊接口及功能
接口
功能
A/D
將模擬信息變更為數(shù)字信息
Triggers
提供中斷句柄
Rcv
接收數(shù)字信息
D/A
將數(shù)字信息變更為模擬信息
Snd
發(fā)送數(shù)字信息
Schedule
查看系統(tǒng)資源的分配情況
Power
若需要,可接通電池(TrueTime提供電池模塊)
②網(wǎng)絡(luò)模塊(TrueTime Network)
TrueTime Network向NCS供應(yīng)了通信資源,包含了各種網(wǎng)絡(luò)參數(shù),如Network number、Number of nodes、Data rate(bits/s)、Minimum frame size(bytes)、Preprocessing delay(s)、Postprocessing delay(s)、Loss probability(0~1)等。TrueTime工具箱中預(yù)定義了多種調(diào)度策略,比如固定優(yōu)先級(jí)(FP,F(xiàn)ixed Priority),單調(diào)速率(RM,Rate Monotonic),截止期單調(diào)(DM,Deadline Monotonic),最小截止期優(yōu)先(EDF,Earliest Deadline First)等。
圖3 TrueTime Network模塊
表2 網(wǎng)絡(luò)模塊接口及功能
接口
功能
Snd
接收TrueTime Kernel模塊Snd端口發(fā)送的數(shù)字信息
Rcv
發(fā)送數(shù)字信息至TrueTime Kernel模塊的Rcv端口
Schedule
觀察仿真中系統(tǒng)資源的占據(jù)情況
③無(wú)線網(wǎng)絡(luò)模塊(TrueTime Wireless Network)如圖4所示。
圖4 TrueTime Wireless Network模塊
④電池模塊,如圖5所示。
圖5 TrueTime Battery模塊
(3)TrueTime命令介紹
TrueTime工具箱中的各個(gè)模塊都需要編寫(xiě)代碼來(lái)實(shí)現(xiàn)。常用的命令如表3所示。
命令
描述
ttInitKernel
初始化TrueTime Kernel模塊
ttAnalogIn
從輸入通道取值
ttAnalogOut
設(shè)定輸出通道的值
ttSendMsg
在網(wǎng)絡(luò)上發(fā)送信息
ttGetMsg
在網(wǎng)絡(luò)接收信息
ttWait
等一個(gè)事件
ttCreateTimer
在指定事件觸發(fā)中斷句柄
ttSetPriority
改變?nèi)蝿?wù)優(yōu)先級(jí)
ttCreatePeriodecTask
創(chuàng)建周期性任務(wù)
ttInitNetwork
初始化網(wǎng)絡(luò)模塊
ttCreateInterruptHandler
創(chuàng)建中斷柄
ttCreateExternalTrigger
創(chuàng)建外部觸發(fā)
ttCreateMonitor
創(chuàng)建一個(gè)監(jiān)視器
ttCreateEvent
創(chuàng)建一個(gè)事件
ttSetDeadline
設(shè)置截止期
ttCallBlockSystem
調(diào)用Simulink模塊
ttSetPeriod
設(shè)置周期時(shí)間
ttSetBudget
設(shè)置任務(wù)的執(zhí)行時(shí)間預(yù)算
ttSetWCET
設(shè)置任務(wù)的最壞執(zhí)行時(shí)間
ttGetRelease
獲得釋放時(shí)間
ttGetDeadline
獲得截止期
ttGetAbsDeadline
設(shè)置一個(gè)任務(wù)作業(yè)的絕對(duì)截止期
ttGetPeriod
獲得周期時(shí)間
ttGetPriority
獲得優(yōu)先級(jí)
ttGetBudget
獲得任務(wù)的執(zhí)行時(shí)間預(yù)算
ttGetWCET
獲得任務(wù)的最壞執(zhí)行時(shí)間
ttRemoveTimer
在指定事件去掉中斷句柄
ttCurrentTime
設(shè)置或獲得仿真中每個(gè)節(jié)點(diǎn)的當(dāng)前時(shí)間
ttLogNow
記錄當(dāng)前時(shí)間
ttLogStart
開(kāi)始時(shí)間測(cè)量并記錄
ttLogStop
停止時(shí)間測(cè)量并記錄
ttTryFetch
從郵箱獲取信息
ttTryPost
將信息發(fā)送至郵箱
ttSleepUntil
把任務(wù)放到一個(gè)特定的時(shí)間點(diǎn)
ttSleep
某個(gè)時(shí)間點(diǎn)停止任務(wù)
ttSetNetworkParameter
設(shè)置網(wǎng)絡(luò)參數(shù)
ttSetKernelParameter
設(shè)置內(nèi)核參數(shù)
PID控制(proportional integral derivative,PID)是指控制器的輸出分別與輸入偏差的大小、偏差的積分和偏差的變化率成比例。理想PID的增量式數(shù)學(xué)表達(dá)式為
式中,為控制器輸出的增量值;為被控參數(shù)與給定值之差。
將上改為傳遞函數(shù)的形式,則為
其中,表示控制器的比例增益,表示積分時(shí)間,表示微分時(shí)間。通過(guò)改變這三個(gè)參數(shù)的大小,從而改變調(diào)節(jié)作用的大小及規(guī)律。
3. 網(wǎng)絡(luò)環(huán)境下的系統(tǒng)仿真
(1)基于TrueTime的倒立擺PID仿真模型
通過(guò)網(wǎng)絡(luò)形成閉環(huán)的一種全分布式實(shí)時(shí)反饋控制系統(tǒng)稱(chēng)為網(wǎng)絡(luò)控制系統(tǒng)。網(wǎng)絡(luò)閉環(huán)控制系統(tǒng)框圖如圖6所示。
圖6 具有延遲的網(wǎng)絡(luò)閉環(huán)控制系統(tǒng)框圖
本文用TrueTime創(chuàng)建網(wǎng)絡(luò)平臺(tái),以直線一級(jí)倒立擺作為被控對(duì)象,采用經(jīng)典PID的控制方法,利用TrueTime2.0工具箱及Simulink中的相關(guān)模塊搭建出網(wǎng)絡(luò)化直線一級(jí)倒立擺PID控制的仿真模型。系統(tǒng)的仿真模型如圖7所示。
圖7 基于TrueTime的倒立擺PID控制仿真模型
其中,狀態(tài)空間模塊的參數(shù)是利用上節(jié)中的計(jì)算結(jié)果,參數(shù)設(shè)置如圖8所示。
圖8 狀態(tài)空間模塊的參數(shù)設(shè)置
(2)各節(jié)點(diǎn)介紹及參數(shù)設(shè)置
上述仿真模型中包括1個(gè)網(wǎng)絡(luò)模塊(TrueTime Network),4個(gè)實(shí)時(shí)內(nèi)核模塊(TrueTime Kernel)。4個(gè)計(jì)算機(jī)部分分別是控制器、傳感器、執(zhí)行器和干擾。
①控制器節(jié)點(diǎn)
控制器部分用于接收TrueTime Network的消息,其處理后再傳遞給TrueTime Network,另外,需要給它輸入一個(gè)階躍信號(hào)作為系統(tǒng)的參考信號(hào)。控制器節(jié)點(diǎn)以及參數(shù)設(shè)置分別如圖9和圖10所示。
圖9 控制器節(jié)點(diǎn)圖
圖10 控制器參數(shù)設(shè)置界面
PID控制器采用以下算法:
其中,,。傳感器采樣周期h=0.01 ,微分增益N=10000,比例系數(shù)K=3.75,積分系數(shù)=9.6,微分系數(shù)=1.25。
②傳感器節(jié)點(diǎn)
傳感器節(jié)點(diǎn)以及參數(shù)設(shè)置分別如圖11和圖12所示。
圖11 傳感器節(jié)點(diǎn)圖
圖12 傳感器參數(shù)設(shè)置界面
③執(zhí)行器節(jié)點(diǎn)
執(zhí)行器節(jié)點(diǎn)以及參數(shù)設(shè)置分別如圖13和圖14所示。
圖13 執(zhí)行器節(jié)點(diǎn)圖
圖14 執(zhí)行器參數(shù)設(shè)置界面
④干擾節(jié)點(diǎn)以及參數(shù)設(shè)置分別如圖15和16所示。
圖15 干擾節(jié)點(diǎn)圖
圖16 干擾參數(shù)設(shè)置界面
⑤ 網(wǎng)絡(luò)模塊(TrueTime Network),其內(nèi)部結(jié)構(gòu)如圖17所示。
圖17 網(wǎng)絡(luò)模塊內(nèi)部結(jié)構(gòu)
網(wǎng)絡(luò)模塊(TrueTime Network)的參數(shù)設(shè)置如圖18所示。其中,Data rate(bits/s)表示網(wǎng)絡(luò)傳輸速率,Minimum frame size(bits)表示最小數(shù)據(jù)幀(字節(jié)),Loss probability(0-1)表示網(wǎng)絡(luò)信息在傳輸中的丟失率。
圖18 網(wǎng)絡(luò)模塊參數(shù)設(shè)置界面
用MATLAB語(yǔ)言實(shí)現(xiàn)各節(jié)點(diǎn)及網(wǎng)絡(luò)模塊的初始化和任務(wù)代碼見(jiàn)下節(jié)。
評(píng)論
查看更多