第二章 系统动力学及DYNAMO语言_第1页
第二章 系统动力学及DYNAMO语言_第2页
第二章 系统动力学及DYNAMO语言_第3页
第二章 系统动力学及DYNAMO语言_第4页
第二章 系统动力学及DYNAMO语言_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章系统动力学及DYNAMO语言本章将着重讲述系统动力学的建模思想与建模过程。20世纪40年代,费雷斯特(Forrester)创立系统动力学时,称之为“工业动力学”,当时它主要是用于解决企业中出现的一些和经营管理有关的问题。例如,产量和雇用的不稳定性,一国经济发展中的波动与萧条,以及股票市场上的涨落等现象。费雷斯特在系统原理中讲到,经济学已经确立了在工业系统内的许多基本关系,但这些关系多数是用文字的和定性的方式描述的。“工业动力学”正是将经济学所观察到的复杂法则条理化的一种工具。20世纪70年代,费雷斯特的系统原理和“工业动力学”的研究方法得到了普遍的应用:解决经营管理中的规划问题;解决城市

2、的萧条和衰退问题;认识有限的正在减少的自然资源中出现的指数增长的含义;甚至包括对糖尿病理论的检验(医学)和人与人之间相互作用的关系(心理学)。因此,“工业动力学”很快就改用了“系统动力学”这一个更广义的名称。“系统”一词,在本章的含义是代表适用范围的广泛性、问题的复杂性以及观点的概括性即一种用于解决某一特定类型问题的系统的研究方法。应该强调的是,系统动力学着重研究的是某一类问题。系统动力学是研究某一类复杂系统问题的一种方法学,它以DYNAMO语言作为建模语言,这使得系统动力学的建模方法具有更为深刻的实际意义。DYNAMO语言的名字是由dynamic(动态)和model两词的词头合并而成,表明了

3、其预期的用途:模拟真实世界系统,使得它们随时间变化的动态行为能用计算机来跟踪、模拟。系统动力学把现实生活中的复杂系统映射成系统动力学流图,DYNAMO语言则把系统流图模型送入计算机并计算出数字结果。21 系统动力学概述系统动力学的基本思想是充分认识系统中的反馈和动态性,并按一定的规则逐步的建立系统动力学的结构模式。动态性,是指系统所包含的量具有随时间而变化的特征。比如,企业雇用员工的变动、股票市场上股票价格和交易额的波动、城市中税收和生活标准的变化、甚至糖尿病的血糖指标的变化,这些都是动态问题。它们可以用变量随时间变化的图形来表示。系统动力学中的动态性,不是随机的不稳定的动态性,而是可以预期的

4、,有一定规律的动态性。同时,某个变动经常在时间上表现出一定的延迟。从这个意义上,也可以说系统动力学的两个基本观点是:反馈和延迟。21.1节中讨论有关反馈的问题。222中讨论关于延迟的问题。211 反馈系统【 反馈系统的概念 】简而言之,“反馈”是指信息的传送和返回 Wiener(1961),P96。“反馈”一词的重点是在“返回”上。反馈的概念是普遍存在的。以取暖系统产生热量温暖房间为例,屋内一个和它相连的探测器将室温的信息返回给取暖系统,以此来控制系统的开关,因此也控制了屋内的温度。室温探测器是反馈装置,它和炉子、管道、抽风机一起组成了一个反馈系统。当将上述反馈系统用图来表示时(如图2.1),

5、就成了因果关系图。其中室温、热风调节可称为“元素”或“节点”,从室温到热风调节以及从热风调节到室温的带箭头的弧,可以称为“影响关系”或“有向线段”。热风调节室 温图2.1室温控制的因果关系图室温高,则热风量应减小,可在室温对热风调节影响的箭头上加一个负号。反之,热风量大,则室温增加,可在热风调节对室温影响的箭头上加一个正号。从整体上看,室温影响热风量,热风量又影响了室温。从室温回到了室温,这就是一个反馈关系。另一方面,这些互相影响是相互制约的。因为温度高,则热风量减小,使室温降低。反之,室温低,则增大热风量,使室温升高。这种关系称为负反馈。图2.2中用一个带负号的环来表示,这个环称为负反馈环,

6、此处,负反馈环的目的是使室温接近恒定的温度。热风调节 室 温(-)+图2.2室温控制的负反馈环相反,正反馈环总是加大环内的偏差或扰动,它具有不平衡、不断增长的特性。例如在人口系统中,人口数增加了,每年所出生的人就增加,这就使人口数按指数规律很快的增长下去。这样,从“人口数”到“每年出生的人”又返回到“人口数”之间就存在一个正反馈(如图2.3)。增强而不是抵消环中某个元素的变化是所有正反馈环的共同特征。 +每年出生的人口人 口(+)+图2.3人口增长的正反馈环负反馈环的稳定性与正反馈环的不稳定性的这两个特征的区别,可以通过一个正确和错误地安装电热毯控制的故事来加以说明。一对夫妇有两条电热毯,两条

7、毯子分别装有两个独立的温度调节装置:一个是丈夫的,一个是妻子的。正确连接时,应该构成两个独立的负反馈系统,各自控制着自己那一块毯子的温度,使每个人都得到满足,如图2.4A。但是这对夫妇却把两块毯子的温度调节装置装错了。丈夫的温度调节装置接到了妻子的一端,妻子的却接到了丈夫的一端。结果就出现了如图2.4B所示的令人讨厌的正反馈。妻子觉得冷,就将她的控制器温度调高,致使丈夫一边的温度过高。丈夫却觉得热,于是将他的控制器温度调低,从而使的妻子一端的温度变低。因此,妻子再次把装置温度调高,如此下去,形成一种戏剧性的局面。丈夫的期望温度丈夫的温度丈夫的调节装置妻子的温度 (-)妻子的期望温度(-) 妻子

8、的调节装置图2.4A正确的连接两个负反馈环丈夫的温度丈夫的期望温度丈夫的调节装置 (+)妻子的温度妻子的调节装置妻子的期望温度图2.4错误的连接一个正反馈环【 开环思维 】不用反馈的概念来研究问题,往往称为开环思维。例如,我们发现一个问题后,通常要先思考一番,确定一个处理问题的方案,然后按此方案行动,并认为解决问题的过程到此为止。这一模式,可以用图2.5中实线箭头表示的问题方案行动的序列来表示,这是一个开环思维。然而,这一模式忽略了一点:我们的行动会改变系统的状态(图2.5中用虚线箭头表示)。同时,在实施行动方案的过程中,我们可能对问题也会有新的理解,做出新的定义或发现一些必须解决的新问题。这

9、样,问题方案行动又返回问题的序列,是一个反馈观点解决问题的模式。在系统动力学中的应该用反馈的观点,即闭环地考虑问题,而非开环地考虑问题。这一点希望读者能在具体建模过程中着重注意并细心体会。问题方案行动图2.5开环思维与反馈观点作解决问题的比较系统动力学的反馈观点有一个潜在的假设:系统都是反馈系统,要解决这些系统中的复杂问题,就得逐个找出反馈结构与观察到的疑难问题之间的关系。但人们面临复杂问题时,却总是希望能将其归于过于简化了的负反馈系统中,利用单一的针锋相对的行动对系统加以有效控制。事实上,现实中的系统通常情况下并不是依照直接的因果关系连接而成的,而是非线性的、动态的和层次的。与大多数人所期望

10、的恰恰相反,只在很少的情况下,我们对于复杂系统中的问题才可能只采取相应的单一行动就可以解决。例如,多建公路与立交桥并不一定就能够缓解交通拥挤,反而有可能刺激消费者购车的需求,进一步加重交通拥挤的情况。由此可见,反馈观点经常夸大反馈行为的某一影响,而忽略了其他影响,因而,完全依照反馈观点建立的模型很容易陷入简单片面的因果决定陷阱。也正是由此,建立在反馈观点之上的系统动力学与DYNAMO建模方法,不能不分场合地滥用,只有在诸多变量之间的关系可以比较确凿的认识时,系统动力学的建模方法才可能发挥较大的作用。表2.1 日常生活中常见的“反馈问题”与其“对策”问 题对 策交通拥挤多建公路和立交桥犯罪率升高

11、专项严打和多雇用警察城市贫民增加多建经济实用房汽车尾气污染安装尾气过滤器农作物病虫害多用杀虫剂体温升高吃退烧药本书的最后一章中还将进一步讨论与此相关的问题。212 系统动力学概述系统动力学主要研究复杂问题的反馈过程。系统动力学认为,动态行为是系统结构的一个结果,反馈结构是导致事物随时间变化的根源。系统动力学认为,系统外的作用力并非是导致问题的根源。库存不会因为消费者周期性的改变订单而波动;生产厂家的生产情况也不会因为消费者的偏好改变而改变。从系统动力学的观点来看,这些系统行动的根源在系统内部。实际上,内部观点就是把外部的作用力包括在系统内部的反馈系统模型里。因此消费者的订单和偏好,就成了生产系

12、统的内生变量,成了系统反馈结构的一部分。用系统动力学的观点来研究一个问题,大致可以分为以下几个阶段:1. 问题的识别和定义2. 系统的概念化3. 模型格式化(模型的建立)4. 模型行为的分析(计算机模拟)5. 策略分析6. 模型的使用或执行每个阶段的起点和终点和整个过程的起点和终点都是对这一系统及其问题的不断深入的理解。因此,它是一个环,或者网,而不是线性的序列。一个循环之后又可以开始新的一个循环。可以不断反复迭代。图2.6给出了这些阶段的一个可能的执行进程。策略的执行对一个系统的认识问题的定义策略分析计算机模拟系统的概念化模型的建立 图2.6系统动力学建模研究步骤系统动力学研究所得出的策略建

13、议,不仅来自模型的最终计算结果,而且还来自模拟过程中通过各阶段迭代所得到的认识。系统动力学研究最终应该能够提出切实可行的策略建议。因为模型只是达到目的的工具,最终的目的是提高对现实世界的认识,增加对客观规律的理解。本章各节将大致按照DYNAMO系统动力学建模的各个阶段来组织,需要提醒读者注意的是,不要因为本章各节的线性排列顺序而忽略了系统动力学模拟研究所具有的迭代和循环的特征。22 流图与系统概念化无论是对于初学者还是经验丰富的建模者,系统概念化阶段都是系统动力学中最困难的阶段之一。概念化阶段的两大准则是:(1)明确建模目的;(2)研究问题,而不是研究整个系统。这两点是建模取得成功的先决条件。

14、明确了研究的问题和建模目的,就好像佩带了一副滤色镜,可以滤去不必要的细节,集中精力研究反馈系统中的主要方面。它们使系统动力学的应用者和DYNAMO的建模者,不必为了研究某个事物而去考虑所有的事物。在系统动力学模型的概念化时,还须记住:要用动态的观点和极力寻找因果关系的反馈环的方法来研究复杂的系统。与“滤色镜”相似,这两个特征就好比是建模者的透镜,它们使得人们清晰的看到应当留在模型中的事物。而使另外一些不应该留在模型中的另一些事物变得模糊不清。221 动态问题的定义一般总要先用一个或多个随时间变化的变量来表示系统动力学所研究的问题中的系统状态,这些变量又往往用图形来表示。这些图形的建立过程,称为

15、动态思维的过程,它是模式化的前提和基础。此时并不需要具体的数据或意义明确的函数,只需反映出变量变化的大体趋势和状态即可。因为研究者所关心的,是变量随时间变化的趋势,而非具体的变化数值。这些随时间变化的图形,即参考行为方式,是建模的参考和依据,也是检验一个系统动力学模型有效性的标准之一。建立参考方式是系统动力学研究取得成功的一个必要条件。要作出变量随时间变化的图形,首先要识别系统中那些与待研究问题紧密相关的变量;随后要确定研究的时间范围。绘出随时间变化的变量图形后,即使正规模型尚未建立,我们也可以由此来获得一些关于系统的认识。图2.7列举了一个在还没有正规模型的情况下进行动态思维,既建立参考方式

16、的例子,其图形代表广告所产生的影响。该图表现的是一产品典型的生命周期,反映了盈利、销售量与广告费用之间的联系。时间产品引进市场增长 市场成熟销售下降销售量曲线作为销售百分比的广告曲线盈利曲线图2.7产品广告及其生命周期有时也会出现这样的情况,问题提出来了,但是却没有一个明确的参考方式。这是因为用户在还没有理解变量随时间变化的大趋势之前,就提出了有关策略变化可能导致的结果之类的问题。富有经验的建模者常常列出一些可能的策略及其可能产生的影响。这样的一组策略列表有时能代替一个清晰的动态观点。需要指出一点,在没有参考方式的情况下,要建立一个正规的系统动力学模型是困难的。因此,建模者至少应该在初学建模时

17、尽量避免这样做。222 反馈结构的表示一旦识别了问题,确定了主要变量并定义了参考方式,建模者的任务便是要找出主要变量与其它变量之间的联系,既相互影响或称因果关系。接着,要顺着因果链寻找反馈结构,一旦因果链自行相连成环,就找到了反馈。在系统动力学建模或称DYNAMO建模中,反馈结构的表达方式主要是图解的形式。常见的图有两类,因果环图和DYNAMO流图。因果环图主要用于模型概念化的前期阶段以及后来为非技术性文献所准备的关于模型结构的直观描述;而所谓DYNAMO流图,或称速率/存量图,则是对模型更详细的描述。模型模式化的第一步通常是绘制因果环图,其次是速率/存量的流图,最后是建立起明确的反映图示结构

18、的方程(即模型的格式化,见23、24节)。本小节将主要介绍有关流图的内容。在此之前,首先对因果环图进行一些必要的介绍。因果环图中的每一个影响关系都有正负之分,根据影响关系的积累效果就可以知道该环的特性。如图28,将酒倒入酒杯的决定会增加倒酒的速率,从而增加酒杯的存量,于是就减少了杯中酒的存量与期望存量的差距,从而削弱向酒杯中倒酒的决定倾向。很明显,这一反馈环是自行削弱的,因而是个负反馈环,这保证了倒酒的动作最终将停止。杯中酒的存量倒酒的决定倒酒的速率差距期望的存量 + - + (-) + +图28 反馈环的极性由这个例子可以归纳出下列两条定理:l 反馈环为正,如果它有偶数个负因果链;l 反馈环

19、为负,如果它有奇数个负因果链。因此,反馈环的极性实际上是组成环的所有影响关系符号的代数和。最后需要提醒读者的是,不要将开环误认为是反馈环。如图29就不是一个反馈环。海洛因价格上瘾者与海洛因相关的犯罪维持习惯所需的钱每个上瘾者的犯罪频率 + + + -图29海洛因价格与犯罪之间的关系:伪环现在我们开始关于系统动力学流图的介绍。首先将本章开头给出的室温控制的例子,用流图的形式表现出来,如图210。室 温热风调节图210室温控制的流图从图中可见,因果关系的元素分别用流图的元素来表示。“室温”用矩形的“存量”表示,热风调节用阀门型的“速率”来表示,表示影响关系的弧线用实线或虚线来表示。明确的讲,这个系

20、统的目标是把室温调节到某一个给定的温度(附近),热风的大小与给定温度和室温的温差成正比,这样,可以用更详细的流图211表示热风调节室 温 温 差调节系数 给定温度图211室温控制的更详细的流图为了清楚的表示室温是如何影响热风调节的,图211把从室温到热风调节的虚线变成了3个元素,4条虚线。图形排列的形式暗示影响关系的细节。温差是一个新元素,它等于给定温度减去室温,用圆圈表示,称为辅助变量。给定温度也是一个新元素,用小圆圈加一斜线表示,称为常量。调节系数是另一个新的常量元素。从调节系数到热风调节的虚线及从温差到热风调节的虚线暗示热风调节量与温差成正比,其比例系数为调节系数。一般性的过程可以用图2

21、12来概括。由信息确定如何控制信息从系统获取信息控制控制作用指标图212流图的一般过程图210和图211称为系统动力学流图,简称为流图。下面简述流图中的几个基本概念(其符号见图例),它们也是系统动力学中的基本概念。图 例存量速率辅助变量函数常量信息链物流源或汇(1)存量(LEVEL),图中的长方形,象一个水池,可称为水平、存量、积累量、流位,它是系统的状态,也就是系统的某个指标值。流图中用水池的水位高低来模仿系统状态值的大小。(2)速率(RATE),图中的阀门形,可称为决策函数、速度、速率、流率等。它控制着存量的变化。流图用阀门模拟控制水位的高低的机制。(3)实线称为实物流。实线连接“阀门”和

22、“水池”,模仿控制的通路。它要贯穿存量和速率,像是水流在其中穿行。(4)不规则的闭曲线称为源或汇。源指实物的来源,汇指实物的去向,好比水的源泉和去向。它是系统之外的元素。(5)虚线称为信息链,模仿信息传递的过程。它指向速率,表示根据什么信息控制速率。但不能从这条曲线看出具体控制方式的细节;比如,我们希望采用温差比例方式进行调节,但图211的信息链并不能说明这个问题。在本章23小节中,将具体讲解如何用DYNAMO语言中的速率方程来进一步刻画控制的细节。所以,图211既可以表示温差等比例调节,也可以表示温差微分调节或混合调节等等。(6)圆称为辅助变量,辅助表示流速变动的规律。(7)小圆加斜线称为常

23、数,是系统中重要的参数。此外,还有几个问题需要明确:第一,系统的动态变化是指系统状态随时间的变化,即自变量是时间。第二,系统的状态可用系统的一组指标表示,一个指标是一个量,只有确定了单位才可用一个数值来表示一个量。例如,室温是一个表示室内状态的量,用作为单位,那么数值10表示室温10的量。第三,控制指标的速率也具有相应的单位。它的单位应是每单位时间的单位系统状态量。此例中时间单位如果是小时,那么调节室温的风量单位应该是使室温每小时升高1的风量。第四,图形的结构要反映这些概念,用实线连接的速率和存量是相互依存和相互对应的。速率是指单位时间存量的变化,存量指速率的积累。因此设时间为t,存量为L,速

24、率为R,那么dL/dt=R或L=Rdt。为了计算出状态值随时间的变化,在从因果关系图转换成流图时,必须用实物流把速率与其相对应的存量(状态值)相连。实物流只能用在连接存量与速率,不能连接两个存量或两个速率。当然,速率与相应的存量相连不仅有上述一种形式。一个存量还可以对应多个与之有关的速率。第五,流图中区分了实物和信息。存量是实物的积累;速率是事物随时间变化的规律;实物流是实物积散的途径;源和汇是实物的来源和去向。用信息控制速率变动的规律,信息来自系统外部变量或系统内部存量;信息流是从信息源到速率的路径。【 反馈的形式 】上述简单的系统内只有一个存量,称为一阶系统。一阶系统有多种多样的变化模式。

25、如图213所示。 2 13图213一阶系统的反馈形式如果一阶系统中有负反馈,称为一阶负反馈系统。前述的调温系统是典型的一阶负反馈系统。它的 反馈形式如图213中曲线1所示。设初始室温和与其温度有一个差别,例如室温低于期望值,由阀门控制热风吹入,由于温差大,命令多进热风,结果室温上升,温差变小,进入的热风渐渐减小,所以室温上升就越来越慢。室温缓慢接近期望温度,但始终不可以到达期望温度,只是差别越来越小。如果一阶系统中有正反馈,此系统就称为一阶正反馈系统。细菌生长是一种典型的一阶正反馈系统。假设细菌每小时繁殖一个,开始时有1个细菌,1小时候就有2个,2小时后有4个,3小时后有8个,4小时后有16个

26、,5小时后有32个其因果关系图如图214。细菌出生细 菌 + (+) +图214细菌生长的因果关系图其流图见图215。细菌出生细 菌 细菌出生率图215细菌生长的流图如果仔细考虑,细菌数量的动态描述还应作些补充。细菌除了通过繁殖增加外,还会死亡。因此细菌数量与细菌出生和细菌死亡之间呈现如图216所示的因果关系。+ +细菌死亡细菌细菌出生 (+) () + 图216考虑死亡的细菌生长因果关系图转换为系统流图如图217。细菌死亡细 菌细菌出生 细菌出生率细菌寿命图217考虑死亡的细菌生长流图本例中一个存量与两个速率相对应,向内的箭头表示细菌出生使细菌数量增加,向外的箭头表示细菌死亡使细菌减少。这张

27、流图中所有的量取值都是正的。显然细菌的寿命的倒数是死亡率。当出生率大于死亡率时,细菌数量呈指数上升的趋势,此系统是一阶正反馈系统(变化形式如图213中的曲线2);当出生率小于死亡率时,细菌数量呈指数下降的趋势,此系统是一阶负反馈系统。如果限定细菌生活在一个有限的空间里,当细菌生长到一定数量后就不能在无限增长下去,那么就会呈现一个先是指数上升然后又缓慢接近极值的趋势。类似的情况很多,比如增加推销员,产品销售数量会增加,产品出售增多了,则有更多的钱雇用推销员。开始推销员数量增长很快,但人们购买这种商品的潜在需求逐渐降低,则这种正反馈就不能持续下去,推销员或产品出售的数量就开始缓慢回落。它们的动态如

28、图213中的曲线3。【 延迟 】系统动力学的另一个基本点是延迟。延迟也是普遍存在的,物理学认为“在宏观的自然界中不存在突变”。一般来说,原因并非立即就能产生结果,往往某个原因经过了一段时间才能作用产生了效果。比如在调节室温的过程中,空调机马力加大以后,室温不会马上就上升。要经过一定的热传导的过程,热量不断积累,才会使室温上升。其因果关系如图218。热量积累 + +热风调节室温增加()室温 +图218考虑延迟的室温调节因果关系图 把这个因果关系图转换成流图。室温是一个存量,室温增加是对应的速率,它们用实物流相连。热风调节是热量积累,所以热量积累是一个存量,热风调节是使其增加的对应速率,它们也用实

29、物流相连。热量积累使室温增加,这是存量对速率的影响,它是一个信息链,用温升时间常数辅助表示这个关系。最终的系统动力学流图如图219。热风调节热量积累室温增加室温 调节系数 温升时间 温 差给定温度图219考虑延迟的室温调节流图图219所示的系统中有两个存量,可以称为二阶系统。整个主环呈负反馈,称为二阶负反馈系统。其系统行为是很典型的,在这个系统中出现了延迟,热风调节后并没有立即引起室温的增加,因而室温发生了振荡。类似地,订货以后,货物需要在途中滞留,经过一段时间才会进入仓库,变成库存。所以增加订货速度后,库存不是立即增加而是延迟一段时间才增加。这个延迟引起库存值在期望库存值附近振荡。如图220

30、。库存进货速度积存订单订货速度 订货时间 时间延迟 差 值 期望库存图220订货库存流图在图219中,使室温变化变化的原因可以追溯出一条链。按照常识,室温控制是由热风调节引起的,但仔细研究,发现热风调节引起了热量积累,才使室温增加,引起室温变化。室温慢慢地积累,所以调节热风后,经过一段延迟才会有室温变化。这种延迟引起了在某个时候,关小了热风反而使室温增加,或者开大热风但室温减小的违背常理的情况出现。在时间上,刚才的阀门打开引起现在的温度升高;在空间上,空调机的热风量加大引起了不是同一处的室内温度上升。在现实社会中,我们经常可以发现有一些系统比上述的例子更复杂,组成元素更多,反馈环相互地交织在一

31、起,因而它们的动态规律就更不容易认识。当我们研究某个数量指标变化时,追源溯本,总可以找出一大串因果关系链。这样初始原因和最终结果之间相隔大量元素,因而在时间上、空间上,因果之间可能相隔很远,以至于仅靠经验和细心观察绝无发现的可能,原因与结果之间还会有违背常理的情况出现。系统动力学的建模思想给出了构筑系统动力学模型的概念模式,因而搭建起了用计算机模拟复杂系统的桥梁,它为发现和处理现实中这些复杂的具有延迟的因果关系提供了可能。223 系统概念化小结得到系统流图是认识系统动态的关键一步。根据系统的原理,采用分析与综合的办法来认识系统,首先要根据系统的目标找出我们关心的对象,即确定系统的边界;然后把系

32、统分解成其组成要素,在按照以上介绍的几个原则找反馈环,认识延迟的存在,鉴别出存量和速率,找出实物流和信息流,并将他们正确的组合成一个有机的整体,形成具有系统动力学特定结构的流图。流图中相邻的元素之间常常有典型的连接关系,例如,一阶正反馈、一阶负反馈、二阶负反馈。这些反馈环进一步交织在一起形成一个网。在分析时常采用自顶向下的方法,抓实质、忽略次要成分,得到一个很粗的模式。这种粗糙的模式若不能满足需求,则一步步地细化下去。例如,考虑室温调节时,开始认为系统是个简单的一阶负反馈系统,它粗糙的反映了系统趋向期望温度的模式;细化后看到了延迟,如果需要的话还可以进一步研究,比如可以对复杂的热量积累进行更细

33、致的描述,表现出热风先经过管道再加热室内空气,甚至室内不同地方的空气温度也不相同。那样的话,系统结构就更加复杂,且能更细致地反映客观实际。因而,系统流图具有一个层次结构,可以通过逐步细化逐步的获得越来越符合实际的系统流图。23 从流图到DYNAMO方程所谓模型格式化,是一个将上述流图的模型结构编写成DYNAMO方程的过程,也是一个由非正式的概念认识向正式的定量表达式转换的过程。通过在计算机上运行DYNAMO方程确切地描述的模型可以模拟系统的动态行为。格式化不仅仅是概念化和结果分析之间的一个技术变换阶段。并能提高对系统结构的认识。一个非正式的因果关系模型一旦编写成方程,便显得清晰明了,一目了然。

34、当然,这样所得到的正规模型也并不能完全代表真实世界,从这一点上说,它是不精确的。但是,正规模型却更为明确,因为它必须要为计算机所识别,并能突出地反映出所针对的问题的内在结构。所以,借助于模型格式化阶段,建模者可以提高对系统结构的认识,建立起对实际情况符合得更好的DYNAMO模型,从而在发现和解决实际问题方面发挥更为现实的作用。在DYNAMO语言中,存量是一种变量,速率也是一种变量,要为每个变量制定一个变量名,这个变量名可以是汉语的(在汉化的DYNAMO中),也可以是英语的。再用圆点及其后的下标来表示修饰词现在、过去、时点、时段。假设初始时刻系统状态是已知的(这包括全部状态值和流率值),就可以把

35、第一个时点的系统状态求出来。因为第一个时点上的指标值=初始时刻指标值+DT*初始时刻该指标的总流速。同样的,如果过去的指标值及速率值是已知的,那么有实物流所反映的关系就可以求出现在的指标值。现在的指标值=过去的指标值+DT*过去该指标值的总流速。一个计算复利的存钱系统如图221所示。RAMMONEY CRATE 0.01图221复利存钱系统流图钱数的变化要用下边的存量方程表示:钱.K=钱.J+DT*钱的增加速率.JK或MONEY.K=MONEY.J+DT*RAM.JK其中钱或MONEY为钱数的变量名,变量名由建模者任意规定,但它们应该有比较清晰明确的含义。钱的增加率或RAM是钱数变化的速率的变

36、量名。钱数等于过去的钱数加上流逝的时间乘以这段时间内的钱数增加的速率。对这个记复利的存钱系统,钱的增加速率是很明显的。在DYNAMO中用一个速率方程表示:钱的增加速率.KL=钱.K*利率或RAM.KL=MONEY.K*CRATE除上述两方程,还有表示钱的初值大小的方程及利率大小的方程。这样,一个存钱系统的DYNAMO模型就构成了。它主要包括四个方程,每个方程钱都用一个字母标识方程的类别,即LMONEY.K=MONEY.J+DT*RAM.JKRRAM.KL=MONEY.K*CRATECCRATE=0.01NMONEY=100虽然方程中没有明显的指出一个量的单位,但是量的单位是事先约定的。方程中的

37、数值与约定好的单位结合,才能正确地反映量的大小。在这个存钱的系统中,我们约定钱用“元”作单位,时间用“月”作单位,利率是指每元钱存一个月会增加0.01元。从流图转化到DYNAMO方程并不困难。存量方程反映了存量总是总流速的积分的过程。存量方程很容易从流图中得到,因为在流图中已明显地标出流入及流出的速率。速率方程反映了每个速率变动的规律,指向速率的信息链暗示了速率是由哪几个变量决定的。但这些变量如何具体的构成流率方程,从流图中上不可得出。例如钱数及利率决定了钱的增加,但钱数乘以利率是钱数的增加,并没有明显地表现在流图里。相乘的关系是从对存钱系统的研究得到的,并由DYNAMO方程表示。因此,流图只

38、能反映出速率与什么量有关系,只有速率方程才能完全地把速率与变量的具体关系描述出来。对于这个简单的例子,DYNAMO方程没有什么优越性,但对于越复杂的系统,其优越性就越显著。24DYNAMO语言DYNAMO是一种计算机模拟建模语言,其特点是语法简单,容易掌握。一个用DYNAMO语言编写的程序,也就是一个针对某一问题的系统动力学模型,它反映了由于系统状态变量之间的反馈作用,使系统的状态连续地变化。上一节介绍了系统动力学的基本思想,从因果关系图出发,建立了系统动力学的流图,这是一种反映系统结构的模型。流图模型很形象地用水流来模仿复杂系统。DYNAMO系统的状态是用一组存量来表示系统的一组指标值。描述

39、“流”像水流似的从源通过“水管”流动着,经过阀门,阀门的开闭控制它的流速,使在贮槽中存储的水位高低变化,以此模仿指标值大小的变化。在某些系统中,有几条水管与一个贮槽相连,而这些水管中的水有的流入贮槽,还有的水管中的水是从贮槽中流出的。流入水管的流速的总和称为流入速率,流出的流速的总和称为流出速率。常常,一条水管模仿一种因素对指标所产生的影响。与一个指标对应的流速有一个以上表明多种因素都对这个指标产生影响。与同一个指标对应的这些流速的代数和称为该指标的总流速。如前所述,指标是其总流速的积分(或称累积),总流速是其指标的微分。在不会引起误会的情况下,总流速可以简称为流速。若要表示系统动态变化,就要

40、确定一个时间轴,从初始时刻开始,均匀地划分这个时间轴,每一个时间步长记为一个DT。如图2.22所示。 DTt图2.22时间步长如果把某个时点称为K时刻或现在时刻,它的前一时点就称为J时刻或过去时刻,它的后一时点就称为L时刻或未来时刻,如图2.23。 DTJ K L t过去 现在 未来图2.23时刻与时段相应地,JK时段称为过去时段,KL时段称为未来时段。DYNAMO就是利用各个时点上的指标值(LEVEL值)和各个时段上的速率值(RATE值),来计算和表现系统的动态变化。看一个具体的例子,其中流入和流出率都是常量。假定我们每个月从一个仓库中运走100单位的货物,而从供应厂商处每月只能得到80单位

41、的货物,那么,总流率就是-20单位,即仓库的货物以每月20单位的流速减少,它的动态行为是线性的,其随时间变化的图形将是一条递减的直线。任何一个学过高中代数的同学都可以通过比算得出仓库的变化,即经过的时间乘以库存的恒定变化率:库存量(现在)=库存量(过去)+经过时间*恒定变化率但是,当影响仓库的流入和流出量不再是常量而是在不断变化时,情况就变得有趣了。只学过高中代数的同学只能在绝望中放弃,或等到他学习了微积分的知识后再来解答。但是即使在那个时候,他也可能无法获得存量随时间变化的精确方程,或者尴尬地发现这个函数是不可积的。在DYNAMO中,当订单率和货运率随时间的变化而变化时,DYNAMO通过将连

42、续的时间分割为许多离散的时段,并假设在每个小的时段上,流率为常量,这样就可以像只学过代数的同学那样进行计算,其公式如下:库存(现在)=库存(上一时刻)+(经过的时段)*(假设的恒定总流率)或,用DYNAMO中的记号:INV.K=INV.J+DT*(SHPMTS.JK- ORDRCV.JK)INV.K=当前的库存值;INV.J=一个时段前的库存值;SHPMTS.JK =在过去时段上新进货物数量的流率;ORDRCV.JK =在过去时段上接到的订单数量的流率;当然,这样得到的是近似值,但是,当计算的时段足够小,并且流率的变化率不大时,计算出的结果将非常接近精确值。因此,DYNAMO是通过对系统模型进

43、行分段(每次一个DT)计算来模拟一个动态反馈系统的。对于简单的系统,我们可以进行笔算,但是,如果系统略微复杂,而且计算间距DT相当小的话,我们对于这样的计算就无能为力了,而这时使用计算机最为理想。事实上,能够进行这类计算(用不同的表示方法)的计算机程序语言很多,比如FORTRAN、C+、DELPHI、JAVA等等。但是DYNAMO正是为了模拟动态反馈系统而设计的,它会是一个很好的工具。DYNAMO语言可以满足那些不熟悉计算机的建模者和经验丰富的程序员的不同需求。DYNAMO的所有语句可以归为两大类:一是变量描述语句,二是控制语句。组成语句的元素共有9种:(1)语句类型标识(2)变量名(3)时间

44、下标(4)等号(5)圆点(6)分隔符(7)函数(8)数值(9)运算符。本节将详细介绍DYNAMO语言的基本内容。241语法元素(1)语句类型标识。DYNAMO模型的每一条语句最前边都有一个语句类型标识。以此标识语句的类型。描述语句的类型标识为一个大写字母。控制语句的类型标识是几个大写字母。例如,L、R、A、T、N、C是描述语句的类型标识。SPEC、PRINT、PLOT是控制语句的类型标识。(2)变量名。DYNAMO模型中有多种变量,我们已经熟悉的有存量、速率、辅助变量、常量。建模者编程时要为每一个变量起一个名字,这个名字应该易于记忆和理解。变量名的格式在不同的机器上有不同的规定。(3)时间下标

45、。有5种时间下标。J、K、L分别表示过去、现在、未来时点,JK、KL分别表示过去及未来时段。都用大写字母。(4)等号(=)。用等号把变量及其定义联系起来。(5)圆点()。用变量名加圆点加时间下标标识出变量在不同时期的值。(6)分隔符。不同机器分隔符不同,常用的分割符有两种:逗号(,)及斜线(/)。(7)函数。DYNAMO中的函数多种多样,前边我们已经接触到的有SIN、COS、NOISE、TABLE。其他的各函数及细节以后介绍。(8)数值。DYNAMO所允许使用的数值因机器而异。常用的有整数、浮点数及小数。整数一般限定在6位左右。DYNAMO的浮点数使用科学计数法,如23E3代表23000,12

46、E-2代表0.12,2.176E4代表21760等等。E前只允许包含6个以下的印刷符号,E后是整数,绝对值小于32,小数是一般意义下的小数。小数点前的0可要可不要。(9)运算符。有加(+)、减(-)、乘(*)、除(/)4种。其含义如同常规的运算符,用于进行算术运算。242 变量描述语句DYNAMO中的变量描述语句一共有8种。第一列是由一个字母组成的语句标识;空一格后是被描述的变量,然后是等号,等号的右边是一个表达式。表达式详细描述了变量如何变动的计算方式,作为变量的定义。变量和等号及表达式三者是紧紧相接的,称为变量方程。空格是变量方程结束的标志,空格后的内容将作为注释,不能进行计算。所以如果不

47、小心在键入变量方程时多键入空格,将会导致模型的错误。各种变量的意义和流图图例同时罗列如下:1) 存量方程,标识为L。存量方程把系统中存量的动态用积分的形式描绘出来。例如:LPLANT.K=PLANT.J+DT*(PIN.JK-POU.JK)就是一个存量方程的例子。一个存量方程要与把与一个存量有关的所有的速率都考虑到。与一个存量相连的实物流必然是一个或一个以上,其中有的进入该存量,有的离开该存量。在存量的括号里面应包括所有这些进入及出去的速率的代数和,否则就会有错。对于存量方程,乘号(*)前的部分在格式上是固定的,因为一个存量的现在是要由同样一个存量的过去值来求得。如果没有遵守这个格式,DYNA

48、MO会认为出了语法错误。括号内的部分的格式是自由的,但一般都是所有与存量对应速率的代数和。2) 速率方程,标识为R。一个速率方程描述一个速率具体如何变动,用信息链指向速率的变量都会影响速率。速率方程应该包括所有这些变量,否则在语义上就会出错。3) 辅助变量(AUXILIARY)方程,标识为A。一个辅助变量方程描述一个辅助变量具体如何变动。辅助变量辅助表达系统中复杂的因果关系。在前面某些简单的模型中,根本没有出现A方程。反之,在实用的复杂系统中辅助变量的数量要比其他变量大得多(见25小节的实例)。辅助变量的作用是辅助表达系统中的因果关系。一方面它可以把复杂的因果关系环中各个重要的概念分离出来,另

49、一方面还可以描述重要的外部变量。4) 初值方程,标识用N,它表示各种变量的初始值,所以在流图中不会出现。只有存量必须给定初始值,其他变量的初值可以给定也可以不给定,因为其他变量在初始时刻的值可由该变量方程通过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某个表名=数,数,数有的机器上可以用“/”代替“,”作为两个数的分隔符。有关表函数的内容将在244节中介绍。7) 补充变量,用S为标识。它不是独立的变量,它的目的是为了保

52、留、计算某些量的函数值,以便统计、制表、制图。例如,如果在一个模型中男人数、女人数分别是两个存量,那么为了计算并显示人口总数,可以引入补充变量。人口总数用S变量方程定义:S人口总量.K=男人数.K+女人数.K8) 列车变量,标识是B。列车变量用一变量名标记一组存贮单元,每个存贮单元称为一个车厢,整个一组存贮单元组成为一个列车。车厢用于存贮数据,车厢中的初值用N或C语句赋予。车厢中所存贮的数据可以移动。有两种移动方式:一种方式称为直线列车,车厢直线串联形成一个直线列车,数据从前一节车厢定时向后一节车厢传送,最后一节车厢的值移动后就消失了;第二种方式称为环形列车,车厢环形串联首尾相接,形成环形列车,数据从前一个车厢定时向后一个车厢传送,最后一节车厢的值又返送回第一个车厢。BBB=B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论