1.TrueTime工具箱
(1)TrueTime工具箱簡介
TrueTime工具箱是基于MATLAB/Simulink的仿真工具箱,是瑞典Lund學(xué)院在2002年開發(fā)的,可以實(shí)現(xiàn)控制系統(tǒng)和實(shí)時調(diào)度的仿真。
作為一款專業(yè)的科學(xué)計算軟件,MATLAB在各個領(lǐng)域都有著廣泛的應(yīng)用。MATLAB將人所不能達(dá)到的數(shù)據(jù)處理和計算能力和可視化編程加載在一起,并且其擁有大量的由各個領(lǐng)域的專家學(xué)者所編寫的函數(shù),這些函數(shù)的調(diào)用可以輕易地解決一些問題,為人們處理問題帶來難以想象的便利。
在MATLAB被正式研究并投入使用之前,各國的專家學(xué)者或從業(yè)者基本都是使用FORTRAN和C語言所編程的軟件等來進(jìn)行相關(guān)領(lǐng)域的編程研究。但此類軟件由于兼容性不強(qiáng)、在性能上也有所欠缺,同時并沒有如同MATLAB那般完善且專業(yè)的內(nèi)置函數(shù)和標(biāo)準(zhǔn)庫,故而,一直難以在市場和相關(guān)領(lǐng)域占主導(dǎo)地位。但隨著MATLAB的出現(xiàn),各國的專家學(xué)者得到了進(jìn)行相關(guān)研究的有力工具,同時原先在控制領(lǐng)域中使用的庫類則被淘汰或選擇在MATLAB上重建。時至今日,經(jīng)過Math Works公司對MATALAB不斷地改進(jìn)和補(bǔ)充以及各國專家學(xué)者為其提供的改進(jìn)建議,MATLAB已經(jīng)能夠適用于多領(lǐng)域,并在這些領(lǐng)域都占有舉足輕重的位置。
TrueTime的功能可以說是十分完備。它不僅可以作為探索網(wǎng)絡(luò)上的大多數(shù)問題對系統(tǒng)有何影響的一種工具,還能夠為算法的設(shè)計提供很大的幫助,除了這些,它還有很多的優(yōu)點(diǎn)。網(wǎng)絡(luò)控制系統(tǒng)涉及控制、實(shí)時調(diào)度、網(wǎng)絡(luò)通信等內(nèi)容,為系統(tǒng)的分析與設(shè)計制造了不少的阻礙,而TrueTime工具箱為網(wǎng)絡(luò)控制系統(tǒng)的仿真研究提供了清晰有效的策略,是一個理想的網(wǎng)絡(luò)控制系統(tǒng)仿真平臺。
(2)工具箱模塊介紹
TrueTime仿真工具箱包括實(shí)時內(nèi)核模塊(TrueTime Kernel)、網(wǎng)絡(luò)模塊(TrueTime Network)、無線網(wǎng)絡(luò)模塊(TrueTime Wireless Network)、電池模塊(TrueTime Battery)、發(fā)送信息模塊(TrueTime Send)和接收信息模塊(TrueTime Receive)六種Simulink接口類型模塊。本文中詳細(xì)介紹實(shí)時內(nèi)核模塊(TrueTime Kernel)和網(wǎng)絡(luò)模塊(TrueTime Network)的作用、接口及相應(yīng)的功能。
圖1 TrueTime仿真工具箱
① 實(shí)時內(nèi)核模塊(TrueTime Kernel)
該模塊具有及時性和快速性,里面包含A/D接口、D/A接口、網(wǎng)絡(luò)接口和外部通道,調(diào)度器(Schedule)和監(jiān)視器(Monitors)的輸出可以用來顯示CPU、Monitors和網(wǎng)絡(luò)的分配情況。該模塊是根據(jù)使用者的需求來工作的,使用者派給它一個任務(wù),遇到中斷,它便去執(zhí)行。任務(wù)的執(zhí)行與中斷句柄通過MATLAB語言或C++語言編寫的代碼實(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)先級(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ǎng)絡(luò)模塊(TrueTime Wireless Network)如圖4所示。
圖4 TrueTime Wireless Network模塊
④電池模塊,如圖5所示。
圖5 TrueTime Battery模塊
(3)TrueTime命令介紹
TrueTime工具箱中的各個模塊都需要編寫代碼來實(shí)現(xiàn)。常用的命令如表3所示。
命令
描述
ttInitKernel
初始化TrueTime Kernel模塊
ttAnalogIn
從輸入通道取值
ttAnalogOut
設(shè)定輸出通道的值
ttSendMsg
在網(wǎng)絡(luò)上發(fā)送信息
ttGetMsg
在網(wǎng)絡(luò)接收信息
ttWait
等一個事件
ttCreateTimer
在指定事件觸發(fā)中斷句柄
ttSetPriority
改變?nèi)蝿?wù)優(yōu)先級
ttCreatePeriodecTask
創(chuàng)建周期性任務(wù)
ttInitNetwork
初始化網(wǎng)絡(luò)模塊
ttCreateInterruptHandler
創(chuàng)建中斷柄
ttCreateExternalTrigger
創(chuàng)建外部觸發(fā)
ttCreateMonitor
創(chuàng)建一個監(jiān)視器
ttCreateEvent
創(chuàng)建一個事件
ttSetDeadline
設(shè)置截止期
ttCallBlockSystem
調(diào)用Simulink模塊
ttSetPeriod
設(shè)置周期時間
ttSetBudget
設(shè)置任務(wù)的執(zhí)行時間預(yù)算
ttSetWCET
設(shè)置任務(wù)的最壞執(zhí)行時間
ttGetRelease
獲得釋放時間
ttGetDeadline
獲得截止期
ttGetAbsDeadline
設(shè)置一個任務(wù)作業(yè)的絕對截止期
ttGetPeriod
獲得周期時間
ttGetPriority
獲得優(yōu)先級
ttGetBudget
獲得任務(wù)的執(zhí)行時間預(yù)算
ttGetWCET
獲得任務(wù)的最壞執(zhí)行時間
ttRemoveTimer
在指定事件去掉中斷句柄
ttCurrentTime
設(shè)置或獲得仿真中每個節(jié)點(diǎn)的當(dāng)前時間
ttLogNow
記錄當(dāng)前時間
ttLogStart
開始時間測量并記錄
ttLogStop
停止時間測量并記錄
ttTryFetch
從郵箱獲取信息
ttTryPost
將信息發(fā)送至郵箱
ttSleepUntil
把任務(wù)放到一個特定的時間點(diǎn)
ttSleep
某個時間點(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ù)的大小,從而改變調(diào)節(jié)作用的大小及規(guī)律。
3. 網(wǎng)絡(luò)環(huán)境下的系統(tǒng)仿真
(1)基于TrueTime的倒立擺PID仿真模型
通過網(wǎng)絡(luò)形成閉環(huán)的一種全分布式實(shí)時反饋控制系統(tǒ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ò)平臺,以直線一級倒立擺作為被控對象,采用經(jīng)典PID的控制方法,利用TrueTime2.0工具箱及Simulink中的相關(guān)模塊搭建出網(wǎng)絡(luò)化直線一級倒立擺PID控制的仿真模型。系統(tǒng)的仿真模型如圖7所示。
圖7 基于TrueTime的倒立擺PID控制仿真模型
其中,狀態(tài)空間模塊的參數(shù)是利用上節(jié)中的計算結(jié)果,參數(shù)設(shè)置如圖8所示。
圖8 狀態(tài)空間模塊的參數(shù)設(shè)置
(2)各節(jié)點(diǎn)介紹及參數(shù)設(shè)置
上述仿真模型中包括1個網(wǎng)絡(luò)模塊(TrueTime Network),4個實(shí)時內(nèi)核模塊(TrueTime Kernel)。4個計算機(jī)部分分別是控制器、傳感器、執(zhí)行器和干擾。
①控制器節(jié)點(diǎn)
控制器部分用于接收TrueTime Network的消息,其處理后再傳遞給TrueTime Network,另外,需要給它輸入一個階躍信號作為系統(tǒng)的參考信號??刂破鞴?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語言實(shí)現(xiàn)各節(jié)點(diǎn)及網(wǎng)絡(luò)模塊的初始化和任務(wù)代碼見下節(jié)。
評論
查看更多