8.1第八章系统动力学与dynamo模型

87
《复杂系统建模与仿真》 《复杂系统建模与仿真》 第八章 系统动力学与 DYNAMO 语言 建议:系统动力学 4 节,布置作业识别现实 经济社会系统中的各类基模 Dynamo 2 节理论课,上机实践 4 课时(基本 学习+模型)

Transcript of 8.1第八章系统动力学与dynamo模型

Page 1: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

第八章 系统动力学与 DYNAMO 语言

建议:系统动力学 4 节,布置作业识别现实经济社会系统中的各类基模

Dynamo 2 节理论课,上机实践 4 课时(基本学习+模型)

Page 2: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

本章要求

✦ 掌握系统动力学建模的基本原理✦ 学会用反馈和因果图分析现实生活中的社会经济问题

✦ 掌握 8 种基本基模✦ 掌握 Dynamo 设计语言✦ 学会用 Dynamo 设计系统动力模型✦ 进阶要求:图形建模工具环境 Dynamo-Win✦ 进阶要求:课外精读《第五项修炼》,深入领会与掌握系统动力学思维方法

Page 3: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

大纲

✦ 第一部分 系统动力学模型

✦ 第二部分 DYNAMO

Page 4: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

第一部分 系统动力学

Page 5: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

系统动力学模型

✦ 系统动力学模型:自顶向下

✦ 多主体模型:自底向上

Page 6: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

系统动力学

✦ 系统动力学 (System Dynamics) 是一门分析研究信息反馈系统的学科,也是一门认识系统问题和解决系统问题交叉的综合性的新学科

✦ 是系统科学和管理科学中的一个分支,是一门沟通自然科学和社会科学等领域的横向学科

✦ 从系统方法论来说,系统动力学方法是结构方法、功能方法和历史方法的统一

Page 7: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

什么是系统动力学?

✦ 系统动力学认为,系统的行为模式与特性主要地取决于其内部的动态结构与反馈机制。

Page 8: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

系统与反馈

✦ 系统:相互作用诸单元的复合体

✦ 反馈:系统内同一单元或同一子块其输出与输入间的关系

– 对整个系统而言,“反馈”则指系统输出与来自外部环境的输入的关系。

– 反馈可以从单元或子块或系统的输出直接联至其相应的输入,也可以经由媒介——其他单元、子块、甚至其他系统实现。

Page 9: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

反馈系统✦ 所谓反馈系统就是包含有反馈环节与其作用的系统。它要受系统本身的历史行为的影响,把历史行为的后果回授给系统本身,以影响未来的行为。

✦ 库存控制系统是一个反馈系统– 发货使库存量减少,当库存低于期望水平以下一定数值后,库存管理人员即按预定的方针向生产部门订货,货物经一定延迟到达,然后使库存量逐渐回升。

– 反映库存当前水平的信息经过订货与生产部门的传递最终又以来自生产部门的货物的形式返回库存。

Page 10: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

库存信息反馈调节过程

库存订货系统是一个简单的反馈系统。从图中可知它形成闭合库存订货系统是一个简单的反馈系统。从图中可知它形成闭合

的回路的回路 (( 或称环或称环 )) ,称之为,称之为反馈回路反馈回路 (( 或环或环 )) 。反馈回路就是。反馈回路就是

由一系列的因果与相互作用链组成的闭合回路或者说是由信息由一系列的因果与相互作用链组成的闭合回路或者说是由信息

与动作构成的闭合路径。与动作构成的闭合路径。

库存 订货 系统

Page 11: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

回路、闭环系统、开环系统

✦ 反馈系统就是相互联结与作用的一组回路。

✦ 反馈系统就是闭环系统。

✦ 单回路的系统是简单系统;具有三个回路以上的系统是复杂系统。

✦ 反馈系统俯拾皆是,生物的、环境的、生态的、工业的、农业的、经济的和社会的系统都是反馈系统。

✦ 开环系统是相对于闭环系统 ( 即反馈系统 ) 而言的,因其内部未形成闭合的反馈环,像是被断开的环,故称为开环系统。

Page 12: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

库存 ––– 订货系统是一个闭环的反馈系统

✦ 系统中的库存缺货信息的收集与向生产部门提出订货的要求均由管理人员承担,假设系统中无管理人员或管理人员失职,则系统中失去反馈环节与反馈作用,处于无人管理状态,也就成为开环系统了。库存量就不可能保持在合理的水平。

库存订货控制系统

Page 13: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

正反馈、负反馈、正反馈回路、负反馈回路、正反馈系统、负反馈系统

✦ 正反馈的特点是,能产生自身运动的加强过程,在此过程中运动或动作所引起的后果将回授,使原来的趋势得到加强。

✦ 负反馈的特点是,能自动寻求给定的目标,未达到( 或者未趋近 )目标时将不断作出响应。

✦ 具有正反馈特性的回路称为正反馈回路,具有负反馈特点的回路则称为负反馈回路 ( 或称寻的回路 ) 。

✦ 分别以上述两种回路起主导作用的系统则称之为正反馈系统与负反馈系统 ( 或称寻的系统 ) 。

Page 14: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

正反馈回路的特点✦ 正反馈回路的特点是,发生于其回路中任何一处的初始偏离与动作循回路一周将获得增大与加强。

✦ 正反馈回路可具有诸如非稳定的、非平衡的、增长的和自增强的多种特性。

✦ 在实际系统中,就系统产生的后果而言,正反馈回路可导致良性循环与恶性循环两类。

正反馈回路举例

Page 15: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

负反馈回路的特点✦ 负反馈回路的特点是,它力图缩小系统状态相对于目标状

态 ( 或某平衡状态 ) 的偏离。

✦ 负反馈回路亦可称为稳定回路,平衡回路或自校正回路。

负反馈回路举例

Page 16: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

系统动力学是分析复杂系统甚至特大系统的强有力工具

✦ 事实证明,由若干回路组成的反馈系统,即使诸单独回路所隐含的动态特性均简单明了,但是其整体特性的分析却往往使直观形象解释与分析方法束手无策。

✦ 反馈结构复杂的实际系统与问题,其随时间变化的特性与其内部结构的关系的分析不得不求助于定量模型和计算机模拟技术。

Page 17: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

系统动力学中常用的图形表示法

✦ 回路的概念最简单的表示方法是图形。

✦ 系统动力学中常用三种图形表示法

– 系统结构框图 (structure diagram)

– 因果关系图 (causal relationship diagram)–流图 (stock and flow diagram)

Page 18: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

系统结构框图✦ 用方块或圆圈简明地代表系统的主要子块并描述它们之间物质与信息流的关系。

全国社会经济模型框图

Page 19: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

因果关系图✦ 因果关系图有时候也被称为影响图 (influence map) 、向图、因果环图

(causal loop diagram) ,普遍地用于构思模型的初始阶段✦ 图中的因果链可标明其影响作用的性质是正的还是负的✦ 粗略地说,正号表明,箭头指向的变量将随箭头源发的变量的增加而增加,

减少而减少,而负号则表示变量间取与此相反的关系。

因果图

期望水位期望水位

水位差水位差

决定添水决定添水

斟水速率斟水速率

杯中水位杯中水位

++

++

--

++

++

投资能力投资能力

铁路数铁路数

使用铁路的吸引力使用铁路的吸引力

铁路拥挤程度铁路拥挤程度

建设新铁路的迫切性建设新铁路的迫切性

建设中铁路数建设中铁路数

--

++

++

++

++

++

++

Page 20: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

确定回路极性的方法✦ 为了确定回路的特性,即回路的极性,可沿着反馈回路绕行一周,看一看回路中全部因果链的累积效应如何。回路极性可为正或负。

✦ 确定回路极性的方法

– 若反馈回路包含偶数个负的因果链,则其极性为正;

– 若反馈回路包含奇数个负的因果链,则其极性为负。

✦ 因此,反馈回路的极性取决于回路中因果链符号的乘积。

✦ 正反馈回路的作用是使回路中变量的偏离增强,而负反馈回路则力图控制回路的变量趋于稳定。

✦ 负反馈作用并不坏,而正反馈作用并不一定都是好的

Page 21: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

因果图应用指南

✦ 把因果图中的变量设想为能升降、增减与上下的量。暂不必担心是否能以现有的单位和量纲去度量。– 在因果关系图中采用名词或名词短语,不用动词。变量之间的影响与作用以带箭头的因果链表示。

– 把变量增减的涵义弄确切

– 用因果链去代表“然后……”的语气

Page 22: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

因果图应用指南

✦ 尽可能确定变量的量纲,必要时可自己创造一些。例如某些心理学方面的变量,不得不采用诸如精神上的“压力”单位。确定量纲有助于突出因果图中的文字叙述的涵义。

✦ 尽可能定义变量本身为正值,不把诸如“衰减”、“衰退”、“降低”一类定义为变量。由于“衰退”的增长或“降低”的上升的说法将令人费解,而且当检验因果链的极性与确定回路的极性时,将使人目眩。

✦ 如果某因果链需加以扩充,以便于更详尽地反映反馈结构的机制,则毫不犹豫地将其扩充为一组因果链。

✦ 反馈结构应形成闭合问路。

Page 23: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

因果图应用指南

减少交货延迟减少交货延迟 库存增加库存增加 订货减少订货减少

增加交货延迟增加交货延迟库存减少库存减少订货增加订货增加

错误的因果环画法:令人费解

Page 24: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

因果图应用指南

未闭合的回路

吸毒者犯罪频度吸毒者犯罪频度

吸毒导致犯罪吸毒导致犯罪

吸毒者吸毒者

毒品价格毒品价格

维持吸毒所需费用维持吸毒所需费用

++--

++

++

++

Page 25: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

Peter Senge 基模

✦ 《第五项修炼 ––– 学习型组织的艺术与实务》

–成长的上限基模

–成长与投资不足基模

–舍本逐末基模

–恶性竞争(两败俱伤)基模

–富者愈富基模

–共同悲剧基模

–饮鸩止渴基模

Page 26: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

成长的上限基模✦ 左边部分是促进成长的正反馈环

✦ 右边部分是抑制成长的负反馈环

✦ 刻画了各种组织运行的基本结构

Page 27: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

成长与投资不足基模– 上半部分为成长上限基模

– 下半部分为投资不足负反馈环

Page 28: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

舍本逐末基模– 只注重症状解,不注重根本解

Page 29: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

恶性竞争(两败俱伤)基模只把注意力放在对方的威胁上

Page 30: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

富者愈富基模

Page 31: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

共同悲剧基模

Page 32: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

饮鸩止渴基模

✦饮鸩止渴基模

Page 33: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

正负反馈环作用下的物种模型因果图

“物种总数”与“出生速度”构成正反馈环,同时,“物种总数”与“死亡速度”构成负反馈环。或者说,物种总数这个状态变量同时受“出生速度”所在的正环和“死亡速度”所在的负环控制

当“出生速度”所在的正反馈环的自我强化作用高于“死亡速度”所在的负反馈环的自我调节作用时,物种总数将呈现出无限增长的趋势

当“死亡速度”所在的负反馈环自我调节作用强于“出生速度”所在的正环自我强化作用时,在一定生存条件下系统将趋于“平衡”,物种的总数将趋于稳定值

由这样一个简单的模型展开由这样一个简单的模型展开

,就可以形成很复杂的生态模型,就可以形成很复杂的生态模型

,从而研究其中的“政策”和“,从而研究其中的“政策”和“

策略”。例如,研究某个自然保策略”。例如,研究某个自然保

护区各物种生态平衡策略,消灭护区各物种生态平衡策略,消灭

害虫、杂草,保护禾苗的策略,害虫、杂草,保护禾苗的策略,

控制传染病蔓延的策略等,都可控制传染病蔓延的策略等,都可

以从这种基本概念出发,而形成以从这种基本概念出发,而形成

具体系统的模型具体系统的模型

死亡速度死亡速度出生速度出生速度

物种总数物种总数

--

++++

++

正负反馈环作用下的物种模型

Page 34: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

流图✦ 流图仿效阀门与浴缸的关系把速率与状态变量描述如图所示。

SOURCE源

SINK漏LEV

状态IN

输入率

OUT

输出率

流图及其基本表达形式

• 水平变量水平变量 (level)(level)或称状态变量表示积累环节。或称状态变量表示积累环节。

• “ “ 水平”的涵义系源自流体在容器中积存的液面高度,如水位。水平”的涵义系源自流体在容器中积存的液面高度,如水位。

• 速率速率 (rate)(rate)又称变化率,随着时间的推移,使水平变量的值增加或减少。又称变化率,随着时间的推移,使水平变量的值增加或减少。

• 系统动力学认为反馈系统中包含连续的、类似流体流动与积累的过程。系统动力学认为反馈系统中包含连续的、类似流体流动与积累的过程。

Page 35: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

劳动力的两状态流图

✦劳动力队伍一般可分成两部分,一部分为已具有劳动技能的正式工人;另一部分为尚在培训的工人,培训需要一定时问,如半年或一年,称为培训延迟。

离退率培训速度雇佣率

工作人员培训人员

Page 36: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

流图中的反馈回路

流图中的反馈回路

✦ 就系统整体来说,反馈回路事实上就是联系决策、行动、系统水平变量 ( 系统的状态 ) 以及信息再回到决策点的整个闭合回路。

✦ 从图中可以看到,决策控制行动,行动影响系统状况,系统状态的新信息又将决策修改,如此不断进行。所以,系统的动态现象是由反馈回路的决策过程所形成的。

Page 37: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

反馈回路也是管理系统的基本结构要素

较复杂的管理系统是由较多的反馈回路所组成的,只要能掌握系统的反馈回路,自然能了解复杂管理系统的动态行为特性。

Page 38: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

水平变量、速率变量✦ 水平变量的数值大小是表示某一

系统变量在某一特定时刻的状况✦ 速率变量表示某个水平变量变化

的快慢✦ 水平变量可以说是系统过去累积

的结果,它是流入率与流出率的净差额– 例如,水槽中的水量就是一个水平变量,水的多少主要由水的流入速率与流出速率的快慢决定,或者说,水平变量的大小就是系统内各种行动或活动结果的累积。

✦ 水平变量本身不可能自我产生瞬间变化,它必须由速率变量的作用才能由某一个数值状态改变另一数值状态

Page 39: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

水平变量、速率变量

✦ 在一个复杂的管理系统中,若要清楚的辨认什么是水平变量时,可以运用系统连续性的概念,先假设系统为完全静止,然后分析在静止状况下系统中有哪些仍然能够被观察到的物质,这些在静止状态下代表着系统的延续而存在着的物质就是动态模型中的水平变量。

Page 40: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

水平变量、速率变量

✦ 在一个复杂的管理系统中,若要清楚的辨认什么是水平变量时,可以运用系统连续性的概念,先假设系统为完全静止,然后分析在静止状况下系统中有哪些仍然能够被观察到的物质,这些在静止状态下代表着系统的延续而存在着的物质就是动态模型中的水平变量。

Page 41: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

水平变量、速率变量的区分方法

✦ 由于速率变量是一个行动变量,因此,当行动停止下来,速率变量的作用也就终止或消失,而水平变量是过去所有行动结果的积累,即使系统现在没有活动,水平变量仍然继续存在而且能被观察得到。

✦ 一个系统的所有的活动完全停止,在静止状态下仍然存在并且能观察到的量就是水平变量,否则就不是水平变量。

Page 42: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

改变水平变量的因素与动力

✦ 确定了水平变量后,再分析影响或改变水平变量的因素或动力是什么 ?这些因素和动力就是速率变量。– 一棵树可以停止生长,但代表这颗树木过去成长过程中积累的树木高度仍然存在可见。

– 在一个工厂中,所有的活动可以暂时停止,而代表这家工厂的职工数、半成品数、成品数、机器设备数以及现金等水平变量都仍然存在,而且是可以度量的。

– 在一个管理系统中,有些水平变量不一定是物质的,例如职工的积极性、公司的信誉、产品的质量等都不容易度量,但是它们都是存在的水平变量。

Page 43: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

✦ 系统动力学著名的“内生”观点:系统行为的性质主要取决于系统内部的结构,也就是系统内部反馈结构与机制。这是系统动力学基本理论中的核心思想。– 系统的内部结构是指系统内部各反馈回路和结构及它们相互作用的关系与性质。尽管系统的行为丰富多彩,系统在外部涨落的作用下可能发生干变万化的反应,然而系统行为的发生与发展都主要地根植于系统内部。复杂系统,例如一国的国民经济,尽管有时候要受外部事件 (比如国际金融危机 )的严重影响,但其行为特性仍主要地取决于其内部组成部分之间的相互作用和所采取的政策。

系统动力学关于内因与外因的辩证关系

Page 44: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

系统动力学关于内因与外因的辩证关系

✦ 系统内部微观结构与其宏观行为的关系问题,创始人 Forrester 对此作了精辟的阐述:“系统之宏观行为源自其微观结构”,这已成为数十年来系统动力学界的经典。

✦ 系统动力学强调内因与外因的辩证关系。内因是系统存在、变化、发展的依据,外因是系统存在、变化、发展的客观条件。在一定条件下,外部的干扰起着重要作用,但归根到底,外因也只有通过系统的内因才能起作用。而系统的演化方向则由内、外因通过内部反馈机制共同决定的。

Page 45: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

系统动力学的主导动态结构作用原理

✦ 在系统内部的诸反馈回路中,在其发展、运动的各阶段,总是存在一个或一个以上的主要回路 ( 或称主导回路 ) ,这些主导回路的性质及它们相互间的作用 ( 包括竞争与协作 ) ,主要地决定了系统行为的性质及其变化与发展,这就是主导动态结构作用原理

✦ 相当于协同学中的支配原理

Page 46: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

主导回路✦ 主导回路存在于系统运动、变化、发展和由旧系统结

构过渡到新结构的全部过程之中。它们代表了在一定时空条件下系统的主导结构。

✦ 强调主导部分的作用并不排斥其他非主导部分在系统中的作用。系统的主导部分只能在与其他部分的相互作用中形成和存在。系统的行为的性质与模式 ( 相当于协同学中的相 ) 是由主导结构与非主导结构共同作用的结果。

✦ 由于系统内某些非线性变量、敏感变量的变化以及干扰与涨落的影响,主导结构是动态变化的,其具体内容在系统整体结构新旧更迭的前后是不同的,而且即使在同一系统结构中,在一定的时空条件下,主导与非主导部分也可能相互转化。

Page 47: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

主要变量和敏感变量与子结构✦ 在系统中总是存在一部分相对重要的变量,它们对系统

的结构与行为的性质、特征的作用与影响比较大,而且总是被包含于主回路之中。

✦ 系统中往往存在一些灵敏变量 ( 或参数 ) 与子结构,它们对干扰与涨落的反应十分敏感和强烈

✦ 一旦系统处于临界状态,涨落对这些灵敏变量 ( 或称涨落点 ) 的作用可能导致新旧结构的更迭

✦ 若这类灵敏变量处于主回路中或两种极性的回路的联结处,由于灵敏变量 (往往是非线性的 ) 本身的微小变化或由于涨落的作用,将使主回路转移,或改变主回路极性,甚至导致整个系统的结构与行为产生巨大的变化或质的变化。

Page 48: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

灵敏变量 ?

✦富者愈富基模

Page 49: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

富者愈富基模

✦富者愈富基模

Page 50: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

第二部分:DYNAMO

Page 51: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 语言概述

✦ DYNAMO 语言是一种计算机仿真语

言, DYNAMO 是由英文“ DYNAmic MOdels”两词合并而成的。

✦ DYNAMO 语言的主要用途:在已经建立的现

实系统模型的基础上,借助子计算机描绘 ( 仿真、模拟 ) 现实系统随时间变化的动态行为。

✦ DNAMO 语言是一种专为仿真系统动力学模型

而设计的高级计算机语言。 DYNAMO 语言规

则比较简单,功能也比较强。

Page 52: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 语言概述

✦ DYNAMO 语言的功能

– 能够检查方程的逻辑错误,并提示错误

–根据动态系统的结构原理整理模型

– 给模型编制计算程序

–根据控制指令执行计算

– 用数表和曲线图形式输出结果

Page 53: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 语言概述

✦ DYNAMO 语言的特点

– DYNAMO 语言直接采用 SD 模型中的方程

–专用函数,简化建模过程

–更适用于仿真分析高阶、多回路和非线性的

反馈系统

– 语言规则简单,便于掌握,仿真效率高。

Page 54: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

✦ 基本规则

– DYNAMO只允许使用 26 个大小写的字母和

0-9 个阿拉伯数字

注:在注释语句和标题方程中,则不受限制

– 有效的运算符

• 算数运算符有: + 、一、 * 、/

• 逻辑运算符有: = = 、 >= 、 <= 、 > 、 < 、 !=

Page 55: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

–变量名称• 每一个变量由 6 个以内的英文字母或数字构成

• 系统变量不能作为变量名称

系统变量:DT 、 LENGTH 、 TIME 、 METHOD 、 PRTPER 、 DTMAX、 DTMIN 、 EMAX 、 EMIN

• 函数不能作为变量使用

函数名字有:

ABS 、 EXP 、 COS 、 SIN 、 SQRT 、 LOGN 、 NOISE 、

SMOOTH 、 DELAY1 、 DELAY3 、 DELAYP 、 DLINF3 、

STEP 、 NORMRN 、 CLIP 、 FIFGE 、 SWITCH 、 FIFZE 、

TABLE , TABHL , TABTW , TABTH , SAMPLE , PULSE

SUM1 , SUM2 , SUM3 , BOXLOAD , BOXLIN 、 OXCYC

MA 、 MIN 、 RAMP共 33 种。

Page 56: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

– 时间下标

Page 57: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

–变量的种类• LEVEL变量

• RATE变量

• 辅助变量

• 初始条件变量

• 常数变量

• 列车变量

• 表变量

• 增补变量

Page 58: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

✦ 方程式语句• 水准方程(流位方程, L 方程)

L 变量名称 .K=变量名称 .J+DT*表达式

注:①方程式“ =”左端第一项的变量名称必须和右端第一项

名称相同

Eg: I.K=DT*(XIN.JK-Xou.JK)+I.J ×

②L 方程等号右边第二项至少包含一个速率变量(流率变量

③ 凡是用 L 方程式定义的变量名称,只能用 N 方程

式赋初值,不设定将自动取零。

Eg: N P=10 √

C P=10 ×

④DT只能出现在 L 方程,不能出现在其它方程。

DYNAMO 的基本功能

Page 59: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

• RATE 方程(流率方程 ,R 方程)

R R△△△变量名称 .KL=表达式

注意:① R 方程无固定表达式,其右边是根据实际

情况写,但不允许含有时间间隔 DT(速率的值在 DT

内不变 );

Eg: R OR.KL=(DI-I.K)/AT

②R 方程没有速率变量;

③ 速率的值是对正在进行计算的时刻 K

以后立即出现的 KL 间隔来说的。

④ 初值可以由 N 方程赋给,不设定初值

则取零

Eg : N RATE=100

DYNAMO 的基本功能

Page 60: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

• 辅助方程( A 方程)

A A1·K=g(L1·K,A2·K,R1·JK,…)

注意:①没有统一的标准格式;

② 时间表示总是 K ,无前一时刻( .J )的值,一旦出现过去时刻辅

助变量,则被认为是环;

Eg: A P.K=P.J+D.K ×

R PSR.KL=(IDR.K-IAR.K)/AT

A IDR.K=(AIR)(RSR.K) √

③ 可由现在时刻的其他变量( A,L,R )求出 .

④ 初值可以由 N 方程赋给,不设定初值则取零

⑤ 辅助变量的计算顺序由系统自动安排,但是当出现代数环时,将产生排序失败。

例如: A FIRST.K=SECOND.K

A SECOND.K=THIRD.K

A THIRD.K=FIRST.K

对这三个方程,由于无法安排计算顺序,而出现错误。

{

DYNAMO 的基本功能

Page 61: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

• 赋初值方程( N 方程)

N L1= 数值 或 L1=L10

L10= 数值

注意:①初始条件方程仅在开始仿真时计算一次

②N 方程式左、右两侧的变量都不加注时间符号

③N 方程的计算顺序由系统自动安排。

例如: N A=B

N B=10

则先计算 B 的值,然后才计算 A 的值

④ 当出现代数环时,将产生排序失败。

例如: N A=B

N B=A

对这二个方程,由于无法安排计算顺序,而出现错误。

Page 62: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

• 常量方程 ( C 方程)

C C1= 数值

注意:方程式的右端一定是数值。

例如: C CONST=10

Page 63: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

• 列车方程式 (B 方程式 )

B 变量名称 =BOXCYC(列车长度,移动间隔 )

或 =BOXLIN (列车长度,移动间隔 )

其中:列车长度 <9999 ,移动间隔 = (变量,数值)

注意: ①第一个自变量的数值是指定车厢数的,必须是整数

② 列车变量在使用时需要指出名字,使用车厢数

③ 列车变量的初值可由 C 或 N 方程指定

④ 列车变量可以在 L 、 A 方程左端定义

⑤ 列车变量不能输出

Page 64: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

• 优化目标方程 (OPT)

OPT 变量名称. K=表达式

注意: ①这个方程的使用方法和辅助方程完全相同。

例如: OPT VAL. K=C1*C1+C2*C2

② 在目标方程中出现的变量可以有模型中的变量,也可以

不含有要优化的参数

Page 65: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

• 优化参数方程 (OPTPAM) OPTPAM 变量,变量,……

注意:在这个方程中出现的变量必须在常数方程中定义。

例如:

C C1=5

C C2=6

0PT VAL.K=(C1 一 8)*(C2—8)

0PTPAM C1 , C2

Page 66: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

• 增补方程式 (S)

S 变量名称. K=表达式

注意:① S 方程式的计算仅在由 PRTPER 所设定的时刻进行。

②S变量不需要初值。

③ 有多个 S 方程式时,计算顺序由系统自动安排

例如:求几个 LEVEL变量的和:

L LA. K=LA. J+DT*A. J

L LB. K=LB. J+DT*B. J

L LC. K=LC. J+DT*C. J

S SUM. K=LA. K+LB. K+LC. K

Page 67: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

• 系统变量方程 (SPEC 方程 )

SPEC 变量名称 = 数值

① 一个系统变量给若干个系统变量赋值时,两个变量之间

用“;”或“/”分开

例如: SPEC LENGTH=10/ DT=1

② 在这个方程中出现的所有变量都必须是规定的系统变量,

否则将产生错误。

例如: SPEC NAME=10 ×

因为 DYNAMO/ C没有规定 NAME 是系统变量。

Page 68: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

在 DYNAMO 中规定的系统变量

LENGTH 仿真终止时刻

DT 积分步长

TIME 仿真开始时刻

METHOD 积分方法选择

=1 欧拉法

=2 四阶龙格一库塔法

=3 龙格一库塔一米森变步长法

PRTPER 设定打印间隔

DTMAX 步长最大值 ( 用于变步长法 )

DTMIN 步长最小值 ( 用于变步长法 )

EMAX 误差最大值 ( 用于变步长法 )

EMIN 误差最小值 ( 用于变步长法 )

Page 69: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

• 表方程在 DYNAMO 语言,表方程分为两种:当表函数的自变量为等

间隔时使用 T 方程:当表函数的自变量为不等间隔时使用TA 方程。

( 1 ) T 方程 语句形式为

T 变量名称 ={ 数值 }

数值之间用“,”或“/”分开。

例如: T TAB=1 , 2 , 3 , 4 ,5

(2)TA 方程 语句形式为:

TA 变量名称 ={ 数值,数值 }

在一组数值内用“,”分开,而每一组数值之间用“/”分开。

例如: TA TAB=1 , 2/ 4 , 6/ 10 , 4

每种表方程中数值的个数不受限制。

Page 70: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

✦命令语句– PRINT 变量名称 { [ 数值,数值 ]} ,……– GRAPH 变量名称 { [ 数值,数值 ]} ,……– PLOT 变量名称 { [ 数值,数值 ]} ,……– * 内容

– NOTE 内容– RUN– X 内容

Page 71: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能✦标准函数

– 数学函数• SQRT: 平方根函数

• EXP: 指数函数

• LOGN: 自然对数函数

• ABS:绝对值函数

• SIN:正弦函数

• COS:余弦函数

• MAX: 最大值函数

• MIN: 最小值函数

Page 72: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

✦标准函数

–测试函数

• STEP :阶跃函数

• NOISE :均匀随机数函数

• RAMP :斜坡函数

• NORMRN :正态随机函数

• PULSE :脉冲函数

• SAMPLE :采样函数

Page 73: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

✦标准函数

–宏函数

• SMOOTH函数

• DLINF3函数

• DELAYl函数

• DELAY3函数

• DELAYP函数

Page 74: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的基本功能

✦标准函数

– 其他函数

• 表函数

• 合计函数

• CLIP(FIFGE)函数

• SWITH(FIFZE)函数

Page 75: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAM0 的使用欢迎菜单

✦ WELCOME TO DYNAMO/ C✦ Version 2. 00✦ Copyright 1991 by✦ XiAn JiaoTong University✦ Author : Systems Engineering Institute✦ F : File manager✦ U : Utility program(format disk , copy system)✦ S : DYNAMO/ C system menu✦ Q : Quit(Stop run)✦ Type your choice[ ]

Page 76: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

文件管理菜单在欢迎菜单 ( 或系统菜单 ) 下打入 F ,就可以进入文件管理菜单。

这时,屏幕上将显示如下信息:DYNAMO/ C FILE MANAGER MENU

L : List directory

C : Copy file

D : Delete file

P : Print file(use printer)

T : Type file(on screen)

R : Rename file

O : Other command(run file with an extension of. EXE or.COM)

Q : Quit

Enter your choice :

Page 77: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

U格式化磁盘

U格式化磁盘也可以拷贝 DOS操作系统。

✦ 这时屏幕上将显示如下提示信息:

✦ Enter your drive name :

✦ 打入要格式化的磁盘所在的驱动器名字,如A :、 B :、 C :等,如果在驱动器名字后加“/S” ,则表示拷贝 DOS操作系统。

✦ 如果打入 A :,则在屏幕上显示如下提示信息:

✦ Insert new diskette for drive A :

✦ And strike any key when ready✦ 按入任一键后,将开始格式化 A盘。若此时不格式化

,可以打入 CTL—C 返回到欢迎菜单。

Page 78: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

系统菜单

DYNAMO/ C SYSTEM MENU✦ E : Edit/ Input file✦ C : Compile and run model✦ O Output(with other model for output variables)✦ M Modify(constants , system variables , etc. )✦ R Return✦ F File manager(dir , type , copy , etc. )✦ Q Quit✦ Type your choice [ ]

Page 79: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

输出菜单

在系统菜单下打如 O ,就可以进入此菜单。显示如下信息:

✦ DYNAMO/ C OUTPUT MENU✦ Fl : Display data on screen✦ F2 : Print data using printer✦ F3 : Write data to file✦ F4 : Display low resolution graphics on screen✦ F5 : print low resolution graphics use printer✦ F6 : Write low resolution graphics to file✦ F7 : Display medium resolution graphics On screen✦ F8 : Display proportional graphics on screen✦ F9 : Copy graphics to printer(1 : 1)✦ F10 : Quit

Page 80: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

修改菜单✦ 在系统菜单里打入 M ,可以进入修改菜单。显示如下信息

✦ DYNAMO/ C MODIFY MENU✦ D Device of writing date filel✦ C Constants✦ S System variables(dt , length , etc. )✦ I Integration method(Eular , Runge-Kutta , etc. ) ✦ O Output variables✦ Q Quit✦ Type your choice[ ]

Page 81: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

暂停菜单✦ 在 DYNAMO/ C 仿真过程的任一时刻,用户都可以打入 P 来暂停运

行 (打入 S停止运行,返回到系统菜单 )这时,显示的信息如下所示:

✦ DYNAMO/ C PAUSE MENU✦ C : Continue run✦ M : Modify(constants , system variables , etc. )✦ D : Display data(no plot and graph)✦ Q : Ouit running✦ Type your choice[ ]✦ 在这个菜单下,打入:

✦ 1 、 C继续运行。

✦ 2 、 M 修改常数或系数变量。但系统变量只允许修改LENGTH 、 DT 、 PRTPER 。

✦ 3 、 D显示到暂停时刻为止所产生的数据,但不画图。

✦ 4 、 Q停止运行,返回到系统菜单。

Page 82: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

DYNAMO 的错误信息

✦ 三种错误信息

– 在编辑过程中出现的错误。此时,将显示方程的内容

和错误类型。

– 在运行中产生的错误。包括被零除、负数开平方等

– 文件系统错误。出现在运行过程中或在输出时,如磁

盘满等。

Page 83: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

具体错误

✦ 不正确的方程名字。

✦ 不正确的方程类型。

✦ 不正确的变量下标。

✦ 同名方程。

✦ 不正确的表达式。

✦ 变量使用错误。

✦ 不正确的 LEVEL 方程。

✦ 缺少右括号

✦ 不合法的标识符。

✦ 不正确的 OPTPAM 方程。

✦ 变量名字太长。

Page 84: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

具体错误

✦ 数字太长或常数错误。

✦ 变量数不够。

✦ 不合法的字符。

✦ 不正确的 BOX变量。

✦ 不正确的 TABLE函数。

✦ 不正确的 BOX函数。

✦ 定义了不正确的 BOX变量。

✦ 未定义的 BOX变量名字。

✦ 不正确的项在 SUM函数中。

✦ MACRO函数不能在 L 方程。

✦ 未定义的变量或不正确的下标。

Page 85: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

具体错误

✦ BOX变量不能输出。

✦ 不正确的 DE[,AYP函数。

✦ 未定义的系统变量。

✦ 不正确的输出变量。

✦ 模型太大。

✦ 未定义的输出变量。

✦ LENGTH 等于零。

✦ 没有输出变量。

✦ 单变量 TABLE函数超出范围

✦ 双变量 TABLE函数超出范围。

✦ BOX变量超出范围。

Page 86: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

具体错误

✦ SUM函数超出范围。

✦ 不正确的变量在 SUM函数中。

✦ 不正确的 N 方程。

✦ 以下方程产生排序失败。

✦ 零出溢出。

✦ 负的 SQRT参数。

✦ 负的 LOGN参数。

Page 87: 8.1第八章系统动力学与dynamo模型

✦《复杂系统建模与仿真》《复杂系统建模与仿真》

本章—完