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