第三章 DYNAMOL模拟语言.ppt_第1页
第三章 DYNAMOL模拟语言.ppt_第2页
第三章 DYNAMOL模拟语言.ppt_第3页
第三章 DYNAMOL模拟语言.ppt_第4页
第三章 DYNAMOL模拟语言.ppt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章 DYNAMO模拟语言,DYNAMO,取名来自Dynamic Models的缩写,是一种计算机模拟语言系统。 用DYNAMO写成的反馈系统模型经计算机进行模拟,可得到随时间连续变化的系统图像。建模者可据此分析系统的结构、功能及行为。在此基础上,进行政策分析与决策,实现预测和择优的目的。,1 DYNAMO中的时间下标,例如: 库存系统的方程可用DYNAMO表示为: INV.K=INV.J+DT*(ORRE.JK-SH.JK) 式中: INV.K库存现有量; INV.JDT前的库存量(J时刻的库存量); ORREJK间隔内的入库量; SHJK间隔内的发货量。,假如某仓库每月入库量为80件,发

2、货量为100件, 5个月前的库存量为1200件,求现在的库存量? INV(现在)INV(过去)(时间间隔)(纯速率) 12005(80100) 12005(20) 1200100 1100件,2 DYNAMO的有关规定与规则,21 变量名字符的规定 变量名字符不超过6个。变量名的第一字符必须是字母,其后则可为字母或数字。 如:LEV、LEV1、LEV2、X1、X2等,2. 2 代数运算符的表示 SD通用的代数运算符: 加法:= 减法: 乘法:* 除法:/ 代数运算的顺序是:先乘方、开方,再乘、除,最后加、减。 括号内的加、减优于括号外的运算。 同一层次的运算符,按先左后右的原则进行运算。,23

3、 方程的列数 一个方程中不能有空格,每行不能超过72列。一行不够可另起一行,但第一列必须以字符“X”作为标记。(P66) 2 4 变量与常量 DYNAMO中的所有数量可分为大两类: (1)变量:其值是可变的,有时间下标。 (2)常量:其值在一次模拟过程中不变,没有时间下标。 例如:SALE.K 变化的销售量 SALE固定的销售量,3 DYNAMO的方程式,3.1 状态(State,Level)变量方程 在SD中,凡是能对输入和输出变量进行积累的变量称为状态变量,计算状态变量的方程称为状态变量方程。 状态变量方程在 DYNAMO模型中,以字母L为标志写在第一列。,例如1: L LEVEL.K=L

4、EVEL.J+DT*(INFLOW.JK- OUTFLOW.JK) 式中: LEVEL状态变量; INFLOW输入速率(变化率); OUTFLOW输出速率(变化率); DT计算间隔(从J时刻到K时刻)。,例如2: L POP.K=POP.J+DT*(BIRHS.JK-DEATHS.JK) 式中: POP人口(人); BIRTHS出生率(人/年); DEATHS死亡率(人/年)。,32 速率(Rate)方程 在状态变量方程中代表输入与输出的变量称为速率,它由速率方程求出。在DYNAMO中,速率方程以字母R为标志。与状态变量方程不同的是,速率方程没有标准格式,只能根据系统的具体情况书写。,例如1:

5、 R BIRTHS.KL=BRF*POP.K 式中: BIRTHS出生率(人/年); BRF出生率系数(1/年); POP人口(人)。,例如: R DEATHS.KL=POP.K/AVLIFE 式中: DEATHS死亡率(人/年); POP人口(人); AVLIFE平均寿命(年)。,速率方程的特性: (1)速率方程无一定的格式; (2)速率的值在DT时间内式不变的。速率方程式在K时刻进行计算,而在自K至L的时间间隔(DT)中保持不变; (3)速率的时间下标为KL。,33 辅助(Auxiliary)方程 在建立速率方程之前,若未先做好某些代数计算,把速率方程中必需的信息仔细加以考虑,那么将遇到很

6、大的困难。这些附加的代数计算,在DYNAMO中称为辅助方程,方程中的变量则称为辅助变量。 在DYNAMO语言中,辅助方程要以字母A为标志写在方程的前面。,辅助方程的特性: (1)辅助方程没有统一的标准格式; (2)辅助变量的时间下标为K; (3)辅助变量可由现在时刻的其他变量:状态变量、速率变量或其他辅助变量求出。,34 表函数(Table Function) 表函数也是一种辅助方程,其标准格式为: A VAR.K=TABLE(表名,输入变量,最 小X值Xm,最大的X值XM,X的增量X) T 表名Y0/Y1/Y2/Yn Y0/Y1/Y2/Yn为特定点n的Y坐标 值。 例如:P53,35 N方程

7、 N方程的主要用途是为状态变量方程赋予初始值。 在模型程序中,N方程通常紧跟着状态方程。 例如: L INV.K=INV.J+DT*(ORRE,JK-SH,JK) N INV=1000,3.6 C方程 C方程式用于给常数赋值。 例如: N BRF=LPFY*OPL*FS*FF C LPFY=3 C OPL=3 C FS=0.6 C FF=0.5,3.7 变量与方程图形表示的通用符号 P 56,4 DYNAMO的函数,DYNAMO拥有的主要函数有:延迟(Delay)函数、平滑(Smooth)函数、数学函数、逻辑函数以及测试函数等。这些函数对于建模都是十分重要的。 41 延迟函数(Delay),4

8、.1.1 物质延迟 例如:疾病蔓延模型,其状态方程: L INC.K=INC.J+DT*(INF.JK-SYMP.JK) N INC=TSS*INF R SYMP.KL=INC.K/TSS 式中: TSS为潜伏期,比如流感的潜伏期为3天。 上述方程式可用DYNAMO中的DELAY1方程代替,功能相同,简明方便。 R SYMP.KL=DELAY1(INF.JK,TSS),(1)DELAY1 一阶延迟环节 DELAY1系指一阶指数物质延迟。它隐含了一个状态变量(INC)。以DELAY1代替一组方程,适应方便,但缺点是该状态变量被隐含了,不能绘图和打印出来。 如图4。6 疾病模型中的DELAY1环节

9、(P58) 一阶物质延迟环节的输出变化率取同一类型表达式LEV.K/DEL,LEV为内部隐含的状态变量,DEL为延迟时间。 隐含于DELAY1内的状态变量的初始值,DYNAMO能自动处理。,(2)DELAY3三阶延迟环节 P58 图4。7 三阶延迟结构的流图 (3)DELAYP DELAYR函数的功能是能把DELAYP3隐含的状态变量显现出来。 R SYMP.KL=DELAYP(INF,JK,TSS,INC,K) 式中INC(处潜伏期人口)为三阶延迟环节中的三个内部状态变量总和。 一个DELAYP方程代表了10个方程:三个状态变量、三个状态初值、三个变化率和一个状态变量总和的辅助方程。,(4)

10、物质延迟的阶数 阶数指的是延迟环节内部包含的状态变量数。 一阶延迟表现出简单的指数形增长的特性。 二阶以上延迟则表现出S形增长的特性。 所以,可以用三阶延迟代表其他延迟环节。 究竟采用哪一阶数的延迟,应根据实际系统如何响应输入的突然变化来定。,4. 2 平滑函数 平滑(平均)的概念:信息在一段时间内的平均值。 信息的平滑和平均实职上是一种积累过程。它可以包含一个或多个状态变量。,图2. 4 一阶平滑结构流图,平滑(平均)函数的方程式: L SVER.K=SVAR.J+DT*SRARE.JK N SVAR=VAR R SRARE.KL=(VAR.KSVAR.K)/STIME 式中: SVAR已平

11、滑的变量; VAR待平滑的变量; SRATE平滑速率; STIME平滑时间。,上述方程式可用DYNAMO中的辅助方程SMOOTH函数代替: A SVAR.K=SMOOTH(VAR,K, ATIME) 式中: SMOOTH平滑函数 DYNAMO能自动处理方程的初始值问题。设置:t0时,SVAR=VAR. 被平滑的变量可以是状态、速率、辅助变量。平滑时间STIME 通常为常数,但也可以是变化的。,43 信息延迟 与物质在系统中流动存在延迟类似,信息在系统中传递也存在延迟。 例如:国内生产总值(GNP) 社会总产值(Total Production of Society) 公司当日的销售率 (1)一

12、阶信息延迟函数SMOOTH 平滑函数经常用来描述信息的延迟。,(2)三阶信息延迟函数DLINF3 如图4.12(P62) A SV3.K=DLINF3(VAR.K, STIME) 式中: SV3三阶信息延迟输出; DLINF3三阶信息延迟; VAR输入变量; STIME平滑或延迟时间。,DELAY3和DLINF3的区别: 物质流变化率可输入物质延迟环节; 任何信息速率、状态、辅助变量均可被加以平滑,实现信息延迟。 物质延迟与信息平滑和延迟函数的流图符号如图4.13(P62),44 数学函数 DYNAMO备有五种数学函数,采用标准数学符号: (1)SQRT(X)= ,非负值变量X的开方; (2)

13、SIN(X)=sinX,变量X的正弦; (3)COS(X)=cos(X),变量X的余弦; (4) ,指数函数,e2.718; (5) ,以e为底的自然对数。,45 逻辑函数 DYNAMO的逻辑函数有MAX, MIN, CLIP, SWITCH等。 (1)MAX(A,B)取A,B中较大者,即: MAX(A,B)A,若AB B,若AB (2)MIN(A,B)取A,B中较小者,即: MIN(A,B)B,若AB A,若AB,MAX函数可用来产生数的绝对值,表达式为: MAN(A,A) MAX函数也可用于防止出现除式分母为0和负值的情况,表达式为: A/MAX(B,0.01 (3) CLIP函数 CLI

14、P(A,B,X,Y)A,若XY B,若XY 此函数在模型模拟过程中,用于更换或改变原来的函数和常数值。,(4)SWITCH函数 SWITCH(A,B,X)A,若X0 B,若X0,46 测试函数(TEST),通过不同类型的摄动试验可以从模型及其代表的反馈系统获取大量的信息。这些摄动试验式借助各类测试函数进行的。在模型测试中,可采用变量的突增、斜坡函数、振荡、随机干扰等。这些试验均有助于揭示模型内部结构与其动态行为的关系。这类测试的目的在于深入地研究模型和它所代表的信息反馈系统。,DYNAMO的外生摄动的测试函数包括:阶跃STEP、斜坡RAMP、脉冲PULSE、正弦SIN和噪声NOISE函数。 例

15、如:图4.14 简单库存控制系统模型流图(P65) (1)阶跃函数(The STEP Function) 阶跃函数:幅值在给定时刻发生突变的函数。 STEP(A,B) A阶跃的幅度; B阶跃发生的时刻。,该函数表示:在时刻B前STEP函数的值为0,当时间等于或大于B时,STEP函数等于A的值。 阶跃幅值A的值可正可负。 例如: (见书P67,图4。15) A TEST.K=STEP(HGHT,STRT) C HGHT=10 C STRT=2,(2)斜坡函数(The RAMP Function) 斜坡函数是一种连续增长或下降的时间的线性函数。 RAMP(A,B) 式中: A线性函数的斜率; B斜

16、坡函数的起始时刻。 在时间B时刻前,RAMP取0值,在B或B时刻之后其值由线性函数决定: A*(TIME.KB),例如: (见书P68,图4。16) A TEST.K=RAMP(SLP,STRT) C SLP=20 C STRT=2,(3)脉冲函数(The PULSE Function) 脉冲函数为DYNAMO提供瞬时冲击的方法。变量在每一次短促的变动后立即回至原值。 PULSE(A,B,C) 式中: A脉冲的幅度; B第一个脉冲出现的时刻; C相邻两个脉冲之间的间隔。 脉冲函数是一个周期性函数,分为单脉冲和周期性脉冲。,例如: P69 图4.17,(4)正弦函数(The SIN Functi

17、on) 正弦函数,用于测试模型对于正弦振荡输入变量的响应。 A*SIN(6.283*TIME.K/B) 式中: A振荡幅度; B振荡周期; 6.2832(为圆周率)。 例如: P71 图4.19和图4.20,(5)噪声函数(The NOISE Function) DYNAMO备有随机数发生函数,称为噪声函数。表达式为: NOISE ,5 DYNAMO的输出问题,5.1 输出语句 在建立状态、速率与辅助变量方程之后,再加上一些输出语句,就能使计算机执行模拟、打印结果和绘制曲线。 另外,在各种方程编制完毕后,建模者即可用SD的专用模拟软件进行模拟,并可根据模拟结果,进行政策分析与决策。,(1)SPEC语句 在SD中,SPEC语句规定模型模拟需要的参数。 此语句包括4种参数与常数:DT、 LENGTH、 PRTPER和PLTPER。 DT计算间隔,即两次模拟计算之间隔; LENGTH这是一个时间常数,规定模拟停止的时刻。当TIME.K等于或大于LENGTH的值时

温馨提示

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

评论

0/150

提交评论