DYNAMO语言简介DYNAMO是Dynamic Model(动态模拟)的混合缩写,它计算一组变量随时间推移的变化结果,从而使人们知道这些变量的演变情况。DYNAMO模型由代数方程组构成,每一方程都简单明了地描述了系统的一部分是如何运行的。目前DYNAMO语言有许多种版本,这里是以MicrO—DYNAMO版本为基础介绍DYNAMO语言。Micro-DYNAMO可以直接在IBM-PC系列及其兼容机上运行,因而是易于推广使用的一种版本。dynamic models 一种专门为系统动力学 系统动力学 系统动力学(简称SD—system dynamics)的出现于1956年,创始人为美国麻省理工学院(MIT)的福瑞斯特(J.W.Forrester)教授。系统动力学是福瑞斯特教授于1958更多设计的仿真语言,属于连续系统仿真语言。系统动力学的建模采用四种基本模型时滞组合成复杂模型,用以描述社会、经济等具有信反馈的复杂系统。利用这种复杂模型进行计算机仿真可研究各种控制因素对系统稳定性或发展趋势的影响,并能根据仿真运行的结果提出建议,以便重新调整系或改变方针政策。

中文名

DYNAMO语言

外文名

Dynamic Model

创始人

福瑞斯特教授

正文

一种专门为

DYNAMO语言

在DYNAMO语言中用1~5个字母组成的字符串表示变量名,并可由用户自行规定。有些变量名则已预先规定好。例如,变量TIME用于产生时间基准。图中示出时间流程的描述方法,K表示计算的起始时刻,J表示已经完成的前一个计算的起始时刻,L表示准备进行的下一个计算的起始时刻,JK表示已经过去的时间间隔,KL表示将要到来的时间间隔。计算过程在相同的时间间隔上进行,JK=KL。通常用DT表示恒定的时间间隔,DT的大小由用户自行选择。在DYNAMO语言中在变量名称后要附加一个词尾J,K,L,JK或KL来标定计算时间,中间用句号隔开。在DYNAMO语言中用LEVEL变量来描述系统的状态。LEVEL一般译为级或流位或存量或水平量,表示系统的定量指标。系统在每一时刻的状态可用一组指标来表示。选取系统的一组LEVEL变量来表示系统的状态是建模中很关键的一步。在DYNAMO语言中用RATE变量来描述系统状态随时间的变化。RATE一般译为流率或速率或变化率或决策变量。找出影响RATE变量的因素,即可掌握系统动态变化规律。用DYNAMO语言编制的源程序即系统动力学模型本质上是一个一阶微分方程组。但是DYNAMO语言比微分方程的形式更为清晰。它用L方程表示每一个LEVEL的变化情况,再用R方程分别描述影响LEVEL变化的每一个因素。DYNAMO语言还提供了很多表示变化率与状态之间关系的方法,如比例关系,算术运算关系,标准函数关系,表函数关系,以及这些关系的复合函数关系。如果关系比较复杂,则可用辅助变量AUXILI-ARY来表示,以减少函数嵌套的深度。对建模来说,用辅助变量可使模型更加清晰。通过辅助变量可以清楚地表达因果关系链中每一个别环节以及引起系统变化的外部原因。DYNAMO语言用常数变量CONSTANT来描述系统的参数或系数。用DYNAMO语言建模可以把时滞、结构和反馈环都清晰地表达出来。时滞DELAY是指某些因素并不立即起作用,而要经过若干时间分若干次显示出来。时滞值的大小一般是系统的固有特性。在DYNAMO语言中为了使模型更加简洁,当中间过程的细节可被忽略时,可以使用宏函数。一个宏函数相当于若干个L方程和R方程。反馈环实质上是一种很复杂的因果关系。这样整个系统可由一些简单的环节组配而成。用DYNAMO语言建模往往先画出系统流程图。由实线贯穿着存量和速率,表明实物流的流动情况。由虚线联系着存量、速率和其他外部因素,反映反馈关系和环境影响。

从观察系统到建立系统的流程图是用DYNAMO语言编制仿真程序的关键。对于简单的系统,很容易凭直觉就画出系统的流程图。一般可以根据系统分析,先找出实物流,再找出信息流。对于比较复杂的系统,可按下列步骤建模:①确定系统边界。②找出因果关系和反馈环。③区分反馈环中LEVEL变量和RATE变量。④确定L方程和R方程的结构。

程序

DYNAMO程序DYNAMO程序中有两类语句:一类是模型描述语句,用来描述流程图中的元素和变量的初始状态,模型描述语句的集合就组成了系统动力学模型。另一类是控制语句,用来控制仿真运行,如规定仿真过程的步长及输出报告的内容和格式等。

模型描述语句共有八种,每种均以第一列的一个特定的字母为标识,指明这个语句描述的变量类型。从第三列起,书写这一类型的变量方程。变量方程由变量名、时间下标、运算符号、各种标准函数、宏函数和数组成。其基本形式是:变量名。时间下标=表示式。变量名是由1~5个字母组成的字符串,由用户自行规定。变量名后用时间下标表示变量在指定时刻进行计算,中间用句号隔开。方程中不允许有空格,否则就认为空格后的内容是注释。

在DYNAMO语言中有11种控制语句。用DYNAMO语言编制仿真程序时,为了使模型更加简洁,可以调用一系列标准函数和宏函数。各种版本的DYNAMO软件均有常用的标准函数和宏函数。

参考书目

G.戈登著,杨金标译:《系统仿真》,冶金工业出版社,北京,1982。(G.Gordon, System Simulation, Prentice-Hall, Englewood Cliffs, N.J., 1978.)