收藏 分销(赏)

第二章 系统动力学及DYNAMO语言.doc

上传人:pc****0 文档编号:7196907 上传时间:2024-12-27 格式:DOC 页数:40 大小:558.50KB 下载积分:10 金币
下载 相关 举报
第二章 系统动力学及DYNAMO语言.doc_第1页
第1页 / 共40页
第二章 系统动力学及DYNAMO语言.doc_第2页
第2页 / 共40页


点击查看更多>>
资源描述
第二章 系统动力学及DYNAMO语言 本章将着重讲述系统动力学的建模思想与建模过程。 20世纪40年代,费雷斯特(Forrester)创立系统动力学时,称之为“工业动力学”,当时它主要是用于解决企业中出现的一些和经营管理有关的问题。例如,产量和雇用的不稳定性,一国经济发展中的波动与萧条,以及股票市场上的涨落等现象。费雷斯特在系统原理中讲到,经济学已经确立了在工业系统内的许多基本关系,但这些关系多数是用文字的和定性的方式描述的。“工业动力学”正是将经济学所观察到的复杂法则条理化的一种工具。20世纪70年代,费雷斯特的系统原理和“工业动力学”的研究方法得到了普遍的应用:解决经营管理中的规划问题;解决城市的萧条和衰退问题;认识有限的正在减少的自然资源中出现的指数增长的含义;甚至包括对糖尿病理论的检验(医学)和人与人之间相互作用的关系(心理学)。因此,“工业动力学”很快就改用了“系统动力学”这一个更广义的名称。 “系统”一词,在本章的含义是代表适用范围的广泛性、问题的复杂性以及观点的概括性——即一种用于解决某一特定类型问题的系统的研究方法。应该强调的是,系统动力学着重研究的是某一类问题。 系统动力学是研究某一类复杂系统问题的一种方法学,它以DYNAMO语言作为建模语言,这使得系统动力学的建模方法具有更为深刻的实际意义。DYNAMO语言的名字是由dynamic(动态)和model两词的词头合并而成,表明了其预期的用途:模拟真实世界系统,使得它们随时间变化的动态行为能用计算机来跟踪、模拟。系统动力学把现实生活中的复杂系统映射成系统动力学流图,DYNAMO语言则把系统流图模型送入计算机并计算出数字结果。 2.1 系统动力学概述 系统动力学的基本思想是充分认识系统中的反馈和动态性,并按一定的规则逐步的建立系统动力学的结构模式。动态性,是指系统所包含的量具有随时间而变化的特征。比如,企业雇用员工的变动、股票市场上股票价格和交易额的波动、城市中税收和生活标准的变化、甚至糖尿病的血糖指标的变化,这些都是动态问题。它们可以用变量随时间变化的图形来表示。系统动力学中的动态性,不是随机的不稳定的动态性,而是可以预期的,有一定规律的动态性。同时,某个变动经常在时间上表现出一定的延迟。从这个意义上,也可以说系统动力学的两个基本观点是:反馈和延迟。2.1.1节中讨论有关反馈的问题。2.2.2中讨论关于延迟的问题。 2.1.1 反馈系统 【 反馈系统的概念 】 简而言之,“反馈”是指信息的传送和返回 Wiener(1961),P96。 。“反馈”一词的重点是在“返回”上。 反馈的概念是普遍存在的。以取暖系统产生热量温暖房间为例,屋内一个和它相连的探测器将室温的信息返回给取暖系统,以此来控制系统的开关,因此也控制了屋内的温度。室温探测器是反馈装置,它和炉子、管道、抽风机一起组成了一个反馈系统。 当将上述反馈系统用图来表示时(如图2.1),就成了因果关系图。其中室温、热风调节可称为“元素”或“节点”,从室温到热风调节以及从热风调节到室温的带箭头的弧,可以称为“影响关系”或“有向线段”。 热风调节 室 温 图2.1 室温控制的因果关系图 室温高,则热风量应减小,可在室温对热风调节影响的箭头上加一个负号。反之,热风量大,则室温增加,可在热风调节对室温影响的箭头上加一个正号。从整体上看,室温影响热风量,热风量又影响了室温。从室温回到了室温,这就是一个反馈关系。另一方面,这些互相影响是相互制约的。因为温度高,则热风量减小,使室温降低。反之,室温低,则增大热风量,使室温升高。这种关系称为负反馈。图2.2中用一个带负号的环来表示,这个环称为负反馈环,此处,负反馈环的目的是使室温接近恒定的温度。 热风调节 - 室 温 (-) + 图2.2 室温控制的负反馈环 相反,正反馈环总是加大环内的偏差或扰动,它具有不平衡、不断增长的特性。例如在人口系统中,人口数增加了,每年所出生的人就增加,这就使人口数按指数规律很快的增长下去。这样,从“人口数”到“每年出生的人”又返回到“人口数”之间就存在一个正反馈(如图2.3)。增强而不是抵消环中某个元素的变化是所有正反馈环的共同特征。 + 每年出生的人口 人 口 (+) + 图2.3 人口增长的正反馈环 负反馈环的稳定性与正反馈环的不稳定性的这两个特征的区别,可以通过一个正确和错误地安装电热毯控制的故事来加以说明。一对夫妇有两条电热毯,两条毯子分别装有两个独立的温度调节装置:一个是丈夫的,一个是妻子的。正确连接时,应该构成两个独立的负反馈系统,各自控制着自己那一块毯子的温度,使每个人都得到满足,如图2.4A。但是这对夫妇却把两块毯子的温度调节装置装错了。丈夫的温度调节装置接到了妻子的一端,妻子的却接到了丈夫的一端。结果就出现了如图2.4B所示的令人讨厌的正反馈。妻子觉得冷,就将她的控制器温度调高,致使丈夫一边的温度过高。丈夫却觉得热,于是将他的控制器温度调低,从而使的妻子一端的温度变低。因此,妻子再次把装置温度调高,如此下去,形成一种戏剧性的局面。 丈夫的期望温度 丈夫的温度 丈夫的调节装置 妻子的温度 (-) 妻子的期望温度 (-) 妻子的调节装置 图2.4A 正确的连接—两个负反馈环 丈夫的温度 丈夫的期望温度 丈夫的调节装置 (+) 妻子的温度 妻子的调节装置 妻子的期望温度 图2.4B 错误的连接—一个正反馈环 【 开环思维 】 不用反馈的概念来研究问题,往往称为开环思维。例如,我们发现一个问题后,通常要先思考一番,确定一个处理问题的方案,然后按此方案行动,并认为解决问题的过程到此为止。这一模式,可以用图2.5中实线箭头表示的问题—方案—行动的序列来表示,这是一个开环思维。然而,这一模式忽略了一点:我们的行动会改变系统的状态(图2.5中用虚线箭头表示)。同时,在实施行动方案的过程中,我们可能对问题也会有新的理解,做出新的定义或发现一些必须解决的新问题。这样,问题—方案—行动又返回问题的序列,是一个反馈观点解决问题的模式。在系统动力学中的应该用反馈的观点,即闭环地考虑问题,而非开环地考虑问题。这一点希望读者能在具体建模过程中着重注意并细心体会。 问题 方案 行动 图2.5 开环思维与反馈观点作解决问题的比较 系统动力学的反馈观点有一个潜在的假设:系统都是反馈系统,要解决这些系统中的复杂问题,就得逐个找出反馈结构与观察到的疑难问题之间的关系。但人们面临复杂问题时,却总是希望能将其归于过于简化了的负反馈系统中,利用单一的针锋相对的行动对系统加以有效控制。事实上,现实中的系统通常情况下并不是依照直接的因果关系连接而成的,而是非线性的、动态的和层次的。与大多数人所期望的恰恰相反,只在很少的情况下,我们对于复杂系统中的问题才可能只采取相应的单一行动就可以解决。例如,多建公路与立交桥并不一定就能够缓解交通拥挤,反而有可能刺激消费者购车的需求,进一步加重交通拥挤的情况。由此可见,反馈观点经常夸大反馈行为的某一影响,而忽略了其他影响,因而,完全依照反馈观点建立的模型很容易陷入简单片面的因果决定陷阱。也正是由此,建立在反馈观点之上的系统动力学与DYNAMO建模方法,不能不分场合地滥用,只有在诸多变量之间的关系可以比较确凿的认识时,系统动力学的建模方法才可能发挥较大的作用。 表2.1 日常生活中常见的“反馈问题”与其“对策” 问 题 对 策 交通拥挤 多建公路和立交桥 犯罪率升高 专项严打和多雇用警察 城市贫民增加 多建经济实用房 汽车尾气污染 安装尾气过滤器 农作物病虫害 多用杀虫剂 体温升高 吃退烧药 本书的最后一章中还将进一步讨论与此相关的问题。 2.1.2 系统动力学概述 系统动力学主要研究复杂问题的反馈过程。系统动力学认为,动态行为是系统结构的一个结果,反馈结构是导致事物随时间变化的根源。 系统动力学认为,系统外的作用力并非是导致问题的根源。库存不会因为消费者周期性的改变订单而波动;生产厂家的生产情况也不会因为消费者的偏好改变而改变。从系统动力学的观点来看,这些系统行动的根源在系统内部。实际上,内部观点就是把外部的作用力包括在系统内部的反馈系统模型里。因此消费者的订单和偏好,就成了生产系统的内生变量,成了系统反馈结构的一部分。 用系统动力学的观点来研究一个问题,大致可以分为以下几个阶段: 1. 问题的识别和定义 2. 系统的概念化 3. 模型格式化(模型的建立) 4. 模型行为的分析(计算机模拟) 5. 策略分析 6. 模型的使用或执行 每个阶段的起点和终点和整个过程的起点和终点都是对这一系统及其问题的不断深入的理解。因此,它是一个环,或者网,而不是线性的序列。一个循环之后又可以开始新的一个循环。可以不断反复迭代。图2.6给出了这些阶段的一个可能的执行进程。 策略的执行 对一个系统的认识 问题的定义 策略分析 计算机模拟 系统的概念化 模型的建立 图2.6 系统动力学建模研究步骤 系统动力学研究所得出的策略建议,不仅来自模型的最终计算结果,而且还来自模拟过程中通过各阶段迭代所得到的认识。系统动力学研究最终应该能够提出切实可行的策略建议。因为模型只是达到目的的工具,最终的目的是提高对现实世界的认识,增加对客观规律的理解。 本章各节将大致按照DYNAMO系统动力学建模的各个阶段来组织,需要提醒读者注意的是,不要因为本章各节的线性排列顺序而忽略了系统动力学模拟研究所具有的迭代和循环的特征。 2.2 流图与系统概念化 无论是对于初学者还是经验丰富的建模者,系统概念化阶段都是系统动力学中最困难的阶段之一。概念化阶段的两大准则是:(1)明确建模目的;(2)研究问题,而不是研究整个系统。这两点是建模取得成功的先决条件。明确了研究的问题和建模目的,就好像佩带了一副滤色镜,可以滤去不必要的细节,集中精力研究反馈系统中的主要方面。它们使系统动力学的应用者和DYNAMO的建模者,不必为了研究某个事物而去考虑所有的事物。 在系统动力学模型的概念化时,还须记住:要用动态的观点和极力寻找因果关系的反馈环的方法来研究复杂的系统。与“滤色镜”相似,这两个特征就好比是建模者的透镜,它们使得人们清晰的看到应当留在模型中的事物。而使另外一些不应该留在模型中的另一些事物变得模糊不清。 2.2.1 动态问题的定义 一般总要先用一个或多个随时间变化的变量来表示系统动力学所研究的问题中的系统状态,这些变量又往往用图形来表示。这些图形的建立过程,称为动态思维的过程,它是模式化的前提和基础。此时并不需要具体的数据或意义明确的函数,只需反映出变量变化的大体趋势和状态即可。因为研究者所关心的,是变量随时间变化的趋势,而非具体的变化数值。这些随时间变化的图形,即参考行为方式,是建模的参考和依据,也是检验一个系统动力学模型有效性的标准之一。建立参考方式是系统动力学研究取得成功的一个必要条件。 要作出变量随时间变化的图形,首先要识别系统中那些与待研究问题紧密相关的变量;随后要确定研究的时间范围。绘出随时间变化的变量图形后,即使正规模型尚未建立,我们也可以由此来获得一些关于系统的认识。 图2.7列举了一个在还没有正规模型的情况下进行动态思维,既建立参考方式的例子,其图形代表广告所产生的影响。该图表现的是一产品典型的生命周期,反映了盈利、销售量与广告费用之间的联系。 时间 产品引进 市场增长 市场成熟 销售下降 销售量曲线 作为销售百分比的广告曲线 盈利曲线 图2.7 产品广告及其生命周期 有时也会出现这样的情况,问题提出来了,但是却没有一个明确的参考方式。这是因为用户在还没有理解变量随时间变化的大趋势之前,就提出了有关策略变化可能导致的结果之类的问题。富有经验的建模者常常列出一些可能的策略及其可能产生的影响。这样的一组策略列表有时能代替一个清晰的动态观点。 需要指出一点,在没有参考方式的情况下,要建立一个正规的系统动力学模型是困难的。因此,建模者至少应该在初学建模时尽量避免这样做。 2.2.2 反馈结构的表示 一旦识别了问题,确定了主要变量并定义了参考方式,建模者的任务便是要找出主要变量与其它变量之间的联系,既相互影响或称因果关系。接着,要顺着因果链寻找反馈结构,一旦因果链自行相连成环,就找到了反馈。在系统动力学建模或称DYNAMO建模中,反馈结构的表达方式主要是图解的形式。常见的图有两类,因果环图和DYNAMO流图。因果环图主要用于模型概念化的前期阶段以及后来为非技术性文献所准备的关于模型结构的直观描述;而所谓DYNAMO流图,或称速率/存量图,则是对模型更详细的描述。模型模式化的第一步通常是绘制因果环图,其次是速率/存量的流图,最后是建立起明确的反映图示结构的方程(即模型的格式化,见2.3、2.4节)。 本小节将主要介绍有关流图的内容。在此之前,首先对因果环图进行一些必要的介绍。 因果环图中的每一个影响关系都有正负之分,根据影响关系的积累效果就可以知道该环的特性。如图2.8,将酒倒入酒杯的决定会增加倒酒的速率,从而增加酒杯的存量,于是就减少了杯中酒的存量与期望存量的差距,从而削弱向酒杯中倒酒的决定倾向。很明显,这一反馈环是自行削弱的,因而是个负反馈环,这保证了倒酒的动作最终将停止。 杯中酒的存量 倒酒的决定 倒酒的速率 差距 期望的存量 + - + (-) + + 图2.8  反馈环的极性 由这个例子可以归纳出下列两条定理: l 反馈环为正,如果它有偶数个负因果链; l 反馈环为负,如果它有奇数个负因果链。 因此,反馈环的极性实际上是组成环的所有影响关系符号的代数和。 最后需要提醒读者的是,不要将开环误认为是反馈环。如图2.9就不是一个反馈环。 海洛因价格 上瘾者 与海洛因相关的犯罪 维持习惯所需的钱 每个上瘾者的犯罪频率 + + + - - 图2.9 海洛因价格与犯罪之间的关系:伪环 现在我们开始关于系统动力学流图的介绍。首先将本章开头给出的室温控制的例子,用流图的形式表现出来,如图2.10。 室 温 热风 调节 图2.10 室温控制的流图 从图中可见,因果关系的元素分别用流图的元素来表示。“室温”用矩形的“存量”表示,热风调节用阀门型的“速率”来表示,表示影响关系的弧线用实线或虚线来表示。 明确的讲,这个系统的目标是把室温调节到某一个给定的温度(附近),热风的大小与给定温度和室温的温差成正比,这样,可以用更详细的流图2.11表示 热风 调节 室 温 温 差 调节系数 给定温度 图2.11 室温控制的更详细的流图 为了清楚的表示室温是如何影响热风调节的,图2.11把从室温到热风调节的虚线变成了3个元素,4条虚线。图形排列的形式暗示影响关系的细节。温差是一个新元素,它等于给定温度减去室温,用圆圈表示,称为辅助变量。给定温度也是一个新元素,用小圆圈加一斜线表示,称为常量。调节系数是另一个新的常量元素。从调节系数到热风调节的虚线及从温差到热风调节的虚线暗示热风调节量与温差成正比,其比例系数为调节系数。一般性的过程可以用图2.12来概括。 由信息确定如何控制 信息 从系统获 取信息 控制 控制作用 指标 图2.12 流图的一般过程 图2.10和图2.11称为系统动力学流图,简称为流图。下面简述流图中的几个基本概念(其符号见图例),它们也是系统动力学中的基本概念。 图 例 存 量 速 率 辅助变量 函 数 常 量 信息链 物 流 源 或 汇 (1)存量(LEVEL),图中的长方形,象一个水池,可称为水平、存量、积累量、流位,它是系统的状态,也就是系统的某个指标值。流图中用水池的水位高低来模仿系统状态值的大小。 (2)速率(RATE),图中的阀门形,可称为决策函数、速度、速率、流率等。它控制着存量的变化。流图用阀门模拟控制水位的高低的机制。 (3)实线称为实物流。实线连接“阀门”和“水池”,模仿控制的通路。它要贯穿存量和速率,像是水流在其中穿行。 (4)不规则的闭曲线称为源或汇。源指实物的来源,汇指实物的去向,好比水的源泉和去向。它是系统之外的元素。 (5)虚线称为信息链,模仿信息传递的过程。它指向速率,表示根据什么信息控制速率。但不能从这条曲线看出具体控制方式的细节;比如,我们希望采用温差比例方式进行调节,但图2.11的信息链并不能说明这个问题。在本章2.3小节中,将具体讲解如何用DYNAMO语言中的速率方程来进一步刻画控制的细节。所以,图2.11既可以表示温差等比例调节,也可以表示温差微分调节或混合调节等等。 (6)圆称为辅助变量,辅助表示流速变动的规律。 (7)小圆加斜线称为常数,是系统中重要的参数。 此外,还有几个问题需要明确: 第一,系统的动态变化是指系统状态随时间的变化,即自变量是时间。 第二,系统的状态可用系统的一组指标表示,一个指标是一个量,只有确定了单位才可用一个数值来表示一个量。例如,室温是一个表示室内状态的量,用℃作为单位,那么数值10表示室温10℃的量。 第三,控制指标的速率也具有相应的单位。它的单位应是每单位时间的单位系统状态量。此例中时间单位如果是小时,那么调节室温的风量单位应该是使室温每小时升高1℃的风量。 第四,图形的结构要反映这些概念,用实线连接的速率和存量是相互依存和相互对应的。速率是指单位时间存量的变化,存量指速率的积累。因此设时间为t,存量为L,速率为R,那么dL/dt=R或L=∫Rdt。 为了计算出状态值随时间的变化,在从因果关系图转换成流图时,必须用实物流把速率与其相对应的存量(状态值)相连。实物流只能用在连接存量与速率,不能连接两个存量或两个速率。当然,速率与相应的存量相连不仅有上述一种形式。一个存量还可以对应多个与之有关的速率。 第五,流图中区分了实物和信息。存量是实物的积累;速率是事物随时间变化的规律;实物流是实物积散的途径;源和汇是实物的来源和去向。用信息控制速率变动的规律,信息来自系统外部变量或系统内部存量;信息流是从信息源到速率的路径。 【 反馈的形式 】 上述简单的系统内只有一个存量,称为一阶系统。一阶系统有多种多样的变化模式。如图 2.13所示。 2 1 3 图2.13 一阶系统的反馈形式 如果一阶系统中有负反馈,称为一阶负反馈系统。前述的调温系统是典型的一阶负反馈系统。它的 反馈形式如图2.13中曲线1所示。设初始室温和与其温度有一个差别,例如室温低于期望值,由阀门控制热风吹入,由于温差大,命令多进热风,结果室温上升,温差变小,进入的热风渐渐减小,所以室温上升就越来越慢。室温缓慢接近期望温度,但始终不可以到达期望温度,只是差别越来越小。 如果一阶系统中有正反馈,此系统就称为一阶正反馈系统。细菌生长是一种典型的一阶正反馈系统。假设细菌每小时繁殖一个,开始时有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。 细菌死亡 细 菌 细菌出生 细菌出生率 细菌寿命 图2.17 考虑死亡的细菌生长流图 本例中一个存量与两个速率相对应,向内的箭头表示细菌出生使细菌数量增加,向外的箭头表示细菌死亡使细菌减少。这张流图中所有的量取值都是正的。显然细菌的寿命的倒数是死亡率。当出生率大于死亡率时,细菌数量呈指数上升的趋势,此系统是一阶正反馈系统(变化形式如图2.13中的曲线2);当出生率小于死亡率时,细菌数量呈指数下降的趋势,此系统是一阶负反馈系统。 如果限定细菌生活在一个有限的空间里,当细菌生长到一定数量后就不能在无限增长下去,那么就会呈现一个先是指数上升然后又缓慢接近极值的趋势。类似的情况很多,比如增加推销员,产品销售数量会增加,产品出售增多了,则有更多的钱雇用推销员。开始推销员数量增长很快,但人们购买这种商品的潜在需求逐渐降低,则这种正反馈就不能持续下去,推销员或产品出售的数量就开始缓慢回落。它们的动态如图2.13中的曲线3。 【 延迟 】 系统动力学的另一个基本点是延迟。延迟也是普遍存在的,物理学认为“在宏观的自然界中不存在突变”。一般来说,原因并非立即就能产生结果,往往某个原因经过了一段时间才能作用产生了效果。比如在调节室温的过程中,空调机马力加大以后,室温不会马上就上升。要经过一定的热传导的过程,热量不断积累,才会使室温上升。其因果关系如图2.18。 热量积累 + + 热风调节 室温增加 (-) - 室温 + 图2.18 考虑延迟的室温调节因果关系图 把这个因果关系图转换成流图。室温是一个存量,室温增加是对应的速率,它们用实物流相连。热风调节是热量积累,所以热量积累是一个存量,热风调节是使其增加的对应速率,它们也用实物流相连。热量积累使室温增加,这是存量对速率的影响,它是一个信息链,用温升时间常数辅助表示这个关系。最终的系统动力学流图如图2.19。 热风调节 热量积累 室温增加 室温 调节系数 温升时间 温 差 给定温度 图2.19 考虑延迟的室温调节流图 图2.19所示的系统中有两个存量,可以称为二阶系统。整个主环呈负反馈,称为二阶负反馈系统。其系统行为是很典型的,在这个系统中出现了延迟,热风调节后并没有立即引起室温的增加,因而室温发生了振荡。 类似地,订货以后,货物需要在途中滞留,经过一段时间才会进入仓库,变成库存。所以增加订货速度后,库存不是立即增加而是延迟一段时间才增加。这个延迟引起库存值在期望库存值附近振荡。如图2.20。 库存 进货速度 积存订单 订货速度 订货时间 时间延迟 差 值 期望库存 图2.20 订货-库存流图 在图2.19中,使室温变化变化的原因可以追溯出一条链。按照常识,室温控制是由热风调节引起的,但仔细研究,发现热风调节引起了热量积累,才使室温增加,引起室温变化。室温慢慢地积累,所以调节热风后,经过一段延迟才会有室温变化。这种延迟引起了在某个时候,关小了热风反而使室温增加,或者开大热风但室温减小的违背常理的情况出现。在时间上,刚才的阀门打开引起现在的温度升高;在空间上,空调机的热风量加大引起了不是同一处的室内温度上升。 在现实社会中,我们经常可以发现有一些系统比上述的例子更复杂,组成元素更多,反馈环相互地交织在一起,因而它们的动态规律就更不容易认识。当我们研究某个数量指标变化时,追源溯本,总可以找出一大串因果关系链。这样初始原因和最终结果之间相隔大量元素,因而在时间上、空间上,因果之间可能相隔很远,以至于仅靠经验和细心观察绝无发现的可能,原因与结果之间还会有违背常理的情况出现。系统动力学的建模思想给出了构筑系统动力学模型的概念模式,因而搭建起了用计算机模拟复杂系统的桥梁,它为发现和处理现实中这些复杂的具有延迟的因果关系提供了可能。 2.2.3 系统概念化小结 得到系统流图是认识系统动态的关键一步。根据系统的原理,采用分析与综合的办法来认识系统,首先要根据系统的目标找出我们关心的对象,即确定系统的边界;然后把系统分解成其组成要素,在按照以上介绍的几个原则找反馈环,认识延迟的存在,鉴别出存量和速率,找出实物流和信息流,并将他们正确的组合成一个有机的整体,形成具有系统动力学特定结构的流图。流图中相邻的元素之间常常有典型的连接关系,例如,一阶正反馈、一阶负反馈、二阶负反馈。这些反馈环进一步交织在一起形成一个网。在分析时常采用自顶向下的方法,抓实质、忽略次要成分,得到一个很粗的模式。这种粗糙的模式若不能满足需求,则一步步地细化下去。例如,考虑室温调节时,开始认为系统是个简单的一阶负反馈系统,它粗糙的反映了系统趋向期望温度的模式;细化后看到了延迟,如果需要的话还可以进一步研究,比如可以对复杂的热量积累进行更细致的描述,表现出热风先经过管道再加热室内空气,甚至室内不同地方的空气温度也不相同。那样的话,系统结构就更加复杂,且能更细致地反映客观实际。因而,系统流图具有一个层次结构,可以通过逐步细化逐步的获得越来越符合实际的系统流图。 2.3 从流图到DYNAMO方程 所谓模型格式化,是一个将上述流图的模型结构编写成DYNAMO方程的过程,也是一个由非正式的概念认识向正式的定量表达式转换的过程。通过在计算机上运行DYNAMO方程确切地描述的模型可以模拟系统的动态行为。 格式化不仅仅是概念化和结果分析之间的一个技术变换阶段。并能提高对系统结构的认识。一个非正式的因果关系模型一旦编写成方程,便显得清晰明了,一目了然。当然,这样所得到的正规模型也并不能完全代表真实世界,从这一点上说,它是不精确的。但是,正规模型却更为明确,因为它必须要为计算机所识别,并能突出地反映出所针对的问题的内在结构。所以,借助于模型格式化阶段,建模者可以提高对系统结构的认识,建立起对实际情况符合得更好的DYNAMO模型,从而在发现和解决实际问题方面发挥更为现实的作用。 在DYNAMO语言中,存量是一种变量,速率也是一种变量,要为每个变量制定一个变量名,这个变量名可以是汉语的(在汉化的DYNAMO中),也可以是英语的。再用圆点及其后的下标来表示修饰词现在、过去、时点、时段。假设初始时刻系统状态是已知的(这包括全部状态值和流率值),就可以把第一个时点的系统状态求出来。因为第一个时点上的指标值=初始时刻指标值+DT*初始时刻该指标的总流速。同样的,如果过去的指标值及速率值是已知的,那么有实物流所反映的关系就可以求出现在的指标值。现在的指标值=过去的指标值+DT*过去该指标值的总流速。一个计算复利的存钱系统如图2.21所示。 RAM MONEY CRATE 0.01 图2.21 复利存钱系统流图 钱数的变化要用下边的存量方程表示: 钱.K=钱.J+DT*钱的增加速率.JK 或 MONEY.K=MONEY.J+DT*RAM.JK 其中钱或MONEY为钱数的变量名,变量名由建模者任意规定,但它们应该有比较清晰明确的含义。钱的增加率或RAM是钱数变化的速率的变量名。 钱数等于过去的钱数加上流逝的时间乘以这段时间内的钱数增加的速率。对这个记复利的存钱系统,钱的增加速率是很明显的。在DYNAMO中用一个速率方程表示: 钱的增加速率.KL=钱.K*利率 或 RAM.KL=MONEY.K*CRATE 除上述两方程,还有表示钱的初值大小的方程及利率大小的方程。这样,一个存钱系统的DYNAMO模型就构成了。它主要包括四个方程,每个方程钱都用一个字母标识方程的类别,即 L MONEY.K=MONEY.J+DT*RAM.JK R RAM.KL=MONEY.K*CRATE C CRATE=0.01 N MONEY=100 虽然方程中没有明显的指出一个量的单位,但是量的单位是事先约定的。方程中的数值与约定好的单位结合,才能正确地反映量的大小。在这个存钱的系统中,我们约定钱用“元”作单位,时间用“月”作单位,利率是指每元钱存一个月会增加0.01元。 从流图转化到DYNAMO方程并不困难。存量方程反映了存量总是总流速的积分的过程。存量方程很容易从流图中得到,因为在流图中已明显地标出流入及流出的速率。速率方程反映了每个速率变动的规律,指向速率的信息链暗示了速率是由哪几个变量决定的。但这些变量如何具体的构成流率方程,从流图中上不可得出。例如钱数及利率决定了钱的增加,但钱数乘以利率是钱数的增加,并没有明显地表现在流图里。相乘的关系是从对存钱系统的研究得到的,并由DYNAMO方程表示。因此,流图只能反映出速率与什么量有关系,只有速率方程才能完全地把速率与变量的具体关系描述出来。 对于这个简单的例子,DYNAMO方程没有什么优越性,但对于越复杂的系统,其优越性就越显著。 2.4 DYNAMO语言 DYNAMO是一种计算机模拟建模语言,其特点是语法简单,容易掌握。一个用DYNAMO语言编写的程序,也就是一个针对某一问题的系统动力学模型,它反映了由于系统状态变量之间的反馈作用,使系统的状态连续地变化。 上一节介绍了系统动力学的基本思想,从因果关系图出发,建立了系统动力学的流图,这是一种反映系统结构的模型。流图模型很形象地用水流来模仿复杂系统。DYNAMO系统的状态是用一组存量来表示系统的一组指标值。描述“流”像水流似的从源通过“水管”流动着,经过阀门,阀门的开闭控制它的流速,使在贮槽中存储的水位高低变化,以此模仿指标值大小的变化。在某些系统中,有几条水管与一个贮槽相连,而这些水管中的水有的流入贮槽,还有的水管中的水是从贮槽中流出的。流入水管的流速的总和称为流入速率,流出的流速的总和称为流出速率。常常,一条水管模仿一种因素对指标所产生的影响。与一个指标对应的流速有一个以上表明多种因素都对这个指标产生影响。与同一个指标对应的这些流速的代数和称为该指标的总流速。如前所述,指标是其总流速的积分(或称累积),总流速是其指标的微分。在不会引起误会的情况下,总流速可以简称为流速。 若要表示系统动态变化,就要确定一个时间轴,从初始时刻开始,均匀地划分这个时间轴,每一个时间步长记为一个DT。如图2..22所示。 DT t 图2..22 时间步长 如果把某个时点称为K时刻或现在时刻,它的前一时点就称为J时刻或过去时刻,它的后一时点就称为L时刻或未来时刻,如图2..23。 DT J K L t 过去 现在 未来 图2..23 时刻与时段 相应地,JK时段称为过去时段,KL时段称为未来时段。 DYNAMO就是利用各个时点上的指标值(LEVEL值)和各个时段上的速率值(RATE值),来计算和表现系统的动态变化。 看一个具体的例子,其中流入和流出率都是常量。假定我们每个月从一个仓库中运走100单位的货物,而从供应厂商处每月只能得到80单位的货物,那么,总流率就是-20单位,即仓库的货物以每月20单位的流速减少,它的动态行为是线性的,其随时间变化的图形将是一条递减的直线。任何一个学过高中代数的同学都可以通过比算得出仓库的变化,即经过的时间乘以库存的恒定变化率: 库存量(现在)=库存量(过去)+经过时间*恒定变化率 但是,当影响仓库的流入和流出量不再是常量而是在不断变化时,情况就变得有趣了。只学过高中代数的同学只能在绝望中放弃,或等到他学习了微积分的知识后再来解答。但是即使在那个时候,他也可能无法获得存量随时间变化的精确方程,或者尴尬地发现这个函数是不可积的。在DYNAMO中,当订单率和货运率随时间的变化而变化时,DYNAMO通过将连续的时间分割为许多离散的时段,并假设在每个小的时段上,流率为常量,这样就可以像只学过代数的同学那样进行计算,其公式如下: 库存(现在)=库存(上一时刻)+(经过的时段)*(假设的恒定总流率) 或,用DYNAMO中的记号: INV.K=INV.J+DT*(SHPMTS.JK- ORDRCV.JK) INV.K=当前的库存值; INV.J=一个时段前的库存值; SHPMTS.JK =在过去时段上新进货物数量的流率; ORDRCV.JK =在过去时段上接到的订单数量的流率; 当然,这样得到的是近似值,但是,当计算的时段足够小,并且流率的变化率不大时,计算出的结果将非常接近精确值。 因此,DYNAMO是通过对系统模型进行分段(每次一个DT)计算来模拟一个动态反馈系统的。对于简单的系统,我们可以进行笔算,但是,如果系统略微复杂,而且计算间距DT相当小的话,我们对于这样的计算就无能为力了,而这时使用计算机最为理想。事实上,能够进行这类计算(用不同的表示方法)的计算机程序语言很多,比如FORTRAN、C++、DELPHI、JAVA等等。但是DYNAMO正是为了模拟动态反馈系统而设计的,它会是一个很好的工具。 DYNAMO语言可以满足那些不熟悉计算机的建模者和经验丰富的程序员的不同需求。DYNAMO的所有语句可以归为两大类:一是变量描述语句,二是控制语句。组成语句的元素共有9种:(1)语句类型标识(2)变量名(3)时间下标(4)等号(5)圆点(6)分隔符(7)函数(8)数值(9)运算符。本节将详细介绍DYNAMO语言的基本内容。 2.4.1 语法元素 (1)语句类型标识。DYNAMO模型的每一条语句最前边都有一个语句类型标识。以此标识语句的类型。描述语句的类型标识为
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服