第7章Truetime在网络控制系统仿真中的应用教学目标通过本章的学习,了解网络控制系统的基本概念、简单结构以及网络控制系统中存在的主要问题;了解Truetime1.5工具箱的组成模块及其功能;掌握Truetime1.5的安装,确保能按照所给步骤在自己的电脑上成功安装和运行,最终能根据应用实例中的程序进行仿真。本章是在MATLAB的基础上,从网络控制系统仿真中的应用的角度出发,着重讨论网络控制系统的基本概念、基本组成结构以及网络控制系统中存在的主要问题;最后通过给出具体的仿真实例,让读者学会用Truetime1.5工具箱进行仿真。7.1网络控制系统基本概念7.1.1网络控制系统的定义网络控制系统(NCS,NetworkedControlSystems)是指传感器、控制器和执行器机构通过通信网络形成的实时闭环的控制系统。7.1.2网络控制系统的简单结构图网络控制系统主要由传感器、控制器与执行器这几个部分组成,其简单结构图如图7.1所示。图7.1网络控制系统简单结构图7.1.3网络控制系统存在的主要问题由于控制系统是通过网络形成实时闭环控制,因此不可避免地存在着网络诱导时延、单包与多包传输、数据包时序错乱和数据包丢失等问题。控制器执行器被控对象传感器u(t)r(t)+y(t)e(t)-MATLAB在电气信息类专业中的应用3011.网络诱导时延在网络控制系统中,多个网络节点共享网络信道。由于网络带宽有限且网络中的数据流量变化不规则,当多个节点通过网络交换数据时,常常出现数据碰撞、多路径传输、连接中断、网络拥塞等现象。因而不可避免地出现信息交换时间延迟,这种由网络引起的信息交换时间延迟称为网络诱导时延。网络诱导时延是随机的、恒定的、有界的、还是不确定的,取决于通信网络的类型和采用的通信协议。时延会降低系统的性能,使系统的稳定范围变窄,甚至使系统失稳。时延是NCS的分析和设计中不可忽略的重要因素。2.单包传输和多包传输在NCS中,数据是封装成一定大小的数据包进行传输的。单包传输是指NCS中传感器或者控制器等待传输的单位信息被封装成一个数据包进行传输。多包传输是指NCS中传感器或者控制器等待传输的单位信息被封装成多个数据包进行传输。系统采用单包传输或多包传输,取决于网络节点的各传感器所处的地理位置或等待传输的数据包容量。当传感器节点的各个传感器位于较远的地理位置或等待传输的数据超过控制网络数据包的容量时,待传输数据必须封装成多个数据包传输。多个数据包传输时,由于节点冲突、网络拥塞、连接中断和多路径传输机制等原因,多个数据包不可能同时到达,这将增加接收端数据处理时间,从而间接地增加网络诱导时延。节点单包传输还是多包传输,系统的分析与设计方法将有所不同。3.数据包时序错乱在NCS中,由于数据的多路径传输机制,网络中同一节点发送到同一目标端的数据包不可能在相同的时间内到达接收端,因而产生数据包先后顺序的错乱,称为数据包时序错乱。单包传输时,数据包时序错乱指各个数据包到达接收端的顺序与发送时的顺序不同。多包传输时,数据包时序错乱指一个完整的数据被封装成多个数据包传输,这多个数据包到达接收端的顺序与发送时的顺序不同。节点冲突、网络拥塞、连接中断和多路径传输机制等因素,是造成数据包时序错乱的主要原因。时序错乱的结果将导致数据传输率降低,间接地增加网络诱导时延。4.数据包丢失在采用串行通信方式的NCS中,当传感器、控制器和执行器利用网络传输数据和控制信息时,不可避免地出现数据包丢失。数据包丢失有两种情况:一种是因为传输通道为系统中各节点所共享,并且网络带宽为有限,在某一时间能够与控制器存取数据的传感器和执行器数目是有限的。当负载较大时,数据碰撞、网络拥塞和节点失败经常发生,数据碰撞和节点失败将造成数据包丢失。尽管大多数通信协议有重发机制,但都重发在一定时间内未到达的数据包。超过一定时间未到达的数据包将被丢弃。另一种是在实时控制系统中,往往是将一定时间未到达的数据包主动丢弃掉,接着发送新数据,以保证信号的及时更新和采样数据的有效性。一个稳定运行的NCS容许有一定数量的数据包丢失,但是数据包丢失率超过一定值时将使系统失稳。第7章Truetime在网络控制系统仿真中的应用3027.1.4常用的仿真网络控制系统的软件目前广泛使用的网络控制系统仿真软件,主要包含网络控制系统仿真工具箱TrueTime,网络传送特性仿真工具NS2,还有网络控制仿真包NCS-Simu和OPNET等。7.2Truetime1.5工具箱介绍7.2.1Truetime开发工具历史TrueTime是瑞典隆德(Lund)大学自动化系(LundInstituteofTechnology)的MartinOhlin,DanHenriksson和AntonCervin于2002年推出的基于MATLAB/Simulink的网络控制系统仿真工具箱。该工具箱针对每一特定的网络协议,可以实现控制系统与实时调度的综合仿真研究,是目前网络控制系统理想的虚拟仿真工具之一。7.2.2Truetime1.5工具箱的组成Truetime模块库窗口如图7.2所示,提供四个具有不同功能的Truetime模块,分别为TruetimeKernel、TruetimeNetwork、TruetimeWirelessNetwork和TruetimeBattery模块。图7.2Library:truetime窗口1.实时内核模块TruetimeKernelTruetimeKernel模块可被用作网络控制系统的网络节点,如传感器、控制器和执行器等。TruetimeKernel具有灵活的实时内核,内嵌A/D、D/A转换器接口、网络接口(输入输出通道)、公共资源(CPU、监控器、网络)的调度与监控输出端口等。TruetimeKernel模块按照用户定义的任务工作,任务执行取决于内部事件与外部事件的发生。内部事件与外部事件以中断方式产生,当外部中断和内部中断发生时,用户定义的中断句柄被调用。MATLAB在电气信息类专业中的应用303执行其中断服务程序。任务和中断柄及其执行都是有用户编写的代码函数实现。代码的编写可以用MATLAB或C++语言。2.网络模块TruetimeNetworkTruetimeNetwork被用作为NCS的通信网络。TruetimeNetwork提供了多种网络参数和网络模式,如媒体访问控制协议、网络节点数目、传输速率、数据丢失率等。其中,网络模式与媒体访问控制协议有:CSMA/CD(带有冲突检测的载波监听随机访问,e.g.Ethernet)、CSMA/AMP(带有信息优先级仲裁的载波监听多路访问,e.g.CAN)、RoundRobin(e.g.TokenBus,令牌总线网络)、FDMA(频分多路复用)、TDMA(时分多路复用)、SwitchedEthernet。网络模块采用时间驱动方式,当有消息进出网络时,网络模块启动工作,Truetime中预定义了多种任务调度策略供仿真选择,例如,固定优先级(FixedPriority)、单调速率(RateMonotonic)、截止期单调(DM,DeadlineMonotonic)、最小截止期优先(EDF,EarliestDeadlineFirst)等。3.无线网络模块TruetimeWirelessNetwork该模块提供了无线网络传输信息的功能,目前支持的两种网络通信协议是IEEE802.11b/g(WLAN)和IEEE802.15.4(ZigBee)。4.电源模块TruetimeBattery该模块为建立的仿真系统提供电源。7.2.3Truetime的用途Truetime工具箱为网络控制系统(简称NCS)理论的仿真研究提供了简易可行、功能齐全的手段,能与Matlab/Simulink软件包中的其他控制模块相结合,简便快速地搭建分布式的实时控制系统和NCS。7.2.4在MATLAB中安装Truetime工具箱的步骤(1)设置环境变量TTKERNEL:在windows下,进入控制面板→系统→高级→环境变量,创建一个环境变量,名为TTKERNEL,值为你的truetime所在目录下的kernel文件,如D:\ProgramFiles\MATLAB\toolbox\truetime-1.5\kernel;(2)重启计算机,这个很重要,要是没有重启,将会导致下一步实现不了;(3)进入MATLAB环境,在CommandWindow(命令窗口)下,创建一脚本文件,该脚本文件将在每次打开Truetime模块库之前,先运行之。文件内容要设置Truetime内核文件的全部必要的路径,即:addpath(getenv('TTKERNEL'))init_truetime;(4)启动MATLAB后,第一次运行Truetime前,必须为Truetime命令编译Truetime模块和MEX-funtion。在CommandWindow(命令窗口)下,以命令行方式输入:make_truetime(5)以命令行方式输入truetime,即可打开truetime仿真工具箱。第7章Truetime在网络控制系统仿真中的应用3047.3有线网络控制系统的分析与设计实例7.3.1有线网络控制系统组成结构在有线网络控制系统中,主要有传感器节点、控制器节点、执行器节点、干扰节点这几个部分组成,组成结构如图7.3所示。图7.3有线网络控制系统组成结构7.3.2有线网络控制系统中存在的问题有线网络控制系统中主要存在时延、丢包、多包、乱序等问题,这些问题的出现在一定程度上会降低系统的性能,使系统的稳定范围变窄,严重时甚至使系统失稳。7.3.3有线网络控制系统的仿真实例1.系统结构图Truetime1.5说明书中,包含一个有线网络控制系统仿真实例,我们通过剖析该仿真实例,说明有线网络控制系统基于Truetime工具箱的仿真模型的建模方法。仿真模型文件名为distributed1.mdl,模型结构如图7.4所示。系统中包含了四个计算机节点:Node4(节点4)传感器,Node3(节点3)控制器,Node2(节点2)执行器和Node1(节点1)干扰节点,各节点用Truetime内核模块来表示。在此仿真实例中,假设有下列已知条件:(1)被控对象为21000()Gsss=+;(2)传感器节点采用时间驱动的方式对过程进行周期性采样,采样周期为10ms;(3)控制器采用离散PID控制算法:()(()())PkKrkyk=−(1)()(()())iKhIkIkrkykT+=+−()(1)(()(1))ddDkDkbykykα=−+−−αd=Td/(N×h+Td)bd=N×K×Td/(N×h+Td)()()()()ukPkIkDk=++其中K为比例系数,iT为积分系数,dT为微分系数,h为采样周期。干扰节点控制器被控对象传感器执行器有线网络MATLAB在电气信息类专业中的应用305关于离散PID控制器,可参考6.3.1PID控制器的设计。(4)网络将采样值发送到计算机节点。计算机节点的任务是计算控制信号并将结果发送到执行器节点,执行器节点随后在事件驱动的工作方式下执行该控制信号。(5)仿真中还包括有一个干扰节点,它发送的信号能模拟干扰网络通信,并且在计算机节点中执行干扰的高优先级任务。图7.4基于TrueTime的网络控制系统仿真模型distributed12.有线网络如图7.5所示连接有线网络模型,然后将连接图全部选中,右击选择Createsubsystem创建子系统,生成图7.4中的Network(网络)模块。双击图7.5中的TrueTimeNetwork模块,弹出如图7.6所示的FunctionBlockParameters:TrueTimeNetwork参数设置对话框,提供了多种网络参数和网络模式,我们可以针对需要对媒体访问控制协议、网络节点数目、传输速率、数据丢失率等参数进行设置。其中:(1)主要支持的六种简单的网络模型:CSMA/CD(e.g.Ethernet)、CSMA/AMP(e.g.CAN)、RoundRobin(