Truetime网络仿真.docx

上传人:小飞机 文档编号:3167248 上传时间:2023-03-11 格式:DOCX 页数:23 大小:48.18KB
返回 下载 相关 举报
Truetime网络仿真.docx_第1页
第1页 / 共23页
Truetime网络仿真.docx_第2页
第2页 / 共23页
Truetime网络仿真.docx_第3页
第3页 / 共23页
Truetime网络仿真.docx_第4页
第4页 / 共23页
Truetime网络仿真.docx_第5页
第5页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Truetime网络仿真.docx》由会员分享,可在线阅读,更多相关《Truetime网络仿真.docx(23页珍藏版)》请在三一办公上搜索。

1、Truetime网络仿真网络控制系统的调度研究与仿真 1. 节点的驱动方式 网络控制系统中的传感器一般采用时钟驱动,传感器的时钟即为系统的时钟,而控制器和执行器既可以是时钟驱动,也可以是事件驱动。但事件驱动相比于时钟驱动具有以下优点: (1)控制器或执行器为事件驱动方式时,从源节点发送的数据一旦到达目标节点便马上执行,而在时钟驱动方式时控制器或执行器的数据被执行要等到规定的时间点,因此事件驱动方式客观上减少了网络诱导时延; (2)控制器或执行器为事件驱动方式时,避免了控制器或执行器为时钟驱动方式时与传感器时钟同步的困难; (3)控制器或执行器采用事件驱动方式时,避免了控制器或执行器为时钟驱动方

2、式时容易出现的空采样和数据丢失,提高了反馈数据的利用率。 事件驱动相对于时钟驱动也有一定缺点: (1)在实际运用中事件驱动较难实现。 (2)部分实际的网络控制系统不支持事件驱动方式。 2. TrueTime工具箱结构与功能 Truetime是由瑞典Lund工学院Henriksson等人开发的一个基于Matlab/Simulink的实时网络控制系统的仿真工具箱,为NCS理论的仿真研究提供了简易可行、功能齐全的手段,拜托了软件编程实现特定的网络通讯协议、通信延迟所带来的困难,支持控制与实时调度同时仿真可以方便地仿真实时系统中的资源调度问题。TrueTime仿真软件主要包括两个基本模块:内核模块和网

3、络模块,如图1所示。 内核模块可以是时间驱动也可以是事件驱动的,它主要包含了一个实时内核,A/D,D/A转换端口,与网络模块连接的信号端口,信号发送),实时调度显示端口等,调度器与监视器的输出用于显示仿真过程中公共资源的分配,此外,它还有一个外部中断通道可以处理外部中断。任务和中断处理器的执行需要通过用户自定义函数来实现。调度策略使用一个优先权函数来决定任务的属性。 图1 Truetime工具箱 网络模块是事件驱动的,当有消息进入或离开网络时它便执行。一条消息包含的信息有发送和接收节点号,用户数据,消息的长度和其他可选的实时属性。网络模块包含两个信号端口,信号发送),以及一个实时调度显示端口。

4、其中收发信号端口可以通过Matlab模块扩充至多个接口,TrueTime中预定义了多种调度策略,包括固定优先级,单调速率,截止期单调,最小截止期优先,同时,它还有多种介质访问控制协议和相应的参数可以选择,如图2所示。 图2 Truetime网络模块 Network number:网络模块的数量。 Number of nodes:连接在网络模块的节点数量。 Data rate (bits/s):网络传输速率。 Minimum frame size (bits):协议的最小结构长度。 Pre-processing delay (s):信息在网络接口上的发送时延。 Post-processing d

5、elay (s):信息在网络接口上的接收时延。 Loss probability (01):丢包率。 利用TrueTime仿真软件,网络控制系统中的各个处理单元都可以由计算机模块构建,而网络控制系统的实时网络可以由所需协议的网络模块来构建,另外,再结合Matlab/Simulink的其他控制模块,就可以简便而又快速的构建一个实时的网络控制系统。 利用TrueTime仿真软件包的优点在于: 由于该仿真软件中两个基本模块具有通用性,在构建各个处理单元时只需选用其相应的接口功能进行连接即可,因此大大加快模型构建的速度。 该仿真软件可以比较方便模拟各种实时调度策略,并通过Scope可以很方便地观察各个

6、任务的调度情况和对象的输出情况。 在网络模块中,可以很方便的模拟数据传输率、数据包的大小和丢包率等网络参数,有利于分析各类参数对网络控制系统的性能影响。 使用TrueTime进行仿真时,首先要对网络控制系统中的内核模块TrueTime Kernel和网络模块TrueTime Network以及各个节点进行初始化,在初始化中需要完成以下工作: 1. 初始化功能块内核,设置功能块输入、输出端口的数目和调度策略。 2. 定义消息函数,并根据节点采用的驱动方式,设置不同的消息调度策略。对于时钟驱动的节点,调用ttCreatPeriodicTask函数,设置周期性的任务调度策略,以实现定时采样功能。对于

7、事件驱动的节点,调用ttCreateInterruptHandler函数,设置中断式消息调度策略,使节点在接受到网络数据后触发相应的消息。 3. 初始化网络端口,设置节点对应的网络端口代号。控制网络功能由TrueTime Network功能块实现。网络类型、节点数、传输速率以及丢包率等参数可以通过TrueTime Network功能块的设置窗口进行设置。具体的参数选项根据网络类型的不同而不同。 表1 伪码举例 伪码名称 ttAnalogIn ttAnalogOut ttSendMsg ttGetMsg ttWait ttCreateTimer ttSetpriority ttCurrentTi

8、me 接口 A/D Interrupts Rcv D/A Snd Schedule Monitors P 功能 把从外界接收的模拟信息转换成数字信息 为该模块提供中断句柄 接收数字信息 把模拟信息转换成数字信息输出 发送数字信息 和“Monitors”查看仿真过程中系统资源的分配情况 和“Schedule”查看仿真过程中系统资源的分配情况 如果需要,可以接通电池 功能 从输入通道取值 设定输出通道值 在网络上发送信息 从网络输入队列中获取信息 等一个事件 在指定时间触发中断句柄 改变任务优先级 获取当前系统时间 表2 TrueTime核心模块接口功能 TrueTime Network模块提供了

9、3个接口来进行数据的传递或者监控系统的运行,其功能如表3所示。 表3 TrueTime网络模块接口功能 接口 Snd 功能 接收由TrueTime Kernel模块的Snd端口发送的数字信息 Rcv Schedule 发送数字信息至TrueTime Kernel模块的Rcv端口 查看仿真过程中系统资源的分配情况 上述2个模块均为事件驱动,包括内部事件和外部事件。内部事件通常是由时钟中断触发的,如时间队列释放一个任务或是计时终结都会引发时钟中断。而外部事件主要是和网络模块的外部中断通道有关,当相应的通道的信号值改变就会触发中断。除了计算机模块的A/D转换借口的输入信号是连续时间信号外,这两个模块

10、所有端口的输入都是离散时间信号,输出也都是离散时间信号。 3. 仿真举例 根据节点不同的工作方式,可以得到不同的系统离散时间模型。为了对网络控制系统进行建模,首先对系统作如下假设: 1. 传感器节点采用时间驱动方式,对被控对象的输出进行等周期采样,采样周期为h; 2. 控制器节点和执行器节点都采用事件驱动方式,即信息的到达时间即为响应节点的动作时间。 控制系统将传感器、控制器和执行器作为系统的3个节点分别用一个TrueTime Kernel模块仿真,传感器节点采用时间驱动方式,它包含了一个周期性任务,将定期采样的信号通过网络传送到控制器节点;控制器和执行器节点采用事件驱动方式,控制节点处理控制

11、信号并将结果送至执行器节点,执行器节点执行控制信号并输出结果。 该网络控制系统的仿真模型如图3所示。 图3 网络控制系统仿真模型 图4 参数设置界面 图5 以太网下的系统输出 图6 令牌网下的系统输出 图7 设备网下的系统输出 网络传输过程中的数据丢失是影响网络控制系统性能的另外一个重要的因素,通过设定不同的丢包率来研究其对系统性能的影响。 无丢包: 丢包率0.1: 图8 参数设置界面 图9系统的输入和输出 图10系统的输入和输出 丢包率0.15: 图11系统的输入和输出 丢包率0.2: 图12 系统的输入和输出 丢包率越大,对系统性能的影响越大,当丢包率达到一定程度时,就会使系统不再稳定。

12、在令牌网下,传输速率为1.5M: 图13 系统响应曲线 网络干扰节点占网络资源的20%情况下,调度策略为固定优先级 ,系统的输出和网络资源调度情况: 图14 系统响应曲线 在令牌网下,传输速率为93.75Kbit/s,调度策略为固定优先级 : 图15 系统响应曲线 图16 网络资源调度 网络干扰节点占网络资源的20%情况下,系统的输出和网络资源调度情况,调度策略为固定优先级: 图14 系统响应曲线 图15 网络资源调度 在令牌网下,传输速率为93.75Kbit/s,网络干扰节点占网络资源的20%、丢包率为10%情况下,调度策略为固定优先级,系统的输出和网络资源调度情况: 图16系统响应曲线 图

13、18 网络资源调度 在令牌网下,传输速率为93.75Kbit/s,网络干扰节点占网络资源的20%、丢包率为10%情况下,系统的输出和网络资源调度情况,调度策略为PrioRM: 图19系统响应曲线 图20 网络资源调度 在令牌网下,传输速率为93.75Kbit/s,网络干扰节点占网络资源的20%、丢包率为10%情况下,系统的输出和网络资源调度情况,调度策略为PrioEDF: 图20 系统响应曲线 图21 网络资源调度 在令牌网下,传输速率为93.75Kbit/s,网络干扰节点占网络资源的20%、丢包率为10%情况下,系统的输出和网络资源调度情况,调度策略为PrioDM: 图20 系统响应曲线 图

14、21 网络资源调度 在网络控制系统中,不同的网络传输协议,传输速率、干扰率、数据包的丢失率以及数据包的大小都会影响到网络控制性能,对于多任务的控制系统调度策略对控制性能也有很大的影响。 调度策略对控制系统性能的影响。 网络的调度问题: 网络控制系统是基于网络的分布式控制系统。网络控制系统中的所有控制信息都要通过实时网络传输,由于网络带宽的限制,网络中传送的信息不可避免产生碰撞、丢失和重发等现象,因此必须对网络中传输信息进行合理调度,否则控制信息产生的较大时延,会降低控制系统的控制性能,严重时将导致系统破坏,因此在网络控制系统的设计与研究中必须考虑网络的调度问题。 从仿真结果可见,网络控制系统不

15、仅依赖于传统控制算法的设计,而且依赖于网络资源的调度与优化,由于调度的影响,使得控制系统传感器的采样周期产生变化,不是一个定值,同时从传感器检测到执行器之间时间也产生了变化,从而使得系统产生波动,导致性能降低。不同的调度策略将决定网络与计算机的不同执行与传输方式以及不同的控制性能。仿真表明,网络控制系统那个的性能不仅与常规的控制系统的控制方法有关,而且与网络的调度有关,所以必须对网络控制系统的控制方法与调度进行集成研究。 从图中可以看出,当无冲突任务、干扰节点和数据丢失时,信号的传输延时是常数,系统性能较好。当加入冲突任务、干扰节点时,引起了信息在控制节点内和网络中对资源的争夺,竞争使某些低优

16、先级的任务处于等待状态或闲置状态,这些任务不能得到及时处理,导致系统延时变大,而且在多任务竞争这个不确定特性下,时延是时变的,从而使系统指标恶化。 图和图分别为控制器调度图和网络调度图,其中,信号高表示任务正在执行,中表示任务在等待,低表示任务闲置。从图可以看到各任务在控制器内的执行情况,从图中可以看到各个节点信息在网络中的传输情况。 从图中可以看到当未加冲突任务和干扰节点时,传感器周期性的采集信号,并通过网络把信号传给控制器,控制器接收传感信号,计算出控制信号并通过网络传给执行器,执行器接收控制信号并产生相应的动作。此时控制器中存在控制任务调度,网络中存在控制器节点和传感器节点调度。 当控制

17、器节点内部存在冲突任务,而网络中存在干扰节点时,控制器内存在控制任务和冲突任务的调度,网络中存在控制器节点、传感器节点和干扰节点的调度。由于冲突任务和干扰节点的存在,使得信息在控制器节点内处理时以及在网络中传输时存在冲突和资源争夺。该例中规定干扰具有最高优先级,所以从图和图,可以看到控制器内部冲突任务的执行机率大,而网络中干扰信息的传输机率大,导致了传感器的采样周期发生变化,不是一个定值,同时从传感器检测到执行器之间时间也发生了变化,从而使得系统产生波动,性能降低,如图所示。 仿真系统可以通过Proprocessing delay与Postprocessing delay进行传输时延的设定。由

18、于时延增加,系统的稳定性降低。图所示给出了网络传输时延为0.001的系统变化曲线,由于存在传输时延,系统振荡加强,性能降低,网络控制系统的处理时延会对系统性能产生很大的影响。,这里采用调整控制器参数方法进行补偿调节。 TrueTime模块配置与初始化 1. TrueTime Network模块的配置 TrueTime Network模块的配置需要通过块任务对话完成。包括:指定网络模式、网络模块的访问地址、连接到该模块的网络节点数、通信速率0、最小数据帧)、网络发送端时延)、网络接收端时延)和信息传输丢失率)等。可供选择的网络模式有CSMA/CD、CSMA、AMP、Round Robin、FDM

19、A、TDMA和Switched Ethernet。 2. TrueTime Kernel模块的配置和初始化 TrueTime Kernel模块的配置可以通过快任务对话完成。可以通过任务对话配置的参数有:指定初始化脚本函数名称)、选择初始化脚本变量、内核模块是否依赖电池、时间漂移和时间偏移量等。某些其它的参数也可以通过命令ttSetKernelParameter进行设置。 TrueTime Kernel模块的初始化涉及:指定仿真中模块的输入输出通道地址,定义调度策略,创建任务、中断柄、事件和监视器等。TrueTime Kernel模块的初始化通过编写初始化脚本代码来实现。每个TrueTime K

20、ernel模块必须进行初始化。 从网络调度图中可以看到,事件驱动型的控制器,在传感器数据到达时立即计算出控制信号;事件驱动型的控制器,从采样时刻运作。从Ethernet网络控制系统的仿真结果来分析,事件驱动型的网络控制系统比时间驱动型的网络控制系统,在阶跃响应下,超调量小,回复时间短,系统性能明显优越。 TrueTime初始化问题: 初始化中计算机内核与网络是两个基本的初始化内容,分别采用了ttInitKernel与ttInitNetwork形式表示。ttInitKernel中nbrlnp为输入通道的数目,nbrOutp为输出通道的数目,prioFcn为采用的调度策略,而ttInitNetwo

21、rk中nodenumber为网络中节点的地址,handlername为被调用的中断句柄名,如ttInitKernel表示采用了RM调度策略。如网络中节点4控制器初始化为ttInitNetwork。 TrueTime工具箱实例代码: 1. function actuator_init %执行器初始化 % Distributed control system: actuator node % Receives messages from the controller and actuates % the plant. % Initialize TrueTime kernel ttInitKerne

22、l(0, 1, prioFP); % nbr Of Inputs, nbr Of Outputs, fixed priority,初始化内核,设置功能块输入、输出端口的数目和调度策略 % Create actuator task 创建任务 deadline = 100; prio = 1; ttCreateTask(act_task, deadline, prio, actcode);任务名称,最终期限,代码名称 % Initialize network ttCreateInterruptHandler(nw_handler, prio, msgRcvActuator); 对于事件驱动的节点,

23、调用ttCreateInterruptHandler函数,设置中断式消息调度策略,使节点在接受到网络数据后触发相应的消息。 ttInitNetwork(2, nw_handler); % node #2 in the network初始化网络接口,网络数目,当事件到达时,激发的端口名称 2. function exectime, data = actcode(seg, data) switch seg, case 1, data.u = ttGetMsg; 从网络输入队列中获取信息 exectime = 0.0005;执行时间 case 2, ttAnalogOut(1, data.u) 设定

24、输出通道值,通道号,通道值 exectime = -1; % finished end 3. function controller_init(arg) 控制器初始化 % Distributed control system: controller node % % Receives messages from the sensor node, computes control signal % and sends it to the actuator node. Also contains a high-priority % disturbing task. % Initialize Tru

25、eTime kernel ttInitKernel(1, 0, prioFP); % nbrOfInputs, nbrOfOutputs, fixed priority初始化内核,设置功能块输入、输出端口的数目和调度策略 % Controller parameters 控制器参数设置,h为采样周期,N为采样次数 h = 0.010; N = 100000; Td = 0.035; K = 1.5; % Create task data (local memory) data.u = 0.0; data.K = K; data.ad = Td/(N*h+Td); data.bd = N*K*Td

26、/(N*h+Td); data.Dold = 0.0; data.yold = 0.0; % Create controller task deadline = h; prio = 2; ttCreateTask(pid_task, deadline, prio, ctrlcode, data); 任务名称,最终期限,代码名称 % Optional disturbance task 随机扰动任务 if arg 0 offset = 0.0002; period = 0.007; prio = 1; ttCreatePeriodicTask(dummy, offset, period, prio

27、, dummycode); 对于时钟驱动的节点,调用ttCreatPeriodicTask函数,设置周期性的任务调度策略,以实现定时采样功能。 end % Initialize network ttCreateInterruptHandler(nw_handler, prio, msgRcvCtrl); 对于事件驱动的节点,调用ttCreateInterruptHandler函数,设置中断式消息调度策略,使节点在接受到网络数据后触发相应的消息。 ttInitNetwork(3, nw_handler); % node #3 in the network,初始化网络接口,网络数目,当事件到达时,

28、激发的端口名称 4. function exectime, data = ctrlcode(seg, data) switch seg, case 1, y = ttGetMsg; % Obtain sensor value,从网络输入队列中获取信息 r = ttAnalogIn(1); % Read reference value,从输入通道取值 P = data.K*(r-y); D = data.ad*data.Dold + data.bd*(data.yold-y); data.u = P + D; data.Dold = D; data.yold = y; exectime = 0.

29、0005; case 2, ttSendMsg(2, data.u, 80); % Send 80 bits to node 2 (actuator),在网络上发送信息,发送数据内容的80个字节到执行器节点2 exectime = -1; % finished end 5. function exectime, data = dummycode(seg, data) 虚拟节点功能 switch seg, case 1, exectime = 0.004; case 2, exectime = -1; end 6. function exectime, data = interfcode(seg

30、, data) 干扰节点功能 BWshare = 0.0; % Fraction of the network bandwidth occupied by this node 节点占用网络带宽 if (rand(1) BWshare) ttSendMsg(1, 1, 80); % send 80 bits to myself,发送80个字节给自己 end exectime = -1; 7. function interference_init % Distributed control system: interference node 离散控制系统的干扰节点 % Generates dist

31、urbing network traffic. 产生网络干扰通信量 % Initialize TrueTime kernel ttInitKernel(0, 0, prioFP); % nbrOfInputs, nbrOfOutputs, fixed priority,初始化内核,设置功能块输入、输出端口的数目和调度策略 % Create sender task 创建发送任务 offset = 0; period = 0.001; prio = 1; ttCreatePeriodicTask(interf_task, offset, period, prio, interfcode); % I

32、nitialize network ttCreateInterruptHandler(nw_handler, prio, msgRcvInterf); 对于事件驱动的节点,调用ttCreateInterruptHandler函数,设置中断式消息调度策略,使节点在接受到网络数据后触发相应的消息。 ttInitNetwork(1, nw_handler); % node #1 in the network,初始化网络节点1 8. function exectime, data = msgRcvActuator(seg, data) 执行器与网络连接的信号端口功能 ttCreateJob(act_t

33、ask) 创建任务,任务名称,负责激发到达的任务 exectime = -1; 9. function exectime, data = msgRcvCtrl(seg, data) 控制器与网络连接的信号端口功能 ttCreateJob(pid_task) exectime = -1; 10. function exectime, data = msgRcvInterf(seg, data) 干扰节点与网络连接的信号端口功能 msg = ttGetMsg; exectime = -1; 11. function exectime, data = msgRcvSensor(seg, data)

34、传感器节点与网络连接的信号端口功能 disp(ERROR: sensor received a message); exectime = -1; 12. function exectime, data = senscode(seg, data) 传感器节点功能 switch seg, case 1, data.y = ttAnalogIn(1); 从输入通道取值 exectime = 0.00005; case 2, ttSendMsg(3, data.y, 80); % Send message (80 bits) to node 3 (controller)发送80个字节到节点3 exec

35、time = 0.0004; case 3, exectime = -1; % finished end 13. function sensor_init 传感器初始化 % Distributed control system: sensor node % Samples the plant periodically and sends the samples to the controller node. % Initialize TrueTime kernel ttInitKernel(1, 0, prioFP); % nbrOfInputs, nbrOfOutputs, fixed pr

36、iority,初始化内核,设置功能块输入、输出端口的数目和调度策略 % Create sensor task 建立传感器任务 data.y = 0; offset = 0; period = 0.010; prio = 1; ttCreatePeriodicTask(sens_task, offset, period, prio, senscode, data); 对于时钟驱动的节点,调用ttCreatPeriodicTask函数,设置周期性的任务调度策略,以实现定时采样功能。 % Initialize network 初始化网络 ttCreateInterruptHandler(nw_han

37、dler, prio, msgRcvSensor); 对于事件驱动的节点,调用ttCreateInterruptHandler函数,设置中断式消息调度策略,使节点在接受到网络数据后触发相应的消息。 ttInitNetwork(4, nw_handler); % node #4 in the network Distributed Control System: 包含了四个计算机节点,时钟驱动的传感器节点周期性的对过程进行采样,并通过网络传递给计算机节点。控制任务在这个节点上运算控制信号,并发送运算结果给执行器,立即执行。同时,干扰节点发送通过网络干扰信号,作为高优先级任务在计算机节点执行。 干

38、扰节点占用网络的设置通过interfcode.m中的变量BWshare,当设置为零时表示没有干扰,同时,研究网络调度。 改变网络调度策略进行研究。 ttSendMsg/ttGetMsg stand-alone network blocks: 时间触发和事件触发两个实例表明单机网络模块用来模拟网络闭环控制系统。 在时间触发实例中,发送模块被脉冲发生器触发,脉冲发生器的第二个节点有0.05s的相位延迟。比例控制器补偿白噪声的干扰。 在事件触发实例中,当过程输出幅值超过0.25时,发送模块被触发。控制器也是事件触发的,第二个发送模块轮流延迟0.001s被触发。 网络利用率 8个网络节点的仿真模型:

39、默认条件下的仿真结果及网络调度: 在令牌网下,传输速率为93.75Kbit/s,系统的输出和网络资源调度情况,调度策略为PrioRM,: 1.网络时延的影响:可以直接在模型的基础上增加Transport delay模块,。 图30 时延仿真模型图 在令牌网下,传输速率为1.5Mbit/s,延迟时间为0.01s,仿真结果如下: 图31 仿真结果 将传输速率改为:93.75Kbit/s时,其余的参数同上, 图33 仿真结果 3 网络控制系统调度算法研究 3.1 引言 研究网络控制系统调度算法的目的在于使网络中信息的传输满足一定的时延要求,其解决的本质问题在于合理分配网络资源,使控制系统中由于网络的

40、引入所带来的时延限制在可以保证控制系统稳定性的范围之内,满足网络控制系统的性能,网络控制系统性能主要包括带宽利用率、信息的可调度比率、信息的平均响应时间和网络吞吐量等。 从网络层次看,网络控制系统的调度方法可以分为两类:网络底层的调度和应用层的调度。网络底层调度的过程是数据链路层通过一个链路活动调度器控制网络中各个现场设备对完了过传输介质的访问,通常是网络接口设备按照特定的协议规范来决定数据包的发送顺序。网络底层调度是通过制定特定的网络协议来实现某些调度算法的,因而调度缺乏灵活性,只能适应少数算法。应用层的调度还可以调度网络控制系统中各控制环的采样周期和采样时刻,以尽量避免网络中数据冲突现象的

41、发生,从而最大限度地减少数据的传输时延。 网络控制系统中的信息调度策略可以分为三类:静态调度策略、动态调度策略、动静态混合调度策略。静态调度策略离线分配好各节点的网络带宽或者优先级,在系统运行中保持不变。动态调度策略考虑网络控制系统中信息流的时变性。根据系统需求在线调整各节点的网络带宽或优先级。 Rate Monotonic(RM)调度算法: 基于优先级的RM调度算法是根据任务的周期分配优先级:任务的周期越短,其优先级越高。RM调度算法是一种典型的静态调度算法,任务的优先级在任务执行之前就已经确定并且不会随时间的变化而变化。 RM算法应用于网络控制系统: 1. 可调度分析 基于RM调度算法,当

42、一系列对象连接到网络上并竞争网络带宽时,采样速率越快的对象,优先级越高。网络中信息的传输调度是不可抢优的。 2. 调度优化 调度优化的目的在于找到一个最优、可行的调度器使得给定的性能指标函数达到最小。而网络上各节点的传感器在制定采样周期时,既要受到控制对象稳定性的约束,也要收到网络可调度性的约束。因此,选择合理的采样周期对整个网络控制系统的性能有着至关重要的影响。 动态调度算法: 动态调度算法指的是系统在运行时对网络中传输信息的优先级进行动态的构建,可调度分析也必须是动态进行,所以大大减少了在系统运行前的工作量,其优点是灵活性增强,可以实时适应系统结构与配置的变化,缺点是很难对系统进行有效的可

43、调度分析,同时要消耗大量的系统资源来动态计算网络中传输信息的优先级。 1.Earliest Deadline First(EDF)调度算法 EDF算法是根据任务距离时限要求的长度分配任务的优先级:距离时限要求越小的任务获得的优先级就越高。EDF调度算法是一种动态的调度算法,任务的优先级不是固定不变的,而是随着时间的变化而变化,任务的优先级相对时间是不确定的。EDF调度算法除了具有一般动态调度算法的优点以外,还具有以下优点: 可以有效的利用网络带宽资源,提高带宽利用率; 可以对将要调度的信息进行有效的可调度分析; 在实现上比较简单,节点中执行的指令数较少。 从资源利用率来看,EDF调度算法能够获

44、得很高的利用率,即在同样的资源条件下能够满足更多的信息需要,因而提高了资源的利用率。另外由于EDF调度算法是动态的调度算法,能够动态的调节信息的优先级,在信息负载较重的情况下能够使得有限地资源得到更加合理地分配,从而使得某些软实时系统在不可调度情况下同样能够获得期望的性能。 2.基于死区的调度方法 当网络资源悠闲而信息数较多时,如果适当地减少网络中数据的传输量,减轻网络传输的负担,是保证控制性能的方法之一。基于死区的调度方法的思想就是通过保证系统稳定的前提下适当地减少数据传输量进行调度的方法。 当网络负载较重时,利用基于死区的调度方法能够在保证系统性能的同时减少数据的传输量,缓解网络资源紧张的

45、矛盾。由仿真图形可以验证在网络负载比较重的情况下,利用基于死区的调度算法能够较好减轻网络负载,提高网络控制系统的控制性能。 3. MEF-TOD动态调度算法 该算法是根据网络控制系统的误差向量来动态确定节点消息优先级的,把网络看成是控制系统中的扰动,其作为一个状态变量放在状态方程中进行分析。 动态调度算法MEF-TOD分为两部分:一是MEF调度策略,即拥有基于在线获取的网络诱导传输误差,动态分配网络带宽,当多个节点在传输中发生冲突时,最大权误差的节点优先传输数据,这里的误差是指节点需传送的信息和该节点上一次传输给控制器的信息之差。另一部分是TOD协议,它的基本思想是,对于实时控制系统,最新的数

46、据是最好的数据,如果能得到新的采样数据,那么旧的尚未传输的数据将被抛弃。在MEF-TOD中,一个数据包在一次竞争网络带宽的过程中失败,则这个数据包将会被抛弃,下一次竞争重新使用新的采样数据,因此MEF-TOD在保证信息的可靠性和实时性方面均具有一定的优势。 这种调度算法能够较好的利用网络带宽,同时兼顾各个节点的信息发送,优化整个网络控制系统的控制性能。 静态调度策略离线分配好各节点的网络带宽或者优先级,在系统运行过程中保持不变,因此灵活性较差。动态调度算法考虑NCS中信息流的时变性,根据系统需求子凹陷调整各节点的网络带宽或者优先级。从仿真研究中可以看出,调度方法对控制系统动态性能和稳定性有着很

47、大影响,合理的调度算法能够显著改善控制系统的性能,因此在研究网络控制系统时,需要充分考虑网络控制系统的调度算法。 虽然本文运用的TrueTime仿真工具箱有其优点,比如使用方便,自带了多种调度算法。但不可否认的是这种工具箱的应用范围还是很窄的,对于算法的优化很难进行,并且不能够实时的监控网络运行状态,这些已经成为进一步研究网络控制系统信息调度的瓶颈,这也将是下一步研究的重点。 网络控制系统的时序 控制回路中的各个节点的驱动方式主要是指回路中节点工作的前提条件。网络控制系统的驱动方式有两种:时间驱动型、事件驱动型。 时间驱动是指节点的工作与时间密切相关,典型的情况是周期性方式。以网络控制系统中的传感器为例,它大都处于周期性的采样过程,这就是时间驱动方式。事件驱动方式在NCS中主要是指特定数据的到达或是发送完毕等时间来驱动设备工作,例如控制器以来自传感器的过程状态数据为事件驱动的条件,当状态数据到达控制器时,控制器立即执行控制算法,并且输出控制量。显然,事件驱动方式提高了设备处理外部事件的实时性,能够降低NCS的实时控制问题。传感器一般采用时间驱动方式,对实际对象进行周期采样。执行器一般都是以事件驱动方式

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号