TrueTime工具箱是基于MATLAB/Simulink的仿真工具箱,是瑞典Lund学院在2002年开发的,可以实现控制系统和实时调度的仿真。
作为一款专业的科学计算软件,MATLAB在各个领域都有着广泛的应用。MATLAB将人所不能达到的数据处理和计算能力和可视化编程加载在一起,并且其拥有大量的由各个领域的专家学者所编写的函数,这些函数的调用可以轻易地解决一些问题,为人们处理问题带来难以想象的便利。
TrueTime的功能可以说是十分完备。它不仅可以作为探索网络上的大多数问题对系统有何影响的一种工具,还能够为算法的设计提供很大的帮助,除了这些,它还有很多的优点。网络控制系统涉及控制、实时调度、网络通信等内容,为系统的分析与设计制造了不少的阻碍,而TrueTime工具箱为网络控制系统的仿真研究提供了清晰有效的策略,是一个理想的网络控制系统仿真平台。
(2)工具箱模块介绍
TrueTime仿真工具箱包括实时内核模块(TrueTimeKernel)、网络模块(TrueTimeNetwork)、无线网络模块(TrueTimeWirelessNetwork)、电池模块(TrueTimeBattery)、发送信息模块(TrueTimeSend)和接收信息模块(TrueTimeReceive)六种Simulink接口类型模块。本文中详细介绍实时内核模块(TrueTimeKernel)和网络模块(TrueTimeNetwork)的作用、接口及相应的功能。
图1TrueTime仿真工具箱
①实时内核模块(TrueTimeKernel)
该模块具有及时性和快速性,里面包含A/D接口、D/A接口、网络接口和外部通道,调度器(Schedule)和监视器(Monitors)的输出可以用来显示CPU、Monitors和网络的分配情况。该模块是根据使用者的需求来工作的,使用者派给它一个任务,遇到中断,它便去执行。任务的执行与中断句柄通过MATLAB语言或C++语言编写的代码实现。
图2TrueTimeKernel模块内部结构
表1TrueTimeKernel模块接口及功能
接口
功能
A/D
将模拟信息变更为数字信息
Triggers
提供中断句柄
Rcv
接收数字信息
D/A
将数字信息变更为模拟信息
Snd
发送数字信息
Schedule
查看系统资源的分配情况
Power
若需要,可接通电池(TrueTime提供电池模块)
②网络模块(TrueTimeNetwork)
TrueTimeNetwork向NCS供应了通信资源,包含了各种网络参数,如Networknumber、Numberofnodes、Datarate(bits/s)、Minimumframesize(bytes)、Preprocessingdelay(s)、Postprocessingdelay(s)、Lossprobability(0~1)等。TrueTime工具箱中预定义了多种调度策略,比如固定优先级(FP,FixedPriority),单调速率(RM,RateMonotonic),截止期单调(DM,DeadlineMonotonic),最小截止期优先(EDF,EarliestDeadlineFirst)等。
图3TrueTimeNetwork模块
表2网络模块接口及功能
接收TrueTimeKernel模块Snd端口发送的数字信息
发送数字信息至TrueTimeKernel模块的Rcv端口
观察仿真中系统资源的占据情况
③无线网络模块(TrueTimeWirelessNetwork)如图4所示。
图4TrueTimeWirelessNetwork模块
④电池模块,如图5所示。
图5TrueTimeBattery模块
(3)TrueTime命令介绍
TrueTime工具箱中的各个模块都需要编写代码来实现。常用的命令如表3所示。
命令
描述
ttInitKernel
初始化TrueTimeKernel模块
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
设置内核参数
2.PID控制器概述
PID控制(proportionalintegralderivative,PID)是指控制器的输出分别与输入偏差的大小、偏差的积分和偏差的变化率成比例。理想PID的增量式数学表达式为
将上改为传递函数的形式,则为
3.网络环境下的系统仿真
(1)基于TrueTime的倒立摆PID仿真模型
通过网络形成闭环的一种全分布式实时反馈控制系统称为网络控制系统。网络闭环控制系统框图如图6所示。
图6具有延迟的网络闭环控制系统框图
图7基于TrueTime的倒立摆PID控制仿真模型
其中,状态空间模块的参数是利用上节中的计算结果,参数设置如图8所示。
图8状态空间模块的参数设置
(2)各节点介绍及参数设置
上述仿真模型中包括1个网络模块(TrueTimeNetwork),4个实时内核模块(TrueTimeKernel)。4个计算机部分分别是控制器、传感器、执行器和干扰。
①控制器节点
控制器部分用于接收TrueTimeNetwork的消息,其处理后再传递给TrueTimeNetwork,另外,需要给它输入一个阶跃信号作为系统的参考信号。控制器节点以及参数设置分别如图9和图10所示。
图9控制器节点图
图10控制器参数设置界面
PID控制器采用以下算法:
②传感器节点
传感器节点以及参数设置分别如图11和图12所示。
图11传感器节点图
图12传感器参数设置界面
③执行器节点
执行器节点以及参数设置分别如图13和图14所示。
图13执行器节点图
图14执行器参数设置界面
④干扰节点以及参数设置分别如图15和16所示。
图15干扰节点图
图16干扰参数设置界面
⑤网络模块(TrueTimeNetwork),其内部结构如图17所示。
图17网络模块内部结构
网络模块(TrueTimeNetwork)的参数设置如图18所示。其中,Datarate(bits/s)表示网络传输速率,Minimumframesize(bits)表示最小数据帧(字节),Lossprobability(0-1)表示网络信息在传输中的丢失率。
图18网络模块参数设置界面
用MATLAB语言实现各节点及网络模块的初始化和任务代码见下节。