什么是DYNAMO语言?

什么是DYNAMO语言?,第1张

什么是DYNAMO语言?

[拼音]:DYNAMO yuyan

[外文]:dynamic models

一种专门为系统动力学设计的仿真语言,属于连续系统仿真语言。系统动力学的建模采用四种基本模型和时滞组合成复杂模型,用以描述社会、经济等具有信息反馈的复杂系统。利用这种复杂模型进行计算机仿真就可研究各种控制因素对系统稳定性或发展趋势的影响,并能根据仿真运行的结果提出建议,以便重新调整系统或改变方针政策。DYNAMO语言正是根据系统动力学建模思想而设计出来的面向用户的仿真语言,即使没有程序设计经验的用户也很容易学会使用这种语言。为了在计算机上执行用DYNAMO语言编写的仿真程序,已经设计出各种版本的DYNAMO软件,以文本和软磁盘的形式提供。

简史

1958年美国麻省理工学院的R.K.贝内特研制出不用方程式的工业管理问题仿真软件SIMPLE(Simula-tion of Industrial Management Problem with Lostof Equations), 它具有图形输出。1959年P.福克斯和 A.L.皮尤,对 SIMPLE作了改进, 并改称现名 DYNAMO。1962年J.W.福雷斯特建议放宽对模型初值的限制。1965年重新编写了 DYNAMO编译程序。早期的 DYNAMO编译程序是用算法语言 ALGOL编写的。 后来改用公式翻译语言FORTRAN编写。DYNAMO软件已有多种版本,适用于不同的机型和 *** 作系统,从适用于IBM公司大型计算机的DYNAMOⅣ/370到适用于小型机的 Mini-DYNAMO和适用于微型机的MicroDYNAMO。

系统动力学建模

系统动力学的基本模型有四种:指数增长模型=kx,指数衰减模型=-kx,改进型指数增长模型=k( X-x),以及对数模型=kx(X-x)。这里x变量是变量x对时间t的导数,表示变量的变化速率,X是变量x的极限值,k是比例系数。复杂的模型则可由上述基本模型加时滞等组合而成。系统动力学把被仿真的系统看作是信息反馈系统,利用可能收集到的经验数据(即信息)来直观地描述系统的结构。系统在每一瞬间的状态用一组流位(在DYNAMO中称为 LEVEL变量)来表示,状态随时间的变化则用流率(在DYNAMO中称为RATE变量)来表示。 而流率又决定于流位和其他因素。所以一个复杂系统实质上是由一系列信息反馈环交织在一起组成的。这就使得现实世界中许多无法用精确的数学函数描述的复杂系统的非线性大系统也能用计算机进行仿真。

系统动力学在研究系统结构时,只分析相关要素的直接关系,对于复杂的间接关系则看作是由简单关系的串并联组成的。这样对一个个反馈环进行跟踪,就可以比较真实地反映系统的结构。在进行仿真研究时采用时间步进法,根据前一时刻的系统状态估计下一时刻的系统状态,表示系统的动态变化过程。如果系统是稳定的,当时间步长取得足够小时,仿真系统与真实系统的误差保持在允许范围内。




在DYNAMO语言中用1~5个字母组成的字符串表示变量名,并可由用户自行规定。有些变量名则已预先规定好。例如,变量TIME用于产生时间基准。图中示出时间流程的描述方法,K表示计算的起始时刻,J表示已经完成的前一个计算的起始时刻,L表示准备进行的下一个计算的起始时刻,JK表示已经过去的时间间隔,KL表示将要到来的时间间隔。计算过程在相同的时间间隔上进行,JK=KL。通常用DT表示恒定的时间间隔,DT的大小由用户自行选择。在DYNAMO语言中在变量名称后要附加一个词尾J,K,L,JKKL来标定计算时间,中间用句号隔开。在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语言编制仿真程序的关键。对于简单的系统,很容易?a href='http://www.baiven.com/baike/224/268586.html' target='_blank' style='color:#136ec2'>局本蹙突鱿低车牧鞒掏肌R话憧梢愿?a href='http://www.baiven.com/baike/220/256691.html' target='_blank' style='color:#136ec2'>系统分析,先找出实物流,再找出信息流。对于比较复杂的系统,可按下列步骤建模:

(1)确定系统边界。

(2)找出因果关系和反馈环。

(3)区分反馈环中LEVEL变量和RATE变量。

(4)确定L方程和R方程的结构。

DYNAMO程序

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

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

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/4726922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-08
下一篇 2022-11-08

发表评论

登录后才能评论

评论列表(0条)

保存