管系统仿真与GPSSJAVA

合集下载

智能交通管理系统仿真实验报告

智能交通管理系统仿真实验报告

智能交通管理系统仿真实验报告一、引言随着城市化进程的加速和汽车保有量的不断增长,交通拥堵、交通事故等问题日益严重,给人们的出行带来了极大的不便。

为了有效地解决这些问题,提高交通系统的运行效率和安全性,智能交通管理系统应运而生。

智能交通管理系统是将先进的信息技术、通信技术、控制技术等应用于交通领域,实现对交通流量、路况等信息的实时监测和分析,并通过优化交通信号控制、引导交通流量等手段,提高交通系统的整体性能。

本次实验旨在通过对智能交通管理系统的仿真研究,深入了解其工作原理和性能特点,为实际交通管理提供理论依据和技术支持。

二、实验目的1、熟悉智能交通管理系统的组成结构和工作原理。

2、掌握智能交通仿真软件的使用方法。

3、研究不同交通流量和路况下智能交通管理系统的性能表现。

4、分析智能交通管理系统对交通拥堵和交通事故的缓解效果。

三、实验设备与环境1、计算机:配置较高的台式计算机或笔记本电脑。

2、智能交通仿真软件:选用了具体软件名称仿真软件,该软件具有强大的交通建模和仿真功能,能够模拟各种交通场景和交通管理策略。

3、操作系统:Windows 10 操作系统。

四、实验原理智能交通管理系统主要由交通信息采集子系统、交通信息处理与分析子系统、交通信号控制子系统、交通诱导子系统等组成。

交通信息采集子系统通过各种传感器和监测设备,实时采集交通流量、车速、路况等信息;交通信息处理与分析子系统对采集到的信息进行处理和分析,提取有用的交通参数和特征;交通信号控制子系统根据交通流量和路况信息,优化交通信号控制方案,提高道路通行能力;交通诱导子系统通过可变信息标志、导航系统等,为出行者提供实时的交通信息和出行建议,引导交通流量合理分布。

智能交通仿真软件通过建立交通模型,模拟交通系统的运行过程,从而对智能交通管理系统的性能进行评估和优化。

在仿真过程中,可以设置不同的交通流量、路况、交通信号控制策略等参数,观察交通系统的运行状况和性能指标的变化。

弯管仿真系统零件设计模块的实现

弯管仿真系统零件设计模块的实现

弯管仿真系统零件设计模块的实现蔡东海;屠立群【摘要】在对管料零件成形过程分析的基础上,提出了基于空间定位的管料零件设计方法和基于OpenCASCADE的零件实现,并应用于基于OpenCASCADE的弯管仿真系统,实现其零件设计模块功能.通过实例验证,该设计方法及实现能很好地完成管料零件的设计.【期刊名称】《轻工机械》【年(卷),期】2014(032)003【总页数】3页(P19-21)【关键词】仿真系统;管料零件;弯管;设计模块【作者】蔡东海;屠立群【作者单位】特种装备制造与先进加工技术教育部/浙江省重点实验室(浙江工业大学),浙江杭州310014;特种装备制造与先进加工技术教育部/浙江省重点实验室(浙江工业大学),浙江杭州310014【正文语种】中文【中图分类】N945.23弯管加工过程中,已成形的和正在成形的管料将产生大范围的运动,其运动轨迹复杂,容易发生相互干涉碰撞,影响弯管加工。

为降低或消除弯管加工过程中的碰撞干涉危险而开发的基于OpenCASCADE的弯管仿真系统[1-4]主要有5大模块组成:参数设置、零件设计、CAD动态仿真、CAE仿真和结果显示。

其中零件设计模块用以实现管料零件的设计,主要包括零件参数输入、管料零件图像生成、零件自干涉检测等功能。

文章在对管料零件成形过程分析的基础上,提出了基于空间定位的管料零件设计方法和基于OpenCASCADE的零件实现,并应用于弯管仿真系统,实现其零件设计模块功能。

1 管料零件的成形过程弯管机床属于三坐标点位控制系统,通过控制3个坐标轴(Y轴、B轴和C轴)的运动来实现管料零件的成形,如图1所示[5-7]。

在管料零件的成形过程中,已成形的和正在成形的管料将发生大范围运动,存在与机床、模具和夹具以及工作地面、厂房等发生碰撞干涉的危险。

成形后的管料零件可以分解为多个段[8],每段包括3个参数:Y为当前段直线部分距离,通过Y轴进给实现;B为当前段与上一段的空间旋转角度值,通过B轴旋转实现;C为当前段弯曲部分的角度值,通过C轴旋转实现。

离散事件动态系统建模与仿真技术研究

离散事件动态系统建模与仿真技术研究

离散事件动态系统建模与仿真技术研究离散事件动态系统(Discrete Event Dynamic System,DEDS)是一种用来描述离散事件的数学模型,其在集成电路设计、制造业、物流管理、网络通信等领域中得到了广泛应用。

离散事件动态系统建模和仿真技术是研究这一领域的关键问题之一。

I. 离散事件动态系统简介离散事件动态系统是一种将时间分为离散事件的模型,该模型针对每个事件进行计算,以决定模型的下一个状态。

每个事件的时间戳都是不同的,一次模拟可以包含大量的事件,事件之间可能会有多种关系,这是离散事件模拟的特点。

常见的离散事件动态系统包括排队系统、自动控制系统、网络系统、供应链系统、交通系统等,可以应用于机器人系统、智能交通、虚拟现实等领域。

II. 离散事件动态系统建模离散事件动态系统的建模是指将动态的系统描述成一个离散事件模型的过程,常用的建模框架包括Petri网、DEVS和CTPN等。

Petri网是描述离散事件模型的一种图形化建模语言,其由Petri网元素和变迁组成。

当一个Petri网达到一个使变迁操作成为可能的状态时,变迁将被激活。

Petri网允许对分布式系统进行实时分析和检验,并允许通过变形分析系统行为的改变。

DEVS是离散事件系统建模技术的一种形式化表达,其通过定义系统组件之间的输入输出以及它们之间的转移逻辑来描述系统行为。

DEVS模型一般包含四个部分,输入信号、状态、事件响应函数和状态转移函数。

CTPN是一种图形化建模语言,它通过两个主要元素,控制流程和时间约束,来建模系统的动态行为。

控制流程用于表示系统中的活动和控制流,时间约束表示活动之间的时间上限和下限。

III. 离散事件动态系统仿真离散事件动态系统仿真技术是为了模拟离散事件系统的行为,以便分析和预测其性能。

通常,离散事件动态系统仿真需要从实际系统的模型出发,将系统的模型转换成计算机程序,利用程序模拟实际系统不同的状态和事件,并通过这些状态和事件来推断系统的行为。

基于JAVA的汽车衡称重管理系统关键技术

基于JAVA的汽车衡称重管理系统关键技术
[36 ]

Sun 的 J2SE 中没有直接提供串行通讯协议 的开发包, 而是以独立的 jar 包形式发布在 java. sun. com 网 站 上,称 之 为 Java ( tm ) Communications API ,它是 J2SE 的标准扩展. Comm. jar 提 232 串行端口通讯的支持,Java 通过 供了对 RS该类库能够极大地简化对串口的操作过程 . Javax. comm 类库通过 SerialPort 对象来对串 口事件进行控制,通过 getInputStream ( ) 方法读 取串口的数据,getOutputStream( ) 方法向串口写 数据; 通过 setSerialPortParams( ) 方法设置串口的 通信协议. 与 comm. jar 开发包一起的还有两个重要的 文 件, win32com. dll 和 javax. comm. Properties. comm. jar 提供了通信用的 java API, win32com. dll Javax. 提供了供 comm. jar 调用的本地驱动接口, comm. properties 是这个驱动的类配置文件. Javax. comm 类库的安装方法如下: ( 1 ) 将 Sun 公司提供的 Javax. comm 类库包 java. comm. win32. zip ( 可从 http: / / java. sun. com 下载) 解压; ( 2 ) 将 win32com. dll 文件拷贝至 < JDK > \ bin 目录下; javax. comm. properties 文件 ( 3 ) 将 comm. jar、 拷贝至 < JDK > \ lib 目录下; ( 4 ) 将 comm. jar 文件添加到 classpath 环境 变量中. 串口读写的软件实现源码( 略) . 2. 2 应用实例 将上述系统方案和技术应用于某大型矿业公 司的网络化运销控制与管理系统, 网络操作系统采

利用GPS技术进行地下管道定位方法研究

利用GPS技术进行地下管道定位方法研究

利用GPS技术进行地下管道定位方法研究随着城市的发展,地下管道已成为城市建设中不可或缺的一部分,负责着城市供气、供水、供电等基础设施的建设和维护。

然而,由于地下管道安装的深度和长度大,且很少有明显的标志,常常会出现管道位置不清、被误破坏等问题,给城市建设甚至人民生活带来极大的不便。

因此,地下管道的准确位置定位迫在眉睫。

目前,GPS定位技术成为了地下管道定位的一种有效方法。

一、GPS技术简介GPS技术是全球定位系统(Global Positioning System)的缩写,它采用天基导航技术,利用卫星信号定位物体的位置。

GPS技术于1978年开发成功,最初用于军事用途,直到1990年代末才逐渐普及到民用领域。

用于地下管道定位的GPS技术主要实现方式是通过GPS接收器获取卫星信号,利用三角定位原理确定接收器的位置,从而推算出地下管道的位置坐标。

此外,还可以利用反射型GPS技术,通过地下管道材料反射的卫星信号计算出地下管道的位置。

二、地下管道GPS定位方法1. 前期准备进行GPS定位前,需要进行一系列前期准备工作:(1)了解管道性质:在进行GPS定位前,需要了解地下管道的类型、材质、管径、安装深度、长度等信息。

(2)选用适宜GPS接收器:GPS接收器的选用,需要考虑其灵敏度、定位精度、电量、重量等因素。

(3)选定工作区域:在选定工作区域前,需要进行现场勘察,观察地表情况,确定GPS接收器的安置点。

2. GPS定位实施过程(1)GPS接收器安置:按照先前勘察的位置,选择合适的高地,悬挂GPS接收器,保证接收器的视野良好。

(2)GPS接收器工作设置:将GPS接收器调整至合适工作模式,开启记录模式,开始记录接收信号。

(3)GPS接收器数据处理:在记录数据后,将数据导入计算机,进行数据处理。

(4)坐标计算:通过计算机软件,利用三角定位原理,计算出管道的坐标位置。

(5)地质勘测:对计算出的管道坐标,进行现场地质勘测,确定具体位置。

管道仿真-SPS简介

管道仿真-SPS简介

管道仿真系统模拟仿真可以通过管道基础数据建立该管道的数字模型,利用数字模型可以进行管道各种水力模拟仿真,掌握管道运行的水力规律,通过第三方界面组态软件跟数字模型的实时数据交互,可以建立操作员培训系统,实现对员工的操作培训及考核。

SPS水力仿真软件涉及油、气、水等领域,在管道仿真软件的研发和应用方面是全球公认的领跑者,已具有近40年的仿真工程经验,在中国乃至世界范围内,SPS仿真软件已近乎成为水力仿真领域的行业标准。

在世界各地的许多工程建设公司和管道运营公司,SPS仿真系统已得到了广泛应用,在60多个国家中拥有近700个用户。

SPS仿真软件家族主要由以下5个模块组成:离线仿真器Simulator、培训器Trainer、预测器Predictor、在线仿真模块Statefinder和泄漏检测模块Leakfinder,其中,Statefinder、Leakfinder和Predictor是SPS软件的在线产品,其运行需要SCADA系统实时数据的支持。

各个软件模块的相互关系详见下图:1. SimulatorSimulator(仿真器)是一种先进的瞬态流体仿真应用程序,用于模拟管道中天然气或(批量)液体的动态流动。

仿真器可以模拟任何在役的或规划设计中的管道,可对正常或非正常条件下,诸如管路破裂、设备故障或其它异常工况,以及各种不同控制策略的结果作出预测。

仿真器模拟设备运行状态,计算管道中的流量、压力、密度及温度等工艺参数,并随仿真计算的进程,在屏幕上相对于时间或距离以报表或图形的方式交互显示设备和管路参数。

仿真的结果可用于打印和绘图。

2. TrainerTrainer建立在SPS高保真水力学仿真精确性的基础上,为管道调度人员提供了一个完全模拟SCADA系统操作的环境。

它是一套离线系统,就如同飞行员培训系统一样,Trainer提供了完全仿真的SCADA环境。

它可以真实地模拟管道中流体的动态工况和管道中设备的运行,操作员会感觉如同在操作真正的管道。

系统仿真技术的介绍(第一章)NEW

系统仿真技术的介绍(第一章)NEW

系统仿真技术的介绍(第一章)(一)什么是系统仿真系统仿真技术在国内还是一个新事物,大家不难发现,在5年或者10年前,很少会有人谈到仿真技术,学校也没有这门课程,在网络上搜索,相关的资料也是很少。

可是近2~3年,仿真逐步在国内高校内发展起来,也逐渐在一些世界级的大企业、国家重点单位得到了应用,出现了一部分基于仿真的咨询机构,并且一度海外风险投资基金也欲介入这个潜在的市场。

现在国内在物流、供应链、工业工程等相关的网站、论坛上都能找到系统仿真的踪迹,并且也出现了一些比较有名的仿真论坛,主要有itpub的供应链仿真论坛,道于仿真论坛,还有各大仿真软件公司或者代理开设的专门的讨论区,技术支持区,人气也相当火。

姑且不论我们国内论坛的人气旺盛和实际上仿真技术应用比较低靡的巨大反差,至少也可以说这是一个良好的开端。

系统仿真是工业工程中系统工程的一个小分支,在国外已经有50多年的历史[1955,K.D. Tocher]。

尤其在美国,仿真研究已经广泛应用于企业应用,主要被应用于通讯、制造、服务、卫生、物流和军事等,为这些行业的发展提供了巨大的推动作用。

仿真和虚拟现实,有本质的区别,我们经常听到仿真枪,仿真玩具,还有比如工程仿真软件,这些都是和虚拟现实相关的可视化的设计而已。

美国的仿真著名学者Jerry Banks对系统仿真的定义是:“仿真就是实时地对现实世界的流程和系统的运作进行模拟,仿真包含人为地产生系统的“历史”,并通过观察这些“历史”数据来获得它所代表的现实系统的运作的推断。

仿真是解决很多现实世界问题不可获缺的解决工具。

仿真被用来描述和分析系统的行为,提出关于现实系统的what-if的问题,并帮助现实系统的设计。

现存的系统和概念中的系统都可以用仿真来模拟。

”采用系统仿真的方法和传统方法的区别在于仿真属于预测性技术,在不影响实际系统的情况下通过有目的的选取研究的对象,确定研究范围,抽象系统的本质进行一系列策略和参数的模拟。

SPS仿真系统在上海天然气管网中的应用

SPS仿真系统在上海天然气管网中的应用

【 关键词 】P s 仿真 系 统 天然气管网 应用
1概 述
上海 天 然气 主干 管 网承担 了整 个上 海市 天然气供应任务 ,保证 主干网安全 、可靠 、平 稳供 气对 上 海的 经济 建设 具有极 其 重要 的意
义。
随 着上 海天 然气 供 应规 模不 断扩 大 、供 应气源不断增 多,建 立动态管网仿真模型可 以 提高天然气主干 网运行安全 和效率 。 S P S仿真软件 主要包括管道的实时在线仿 真 ( S t a t e i f n d e r )、泄 漏检 测 ( L e a k i f n d e r )、 实时状态预测 ( P r e d i c t o r )、培 训器 ( T r a i n e r ) 和离 线仿真 ( S i mu l a t o r )5个模 块 。通 过各个 模块的交叉应用 、针对具 体工程 的二次开发 以 及S CA DA系统 实时数据的支持 等 ,能够实现 管道运行实时动态 的模 拟、实时运泄漏检测 、 管道未 来运行状 态 的预 测 、S C A D A系统 模拟 运行培训 以及管道 离线仿 真、管道设计 、管道 运行能力的估算等功能 。 S P S仿 真软件 3 O多年 的成功经验 , 在世 界上有众多的成功业绩 。在 国内 已经在多个石 油天然气管 等项 目上使用 。S P S拥有精确模拟 管道 设备 中 流体水 力学 和控 制系 统性 能 的手 段 ,它所提供的仿真精度 是任何 其它软件所不
和离线仿 真 ( S i mu l a t o r )5 个 模 块。 其 中 出管道未 来的运 行工况 ,它与实时数 据并行运 S t a t e i f n d e r 、L e a k i f n d e r和 P r e d i c t o r是 S P S模 行 ,但 时间轴是用 户设置 的未来时间。同样 预 块 中的在线产 品,在 S C A D A系统实时数据 的 测软件 也可 以在预 测中设置报警 ,以提醒使用 C A DA 系统在未来可能要产生的报警 支持 下, 能够实时动态的模拟管道 的运行状态 者 S L e a k i f n d e r 可 以在管道 实时运行 中进行 泄漏检 条件 预测 可 以让 用 户设置 一 些假设 的条 测 ;而 P r e d i c t o r 则可 以对 动 态管 道 的未 来运 件 ,并利用当前管道的运行数据预测 当所设条 行 状态 进 行预 测 ;T r a i n e r 用 于培 训 管道 系统 件 发生时管道的运行 。例如可 以设置断流或断 操作 人员 ,它可 以模 拟真实的 S C A D A 系统运 气、管道 中某点泄漏、某阀 门关断等等 。通过 行状态 ,使 操作员在模拟的环境下学 习如何操 预 测计算我们可以看到故障发生后管道的运行 作 管理 管 道系 统 ;S i mu l a t o r 是其 它 四个 模块 状 态、存活时间 ,使用者可 以根据预测结果制 的基础 ,用于 管道 离线仿真、管道设计 、管道 定相 应的抢 修预 案。 运行 能力 的估 算等。 2 . 4 离线仿 真 ( S i m u l a t o r ) 2 . 1实时在 线仿真 ( S t a t e f i n d e r ) 离 线分析 是管 道某 一 时间点 静态 平衡 下 S t a t e i f n d e r 通过 O P C接 口将 S C A D A 系统 的分析计算 。使用者可 以将某一点的数据输入 数据 实时地输入仿 真系统 ,并根据 S C A D A 数 仿真系统 ,计算管道在该 时间点 的管存 、各点 据动态 的模 拟管道运行工况 ,与实 际管道 并行 压 力 、流量数据等 。用户需要增大或减少流量 时 ,也可 以通过离线计算查看更 改是否 合理 , 运行 ,计算管道 中各点的压力 、流量 、浓度 、 管道储气量等其他参 数,实现实时在线仿真。 会不会超出管道的负荷能力。 在 管道运 行过 程 中用户 流量 的变 化会导 2 . 2 泄 漏检 测 ( L e a k f i n d e r ) 致管道压力变化 。使用者可 以利用离 线系统计 算 当管道负荷 已经很大 的情况下是否还允许用 L e a k i f n d e r 在模 型和数 据精确 的基 础上 能 户加大用量 ,或者为保证某些重要用户 的使用 够准确地监 测管道运 行并检测流体泄漏。 可 以适当减少周围哪些用户的使用。 与其 它数 据配 合 ,瞬 态仿 真 系统使 用压 力和 流量 的测量值 ,通过推算流人流 出的质量 2 . 5建立仿真 系统 损 失来探测泄漏。在稳态下有其它更有 效可靠 S P S仿 真软 件 拥有 的 强大 的二 次开 发 能 的方法 , 泄 漏的探 测和 定位是 很 简单 的。每 英 里摩 察压 力差随流速的平方增加 ,泄漏 的流 力 ,确保用户能够根据具 体工程条件 以及功能 量加上 管线中的流量改变 了压力梯度 ,足 以被 要求 ,建立实用的仿真系统。 S P S仿 真软件提 供 的 ADL开发环 境使得 探测 到。 在 真实管 线 中出现 泄漏时 ,S C AD A报告 在不改变基本的核心仿真软件 的前提 下,设置 的压力 和流量 与泄漏处的流 出量相一致 ( 在其 仿真逻辑 ,或者控制仿真过程 。使用者 可以根 本身 的不确 定性 范围内)。在实 时状态预估 中, 据需要开发 自己的应用程序 、可选择多种数学 泄漏 点没有 流出量 ,达 到同调 整过 的 S C AD A 函数、选择不同热力学模型 ,以满足仿真过程 数 据相 应 的水力 学可 能 的状 态预估 的 唯一方 中的各种需要 ;可 以按照现场实 际情况提前定 法, 是在这些诊断流处允许流体离开仿真系统 , 义 阀 门、压缩机 、泵等设备在指定情况下的开 从 而留下 “ 纸迹 ”用来作详 细分析。 启和 停止 。S P S还 可模 拟在某 些危 险情 况 下 , L e a k i f n d e r由 S P S在 线 仿 真 ( S t  ̄ e i f n d e r ) 自动开启某些阀 门或停止某些设备等工 况。定 和 泄露分析 器 ( L e a k a n a l y z e r ) 组 成 ,建 立 了 义的变量可 以表示为仿真数据 的函数 ,它们 的 及 时 准确 地 泄 漏 检 测 系 统 。S t a t e l f n d e r 使 用 值 可用于报告、结果显示 、或传递给第三方 的 S C AD A 系 统 实时 数 据 跟 踪模 拟 管 道 动 态运 应用或系统 。S P S的仿 真模拟曲线会立 即反映 行 状 态 ,当 S CAD A实 时数 据 出 现异 常 时, 出因某个参数变化后系统压力 、流量等参数 的 S t a t e i f n d e r 将 会告 知 L e a k a n a l y z e r ,它 是 泄漏 变化趋势。 检 测的数 据基础 。L e a k a n a l y z e r 详细检 查这 些 S P S 仿真系统在上海天然气管网 中实现 异 常数 据 ,并分 析是 否为 流 体泄 漏。如 果泄 3 的 主 要 功 能 露检测 系统 发现了一个泄漏点 ,它将立刻发 出 警 报并 显示 泄漏 地 点、泄 漏 时间 、泄 漏 速度 针对 上海 天然 气管 网的实 际情 况 以及所 和 泄漏 流体 总量 。��
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.2 模型的输入操作
2.举例说明 假设有一加油站,各类车辆到达间隔时间和加油所 需时间皆为均匀分布,车辆的平均到达间隔时间为 12-24分钟,每辆车加油平均需要12-20分钟,模 拟94分钟,输出未来事件链和当前事件链(以后定 义)信息。 (1)产生两组均匀分布的随机数序列各5个,分别
代表5辆车到达加油站的间隔时间和对应的加 油所需时间(时间取整数值)。
5.2 模型的输入操作
动态实体属性标记:
[编号,未来移动时间,当前所在模块,下一进入的模块,优先权,装配集] 例如,[2,94.0,-1,8,0,2]
模型输入操作:
执行模块1(generate)的输入操作部分 执行模块8(generate)的输入操作部分
模型输入操作后:
绝对时钟当前时间为 0 未来事件链的状态为:
问题2 :操作数表达式中若出现标准属性,由于模型没有开 始运行,这些属性值均为初始值,可能引起算术异常。
--- 由系统控制语句setDebugOff 或模块控制语句 dbon 与dboff 解决
5.1.2 与模型初始化有关的控制语句
(1)系统控制语句setDebugOff
1) 作用:模型初始化时,将模型所有模块设置为非调试状态。对模 块操作数表达式求值产生的异常不作处理,继续模型初始化的进
例如 r1和s1分别表示1号动态实体(1号顾客)的到
达间隔时间和加油所需时间。
5.2 模型的输入操作
问题的模型程序
setModel间接调用init() void init(){
ref.simulate(); }
仅执行每 个模块语 句的初始
化部分
3.结果 产生的两组随机数如下:
模型初始化后模块被顺序编号 1 generate(uniformInt(4,12,24)); 2 queue(line); 3 seize(station); 4 depart(line); 5 advance(uniformInt(6,12,20)); 6 release(station); 7 terminate(); 8 generate(94); 9 terminate(1);
即模型 输入与 首次 时 钟修正
即系统 状态修

完成模型的初始化 操作,该方法被 setModel语句间
接调用
模型输 入操作
首次时 钟修正
第5章 GPSS/Java 仿真调度程序
5.1 模型初始化 5.2 模型的输入操作 5.3 时钟修正与系统状态修正 5.4 调度程序的组织与模型运行的控制 5.5 动态实体优先权与priority模块
1 作用:模型初始化时,将模型的某一模块设置为调试状态;对该模块操作
数表达式求值产生的异常作报错处理,模型初始化的进程被终止。
2 操作符与操作数
dbon()
dbon语句应在模型的case标号与模块语句之间调用,例如:
• public void simulate(){

switch(nextBlock){
5.1.2 与模型初始化有关的控制语句
GPSS/JAVA对模型的初始化中, 模型的每一模块语句都要被执行一次。 若模块有操作数,那么操作数的求值 可能会引发如下问题:
void init(){
… ref.simulate(); … } 被调度对象构造方法 所调用完成模型初始化
问题1 :随机数序列被干扰(随机数发生器被generate以外的 模块语句的操作数调用) --- 初始化完毕后重置随机数发 生器种子值,然后开始模型输入操作
(2)模块控制语句 dboff
1) 作用:模型初始化时,将模型的某一模块设置为非调试状态;对该模块操
作数表达式求值产生的异常不作处理,继续模型初始化的进程。
2) 操作符与操作数:
dboff()
dboff语句应在模型的case标号与模块语句之间调用, 例如:
• public void simulate(){
实现时钟修正操作的伪代码
(4)动态实体属性标记:
[编号,未来移动时间,当前所在模块,下一进入的模块,优先权,装配集] 例如,[2,94.0,-1,8,0,2]
(5)模型输入操作完成后
绝对时钟当前时间为 0 未来事件链的状态为 [1, 21.0, -1 ,1, 0, 1] [2, 94.0, -1, 8, 0, 2] 当前事件链为空
动态实体沿模型路径移动,当停止移动的三个条件之一发生时,动态 实体要么被放至未来事件链,要么被放回当前事件链,要么被排出模 型。
5.3.2 时钟修正
模型输入操作完成后,调度程序便开始执行时钟修正的操作。模 型第一个时钟修正的操作,实际上是将未来事件链具有最小未来 移动时间的动态实体移入模型(进入产生其的generate模块)并 根据此移动时间来修正时钟时间。 所有时钟修正都执行如下操作过程: (1)根据未来事件链(FEC)头第一个动态实体所标记的未来移 动时间修正模拟时钟。 (2)将该动态实体由FEC移至CEC,按该动态实体的优先权水平 排列,作为相同优先权组的最后一员。 (3)检查FEC是否有其它动态实体的未来移动时间与时钟当前时 刻相同,若有,则依次移至CEC,采取相同的排队规则。 (4)检查 FEC 若无动态实体的未来移动时间与时钟当前时刻相 同,则时钟修正结束,开始系统状态的修正。
若是,则可在该模块语句前使用 dboff语句
然后重新编译和运行模型。
• }}
5.1.3 模型初始化与用户定义的模型类成员变量
用户在模型类定义的成员变量,在模型类的范围内 是全局变量。如果这些变量在模块操作数表达式中作为 只读变量被引用,则模型初始化操作不会对其有任何影 响。
但是,如果这些变量在模块操作数表达式中存在赋 值的写入操作,那么仿真模型在初始化过程中,有可能 已经改变了全局变量的值。如果在模型运行时,要使用 其初始值,则必须在模型类的run方法中调用 start 语句 来启动一轮模型的运行前,重新为其赋初始值。请参见 模型 Demo5_1。
5.3 时钟修正与系统状态修正
5.3.1 GPSS链的概念
(1)未来事件链(FEC ) Future Event Chain
未来事件链放置某些动态实体,这些动态实体在模拟时钟未来某一 确定时刻发生运动。满足这一条件的动态实体仅有如下两种情况:
1) 动态实体计划在未来某一确定时刻进入generate模块
程。
2) 操作符与操作数: setDebugOff()
setDebugOff语句作为系统控制语句应在模型的run方法中,先于 模型控制语句使用,例如:

public void run(){

setDebugOff();

setModel(this);

start(1);

}
5.1.2 与模型初始化有关的控制语句
5.2 模型的输入操作
模型程序Demo5_1.java的输出结果:
r1 =21.00 r3 =17.00 r4 =18.00 r5 =20.00
s1 =18.00 s3 =16.00 s4 =17.00 s5 =19.00
r6 =18.00
s6 =19.00
其中,r代表到达间隔时间,s代表加油所需时间,n (取值1至5)代表编号。
GPSS/JAVA 在模型的 run() 方法中,通过 setModel 语句创建调 度程序对象并开始模型 的初始化操作。通过第 1个start 语句开始模型 的输入操作和运行。
setModel 被调用
模型输入操 作与首次时
钟修正
第1个 start 被
调用
时钟修正和 系统状态修 正交替进行
第5章 GPSS/Java 仿真调度程序
5.1 模型初始化
5.1.1 模型初始化过程
void init(){
模型的初始化在Diaodu类对象构造方法中实现,主要完}成…以re下f.s操im作ul;ate(); … (1)对系统所有全局变量赋初始值。 (2)在一个初始化循环中,依次执行模型每一模块语句的初始化部分,完成
以下操作
1)对每个模块语句操作数作语法检查。 2)为每一模块语句编号,依据模块的先后顺序依次编号,并确定每一编号

switch(nextBlock){

case 10:
generate(16,5);

case 20: dboff(); advance(14,6);

case 30:
terminate(1);

case 40:
end();
• }}
5.1.2 与模型初始化有关的控制语句
(3)模块控制语句dbon
通常模型应设置为调试状态(缺省 为调试状态),如果产生初始化

case 10:
generate(16,5); 的出错提示信息,确认是否是

case 20: dbon(); advance(14,6); 模块操作数求值产生的算术异常,

case 30:

case 40:
terminate(1); end();
输入操作 完毕后,未来链的状态为:
所对应的case标号。生成一个一维数组中。数组下标对应模块编号,下 标元素值对应case标号。 3)如果当前执行的是generate模块,则将其对应的模块编号记录在一个数 组中,下标为generate模块的序号,元素值为其模块的编号。 4)使用一数组标记需要在以后操作中进行特殊处理的模块。 5)捕捉有关的异常 (3)当模型的end模块语句被执行时,初始化循环结束。 (4)初始化随机数发生器。
2)动态实体进入advance模块,在未来某一确定时刻进入该 advance模块的紧后模块
在未来事件链上,动态实体是按照其未来移动时间的先后顺序,自 其链头至其链尾排列的。一个动态实体被放入未来事件链时,必须 将其插入正确的位置,即其前端的动态实体的未来移动时间应小于 或等于该动态实体的未来移动时间,而其后端的动态实体的未来移 动时间应大于该动态实体的未来移动时间。
相关文档
最新文档