


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章系统动力学及DYNAMO语言本章将着重讲述系统动力学的建模思想与建模过程。20世纪40年代,费雷斯特(Forrester)创立系统动力学时,称之为“工业动力学”,当 时它主要是用于解决企业中出现的一些和经营管理有关的问题。例如,产量和雇用的不稳定 性,一国经济发展中的波动与萧条,以及股票市场上的涨落等现象。费雷斯特在系统原理中讲 到,经济学已经确立了在工业系统内的许多基本关系,但这些关系多数是用文字的和定性的方 式描述的。“工业动力学”正是将经济学所观察到的复杂法则条理化的一种工具。20世纪70年代,费雷斯特的系统原理和“工业动力学”的研究方法得到了普遍的应用:解决经营管理中 的规划问题
2、;解决城市的萧条和衰退问题;认识有限的正在减少的自然资源中出现的指数增长 的含义;甚至包括对糖尿病理论的检验(医学)和人与人之间相互作用的关系(心理学)。因 此,“工业动力学”很快就改用了“系统动力学”这一个更广义的名称。“系统”一词,在本章的含义是代表适用范围的广泛性、问题的复杂性以及观点的概括性 即一种用于解决某一特定类型问题的系统的研究方法。应该强调的是,系统动力学着重研 究的是某一类冋题。系统动力学是研究某一类复杂系统问题的一种方法学,它以DYNAMO语言作为建模语言,这使得系统动力学的建模方法具有更为深刻的实际意义。DYNAMO语言的名字是由dynamic (动态)和model两词的
3、词头合并而成,表明了其预期的用途:模拟真实世界系统, 使得它们随时间变化的动态行为能用计算机来跟踪、模拟。系统动力学把现实生活中的复杂系 统映射成系统动力学流图,DYNAMO语言则把系统流图模型送入计算机并计算出数字结果。2. 1系统动力学概述系统动力学的基本思想是充分认识系统中的反馈和动态性,并按一定的规则逐步的建立系 统动力学的结构模式。动态性,是指系统所包含的量具有随时间而变化的特征。比如,企业雇 用员工的变动、股票市场上股票价格和交易额的波动、城市中税收和生活标准的变化、甚至糖 尿病的血糖指标的变化,这些都是动态问题。它们可以用变量随时间变化的图形来表示。系统 动力学中的动态性,不是随
4、机的不稳定的动态性,而是可以预期的,有一定规律的动态性。同 时,某个变动经常在时间上表现出一定的延迟。从这个意义上,也可以说系统动力学的两个基 本观点是:反馈和延迟。 2. 1.1节中讨论有关反馈的问题。2. 2. 2中讨论关于延迟的问题。2. 1. 1反馈系统反馈系统的概念】简而言之,“反馈”是指信息的传送和返回1。“反馈”一词的重点是在“返回”上。反馈的概念是普遍存在的。以取暖系统产生热量温暖房间为例,屋内一个和它相连的探测 器将室温的信息返回给取暖系统,以此来控制系统的开关,因此也控制了屋内的温度。室温探 测器是反馈装置,它和炉子、管道、抽风机一起组成了一个反馈系统。当将上述反馈系统用图
5、来表示时(如图2.1),就成了因果关系图。其中室温、热风调节可称为“元素”或“节点”,从室温到热风调节以及从热风调节到室温的带箭头的弧,可以称 为“影响关系”或“有向线段”。Wiener (1961)P96。室温高,则热风量应减小,可在室温对热风调节影响的箭头上加一个负号。反之,热风量 大,则室温增加,可在热风调节对室温影响的箭头上加一个正号。从整体上看,室温影响热风 量,热风量又影响了室温。从室温回到了室温,这就是一个反馈关系。另一方面,这些互相影 响是相互制约的。因为温度高,则热风量减小,使室温降低。反之,室温低,则增大热风量, 使室温升高。这种关系称为负反馈。图2.2中用一个带负号的环来
6、表示,这个环称为负反馈环,此处,负反馈环的目的是使室温接近恒定的温度。相反,正反馈环总是加大环内的偏差或扰动,它具有不平衡、不断增长的特性。例如在人 口系统中,人口数增加了,每年所出生的人就增加,这就使人口数按指数规律很快的增长下 去。这样,从“人口数”到“每年出生的人”又返回到“人口数”之间就存在一个正反馈(如 图2.3)。增强而不是抵消环中某个元素的变化是所有正反馈环的共同特征。负反馈环的稳定性与正反馈环的不稳定性的这两个特征的区别,可以通过一个正确和错误 地安装电热毯控制的故事来加以说明。一对夫妇有两条电热毯,两条毯子分别装有两个独立的 温度调节装置:一个是丈夫的,一个是妻子的。正确连接
7、时,应该构成两个独立的负反馈系 统,各自控制着自己那一块毯子的温度,使每个人都得到满足,如图2.4A。但是这对夫妇却把两块毯子的温度调节装置装错了。丈夫的温度调节装置接到了妻子的一端,妻子的却接到了 丈夫的一端。结果就出现了如图2.4B所示的令人讨厌的正反馈。妻子觉得冷,就将她的控制器温度调高,致使丈夫一边的温度过高。丈夫却觉得热,于是将他的控制器温度调低,从而使 的妻子一端的温度变低。因此,妻子再次把装置温度调高,如此下去,形成一种戏剧性的局 面。丈夫的期望温度丈夫的调节装置妻子的温度妻子的调节装置妻子的期 望温度图2.4A正确的连接一两个负反馈环丈夫的期望温度丈夫的调节装置丈夫的温度(+)
8、妻子的温度妻子的调 节装置妻子的期 望温度图2.4 B错误的连接一一个正反馈环开环思维】不用反馈的概念来研究问题,往往称为开环思维。例如,我们发现一个问题后,通常要先 思考一番,确定一个处理问题的方案,然后按此方案行动,并认为解决问题的过程到此为止。 这一模式,可以用图 2.5中实线箭头表示的问题一方案一行动的序列来表示,这是一个开环思 维。然而,这一模式忽略了一点:我们的行动会改变系统的状态(图2.5中用虚线箭头表示)。同时,在实施行动方案的过程中,我们可能对问题也会有新的理解,做出新的定义或发 现一些必须解决的新问题。这样,问题一方案一行动又返回问题的序列,是一个反馈观点解决 问题的模式。
9、在系统动力学中的应该用反馈的观点,即闭环地考虑问题,而非开环地考虑问 题。这一点希望读者能在具体建模过程中着重注意并细心体会。问题行动图2.5开环思维与反馈观点作解决问题的比较系统动力学的反馈观点有一个潜在的假设:系统都是反馈系统,要解决这些系统中的复杂 问题,就得逐个找出反馈结构与观察到的疑难问题之间的关系。但人们面临复杂问题时,却总 是希望能将其归于过于简化了的负反馈系统中,利用单一的针锋相对的行动对系统加以有效控 制。事实上,现实中的系统通常情况下并不是依照直接的因果关系连接而成的,而是非线性 的、动态的和层次的。与大多数人所期望的恰恰相反,只在很少的情况下,我们对于复杂系统 中的问题才
10、可能只采取相应的单一行动就可以解决。例如,多建公路与立交桥并不一定就能够 缓解交通拥挤,反而有可能刺激消费者购车的需求,进一步加重交通拥挤的情况。由此可见, 反馈观点经常夸大反馈行为的某一影响,而忽略了其他影响,因而,完全依照反馈观点建立的 模型很容易陷入简单片面的因果决定陷阱。也正是由此,建立在反馈观点之上的系统动力学与DYNAMO 建模方法,不能不分场合地滥用,只有在诸多变量之间的关系可以比较确凿的认识 时,系统动力学的建模方法才可能发挥较大的作用。表2.1日常生活中常见的“反馈问题”与其“对策”问题对策交通拥挤多建公路和立交桥犯罪率升高专项严打和多雇用警察城市贫民增加多建经济实用房汽车尾
11、气污染安装尾气过滤器农作物病虫害多用杀虫剂体温升高吃退烧药本书的最后一章中还将进一步讨论与此相关的问题。2. 1. 2系统动力学概述系统动力学主要研究复杂问题的反馈过程。系统动力学认为,动态行为是系统结构的一个 结果,反馈结构是导致事物随时间变化的根源。系统动力学认为,系统外的作用力并非是导致问题的根源。库存不会因为消费者周期性的 改变订单而波动;生产厂家的生产情况也不会因为消费者的偏好改变而改变。从系统动力学的 观点来看,这些系统行动的根源在系统内部。实际上,内部观点就是把外部的作用力包括在系 统内部的反馈系统模型里。因此消费者的订单和偏好,就成了生产系统的内生变量,成了系统 反馈结构的一部
12、分。用系统动力学的观点来研究一个问题,大致可以分为以下几个阶段:1. 问题的识别和定义2. 系统的概念化3. 模型格式化(模型的建立)4. 模型行为的分析(计算机模拟)5. 策略分析6. 模型的使用或执行每个阶段的起点和终点和整个过程的起点和终点都是对这一系统及其问题的不断深入的理 解。因此,它是一个环,或者网,而不是线性的序列。一个循环之后又可以开始新的一个循 环。可以不断反复迭代。图2.6给出了这些阶段的一个可能的执行进程。系统动力学研究所得出的策略建议,不仅来自模型的最终计算结果,而且还来自模拟过程 中通过各阶段迭代所得到的认识。系统动力学研究最终应该能够提出切实可行的策略建议。因 为模
13、型只是达到目的的工具,最终的目的是提高对现实世界的认识,增加对客观规律的理解。本章各节将大致按照 DYNAMO系统动力学建模的各个阶段来组织,需要提醒读者注意的 是,不要因为本章各节的线性排列顺序而忽略了系统动力学模拟研究所具有的迭代和循环的特 征。2. 2流图与系统概念化无论是对于初学者还是经验丰富的建模者,系统概念化阶段都是系统动力学中最困难的阶 段之一。概念化阶段的两大准则是:(1)明确建模目的;(2)研究问题,而不是研究整个系统。这两点是建模取得成功的先决条件。明确了研究的问题和建模目的,就好像佩带了一副滤 色镜,可以滤去不必要的细节,集中精力研究反馈系统中的主要方面。它们使系统动力学
14、的应 用者和DYNAMO的建模者,不必为了研究某个事物而去考虑所有的事物。在系统动力学模型的概念化时,还须记住:要用动态的观点和极力寻找因果关系的反馈环 的方法来研究复杂的系统。与“滤色镜”相似,这两个特征就好比是建模者的透镜,它们使得 人们清晰的看到应当留在模型中的事物。而使另外一些不应该留在模型中的另一些事物变得模 糊不清。2. 2. 1动态问题的定义一般总要先用一个或多个随时间变化的变量来表示系统动力学所研究的问题中的系统状 态,这些变量又往往用图形来表示。这些图形的建立过程,称为动态思维的过程,它是模式化 的前提和基础。此时并不需要具体的数据或意义明确的函数,只需反映出变量变化的大体趋
15、势 和状态即可。因为研究者所关心的,是变量随时间变化的趋势,而非具体的变化数值。这些随 时间变化的图形,即参考行为方式,是建模的参考和依据,也是检验一个系统动力学模型有效 性的标准之一。建立参考方式是系统动力学研究取得成功的一个必要条件。要作出变量随时间变化的图形,首先要识别系统中那些与待研究问题紧密相关的变量;随 后要确定研究的时间范围。绘出随时间变化的变量图形后,即使正规模型尚未建立,我们也可 以由此来获得一些关于系统的认识。图2.7列举了一个在还没有正规模型的情况下进行动态思维,既建立参考方式的例子,其 图形代表广告所产生的影响。该图表现的是一产品典型的生命周期,反映了盈利、销售量与广
16、告费用之间的联系。时间 A产品引进市场增长市场成熟销售下降图2.7产品广告及其生命周期有时也会出现这样的情况,问题提出来了,但是却没有一个明确的参考方式。这是因为用 户在还没有理解变量随时间变化的大趋势之前,就提出了有关策略变化可能导致的结果之类的 问题。富有经验的建模者常常列出一些可能的策略及其可能产生的影响。这样的一组策略列表 有时能代替一个清晰的动态观点。需要指出一点,在没有参考方式的情况下,要建立一个正规的系统动力学模型是困难的。 因此,建模者至少应该在初学建模时尽量避免这样做。2. 2. 2反馈结构的表示一旦识别了问题,确定了主要变量并定义了参考方式,建模者的任务便是要找出主要变量
17、与其它变量之间的联系,既相互影响或称因果关系。接着,要顺着因果链寻找反馈结构,一旦 因果链自行相连成环,就找到了反馈。在系统动力学建模或称DYNAMO建模中,反馈结构的表达方式主要是图解的形式。常见的图有两类,因果环图和DYNAMO 流图。因果环图主要用于模型概念化的前期阶段以及后来为非技术性文献所准备的关于模型结构的直观描述;而所谓 DYNAMO 流图,或称速率/存量图,则是对模型更详细的描述。模型模式化的第一步通常是绘 制因果环图,其次是速率 /存量的流图,最后是建立起明确的反映图示结构的方程(即模型的 格式化,见2. 3、2. 4节)。本小节将主要介绍有关流图的内容。在此之前,首先对因果
18、环图进行一些必要的介绍。因果环图中的每一个影响关系都有正负之分,根据影响关系的积累效果就可以知道该环的 特性。如图2. 8,将酒倒入酒杯的决定会增加倒酒的速率,从而增加酒杯的存量,于是就减 少了杯中酒的存量与期望存量的差距,从而削弱向酒杯中倒酒的决定倾向。很明显,这一反馈 环是自行削弱的,因而是个负反馈环,这保证了倒酒的动作最终将停止。由这个例子可以归纳出下列两条定理:反馈环为正,如果它有偶数个负因果链;反馈环为负,如果它有奇数个负因果链。因此,反馈环的极性实际上是组成环的所有影响关系符号的代数和。最后需要提醒读者的是,不要将开环误认为是反馈环。如图2. 9就不是一个反馈环。图2. 9海洛因价
19、格与犯罪之间的关系:伪环现在我们开始关于系统动力学流图的介绍。首先将本章开头给出的室温控制的例子,用流 图的形式表现出来,如图 2. 10。图2. 10 室温控制的流图从图中可见,因果关系的元素分别用流图的元素来表示。“室温”用矩形的“存量”表 示,热风调节用阀门型的“速率”来表示,表示影响关系的弧线用实线或虚线来表示。明确的讲,这个系统的目标是把室温调节到某一个给定的温度(附近),热风的大小与给 定温度和室温的温差成正比,这样,可以用更详细的流图2 . 11表示图2. 11室温控制的更详细的流图为了清楚的表示室温是如何影响热风调节的,图2. 11把从室温到热风调节的虚线变成了3个元素,4条虚
20、线。图形排列的形式暗示影响关系的细节。温差是一个新元素,它等于给定 温度减去室温,用圆圈表示,称为辅助变量。给定温度也是一个新元素,用小圆圈加一斜线表 示,称为常量。调节系数是另一个新的常量元素。从调节系数到热风调节的虚线及从温差到热 风调节的虚线暗示热风调节量与温差成正比,其比例系数为调节系数。一般性的过程可以用图2. 12来概括。图2. 10和图2. 11称为系统动力学流图,简称为流图。下面简述流图中的几个基本概念 (其符号见图例),它们也是系统动力学中的基本概念。辅助变量信息链物流源或汇(1)存量(LEVEL ),图中的长方形,象一个水池,可称为水平、存量、积累量、流 位,它是系统的状态
21、,也就是系统的某个指标值。流图中用水池的水位高低来模仿系统状态值 的大小。(2)速率(RATE ),图中的阀门形,可称为决策函数、速度、速率、流率等。它控制着 存量的变化。流图用阀门模拟控制水位的高低的机制。(3)实线称为实物流。实线连接“阀门”和“水池”,模仿控制的通路。它要贯穿存量 和速率,像是水流在其中穿行。(4)不规则的闭曲线称为源或汇。源指实物的来源,汇指实物的去向,好比水的源泉和 去向。它是系统之外的元素。(5)虚线称为信息链,模仿信息传递的过程。它指向速率,表示根据什么信息控制速 率。但不能从这条曲线看出具体控制方式的细节;比如,我们希望采用温差比例方式进行调节,但图2. 11的
22、信息链并不能说明这个问题。在本章2 . 3小节中,将具体讲解如何用DYNAMO 语言中的速率方程来进一步刻画控制的细节。所以,图2. 11既可以表示温差等比例调节,也可以表示温差微分调节或混合调节等等。(6)圆称为辅助变量,辅助表示流速变动的规律。(7)小圆加斜线称为常数,是系统中重要的参数。此外,还有几个问题需要明确:第一,系统的动态变化是指系统状态随时间的变化,即自变量是时间。第二,系统的状态可用系统的一组指标表示,一个指标是一个量,只有确定了单位才可用 一个数值来表示一个量。例如,室温是一个表示室内状态的量,用C作为单位,那么数值10表示室温10C的量。第三,控制指标的速率也具有相应的单
23、位。它的单位应是每单位时间的单位系统状态量。 此例中时间单位如果是小时,那么调节室温的风量单位应该是使室温每小时升高1C的风量。第四,图形的结构要反映这些概念,用实线连接的速率和存量是相互依存和相互对应的。速率是指单位时间存量的变化,存量指速率的积累。因此设时间为t,存量为L,速率为 R,那么 dL/dt=R 或 L=/ Rdt。为了计算出状态值随时间的变化,在从因果关系图转换成流图时,必须用实物流把速率与 其相对应的存量(状态值)相连。实物流只能用在连接存量与速率,不能连接两个存量或两个 速率。当然,速率与相应的存量相连不仅有上述一种形式。一个存量还可以对应多个与之有关 的速率。第五,流图中
24、区分了实物和信息。存量是实物的积累;速率是事物随时间变化的规律;实 物流是实物积散的途径;源和汇是实物的来源和去向。用信息控制速率变动的规律,信息来自 系统外部变量或系统内部存量;信息流是从信息源到速率的路径。【反馈的形式】如果一阶系统中有负反馈,称为一阶负反馈系统。前述的调温系统是典型的一阶负反馈系 统。它的 反馈形式如图 2. 13中曲线1所示。设初始室温和与其温度有一个差别,例如室温低于期望值,由阀门控制热风吹入,由于温差大,命令多进热风,结果室温上升,温差变小, 进入的热风渐渐减小,所以室温上升就越来越慢。室温缓慢接近期望温度,但始终不可以到达 期望温度,只是差别越来越小。如果一阶系统
25、中有正反馈,此系统就称为一阶正反馈系统。细菌生长是一种典型的一阶正反馈系统。假设细菌每小时繁殖一个,开始时有1个细菌,1小时候就有2个,2小时后有4个,3小时后有8个,4小时后有16个,5小时后有32个其因果关系图如图 2. 14。图2. 14细菌生长的因果关系图其流图见图2. 15。细菌出生率图2. 15细菌生长的流图如果仔细考虑,细菌数量的动态描述还应作些补充。细菌除了通过繁殖增加外,还会死亡。因此细菌数量与细菌出生和细菌死亡之间呈现如图2 . 16所示的因果关系。图2. 16考虑死亡的细菌生长因果关系图转换为系统流图如图 2. 17。0" '0细菌出生率细菌寿命图2 .
26、17考虑死亡的细菌生长流图本例中一个存量与两个速率相对应,向内的箭头表示细菌出生使细菌数量增加,向外的箭 头表示细菌死亡使细菌减少。这张流图中所有的量取值都是正的。显然细菌的寿命的倒数是死 亡率。当出生率大于死亡率时,细菌数量呈指数上升的趋势,此系统是一阶正反馈系统(变化 形式如图2 . 13中的曲线2);当出生率小于死亡率时,细菌数量呈指数下降的趋势,此系统 是一阶负反馈系统。如果限定细菌生活在一个有限的空间里,当细菌生长到一定数量后就不能在无限增长下 去,那么就会呈现一个先是指数上升然后又缓慢接近极值的趋势。类似的情况很多,比如增加 推销员,产品销售数量会增加,产品出售增多了,则有更多的钱
27、雇用推销员。开始推销员数量 增长很快,但人们购买这种商品的潜在需求逐渐降低,则这种正反馈就不能持续下去,推销员 或产品出售的数量就开始缓慢回落。它们的动态如图2 . 13中的曲线3。延迟】系统动力学的另一个基本点是延迟。延迟也是普遍存在的,物理学认为“在宏观的自然界 中不存在突变”。一般来说,原因并非立即就能产生结果,往往某个原因经过了一段时间才能 作用产生了效果。比如在调节室温的过程中,空调机马力加大以后,室温不会马上就上升。要 经过一定的热传导的过程,热量不断积累,才会使室温上升。其因果关系如图2. 18。热量积累图2. 18 考虑延迟的室温调节因果关系图把这个因果关系图转换成流图。室温是
28、一个存量,室温增加是对应的速率,它们用实物流 相连。热风调节是热量积累,所以热量积累是一个存量,热风调节是使其增加的对应速率,它 们也用实物流相连。热量积累使室温增加,这是存量对速率的影响,它是一个信息链,用温升 时间常数辅助表示这个关系。最终的系统动力学流图如图2.19。0"调节系数温升时间温差_一给定温度图2. 19考虑延迟的室温调节流图图2. 19所示的系统中有两个存量,可以称为二阶系统。整个主环呈负反馈,称为二阶负 反馈系统。其系统行为是很典型的,在这个系统中出现了延迟,热风调节后并没有立即引起室 温的增加,因而室温发生了振荡。类似地,订货以后,货物需要在途中滞留,经过一段时
29、间才会进入仓库,变成库存。所以 增加订货速度后,库存不是立即增加而是延迟一段时间才增加。这个延迟引起库存值在期望库 存值附近振荡。如图 2. 20。订货时间、时间延迟图2. 20订货一库存流图在图 2 19 中,使室温变化变化的原因可以追溯出一条链。按照常识,室温控制是由热风 调节引起的,但仔细研究,发现热风调节引起了热量积累,才使室温增加,引起室温变化。室 温慢慢地积累,所以调节热风后,经过一段延迟才会有室温变化。这种延迟引起了在某个时 候,关小了热风反而使室温增加,或者开大热风但室温减小的违背常理的情况出现。在时间 上,刚才的阀门打开引起现在的温度升高;在空间上,空调机的热风量加大引起了不
30、是同一处 的室内温度上升。在现实社会中,我们经常可以发现有一些系统比上述的例子更复杂,组成元素更多,反馈 环相互地交织在一起,因而它们的动态规律就更不容易认识。当我们研究某个数量指标变化 时,追源溯本,总可以找出一大串因果关系链。这样初始原因和最终结果之间相隔大量元素, 因而在时间上、空间上,因果之间可能相隔很远,以至于仅靠经验和细心观察绝无发现的可 能,原因与结果之间还会有违背常理的情况出现。系统动力学的建模思想给出了构筑系统动力 学模型的概念模式,因而搭建起了用计算机模拟复杂系统的桥梁,它为发现和处理现实中这些 复杂的具有延迟的因果关系提供了可能。2 23 系统概念化小结得到系统流图是认识
31、系统动态的关键一步。根据系统的原理,采用分析与综合的办法来认 识系统,首先要根据系统的目标找出我们关心的对象,即确定系统的边界;然后把系统分解成 其组成要素,在按照以上介绍的几个原则找反馈环,认识延迟的存在,鉴别出存量和速率,找 出实物流和信息流,并将他们正确的组合成一个有机的整体,形成具有系统动力学特定结构的 流图。流图中相邻的元素之间常常有典型的连接关系,例如,一阶正反馈、一阶负反馈、二阶 负反馈。这些反馈环进一步交织在一起形成一个网。在分析时常采用自顶向下的方法,抓实 质、忽略次要成分,得到一个很粗的模式。这种粗糙的模式若不能满足需求,则一步步地细化 下去。例如,考虑室温调节时,开始认为
32、系统是个简单的一阶负反馈系统,它粗糙的反映了系 统趋向期望温度的模式;细化后看到了延迟,如果需要的话还可以进一步研究,比如可以对复 杂的热量积累进行更细致的描述,表现出热风先经过管道再加热室内空气,甚至室内不同地方 的空气温度也不相同。那样的话,系统结构就更加复杂,且能更细致地反映客观实际。因而, 系统流图具有一个层次结构,可以通过逐步细化逐步的获得越来越符合实际的系统流图。2 3从流图到 DYNAMO 方程所谓模型格式化,是一个将上述流图的模型结构编写成 DYNAMO 方程的过程,也是一个 由非正式的概念认识向正式的定量表达式转换的过程。通过在计算机上运行 DYNAMO 方程确 切地描述的模
33、型可以模拟系统的动态行为。格式化不仅仅是概念化和结果分析之间的一个技术变换阶段。并能提高对系统结构的认 识。一个非正式的因果关系模型一旦编写成方程,便显得清晰明了,一目了然。当然,这样所 得到的正规模型也并不能完全代表真实世界,从这一点上说,它是不精确的。但是,正规模型 却更为明确,因为它必须要为计算机所识别,并能突出地反映出所针对的问题的内在结构。所 以,借助于模型格式化阶段,建模者可以提高对系统结构的认识,建立起对实际情况符合得更 好的 DYNAMO 模型,从而在发现和解决实际问题方面发挥更为现实的作用。在 DYNAMO 语言中,存量是一种变量,速率也是一种变量,要为每个变量制定一个变量
34、名,这个变量名可以是汉语的(在汉化的 DYNAMO 中),也可以是英语的。再用圆点及其后 的下标来表示修饰词现在、过去、时点、时段。假设初始时刻系统状态是已知的(这包括全部 状态值和流率值),就可以把第一个时点的系统状态求出来。因为第一个时点上的指标值=初始时刻指标值 +DT* 初始时刻该指标的总流速。同样的,如果过去的指标值及速率值是已知的,那么有实物流所反映的关系就可以求出现在的指标值。现在的指标值=过去的指标值+DT*过去该指标值的总流速。一个计算复利的存钱系统如图2 . 21所示。图2 . 21复利存钱系统流图钱数的变化要用下边的存量方程表示:钱.K=钱J+DT*钱的增加速率JK或MO
35、NEY.K=MONEY.J+DT*RAMJK其中钱或 MONEY为钱数的变量名,变量名由建模者任意规定,但它们应该有比较清晰 明确的含义。钱的增加率或 RAM是钱数变化的速率的变量名。钱数等于过去的钱数加上流逝的时间乘以这段时间内的钱数增加的速率。对这个记复利的 存钱系统,钱的增加速率是很明显的。在DYNAMO中用一个速率方程表示:钱的增加速率.KL=钱.K*利率或RAM.KL=MONEY.K*CRATE除上述两方程,还有表示钱的初值大小的方程及利率大小的方程。这样,一个存钱系统的 DYNAMO 模型就构成了。它主要包括四个方程,每个方程钱都用一个字母标识方程的类别, 即 L MONEY.K=
36、MONEY.J+DT*RAM.JKRRAM.KL=MONEY.K*CRATECCRATE=0.01NMONEY=100虽然方程中没有明显的指出一个量的单位,但是量的单位是事先约定的。方程中的数值与 约定好的单位结合,才能正确地反映量的大小。在这个存钱的系统中,我们约定钱用“元”作 单位,时间用“月”作单位,利率是指每元钱存一个月会增加0.01元。从流图转化到DYNAMO方程并不困难。存量方程反映了存量总是总流速的积分的过程。 存量方程很容易从流图中得到,因为在流图中已明显地标出流入及流出的速率。速率方程反映 了每个速率变动的规律,指向速率的信息链暗示了速率是由哪几个变量决定的。但这些变量如 何
37、具体的构成流率方程,从流图中上不可得出。例如钱数及利率决定了钱的增加,但钱数乘以 利率是钱数的增加,并没有明显地表现在流图里。相乘的关系是从对存钱系统的研究得到的, 并由DYNAMO方程表示。因此,流图只能反映出速率与什么量有关系,只有速率方程才能完 全地把速率与变量的具体关系描述出来。对于这个简单的例子,DYNAMO方程没有什么优越性,但对于越复杂的系统,其优越性 就越显著。2. 4 DYNAMO 语言DYNAMO 是一种计算机模拟建模语言,其特点是语法简单,容易掌握。一个用 DYNAMO 语言编写的程序,也就是一个针对某一问题的系统动力学模型,它反映了由于系统 状态变量之间的反馈作用,使系
38、统的状态连续地变化。上一节介绍了系统动力学的基本思想,从因果关系图出发,建立了系统动力学的流图,这 是一种反映系统结构的模型。流图模型很形象地用水流来模仿复杂系统。DYNAMO 系统的状态是用一组存量来表示系统的一组指标值。描述“流”像水流似的从源通过“水管”流动着, 经过阀门,阀门的开闭控制它的流速,使在贮槽中存储的水位高低变化,以此模仿指标值大小 的变化。在某些系统中,有几条水管与一个贮槽相连,而这些水管中的水有的流入贮槽,还有 的水管中的水是从贮槽中流出的。流入水管的流速的总和称为流入速率,流出的流速的总和称 为流出速率。常常,一条水管模仿一种因素对指标所产生的影响。与一个指标对应的流速
39、有一 个以上表明多种因素都对这个指标产生影响。与同一个指标对应的这些流速的代数和称为该指 标的总流速。如前所述,指标是其总流速的积分(或称累积),总流速是其指标的微分。在不 会引起误会的情况下,总流速可以简称为流速。若要表示系统动态变化,就要确定一个时间轴,从初始时刻开始,均匀地划分这个时间轴,每一个时间步长记为一个 DT。如图2. 22所示。卜DT Tt图2. 22 时间步长如果把某个时点称为 K时刻或现在时刻,它的前一时点就称为J时刻或过去时刻,它的后一时点就称为L时刻或未来时刻,如图 2. 23。卜DT TIIIJKLt过去现在未来图2. 23 时刻与时段相应地,JK时段称为过去时段,K
40、L时段称为未来时段。DYNAMO 就是利用各个时点上的指标值(LEVEL值)和各个时段上的速率值(RATE值),来计算和表现系统的动态变化。看一个具体的例子,其中流入和流出率都是常量。假定我们每个月从一个仓库中运走100单位的货物,而从供应厂商处每月只能得到80单位的货物,那么,总流率就是-20单位,即仓库的货物以每月 20单位的流速减少,它的动态行为是线性的,其随时间变化的图形将是一条 递减的直线。任何一个学过高中代数的同学都可以通过比算得出仓库的变化,即经过的时间乘 以库存的恒定变化率:库存量(现在)=库存量(过去)+经过时间*恒定变化率但是,当影响仓库的流入和流出量不再是常量而是在不断变
41、化时,情况就变得有趣了。只 学过高中代数的同学只能在绝望中放弃,或等到他学习了微积分的知识后再来解答。但是即使 在那个时候,他也可能无法获得存量随时间变化的精确方程,或者尴尬地发现这个函数是不可 积的。在DYNAMO中,当订单率和货运率随时间的变化而变化时,DYNAMO通过将连续的时间分割为许多离散的时段,并假设在每个小的时段上,流率为常量,这样就可以像只学过代 数的同学那样进行计算,其公式如下:库存(现在) =库存(上一时刻) +(经过的时段) * (假设的恒定总流率)或,用 DYNAMO 中的记号:INV.K=INV.J+DT*(SHPMTS.JK- ORDRCV.JK)INV.K= 当前
42、的库存值 ;INV.J= 一个时段前的库存值 ;SHPMTS.JK = 在过去时段上新进货物数量的流率 ;ORDRCV.JK = 在过去时段上接到的订单数量的流率 ;当然,这样得到的是近似值,但是,当计算的时段足够小,并且流率的变化率不大时,计 算出的结果将非常接近精确值。因此, DYNAMO 是通过对系统模型进行分段(每次一个 DT )计算来模拟一个动态反馈 系统的。对于简单的系统,我们可以进行笔算,但是,如果系统略微复杂,而且计算间距 DT 相当小的话,我们对于这样的计算就无能为力了,而这时使用计算机最为理想。事实上,能够 进行这类计算(用不同的表示方法)的计算机程序语言很多,比如FORT
43、RAN 、C+ 、DELPHI 、 JAVA 等等。但是 DYNAMO 正是为了模拟动态反馈系统而设计的,它会是一个很 好的工具。DYNAMO 语言可以满足那些不熟悉计算机的建模者和经验丰富的程序员的不同需求。DYNAMO 的所有语句可以归为两大类:一是变量描述语句,二是控制语句。组成语句的元素 共有 9 种:( 1)语句类型标识( 2)变量名( 3)时间下标( 4)等号( 5 )圆点( 6)分隔符(7)函数( 8)数值( 9)运算符。本节将详细介绍 DYNAMO 语言的基本内容。2 41 语法元素(1)语句类型标识。 DYNAMO 模型的每一条语句最前边都有一个语句类型标识。以此 标识语句的
44、类型。描述语句的类型标识为一个大写字母。控制语句的类型标识是几个大写字 母。例如,L、R、A、T、N、C是描述语句的类型标识。 SPEC、PRINT、PLOT是控制语句 的类型标识。(2)变量名。 DYNAMO 模型中有多种变量,我们已经熟悉的有存量、速率、辅助变 量、常量。建模者编程时要为每一个变量起一个名字,这个名字应该易于记忆和理解。变量名 的格式在不同的机器上有不同的规定。(3) 时间下标。有 5 种时间下标。 J、 K、 L 分别表示过去、现在、未来时点, JK、 KL 分 别表示过去及未来时段。都用大写字母。(4)等号( =)。用等号把变量及其定义联系起来。(5)圆点()。用变量名
45、加圆点加时间下标标识出变量在不同时期的值。( 6)分隔符。不同机器分隔符不同,常用的分割符有两种:逗号(,)及斜线(/)。(7) 函数。 DYNAMO 中的函数多种多样,前边我们已经接触到的有SIN、 COS、 NOISE、TABLE。其他的各函数及细节以后介绍。(8)数值。 DYNAMO 所允许使用的数值因机器而异。常用的有整数、浮点数及小数。整数一般限定在 6位左右。 DYNAMO 的浮点数使用科学计数法,如 23E3 代表 23000, 12E-2 代表0.12,2.176E4代表21760等等。E前只允许包含6个以下的印刷符号, E后是整数,绝对 值小于 32,小数是一般意义下的小数。
46、小数点前的0可要可不要。(9)运算符。有加( +)、减( -)、乘( *)、除( /)4 种。其含义如同常规的运算符, 用于进行算术运算。2 4 2 变量描述语句DYNAMO 中的变量描述语句一共有 8 种。第一列是由一个字母组成的语句标识;空一格 后是被描述的变量,然后是等号,等号的右边是一个表达式。表达式详细描述了变量如何变动 的计算方式,作为变量的定义。变量和等号及表达式三者是紧紧相接的,称为变量方程。空格 是变量方程结束的标志,空格后的内容将作为注释,不能进行计算。所以如果不小心在键入变 量方程时多键入空格,将会导致模型的错误。各种变量的意义和流图图例同时罗列如下:1) 存量方程,标识
47、为 L 。存量方程把系统中存量的动态用积分的形式描绘出来。例如:L PLANT.K=PLANT.J+DT*(PIN.JK-POU.JK) 就是一个存量方程的例子。一个存量方程要与把与一个存量有关的所有的速率都考虑到。 与一个存量相连的实物流必然是一个或一个以上,其中有的进入该存量,有的离开该存 量。在存量的括号里面应包括所有这些进入及出去的速率的代数和,否则就会有错。对于 存量方程,乘号( *)前的部分在格式上是固定的,因为一个存量的现在是要由同样一个 存量的过去值来求得。如果没有遵守这个格式, DYNAMO 会认为出了语法错误。括号内 的部分的格式是自由的,但一般都是所有与存量对应速率的代数
48、和。2) 速率方程,标识为 R 。一个速率方程描述一个速率具体如何变动,用信息链指向速率的变 量都会影响速率。速率方程应该包括所有这些变量,否则在语义上就会出错。3) 辅助变量( AUXILIARY )方程,标识为 A 。一个辅助变量方程描述一个辅助变量具体如 何变动。辅助变量辅助表达系统中复杂的因果关系。在前面某些简单的模型中,根本没有 出现 A 方程。反之,在实用的复杂系统中辅助变量的数量要比其他变量大得多(见2 5小节的实例)。辅助变量的作用是辅助表达系统中的因果关系。一方面它可以把复杂的因 果关系环中各个重要的概念分离出来,另一方面还可以描述重要的外部变量。4) 初值方程,标识用 N
49、,它表示各种变量的初始值,所以在流图中不会出现。只有存量必须 给定初始值,其他变量的初值可以给定也可以不给定,因为其他变量在初始时刻的值可由 该变量方程通过 LEVEL 变量的初始值计算出来。用 N 方程给定初值有两种方式,一种是 把数值直接赋给变量,作为初值,例如N 植物 =10000另一种是间接地为变量赋值,例如N 植物 =10000N 食肉动物 =0.1* 植物这就意味着:N 植物 =10000N 食肉动物 =1000如果建模者不为 R、A、S 变量置初值,则编译就把这些变量方程中的下标去掉,做为初 值方程。函数的初值也同样处理,把函数中自变量的下标去掉,再通过函数计算就得到了函数 的初
50、值。如果建模者用 N 方程给 R、A、S 变量设了初值,那么机器应该比较上一句得到的初值与 建模者用 N 方程设定的初值之间的差。如果不为 0,机器应自动取舍,不同的编译有不同的考 虑。5) 常量(CONSTENT ),标识为C,在流图上用小圆上画一斜线表示。有的数值在系统中 起着比较重要的作用。这些数值标识系统特征,是重要的参数,反映了某个概念,有必要 将它们特别明确起来,所以不是把这些数值直接写在速率方程、辅助方程或初值方程中, 而是为它们命名。再用常量方程去表示其具体数值的大小。例如在植物出生率的辅助方程A植物出生率 .K=3+ 气候影响 .K+ 随机噪音 .K中,数值 3 是植物出生率
51、的平均数,用一个常量方程表示,概念上更清楚。如此,一个辅 助方程可以由两个方程来表示:A 植物出生率 .K= 植物平均出生率 + 气候影响 .K+ 随机噪音 .KC 植物平均出生率 =3在前边的章节中曾提到系统模型中有变量及参数之分。变量是随某些量变化的函数,参数 在同一次模拟运算中保持不变,在不同的模拟运算中才变化, DYNAMO 中的 C 变量实质 上就是系统模型的参数。6)表变量方程,以 T 为标识,它没有标准的流图图例。表变量方程是为了给出一个给定表函 数的函数值。它的格式很固定:T 某个表名=数,数,数有的机器上可以用“ /”代替“,”作为两个数的分隔符。有关表函数的内容将在2 4
52、4节中介绍。7)补充变量,用 S 为标识。它不是独立的变量,它的目的是为了保留、计算某些量的函数值,以便统计、制表、制图。例如,如果在一个模型中男人数、女人数分别是两个存量, 那么为了计算并显示人口总数,可以引入补充变量。人口总数用S 变量方程定义:S 人口总量 .K= 男人数 .K+ 女人数 .K8)列车变量,标识是 B。列车变量用一变量名标记一组存贮单元,每个存贮单元称为一个车厢,整个一组存贮单元组成为一个列车。车厢用于存贮数据,车厢中的初值用N或C语句赋予。车厢中所存贮的数据可以移动。有两种移动方式:一种方式称为直线列车,车厢 直线串联形成一个直线列车,数据从前一节车厢定时向后一节车厢传
53、送,最后一节车厢的 值移动后就消失了;第二种方式称为环形列车,车厢环形串联首尾相接,形成环形列车, 数据从前一个车厢定时向后一个车厢传送,最后一节车厢的值又返送回第一个车厢。BBB=BOXLIN ( 10,2)定义了一个名为 BB的10节的直线列车,车厢的内容每 2个时间步长(DT)移动一次。BAA=BOXCYC ( 6,4)定义了一个名为 AA 的 6节的环形列车,车厢的内容每 4个步长移动一次。车厢值可以用下标取出,所以 BB( 5)表示BB的第五节车厢的值。上边所定义的列 车变量 BB 、AA 初值可以用两种方式赋予。第一种方式用 N 方程赋予:NBB=BOXLOAD (10,4)表示所
54、有的 BB 的 10车厢的值都为 10*4 即40。BAA=BOXLOAD ( 4,3)表示所有的 AA 的 6个车厢的值都为 4*3 即 12。第二种方式用 C 方程定义:C BB*=4,7,6,5,3,4,1,9,8,1分别表示B (1 )的初值为4, BB (2)的初值为(7),车厢(如BB ( 3)出现在方程的左边表示右边的表达式向它赋值,车厢出现在方程 的右边表示从车厢中取值。列车变量类似于一般程序语言的数组,用于存储以前的数据。 最后,L方程的括号内、R方程、A方程、N方程、S方程的等号右边,只能是表达式。 表达式是关于上述 L、 R、 A、 S、 C、 B 变量及函数和数的代数运
55、算。运算顺序是从左到右, 先乘除后加减,但可以用小括号改变其运算顺序,从内层括号逐步向外计算。2 43 DYNAMO 方程的顺序及时间下标从流图到 DYNAMO 模型,要把流图中的各个元素用相应的变量方程描述,变量方程的顺 序并不重要,只是各个变量都必须写一次且只写一次。每人可以按照自己的习惯安排顺序,个 人的方法各有优缺点。有一种方法是以一个存量为核心,先写这个存量方程,然后逐个写有关 的速率方程。写出一个速率方程之后,就将指向它的每一条信息链逐条地逆着信息链的箭头方 向,将所涉及的辅助变量、命名常数的方程一个一个地写下去,直到碰到一个存量或外部变 量。最后写这个存量的初值方程。在写的过程中
56、,凡是已写的变量不能重写。用这种方法,方程很容易读,很容易查处遗漏的方程。每写一个方程时,应考虑这个方程的含义,也很容易把 语义上的问题弄清楚。还有一种写法是把含义相关的方程放在一起,成为一个子模块。有些很大的模型可以用这 种方法分成许多子模块,甚至子子模块,这样不断地划分下去。建摸着根据自己的情况安排模 型中变量出现的顺序。 DYNAMO编译系统会合理安排变量计算顺序。编写DYNAMO模型中各个变量的方程时,必须遵守下标表(表 2 . 2)中的规定。表2. 2方程左边 变量类型左边变量的 时间下标方程的右边所能包含的变量及时间下标LARSCTNLKJJJK不准包含无下标无下标无下标AKKKJK(C(CRKLKKJK(C(CSKKKJKK(CC无下标不准包含不准包含不准包含不准包含不准包含不准包含不准包含T无下标(C(C(C(C(CN无下标无下标无下标无下标无下标无下标无下标无下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 业务代理服务合同样本
- 住宅水管安装合同标准文本
- ppp公路合同样本
- 买房垫资合同标准文本
- 个人租铺合同范例
- 个人木炭售卖合同标准文本
- 供热转包合同范例
- 公司车辆审代办合同标准文本
- 临时支座合同样本
- 休闲农场招租合同范例
- GB/T 45344-2025建筑用装配式预制燃气管道通用技术条件
- 2025年四川省建筑安全员C证(专职安全员)考试题库
- 2025年美丽中国第六届全国国家版图知识竞赛题库及答案(中小学组)
- 2025年上半年芜湖市国企招聘易考易错模拟试题(共500题)试卷后附参考答案
- 2024年四川成都中考满分作文《爱拼才会赢》
- 2025年围手术期试题及答案三基
- 《婴幼儿心理发展》课件-任务一 婴幼儿心理学的研究对象与研究
- 第八章 统计与概率 第2节 概率 学案(含答案)2025年中考数学人教版一轮复习
- 《海事法规体系讲解》课件
- 2025年广西职业院校技能大赛高职组(智慧物流赛项)参考试题库及答案
- TTDIA 00013-2024 面向低空空域的集群通信平台建设技术规范
评论
0/150
提交评论