资源预览内容
第1页 / 共59页
第2页 / 共59页
第3页 / 共59页
第4页 / 共59页
第5页 / 共59页
第6页 / 共59页
第7页 / 共59页
第8页 / 共59页
第9页 / 共59页
第10页 / 共59页
亲,该文档总共59页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Modeling & SimulationBased on ModelicaTrueTime初步研究初步研究 苏州同元软控2011-11苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica2内容提要概述概述网络控制系统Simulink_TrueTimeTrueTimeNetwork实例分析存在问题苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica3概述TrueTime库是ITEA2项目的EUROSYSLIB中针对工业控制系统而开发的一个库它可以用于仿真实时网络系统的各种网络协议TrueTime库的具体实现细节利用的是Modelica支持的外部C函数接口苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica4内容提要概述网络控制系统网络控制系统Simulink_TrueTimeTrueTimeNetwork实例分析存在问题苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica5网络控制系统网络系统和网络控制在现如今的各个领域,诸如自动控制系统中,都变得越来越普遍。在各种网络协议中,通过网络的信号传输延时都或多或少都具有确定性。local ISPcompanynetworkregional ISProuterworkstationservermobile苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica6网络控制系统一般的网络控制系统包含了:传感器执行器控制器分布于不同的地理位置通过网络进行信息交流苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica7网络控制系统-网络延时网络延时包含了如下几种:a)网络接口延时b)数据处理延时c)数据传输延时d)冲突导致延时A1帧产生帧产生B1A2A2B1冲突冲突随机时间随机时间t1t2B2A2t3B2t4B3A3站站A站站B信道上的信道上的总效应总效应A1B1A2B2ttt苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica8网络控制系统-兼顾仿真效率建模为了保证能够精确仿真由于这些延时而导致的对系统性能的影响,对网络的合理建模至关重要。过于细化的建模,比如精确到比特位的建模会减慢仿真速度,而且这个级别的建模在很多情况下是不必要的。而过于粗糙的建模,比如将整个网络的延时看成常数会导致不能对网络传输的动态参数进行捕获。苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica9内容提要概述网络控制系统Simulink_TrueTimeSimulink_TrueTimeTrueTimeNetwork实例分析存在问题苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica10Simulink_TrueTimeTrueTime是由Lund大学从1999年开始开发的基于Matlab/Simulink的仿真工具它可以对各种嵌入式网络控制系统进行建模仿真该大学同时开发了Modelica接口的TrueTimeNetwork库苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica11Simulink_TrueTime-支持的网络协议目前TrueTime库支持如下几种网络协议:1.CSMA/CD(Ethernet)2.CSMA/AMP(CAN)3.Round Robin(Token Bus)4.FDMA5.TDMA(TTP)6.Switched Ethernet7.FlexRay8.PROFINET9.无线网络传输协议IEEE 802.11b/g(WLAN)10.无线网络传输协议IEEE 802.15.4(ZigBee)苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica12主要思想功能:控制器任务执行,网络传输和连续系统动态性能的联合仿真提供实时内核和网络模型任务和中断句柄通过MATLAB或C+代码的形式建模苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica13可行性分析调查由于实时任务和网络调度导致的采样抖动,输入输出延时及抖动,丢失采样等问题,从而对时间或事件触发的控制系统的实际的行为的影响对各种调度策略进行实验,包含反馈调度策略调查不同的有线和无线介质访问控制协议的性能仿真一些特殊的场景如涉及到电池供电的通过无线AD-HOC通信的移动机器人等苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica14模块分析提供了一个内核模块,两个网络模块,两个网络接口和一个电源模块,通过以下机制实现:采用C+实现的Simulink S-function利用Simulink内建的过零检测实现基于事件的方法可与其他仿真环境进行无缝连接(需支持过零检测)苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica15内核模块基于事件的实时内核执行用户自定义的任务和中断实现用户自定义的调度策略支持外部中断和定时器提供一些通用的与实时相关的基元函数如SleepUntil,Wait/Notify,setPriority等其他一些特性:任务切换,超时句柄,任务同步,数据记录等苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica16内核实现细节TrueTime通过以下细节实现了一个完整的实时内核:一个ready queue用于存放等待执行的任务一个time queue用于存放等待释放的任务用于监视器和时间的waiting queue队列由内核或者通过调用内核基元函数进行支配该内核是理想的(没有中断延时,实时基元函数没有执行时间)可以设置一个常量的任务切换的开销通过使用Simulink过零检测函数实现事件驱动仿真,从而使内核在每次一个事件发生时都可以执行苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica17网络模块仿真各种不同数据链路层MAC协议的时间行为介质访问和数据包传输没有内建支持网络层和传输层的协议提供了两个高层协议的实例:TCPAODV产生网络传输调度苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica18有线网络模块每个节点(内核模块)可以与几个网络模块连接与每个网络接收通道相关联有一个专业的中断句柄: 当消息包到达时出发 与外部中断类似实际的消息数据形式可以是任意的MATLAB变量(结构,单元阵列(MTALAB的一种特殊数组,其元素称为单元(cells)等)将消息进行广播时需将该消息的接收器的标号设为0ttInitNetwork(network,nodenumber,hdlname)ttSendMsg(network receiver,data,length,priority)ttGetMsg(network)苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica19网络接口模块可以使TrueTime网络模块脱离内核模块单独使用可以连接于一般的离散时间Simulink模块如控制器等苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica20无线网络模块无线网络和有线网络有较大的差别:无线设备通常不能同时进行发送和接收必须考虑路径损失和无线电信号的衰减其他设备终端产生的干扰(共享介质)隐藏的终端多路径传输遮蔽和反射苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica21一个简单的伺服电机的PID控制初始化任务代码苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica22一个简单的伺服电机的PID控制任务:任务用于对用户代码( 主要是控制算法的建模 )的执行过程进行建模被释放的任务实例(jobs)可以是周期或非周期的对于周期性任务,实例(jobs)是通过外部周期定时器创建的对于非周期性任务,实例(jobs)需由用户进行创建(如对中断进行相应的任务)在一个任务下有多个实例的情况,被其他实例抢占的实例会被放入一个pending队列苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica23一个简单的伺服电机的PID控制任务属性:动态的属性是由内核在仿真过程中进行动态更新的,如释放时间,绝对截止时间,执行时间。静态属性一般保持常量,除非由用户明确的进行改变,如:周期,优先级,相对截止时间。苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica24一个简单的伺服电机的PID控制任务代码:以代码函数的形式呈现:exectime, data =function mycode(segment,data)Data输入/输出参数代表任务在本地内存存储的内容Segment输入参数代表程序计数器Exectime输出参数代表了目前代码段的执行时间苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica25一个简单的伺服电机的PID控制一个代码段对许多依次执行的指令进行了建模执行时间t由用户提供可以是常量,随机数,或与数据相关如果返回-1说明实例执行完毕苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica26一个简单的伺服电机的PID控制任务代码实例:function exectime, data = pidcode1(seg, data)function exectime, data = pidcode1(seg, data) switch seg,switch seg, case 1, case 1, r = ttAnalogIn(data.rChan); % Read reference r = ttAnalogIn(data.rChan); % Read reference y = ttAnalogIn(data.yChan); % Read process output y = ttAnalogIn(data.yChan); % Read process output data = pidcalc(data, r, y); % Calculate PID action data = pidcalc(data, r, y); % Calculate PID action exectime = 0.002; exectime = 0.002; case 2, case 2, ttAnalogOut(data.uChan, data.u); % Output control signal ttAnalogOut(data.uChan, data.u); % Output control signal exectime = -1; exectime = -1;endend苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica27调度策略内核的调度策略由优先级函数来定义,该函数是一个关于任务属性的函数内核中存在如下几个预定义的优先级函数:Fixed priority(固定优先级)Rate-monotonic(单调速率)Deadline-monotonic(截止时间单调)Earliest-deadline-first(最早截止时间优先)实例:EDF优先级函数double prioEDF(UserTask* t)return t-absDeadline;void ttAttachPrioFcn(double (*prioFcn)(UserTask *)苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica28调度钩子是在任务执行的不同阶段执行的代码,以下钩子会在相应时间执行:Arrival hook-当实例被创建时Release hook-当任务实例第一次被放入ready队列中Start hook-当实例执行其第一段代码时Supend hook-当实例被抢占,屏蔽,或者自己进入睡眠状态Resume hook-当实例继续执行时Finish hook-当最后一段代码执行完毕后ttAttachHook(char* taskname, int ID ,void (*hook)(UserTask *)苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica29数据记录在仿真过程中,由内核记录了一系列的变量数据当仿真结束时,被写入到MATLAB的工作空间对下面的一些数据进行记录:Response timeRelease latencySampling latencyTask execution time Context switch instancesttCreateLog(taskname,type, variable,size)ttLogNow(logID) tLogStart(logID) ttLogStop(logID)苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica30信号量/信号灯(semaphore)计数信号灯或二值信号灯(即只有0和1状态)没有优先级继承机制对于简单的任务同步适用ttCreateSemaphore(semname, initval)ttTake(semname)ttGive(semname)苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica31MonitorMonitor被用于建模共享数据的任务间的互斥等待使用monitor的任务依据他们相应的优先级(静态或动态)来排列支持标准的优先级继承来避免优先级反转实现了priority ceiling protocol仿真结果生成图像显示在不同的时刻不同的任务在使用不同的monitor。ttCreateMonitor(monitorname,display)ttEnterMonitor(monitorname)ttExitMonitor(monitorname)苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica32事件(Events)事件被用于任务同步,并且可能是自由的或者是鱼monitor相关的ttNotifyAll会将所有的等待任务(waitingtasks)移到monitor的waiting queue或者是ready queue(如果不与monitor关联)事件可以被用于触发基于事件的控制器ttCreateEvent(eventname,monitorname)ttWait(eventname)ttNotifyAll(eventname)苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica33消息队列(mailboxes)通过消息队列,支持任务间的通信用一个有限环循环队列来存储输入消息有阻塞和非阻塞版本的Fetch和Post(分别是从消息队列中取消息和往消息队列中写消息)ttCreateMailbox(mailboxname, maxsize)msg = ttTryFetch(mailboxname) ttTryPost(mailboxname, msg)苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica34中断句柄对于中断响应的代码比任务的优先级要高一个等级适用的中断类型有: 定时器(周期性或单稳) 外部(硬件)中断 任务超时 网络接口ttCreateInterruptHandler(hdlname,priority,codeFcn,data)ttCreateTime(timername,time,hdlname)ttCreatePeriodicTimer(timername,start,period,hdlname)ttCreateExternalTrigger(hdlname,latency)苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica35超时句柄可能有两个特殊的句柄与每个任务相关(和实时Java类似) 截止时间超时句柄 执行时间超时句柄可以被用于处理被延长的计算和超过截止时间等由内部定时器和调度钩子共同完成ttAttachDLHandler(taskname,hdlname)ttAttachWCETHandler(taskname,hdlname)苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica36内容提要概述网络控制系统Simulink_TrueTimeTrueTimeNetworkTrueTimeNetwork实例分析总结苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica37TrueTimeNetwork右图是Modelica下的TrueTimeNetwork库库中包含了不同协议的网络对于每种不同的网络协议均支持图形建模针对不同的网络,其参数可以在各模块下分别进行设置苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica38ModelicaTrueTime-NetworkBase基类组成右图是完全Modelica版本的库的基类,所有的网络协议都是在该基类基础上添加了网络协议的控制算法实现的该基类包含了以下一些模块:a)队列,消息尺寸b)随机数种子c)消息,队列(记录)d)输入输出端口e)对消息和队列操作函数苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica39TrueTimeNetwork-NetworkBase基类组成右图是带外部c函数库的基类,所有的网络协议都是在该基类基础上添加了网络协议的控制算法实现的该基类包含了以下一些模块:a)输入输出端口b)单个数据和数组接收节点c)定时单个数据和定时数组发送节点d)发送节点数据的发送是通过调用SendReal和SendArrayReal这两个外部c函数实现的e)接收节点亦调用外部c函数实现f)对于无线网络还需设置节点坐标苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica40TrueTimeNetwork-典型网络协议构建model CSMACD CSMA/CD (Ethernet) extends Icons.NetworkIcon; parameter Integer nbrNodes = 1 parameter Real dataRate = 1e7 parameter Integer minFrameSize(min = 1) = 512 parameter Seed randomSeed = 12.5, 7.7, 3 Integer sending(final start = -1); Real sendSchedulenbrNodes; PortOutnbrNodes portOut PortInnbrNodes portIn protected constant Real eps = 1e-10; constant Real COLLISIONWINDOW = 1e-6; import Modelica.Constants.inf; Seed seed(start = randomSeed); Real lastTime; Real nextHit(start = inf); Real lastHit(start = 0); Real elapsedTime(start = 0); Queue inputQnbrNodes; Boolean signalInnbrNodes; Boolean incoming; Integer statenbrNodes; Integer nbrOfCollisionsnbrNodes(each start = 0); Integer rec; Real rand; Real waitUntilnbrNodes; Real waitTime; Integer addressOutnbrNodes; Message msgOutnbrNodes; Boolean signalOutnbrNodes; equation . algorithm .end CSMACD;苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica41TrueTimeNetwork-典型网络协议构建在相关的传输协议中对碰撞和重新发送情况都进行了有效的处理Ethernet:/ Message Delivery: if (sending -1) then . end if; / Check if some node has finished waiting after a collision for i in 1:nbrNodes loop . end for; / If network appears idle, check if any node wants to transmit if (sending = -1 or time lastTime + COLLISIONWINDOW) then . end if; / Move nodes from colliding to waiting state for i in 1:nbrNodes loop . end for; .苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica42TrueTimeNetwork-典型网络协议构建对于无线网络建模时考虑了信号传输的路径损耗,各个节点之间的坐标等。苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica43TrueTimeNetwork-CSMACD协议设置对于CSMACD协议,需做如下设置:1.id2.nbrNodes3.dataRate4.minFrameSize5.lossProb6.nw7.苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica44TrueTimeNetwork-WLAN协议设置对于WLAN协议来说,需要设置的如右图:1.id2.nbrNodes3.seed4.dataRate5.minFrameSize6.pathLossExp7.苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica45TrueTimeNetwork-两种典型网络协议设置对比通用设置与专有设置苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica46内容提要概述网络控制系统Simulink_TrueTimeTrueTimeNetwork实例分析实例分析存在问题苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica47实例分析-CSMACD网络PID控制双容水箱液位苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica48实例分析-CSMACD网络PID控制双容水箱液位基于上述分析,搭建了一个基于CSMACD网络协议的PID控制双容水箱的低位水箱液位的实例,通过分析该案例可了解TrueTimeNetwork的工作流程。PID设定值为0.15,即控制目标为使低水箱液位保持0.15苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica49该实例包含了如下几个子模块:1.periodic Sender2.Receiver3.CSMA/CD4.PID5.Double Tank下面对上述几个模块进行详细分析实例分析-CSMACD网络PID控制双容水箱液位苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica50periodic Sender作用 实例分析-CSMACD网络PID控制双容水箱液位苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica51Receiver作用实例分析-CSMACD网络PID控制双容水箱液位苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica52PID作用实例分析-CSMACD网络PID控制双容水箱液位苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica53Double Tank实例分析-CSMACD网络PID控制双容水箱液位苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica54CSMACD作用实例分析-CSMACD网络PID控制双容水箱液位苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica55该实例执行机制:1.发送接收数据冲突检测2.Sending node与Receiving node关系判别3.整体仿真过程实例分析-CSMACD网络PID控制双容水箱液位苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica56实例分析-CSMACD网络PID控制双容水箱液位右图是对上述实例进行仿真得到的仿真参数列表对该CSMACD网络控制的各个参数可进行图形化观察通过观察低位水箱液位随时间的变化曲线,可判断该网络控制协议的控制性能苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica57内容提要概述网络控制系统Simulink_TrueTimeTrueTimeNetwork实例分析存在问题存在问题苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica58总结TrueTimeNetwork库包含了上述提到10种网络协议但绝不仅仅只包含这10种网络控制协议,用户可根据自身需求,对所需网络控制协议进行定制提供了分布式网络控制系统中出现的信号干扰,削弱,延时的仿真工具,为分布式网络控制系统的优化控制提供了有效解决方案苏州同元软控信息技术有限公司www.tongyuan.ccModeling & SimulationBased on Modelica59结束语
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号