首页 Vensim使用说明书

Vensim使用说明书

举报
开通vip

Vensim使用说明书Vensim使用说明书 第1章 概述 1.1.系统动力学简介 1956年,Jay W.Forrester 放弃了其在电机控制领域的研究,转而将反馈控制的基本原则用于社会经济学系统。1961年,他在MIT工业管理学院研究公司管理问题,出版了其专著Industrial Dynomics, 这标志着这一学科的创立。 在过去的40年中,系统动力学有了长足的发展。系统动力学的理论、思想方法和工具,对于分析社会经济中许多复杂动态问题非常有效。另一方面,系统动力学的分析方法、建模方法、模拟方法和模拟工具比较规范,易于学习...

Vensim使用说明书
Vensim使用说明书 第1章 概述 1.1.系统动力学简介 1956年,Jay W.Forrester 放弃了其在电机控制领域的研究,转而将反馈控制的基本原则用于社会经济学系统。1961年,他在MIT工业管理学院研究公司管理问题,出版了其专著Industrial Dynomics, 这标志着这一学科的创立。 在过去的40年中,系统动力学有了长足的发展。系统动力学的理论、思想方法和工具,对于分析社会经济中许多复杂动态问题非常有效。另一方面,系统动力学的分析方法、建模方法、模拟方法和模拟工具比较规范,易于学习和应用。 1、事件,行为,结构 在日常生活中,我们往往是从事件开始认识事物的。例如股市暴涨暴跌,流行病发生,战争爆发等等。事件一般是在固定的时间点上出现的。我们要正确的认识事件,须要联系相关事件,并从它们的发展过程中去观察。也即,要考察事件所在的行为模式。行为模式是系统的外在 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 现,可表现为一系列的相关事件随事件的演变过程,是多个关联事件表现出的过去现在和未来。例如,我们看到的经 利率的变化,失业率的波动等。行为摸式是由系统的济的缓慢增长, 内部结构决定的。结构是产生行为模式的物质的、能量的、信息的内在关系。系统的结构决定其行为模式,而事件是行为模式的重要片段。 ,要由事件出发,分析系统的结构与行 利用系统动力学分析问题 为模式的关系,以采取成功的政策和策略,调整系统结构,干预和控制系统,改善系统的行为模式,大大避免坏的事件的发生。 2、系统动力学处理问题的过程 提出 参考行为 提出假设 模型 建立模型 问题 模式分析 模拟 , 提出问题:明确建立模型的目的。即要明确要研究和解决什么 问题。 , 参考行为模式分析:分析系统的事件,及实际存在的行为模式 ,提出设想和期望的系统行为模式。作为改善和调整系统结 构的目标。 , 提出假设建立模型:由行为模式,提出系统的结构假设。由假 设出发,设计系统的因果关系图,流图,并列出方程,定义 参数。从而将一系列的系统动力学假设,表示成了清晰的数学 关系集合。 , 模型模拟:调整参数,运行模型,产生行为模式。建立好的模型 是一个实验室,可以由试验参数和结构的变化理解结构与系 统行为模式的关系。 1 1.2 Vensim PLE 软件的特点 Vensim PLE 全名为 Ventana Simulation Enviroment Personal Learning Edition. 即Ventana 系统动力学模拟环境个人学习版。 1.利用图示化编程建立模型。在Vensim中,“编程”实际上并不存在,只有建模的概念。只要在模型建立窗口画出流图,再通过Eq 如果用户需要查看有uations输入方程和参数,就可以直接进行模拟了。 关方程和参数,可使用Mode Document工具条。另外,Vensim提供两种模型文件保存方式,一种是二进制文件,后缀为.vmf;另一种是文本文件,后缀为.mdf,这种文件可以用于模型的建立和修改,但这并不是Vensim推荐的方法。 2. 运行于Windows下,数据共享性强,提供丰富的输出信息和灵活的输出方式。由于采用了多种分析方法,因此Vensim的输出信息是非常丰富的。其输出兼容性较强。一般的模拟结果,除了即时显示外,还提供保存文件和copy到剪切板。例如建立好的模型可以copy到剪贴板,再由剪贴板转到MS Word的编辑文件中。 3.对模型的多种分析方法 Vensim提供对于模型的结构分析和数据集分析。其中结构分析包括原因树分析(逐层列举作用于指定变量的变量)、结果树分析(逐层列举该变量对于其它变量的作用)和反馈列表。 模型运行后,可进行数据集分析。对指定变量,可以给出它随时间的变化图,列出数据表;可以给出原因图分析,列出所有作用于该变量的其它变量随时间变化的比较图;可以给出结果图分析,列出该变量与所有它作用的变量随时间变化的比较图;同时可以将多次运行的结果进行比较。作为最终结果的图形分析和输出,可使用Graph,它不但可以列举多个变量随时间的变化图,而且可以列举变量之间的关系图。 4.真实性检验 对于我们所研究的系统,对于模型中的一些重要变量,依据常识和一些基本原则,我们可以预先提出对其正确性的基本要求。这些假设是真实性约束。将这些约束加到建好的模型中,专门模拟现有模型在运行时对于这些约束的遵守情况或违反情况,就可以判断模型的合理性与真实性,从而调整结构或参数。真实性检验是Ventana公司的专利方法,是一种非常有效的建模工具。 1.3 使用Vensim软件处理问题的一般过程 分析系统行为模 式 提出真实性检验 约束 设定模型结构和 参数 建模:画出流程图 填入方程和参数 2 建立真 模型模拟 结构分析 实性检验 1.4 Vensim PLE 的使用说明 Vensim PLE3.0c可使用于Window3.X,Windows 95, Windows NT操作系统下。硬件要求386以上PC机,2.0M内存,1.6M磁盘空间(安装时需6M硬盘空间)。对于Machintosh机型,也可使用。 第2章 Vensim的菜单和主窗口 Vensim的用户界面是 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的Windows应用程序界面。除支持菜单和加速键外,还提供多个工具条。这使得用户操作非常方便。 2.1 Vensim PLE的主菜单 Vensim PLE提供以下菜单。对于菜单的驱动,除了逐级打开外,还可以用相应的加速键。 , File 文件管理:提供建立新模型(New Modle),打开模型(Open Modle),保存模型(Save, Save as),打印模型(Print , Print Options)等。模型打 开和建立后,检查可通过Check完成。 , View 观察:对于模型的流图进行总体观察。提供按任意比例缩 放。 , Model 模型检验:包括Reality Check 即真实性检验,Time Bounds 时间控制设置。其中Time Bounds是用于调控Simulate 和Reality Check的时间参数的。 , Windows 窗口:包括Control panel控制面板(即Variable Selection 分析变量选择,Time Axis时间轴设置,Scalling纵坐标调整,Datasets 数据集选择, Graph自定义作图等),以及Pop Forward实现由其它 窗口转换到模型建立窗口,Error History是出错 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 ,Selection History 是选择记录。 , Help帮助:在该菜单下有Manual子菜单,它是Ventana 公司提供 的使用手册,比较详细。另外一个是About Modles子菜单,它提供 了Vensim对模型的基本概括,如变量数目,状态量数目等。并 提供对模型设置加密口令。 第3章 模型的建立 3 模型建立是在模型建立窗口,通过图示化的方式建立模型,或对已建立的模型进行修改。主要过程是画出流图,然后输入参数和方程。 3.1 开始 在主菜单File下,选择New Modle 或Open Modle,就可以开始一个新模型的建立或者已建模型的修改工作。在选择New Modle情况下,会出现如下窗口。它是用来对于模型初始化的。可以选择起始时间,结束时间,时间单位,时间步长(Time Step)和数据记录步长SAVEPER。 3.2 画图工具条 其功能依次为: , Pointing 指针:用于选中、移动和改变变量和图符。有三种选择方 式。按下左键并拖动会看到一个虚线方框,松开左键则方框内所 有变量和图符被选中,选中后可以用鼠标拖动之;可直接左键 用点按变量或图符选中之,按下左键可以拖动,另外若选中图符 操作柄(一个小圆圈),可对图符进行伸缩放大;对变量用左键连 续点按两次会将它选为工作台变量。 , Variable 变量:用于定义非状态变量的变量,如辅助变量和常量。 , Box Variable 方框变量:用于创建状态变量。注意,Vensim 一般约定,状 态变量第一个字母大写,常量和表格量字母全大写,其余变量字 母全小写。但用户也可以有自己的约定。 , Arrow 箭头:用于创建表示因果关系的箭头,可以是直的或弯曲 的。注意,创建时,先选中箭头,在因变量上按下左键,然后松开, 移动鼠标到空白处点按左键,松开后移动到果变量再点按左键。 在中间电按位置会有一个操作柄。 , Rates速率变量:用于创建速率变量。它有四部分构成,两个箭头, 一个开关,两朵表示源和漏的云,和变量本身。可通过选择移动开 关,移动和改变图符形状。速率变量一般至少有一端指向一个状 态变量,在创建时可是其一端直接指到状态变量上。 , Shadow Variable:有时模型很大,若一个变量已在一个子块中定 4 义,在另一子块中,只要用Shandow Variable 再声明一次即可。 , Comment 注释:用于为流图增加注释,使容易看懂。Vensim的注释方 法很丰富,可以是文字,图符等。它在模型流图中无实质性作用。 , Delete 删除:用于删除相关内容。 , Equations建立方程: 用于方程建立,即建立等式,赋值,定义 单位等。 3.3 对于图符和字体的调整 Vensim提供图符和字体的丰富多彩的表示方式。对于已有的图符和字体,有两种方法实现调整。一种是用指针选中图符和变量(注意,图符要选其操作柄),然后再点按底部工具条。一种是直接用鼠标右键点按图符操作柄或变量,就会出现相应的对话框。 (1) 利用工具条对图符和字符作调整: 图示工具条功能依次如下: 1. 字体选择:可用来对于当前变量或注释选择任何windows所提供的 字体。也可选择汉字。 2. 字体的大小。 3. b:字体的加粗。 4. i:字体倾斜。 5. u:字体加下划线。 6. s:字体加中串线。 7. 设置字体颜色。 8. 设置变量边框颜色。 9. 变量边框形状选择。 10. 文本的位置选择。 11. 设置箭头的颜色。 12. 箭头的形状选择。 13. 设置箭头的极性。一般用“,,,”,也可选择用S“,N”。 14. 将加亮的字符移到下面。 熟练使用这些工具条可以使模型外观非常漂亮。但这些工具对于模型本身无实质影响。 (2) 利用对话框操作对图符和字符作调整: 如上所述,用鼠标右键单击要操作的图符操作柄,则会出现相应的对话框。这些对话框主要有箭头选择对话框,开关选择对话框,注释对话框,变量选择对话框。其中注释对话框和变量设置对话框我们在后面讨论。 , 箭头选择对话框:图示可以选择极性(可以选择字体),箭头可以 隐藏,可以无头,可以选择颜色及线的形状和宽度。这是对于因 果关系箭头和速率量箭头操作的。 开关选择对话框:对于速率量的开关操作。用来调整速率变量相对于图符的位置,图符的颜色等。 3.4 对流图加注释 通过选择建立模型工具条可打开如下注释对话框。注释可以是 5 文字的或图形的。文字的注释可以选择字体、大小、颜色、加粗等。图形的注释可以选择点位图或者是可以是Windows的图元文件(均可由剪贴板获得)。可以对注释加边框,选择边框形状等。 3.5 方程和参数的输入 方程的左边一定是某一变量,而Vensim是围绕这一变量来建立方程和输入参数的。在画图工具条中,有一个Equations项,当模型各种变量的关系建立完成以后,点击该项即可对任何一个变量进行建立等式和赋值等工作。点击任何一个变量后,会先出现对话框。主要内容包括: , 方程编辑:可选择变量、函数、数字和运算符构成方程。 , Variables输入变量:若流图正确,此变量的因变量均包含于 此,并构成输入变量。在方程编辑中只要从此选择即可,不需要 再写入变量了。 , Functions 函数:此处列举了Vensim提供的所有函数,可选择进入方 程编辑。 , Type: 确定变量类型,如表函数等。 , Units 单位:方程右边必须有正确的单位。若是一个无量纲量, 可不加或输入dmnl。 , Comment 注释:可对于方程进行注释,以增加可读性。 , Erros 错误信息:在方程书写中,会随时提示书写是否正确。 3.6 查找表的建立 表函数是SD一个重要特征。它用于建立两个变量之间的非线性关 例如员工士气对工作效率的影响程系。特别是软变量之间的关系。 度。一般,两个变量先归一化,或者先规整化,再根据经验给出大致的关系图来。这样设计的变量是无量纲量。当在Type中选择Lookup项时,会有As Graph选项,选择此选项,就会出现对话框。该对话框用于图形化定义一个查找表。包括自变量和函数值列举,自变量和函数的最大值等。用鼠标左键在图形框中点按,会自动构成图形。 3.7 对于Limits 模型重新设计以后的流图 我们对于Vensim PLE的modles子目录中的模型Limits进行重新编辑,得到以下。模型文件为:limitn.vmf。 6 Limmits模型 INITIAL RABBITPOPULATIONAVERAGERABBITRABBIT LIFEBIRTH RATE+++++ Rabbit Populationrabbit birthsrabbit deaths + +effect ofrabbit crowdingAREA OFcrowding+GRASSLANDon deathsEFFECT OF+GRASS REQUIREDCROWDING ON+carryingPER RABBITDEATHS LOOKUPcapacity+ 第4章 模型建立后的静态分析 模型建立后,在运行前和运行后均可以进行静态分析。这主要的是一种结构分析。Vensim是通过分析工具条操作的。其中,原因树分析、结果树分析和反馈回路分析是对于具体的变量进行的,因此首先要选择变量到工作台。而模型文档列举和量纲检查是对于整个模型的分析。 4.1 将分析变量选人工作台 变量选入有两种方法,一是选择模型建立工具条的指针Pointing,然后连续两次点按要选择的变量,就会在主窗口标题栏看到被选中的变量。另一种方法是,选择Control panel下的变量选择(Variable),则会出现一个对话框,列出了模型的所有的变量,且可以分类显示,选择要分析的变量即可。 4.2原因树分析 对于给定变量,列举作用于其上的变量;然后对于这些变量,再列举作用于其上的变量;依次类推,逐级反向追溯,直到出现给定变量本身的一级为止。这时,就得到了给定变量的一个原因树,最末一级的所有变量(除变量本身),实际上是该子系统的边界。是这些变量的外部作用决定了给定变量的。图示是对于变量Rabbit Populationd的原因树分析图。可以锁定窗口,打印该图,也可以拷贝到剪贴板或以图元文件(wmf)保存。 锁定窗口 打印 输出剪贴板 7 4.3结果树分析 对于给定变量,列举其作用的变量;然后对于这些变量,再列举其作用的变量;依次类推,逐级正向追溯,直到出现给定变量的一级为止。给定变量的结果树也构成了一个子系统,其最末一级的所有变量(除给定变量本身),构成子系统边界,表示指定变量对于整个系统的最终作用。图示是变量Rabbit Populationd的结果树。分析图 4.4模型文档 Vensim没有“程序”,用户可以看到的是方程列举的文档。该文档详细列举了所有等式、参数、表函数,以及用户注释及Vensim提供的用途分析。这一文档和模型流图构成了Veansim基本的模型文档。 (01) AREA OF GRASSLAND = 20000 Units: square yards Uses: (03)carrying capacity - (02) AVERAGE RABBIT LIFE = 2 Units: Year Uses: (13)rabbit deaths - (03) carrying capacity = AREA OF GRASSLAND / GRASS REQUIRED PER RABBIT Units: Rabbit (01)AREA OF GRASSLAND - (07)GRASS REQUIRED PER RABBIT - Uses: (12)rabbit crowding - (04) effect of crowding on deaths = EFFECT OF CROWDING ON DEATHS LOOKUP(rabbit crowding) Units: Dmnl 8 (12)rabbit crowding - (05)EFFECT OF CROWDING ON DEATHS LOOKUP - Uses: (13)rabbit deaths - (05) EFFECT OF CROWDING ON DEATHS LOOKUP ([(0,0)- (10,10)],(0,0.5),(1,1),(1.5,2),(2,5),(2.5,10) ) Units: Dmnl Uses: (04)effect of crowding on deaths - (06) FINAL TIME = 10 Units: Year The final time for the simulation. (07) GRASS REQUIRED PER RABBIT = 10 Units: square yards/Rabbit Uses: (03)carrying capacity - (08) INITIAL RABBIT POPULATION = 100 Units: Rabbit Uses: (14)Rabbit Population - (09) INITIAL TIME = 0 Units: Year The initial time for the simulation. Uses: (00)Time - Internally defined simulation time. (10) RABBIT BIRTH RATE = 1.1 Units: 1/Year Uses: (11)rabbit births - (11) rabbit births = Rabbit Population * RABBIT BIRTH RATE Units: Rabbit/Year (14)Rabbit Population - (10)RABBIT BIRTH RATE - Uses: (14)Rabbit Population - (12) rabbit crowding = Rabbit Population/carrying capacity Units: Dmnl (14)Rabbit Population - (03)carrying capacity - Uses: (04)effect of crowding on deaths - (13) rabbit deaths = (Rabbit Population / AVERAGE RABBIT LIFE) * effect of crowding on deaths Units: Rabbit/Year (14)Rabbit Population - (02)AVERAGE RABBIT LIFE - (04)effect of crowding on deaths - Uses: (14)Rabbit Population - (14) Rabbit Population = INTEG(rabbit births-rabbit deaths,INITIAL RABBIT POPULATION) Units: Rabbit (08)INITIAL RABBIT POPULATION - (11)rabbit births - 9 (13)rabbit deaths - Uses: (11)rabbit births - (12)rabbit crowding - (13)rabbit deaths - (15) SAVEPER = TIME STEP Units: Year The frequency with which output is stored. (16)TIME STEP - The time step for the simulation. (16) TIME STEP = 0.125 Units: Year The time step for the simulation. Uses: (15)SAVEPER - The frequency with which output is stored. 4.5反馈回路分析 对于给定变量,列举包含该变量的所有的反馈回路。注意,尽管在建立模型时标明了每个箭头的极性,但Vensim并不提供反馈性质分析。图示是包含变量Rabbit Populationd的反馈回路。 第5章 模型模拟及数据集分析 建立好了模型,就可以进行模拟和数据集分析。Vensim的数据集分析是对于模拟的结果—数据文件.vdf进行比较分析。可以对于一次运行结果分析,也可以对于多次运行结果(即多个 .vdf文件)比较分析。同结构分析一样,数据集分析一般也是对于具体的变量进行的,须先选择要分析的变量。 5.1模型模拟 选择主菜单下面的SET选项,会出现下面对话框。它允许用户修改有关参数,表函数,设定保存运行结果的文件名等。在对于同一模型反复调整参数,比较运行结果时很重要。注意,这里对于参数和表函数的修改不会保存到模型文件中去。 另外可以利用主菜Model中的Time Bounds,对于运行起始时间,步长进行重新设定。模型运行后会产生供数据集分析用的文件.vdf。若是 10 多次调整参数运行同一模型,并生成不同数据文件,则图形和表格显 示是多次运行结果的比较。 例如,在不同的参数条件下,运行Limits模型,得到数据文件: Current.vdf,Current1.vdf,Current2.vdf。下面对于变量 Rabbit Population 进行分析。首先,在鼠标选择Pointing情况下,连续两次点按变量Rabbit Population。可以看到,该变量被选入工作台标题栏。 5.2 数据集分析的工具条 , Run Compare运行比较:在多次运行同一模型,只是改变其参数时,显示和 列举各次运行的参数比较。在此例中,按下该工具条,则出现下面对话 框。将其Export到剪贴板,最后得到参数比较的文本。它详细记录了三次 运行模型参数的调整情况。由于这些变化,使模型表现出不同的行为 模式来。 Comparing C:\VENSIM\MODELS\CURRENT2 and C:\VENSIM\MODELS\CURRENT1 ******Constant differences between C:\VENSIM\MODELS\CURRENT2 and C:\VENSIM\MODELS\CURRENT1****** AVERAGE RABBIT LIFE - has changed in value 2 C:\VENSIM\MODELS\CURRENT2 3 C:\VENSIM\MODELS\CURRENT1 ----------------------------------------------------------- GRASS REQUIRED PER RABBIT - has changed in value 10 C:\VENSIM\MODELS\CURRENT2 12 C:\VENSIM\MODELS\CURRENT1 ----------------------------------------------------------- ******Lookup differences between C:\VENSIM\MODELS\CURRENT2 and C:\VENSIM\MODELS\CURRENT1****** EFFECT OF CROWDING ON DEATHS LOOKUP - has changed in value C:\VENSIM\MODELS\CURRENT2 C:\VENSIM\MODELS\CURRENT1 X | Y X | Y 0 | 0.5 0 | 0.5 1 | 1 1 | 1 1.778 | 1.69 1.5 | 2 2.629 | 3.063 2 | 5 3.17 | 4.613 2.5 | 10 4.098 | 7.359 4.974 | 9.894 , Strip 给出分析变量随时间的变化图。变量Rabbit Population 的Strip图如 下: 11 , Causes Strip 结果图:给出分析变量本身及其直接作用的其它变量的Strip 图。 C:\VENSIM\MODELS\CURRENT2 C:\VENSIM\MODELS\CURRENT1 C:\VENSIM\MODELS\CURRENT Rabbit Population 6,000 4,500 3,000 1,500 0rabbit births 6,000 4,500 3,000 1,500 0rabbit crowding 4 3 2 1 0rabbit deaths 6,000 4,500 3,000 1,500 002.557.510 Time (Year) , Table 数据表:给出分析变量随时间变化的数据表格。 5.3 控制窗口及输出的优化 一般数据集分析是结合控制窗口的操作完成的。Vensim 提供了控制 输出的强大功能,使对于模型运行分析更方便、深入,输出结果更 漂亮。 12 1. 控制窗口和控制工具条 在主菜单Windows中有Control panel选项,其中包含Variable,Time Axis,Scalling,Datasets, Graph,与底部的控制工具条功能相同。 , Variable 变量选择:见前述。 , Time Axis 时间轴:用于选择感兴趣的时间区间。若不选择,则分析全区 间。 , Scalling 纵坐标调整:有两种选择。在选择Raw时,曲线最高点撑满纵坐 标;在选择Rounded时,曲线最高点在纵坐标轴的适当的分割点,以使 图形美观。 Raw Rounded , Datasets 数据集选择:用于选择要分析的运行结果数据文件进入数据 集,见下述。 , Graph 作图:由用户选择作图,见下述。 2. 数据集选择 一般在作图前先要进行数据集选择。进入数据集选择有两种途径,一是直接由底部工具条进入,另一是由Control panel选项下的Datasets进入。 图示,在c:\Vensim\models子目录下共有三个vdf文件,其中CURRENT1和CURRENT已列人数据集。“>>”和“<<”是用来将选择文件取出和加入数据集的。而Delete选项,将会把数据文件由磁盘删除。 3. 用户自定义作图 Vensim提供两种进入用户自定义作图的途径。一种是通过Control panel选项下的Graph,一种是通过建立方程的Lookup选项。通过选择 13 显示变量,设置X、Y轴划分,曲线宽度等,最后得到多个变量的比较曲线。 Variables Comparing 6,000Rabbit 6,000Rabbit/Year 6,000Rabbit/Year 4Dmnl 0Rabbit 0Rabbit/Year 0Rabbit/Year 0Dmnl 0 2 4 6 8 Time (Year) Rabbit Population - C:\VENSIM\MODELS\CURRENT2Rabbit rabbit births - C:\VENSIM\MODELS\CURRENT2Rabbit/Year rabbit deaths - C:\VENSIM\MODELS\CURRENT2Rabbit/Year effect of crowding on deaths - C:\VENSIM\MODELS\CURRENT2Dmnl 第6章 使用汉字变量建立模型 Vensim中,变量的定义几乎是随意的,完全符合自然语言规范。变量名可以直接定义成相应的单词或词组。在使用英文变量名时,一般约定状态量的第一个字母大写,常量或表函数的字母全大写,而速率量和辅助变量的字母全部小写。在中文Windows或西文Windows环境下,再加中文之星或其它汉字系统,我们可以直接用变量的汉字名作为变量名用于模型。这样使模型建立、运行、分析及模型文档的保存等非常方便易懂。下面以一个简化城市模型为例再次说明Vensim的模型建立、运行和分析过程。 6.1模型建立 14 简化城市模型 建模者:复旦大学管理学院 贾建国 1997.5劳动力与工作岗位比率 劳动力<人口总量> 劳动力因子表劳动力因子工作岗位 企业提供平均岗位率 企业劳动力因子 企业额定折旧率企业额定建设率 企业发展因子企业总量企业折旧企业建设 企业土地系数企业初始总量 企业占地土地占用因子企业土地系数表土地面积 住房土地因子表住房土地因子住房占地 住房初始总量工作吸引力因子表 住房总量住房建设工作吸引力因子住房折旧住房建设因子 住房额定建设率 住房额定折旧率住房可得性因子家庭人口数住户数与住房比率 人口增长百分率住房可得性因子表人口初始总量额定迁出率额定迁入率住房吸引力因子表 住房吸引力因子 人口总量人口迁出人口迁入 吸引力因子 人口出生人口死亡<人口迁入> 额定出生率额定死亡率 , 变量的定义:先定义状态量:人口总量,住房总量,企业总量。 然后再定义速率量,并与相应的状态量连接。最后定义其它类 型的变量。 , 建立因果关系:由变量之间的实际因果用箭头连接各变量。 , 输入常量数据:由Equations选项直接输入常量,注意定义其 单位,单位也可以是汉字。 , 输入表函数数据:先打开Equations选项,再选择Lookup下的 Graph,有具体数据建立表函数。一般情况下,表函数的值是 15 无单位的。 , 建立其它变量的方程式:在Equations选项下,直接选择有 关变量运算符和函数等建立,但要注意输入正确的单位。 , 注释:为了醒目,这里把状态量、速率量、常量、标函数和辅助变 量区别表示。 , 检查:可进行单位检查和模型检查。Vensim对于模型的变量单位 符合情况可进行严格的监测,但又有较强的容错能力,即使单 位有不符,也不影响运行。 建立后的模型如上图。 6.2静态分析 对于人口总量这一变量分析,其原因树、结果树如下图: 住房初始总量 (住房总量) 住房额定建设率住房建设住房总量住房建设因子 (住房总量)住房折旧住房额定折旧率 企业土地系数土地占用因子住房土地因子 住房建设(住房总量)住房总量住房折旧(住房总量) 住房可得性因子住户数与住房比率住房吸引力因子 反馈列举如下:共有6个反馈回路经过该变量。 Loop Number 1 of length 1 住房总量 住房建设 Loop Number 2 of length 1 住房总量 住房折旧 Loop Number 3 of length 4 住房总量 住户数与住房比率 住房可得性因子 住房建设因子 住房建设 Loop Number 4 of length 4 住房总量 土地占用因子 住房土地因子 住房建设因子 住房建设 Loop Number 5 of length 15 16 住房总量 住户数与住房比率 住房吸引力因子 吸引力因子 人口迁入 人口总量 劳动力 劳动力与工作岗位比率 企业劳动力因子 企业发展因子 企业建设 企业总量 土地占用因子 住房土地因子 住房建设因子 住房建设 Loop Number 6 of length 15 住房总量 土地占用因子 企业土地系数 企业发展因子 企业建设 企业总量 工作岗位 劳动力与工作岗位比率 工作吸引力因子 吸引力因子 人口迁入 人口总量 住户数与住房比率 住房可得性因子 住房建设因子 住房建设 模型文档如下: (01) 额定出生率 =0.03 Units: 1/年 Uses: (26)人口出生 - (02) 额定迁出率 = 0.07 Units: 1/年 Uses: (27)人口迁出 - ……………………………….. 17 ………………………………. (37)住房初始总量 - (40)住房建设 - (49)住房折旧 - Uses: (34) - 土地占用因子 (40)住房建设 - (49)住房折旧 - (51)住户数与住房比率 - (51) 住户数与住房比率 = 人口总量/(家庭人口数*住房总量) Units户: /房 (31)人口总量 - (50)住房总量 - (08)家庭人口数 - Uses: (42)住房可得性因子 - (46)住房吸引力因子 - (52) SAVEPER = 1 Units年: The frequency with which output is stored. (53) TIME STEP = 1 Units年: The time step for the simulation. 6.3模型模拟 先按原模型数据模拟一次,再改变住房土地因子表和企业土地 因子表模拟一次,得到数据文件city.vdf和city1.vdf。由运行参数 比较获得以下: Comparing CITY and CITY1 ******Constant differences between CITY and CITY1****** FINAL TIME - has changed in value 50 CITY 100 CITY1 ----------------------------------------------------------- ****** ******Lookup differences between CITY and CITY1 企业土地系数表 - has changed in value CITY CITY1 X | Y X | Y 0 | 1 -0.005155 | 0.7254 0.1 | 1.15 0.1289 | 0.838 0.2 | 1.3 0.2294 | 0.9437 0.3 | 1.4 0.3093 | 1.049 0.4 | 1.45 0.4175 | 1.19 0.5 | 1.4 0.4948 | 1.282 18 0.6 | 1.3 0.567 | 1.394 0.7 | 0.9 0.6211 | 1.493 0.8 | 0.5 0.6985 | 1.585 0.9 | 0.25 0.7448 | 1.62 1 | 0 0.7938 | 1.655 0.8376|1.634 0.8686|1.535 0.8969|1.373 0.9046|1.169 0.9072|1.155 1|0 住房土地因子表 - has changed in value CITY CITY1 X | Y X | Y 0 | 0.4 0 | 0.4 0.1 | 0.7 0.1 | 0.7 0.2 | 1 0.2 | 1 0.3 | 1.25 0.2655 | 1.282 0.4 | 1.45 0.3247 | 1.493 0.5 | 1.5 0.3814 | 1.606 0.6 | 1.5 0.3814 | 1.599 0.7 | 1.4 0.4562 | 1.606 0.8 | 1 0.5541 | 1.415 0.9 | 0.5 0.634 | 1 1 | 0 0.7088 | 0.6549 0.8299|0.3451 1|0 6.3数据集分析 下图分别是住房总量随时间的变化图,它的直接决定变量随时 间的变化图,及它所直接决定的变量随时间的变化图。 CITY CITY1 住房总量 200,000 100,000 002550 Time (年) 19 CITY CITY1 住房总量 200,000 100,000 0 住房建设 4,000 2,000 0 住房折旧 2,000 1,000 0012.52537.550 Time (年) 住房初始总量CITY: 14,000CITY1: 14,000 CITY CITY1 住房总量 200,000 100,000 0土地占用因子 2 1 0住房建设 4,000 2,000 0住房折旧 2,000 1,000 0住户数与住房比率 1 .5 0012.52537.550 Time (年) 第7章 真实性检验 证实所建立的模型的合理性和有效性,有好多方法。而Vensim 所提供的真实性检验(Reality Check)是一种非常有效的方法和工具。它也是 Vensim的一个主要特征。 20 7.1真实性检验的概念 模型是对于现实存在的系统的简化和抽象。我们可以由建立的模型方便的得到系统的行为模式。但如何确定这些行为模式正确性,常用的一种方法是对照现实的情况,仔细分析运行得到的各个变量时间序列数据及其相互关系。在系统复杂、变量多情况下,这是很困难的。一种简单有效的方法是首先确定模型的正确性。如果模型不违反基本的常识和规则,模型本身的合理性得到了检验,则系统的行为模式的真实性就有了保证。真实性检验由这一思想出发,提供了一种简便和有效的方法和工具。 根据要研究的系统的基本情况,我们一般可以提出模型应该遵守的一些基本假定。这些基本假定是保证模型正确的必要条件,构成了对于模型正确性的一系列约束。真实性检验就是在模型建立后,通过标准的约束描述语言,具体地描述这些约束,并通过运行模型,自动的检验系统的行为模式是否违反这些约束。若违反,说明模型尚不完善,则要调整模型的结构和参数,直到符合这些约束条件。真实性检验的描述部分完全独立于模型本身,不会改变模型结构和行为模式。 7.2模型真实性检验的定义 1.变量的命名 检验语句是对于假设的描述,是由实际系统出发对于模型的行为模式的断言。它一般包含的变量是“判断句”。有别于一般的变量用名词命名,它一般用表示判断的短语命名。例如:no worker no production, rain means flooding。 2. 输入测试变量(Test Input) 用来代替一个等式。它只能用作约束的前提条件,可以使约束变得简单易读。在约束表达式中,在其条件部分出现以一个逻辑变量形式出现。其定义形式为: name :TEST INPUT: variable = expression 其中,name表示变量名,:TEST INPUT: 是变量类型标识,而后面等式是定义的对象。等式右边可以是允许的任意表达式。等式左右边的构成变量均来自模型。 例如:best condition :TEST INPUT: temperature = 3*initial tempe rature 3. 时间演进函数(Time Transition) 该函数的自变量是时间,而函数值是随时间变化的变量值。其一般表达式为: variable = TIME TRANSITION (X,…,Y ,….) 其中X是时间,而函数值variable按一定的对应规则取相应的Y。在Y的列举中,可以有“-”,表示保持模型的值,而“*”表示采用模型的计算值。实际上,Y是我们对于模型行为模式随时间变化的一种假定的表示。 主要形式有以下几例: profit = TIME TRANSITION (0,30,80,100,20,50,50,15) 21 表示profit随时间变化的折线图。时间由0、30、80到100,profit由20斜线上升到50,保持50不变,然后斜线下降到15。 profit = TIME TRANSITION (30,80,100,-,50,*) 表示profit在时间30以前采用模型正常值A;在时间区间30-80,profit采用以(30,A)为起点,以(80,50)为终点直线上的值;在时间区间80-100,将采用模型的计算值。 profit = TIME TRANSITION (30,80,100,*,50,*) 表示在时间区间30-80,profit采用模型的计算值,在时间为80时值为50。其余与上相同。 通过一个变量的时间演进函数与一个表达式的积,可以构造另一个变量的时间演进函数。其一般表达式为: variable = TIME TRANSITION (X,…,Y ,…)*expre ssion 例如:big workforce :TEST INPUT: Workforce = TIME TRANSITION(35,50,*,1)* MAX WORKFORCE 又如:good profit :TEST INPUT: profit = TIME TRANSITION(0,30,80,100,1,0.7,0.8,0.9) *(revenue-cost) 注意,“-”和“*”的使用有以下限制: , 时间值必须是递增的。 , “-”不能在数字和另一个“-”后面出现。它只能在第一个Y的位 置出现,但“*”可以在其后面出现。 ”,则“*”后不能再跟随其它的数值,但可, 若一个数值后面有“* 以再跟随一个“*”。 5. 约束的结构 一般的结构是: name(名字) :THE CONDITION: condition(条件) :IMPLIES: consequence(结果) 其中“:THE CONDITION:”和“:IMPLIES:”是约束语句的关键词。而condition是约束语句的条件表达式部分,consequence是结果表达式部分,它们都是逻辑表达式。 逻辑表达式 逻辑表达式可以由“,,>,<,:AND:,:OR:,:NOT:”等构成。在其condition部分,应该尽量采用TEST INPUT变量,这样便于理‎‎解。若不采用,尽量避免使用复杂的逻辑关系。例如: no capital no production :THE CONDITION: Capital = 0 :IMPLIES: Production = 0 big problem :THE CONDITION: Population > 8E9 :AND: (food ratio < 0.75 :OR: Pollution > CRITICAL POLLUTION) :IMPLIES: Food <= TIME TRANSITION(50,100,-,1) 但是,在逻辑表达式中,一般除等式外,不允许出现代数运算。如下式是错误的。 pop lt cc :THE CONDITION: Population < Carrying Capacity *1.1 :IMPLIES: deaths from crowding <1000 可用下式来代替以上: pop lt cc :THE CONDITION: Population,Carrying Capacity *1.1 :IMPLIES: deaths 22 from crowding <1000 或先定义输入测试变量: pop at cc plus 10 :TEST INPUT: Population,Carrying Capac ity *1.1 然后再定义约束: pop lt cc :THE CONDITION: pop at cc plus 10 :IMPLIES: deaths from crowding <1000 无条件约束 有时,约束的条件部分是空的。例如: debt bounded : THE CONDITION: :IMPLIES: debt<4E6 它表示在任何条件下debt的最大值是4E6。在进行该约束时,Vensim将通过模型模拟检验debt的值是否大于4E6。若大于,则报违反信 息。 在结果表达式中的时间演进函数 例如:no birth no pop :THE CONDITION: births = TIME TRANSITION(50,60,*,0) :IMPLIES: Population < TIME TRANSITION(150,160,*,0) 它表示,在停止出生100年后,人口将会为零。 在结果表达式中使用通配符 有时为了检验是否所有变量都满足同一条件,可在结果表达式中使用通配符“*”以代替所有变量。例如: all peaceful :THE CONDITION: FINAL TIME = 101 :IMPLIES: *<1E9 :AND: *>-1E3 用于测试是否所有变量在-1E3和1E9之间。FINAL TIME=101对于检验进行限制,因为若使用无条件表达式,这一检验是很费时间的。 7.3将真实性检验键入模型 在Vensim标准版中,有三种方法将真实性检验加入模型。一种是利用Equation Editor,一种是利用Text Editor,一种是在流图上直接定义变量建立。但Vensim PLE的Equation Editor似乎不提供这一功能。虽然Vensim PLE未提供Text Editor,但我们可以利用其它的文本编辑器实现真实性检验的建立。流图法在Vensim PLE中可以实现。 1.流图法 在模型建立后,可以先利用模型建立工具定义真实性检验的变量,然后用因果关系箭头建立这些变量之间的联系(它们之间联系并不是真实的因果关系),最后在Equation Editor中写入与每个变量有关的表达式。其缺点是从外观上改变了模型的结构。容易造成混乱。例如:图示是建立的inven1.vmf模型。读者可以通过Equation Editor观察变量的定义。 INI INVEN Inventory shipmentsproduction always have stock final demand fill orders when stocked 23 2.使用文本编辑器 一般的文本编辑器,如dos的Edit,win3.X的write,win95的Note book, note pad均可以用来编辑真实性检验。首先,画好模型流图,并输入模型部分的变量等式,然后将模型文件保存为以.mdl形式的文本文件。模型流图见下。然后在以上列举的文本编辑器下打开该文件,输入约束语句。对于inventory.mdl的情况,修改后文本文件内容如下。它包括四部分,第一部分是模型本身;第二部分模型运行时的控制参数;第三部分是增加的真实性检验参数;第四部分是模型流图表示的参数,它是用于在windows下显示流图的。 INI INVEN = 100 ~ g ~ | Inventory = INTEG(production-shipments,INI INVEN) ~ g ~ | production = 30 ~ g/Month ~ | shipments = 20 ~ g/Month ~ | ******************************************************** .Control ********************************************************~ Simulation Control Paramaters | FINAL TIME = 100 ~ Month ~ The final time for the simulation. | INITIAL TIME = 0 ~ Month ~ The initial time for the simulation. | SAVEPER = TIME STEP ~ Month ~ The frequency with which output is stored. | TIME STEP = 1 ~ Month ~ The time step for the simulation. | ******************************************************** .Constraints ********************************************************~ | final demand = 20 ~ g ~ | always have stock :TEST INPUT: Inventory = 3* final demand ~ ~ | 24 fill orders when stocked :THE CONDITION: always have stock :IMPLIES: shipments>=final demand ~ ~ | \\\---/// Sketch information - do not modify anything except names‎‎ INI INVEN Inventoryshipmentsproduction 这样建立的模型真实性检验,不会在流图中出现,比较清晰易懂。 INI INVEN Inventory shipmentsproduction 7.4真实性检验的运行 真实性检验的运行,是选择Windows菜单下的Reality Check实现的。例如对于yeast3模型的运行,会出现以下的对话框。 25 通过选择对于某些约束进行检验或者对于所有约束检验。在检验运行时,会将约束的条件部分嵌入模型,强制给模型中的相关变量赋输入测试值,通过vensim的运行,得到模型输出值,再与约束中的结果部分比较,得到违反或遵守的结论。该模型在选择Hungry from growth时,得到如下结果。共有六个约束,有两个违反。 WARNING: At 0 Above "LIFE FROM WATER LOOKUP" computing "average lifetime". WARNING: At 0 Above "LIFE FROM SUGAR LOOKUP" computing "average lifetime". WARNING: At 0 Above "DIVISION FROM SUGAR LOOKUP" computing "division rate". WARNING: At 0 Above "DIVISION FROM WATER LOOKUP" computing "division rate". Starting to test the constraint hunger from growth at time 0 Starting to test the constraint thirst from growth at time 0 WARNING: At 1 In "LIFE FROM WATER LOOKUP" computing "average lifetime". WARNING: At 1 In "LIFE FROM SUGAR LOOKUP" computing "average lifet‎‎ime". WARNING: At 1 In "DIVISION FROM SUGAR LOOKUP" computing "division rate". WARNING: At 1 In "DIVISION FROM WATER LOOKUP" computing "division rate". The constraint hunger from growth violated at time 11 The constraint thirst from growth violated at time 11 26
本文档为【Vensim使用说明书】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_601191
暂无简介~
格式:doc
大小:264KB
软件:Word
页数:39
分类:企业经营
上传时间:2017-10-16
浏览量:97