系统动力学讲稿2

更新时间:2023-07-23 19:55:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

系统动力学自学教程

3. DYNAMO语言简介

方程式 延迟、平滑 函数 Vensim软件

系统动力学自学教程

3.1 DYNAMO语言概述

DYNAMO是一种计算机模拟语言系列。取名来自Dynamic Models(动态模型)的混合缩写。 顾名思义,DYNAMO的涵义在于建立真实系统的模型,并借助 于计算机进行系统结构、功能与动态行为的模拟。 DYNAMO系列是伴随系统动力学,相辅相成地发展起来的。 DYNAMOⅠ、 DYNAMO Ⅱ、 DYNAMO Ⅲ、 DYNAMO Ⅳ…… DYNAMO是特地为模拟动态反馈系统而设计的专用语言。它能 够方便地以表格、图形等形式输出数据型的模拟结果。

系统动力学自学教程

3.1 DYNAMO 语言概述

当模拟一个动态反馈系统时, DYNAMO按每一个时间 间隔(DT)为一步,对系统进行定量模拟,并逐步地 模拟下去,从而得出系统的行为。

时间下标:J、K、L 时间间隔:DT→→准确度

DYNAMO中的时间下标

系统动力学自学教程

3.2 变量与方程的表示

DYNAMO中所有的数量可 划分为两大类: (1)常数

(2)变量

变量的通用符号

系统动力学自学教程

DYNAMO模型中各种方程L 状态(State, level)变量方程 在DYNAMO中计算状态变量(或称积累变量)的方程称为状态变量方程。 L LEVEL.K=LEVEL.J+DT * (INFLOW.JK- OUTFLOW.JK)

R 速率(变化率)方程 速率方程无一定格式; 速率的值在DT时间内是不变的,其时间下标为KL。

A 辅助(Auxiliary)方程 辅助方程定义为在反馈系统中描述信息的运算式; “辅助”的涵义就是帮助建立速率方程。

C 赋值予常数 T 赋值予表函数中Y坐标 N 为LEVEL方程赋予初始值

系统动力学自学教程

方程式举例INITIAL TEMP ERATU RE RO OM TEMP ERATU RE

咖啡冷却系统

C offe e Te m pe ratu re

coolingTIME TO CO OL

Coffee Temperature系统动力学流图

L N R A C C

CoffeeT.K=CoffeeT.J+(DT)*(cooling.JK) CoffeeT=40 cooling.KL=TIME TO COOL * DISC.K DISC.K =ROOMT-CoffeeT.K ROOMT=20 TIME TO COOL=0.2

系统动力学自学教程

表函数(Table)

当模型需要用辅助变量描述某些变量间的非线性关系,对变量进行简 单的代数运算已不能胜任。 辅助变量的值可以用表函数表示。表函数形式:

A

VAR.k=TABLE(表名,输入变量,最小的X值Xmin,最大的X值Xmax,X的增加 值△X) T 表名=Y0, Y1, Yn

X

0

2

4

6

8

例:自变量等间距变化(DT); A Y.K=TABLE(TY, X.K, 0, 8, 2) T TY=7, 4, 3, 9, 4

Y

7

4

3

9

4

系统动力学自学教程

表函数举例

某城市人口年增长率年份 增长率 2000 0.070.25 0.2 0.15 0.1 0.05 0 2000 2001 2002 2003 2004

2001 0.1

2002 0.08

2003 0.12

2004 0.2

A T

增长率.K=TABLE(T增长率, 年份.K, 2000,2004,1) T增长率=0.07, 0.1, 0.08, 0.12, 0.2

系统动力学自学教程

3.3 DYNAMO——延迟与平滑

在现实生活中,延迟与平滑现象非常普遍。 延迟(DELAY)与平滑(SMOOTH)是信息反馈系统结构中颇 为重要的角色。

DYNAMO备有延迟函数与平滑函数,使建模者书写

方程 变得方便。

延迟函数(DELAY)

平滑函数(SMOOTH)

系统动力学自学教程

延迟

系统动力学模型中应包含反馈系统的主要物质与信息流。 有时,物质和信息流会发生延迟。

如:厂家一般不可能立即向顾客交付订货,而且货也未必能同时到达; 又如:人们感染生病,一般要经过潜伏期,然后才显出病症。

(延迟时间)

DYNAMO有数种延迟函数,以便利构模人员使用。DELAY1, DELAY3, DELAYP

系统动力学自学教程

延迟函数——举例

疾病蔓延基本模型中有三个状态变量:未患病者SUSC,病患者SICK, 康复者RECOV。因政策研究的需要,增加一个状态变量:处潜伏期者INC。延迟环节

疾病模型的基本结构 疾病蔓延模型的一阶物质延迟

一阶物质延迟(DELAY1) R SYMP.KL=DELAY1(INF.JK, TSS)

系统动力学自学教程

延迟函数——举例

将一阶物质延迟中隐含的状态变量INC再细分成若干状态变量。 假设 TSS=3天 INC→→ INC1, INC2, INC3。延迟环节

疾病蔓延模型的三阶物质延迟

三阶物质延迟(DELAY3) R SYMP.KL=DELAY3(INF.JK, TSS)

DELAYP打印隐含的状态变量功能

系统动力学自学教程

平滑(平均)

以企业管理为例,企业管理者不会把某一天企业销售数量暴涨的信息, 而作为一个企业长远的规划,并把它作为企业库存、招工、扩大生产 等问题的决策依据,而是力图从销售信息中去除随机因素,找出真实 的趋势。换言之,对销售信息在一段时期内求均值。 “平均”与“平滑”的方式在系统动力学建模时屡见不鲜。 平滑函数:A SVAR.K=SMOOTH(VAR.K, STIME) STIME——平滑时间 VAR——待平滑变量 SVAR——已平滑的变量

一阶平滑结构流图

系统动力学自学教程

平滑函数

在系统动力学模型中,被平滑的变量可以是状态、速率和辅助变量。 平滑函数对输入量的响应特征:

1. 若变量VAR为阶跃函数(突增后保持恒定),其平滑值SVAR将渐渐趋近此恒定值。 2. 若VAR是一个脉冲,VAR在SVAR趋紧VAR之前就跌落下来,SVAR不能达到VAR的幅值, 并按另一指数式的寻的特性下降。 3. 若VAR是一个震荡的输入量,其平滑值SVAR亦将随着震荡,但幅值要小得多。

结论: 平滑函数具有平滑原变量的激烈起伏功能,即经平滑得到的平均值正 是所期望的真实趋势。

平滑函数对脉冲输入的相应

系统动力学自学教程

3.4 DYNAMO——函数DYNAMO提供多种类型的函数,十分有助于建模者构思模型、书写 模型的方程以及调试模型。

数学函数

逻辑函数测试函数

系统动力学自学教程

数学函数

DYNAMO备有五种数学函数,采用标准数学符号:

SQRT(X)=√X,非负值变量X的开方; SIN(X)=sinX,变量X的正弦, COX(X)=cosX,变量X的余弦, EXP(X)=eX,指数函数,e=2.718…, LOGN(X)=logeX,以e为底的自然对数。

系统动力学自学教程

逻辑函数

DYNAMO的

逻辑函数有:MAX, MIN, CLIP, SWITCH等。

最大值函数MAX(A, B)MAX(A, B)= A, 若A≥B B, 若A < B 跳跃函数 CLIP(A, B, X, Y)

最小值函数MIN(A, B) MIN(A, B)= B, 若A≥B

A, 若A < B开关函数 SWITCH(A, B, X)

CLIP(A, B,X,Y)= A, 若X≥Y B, 若X < Y

SWITCH(A, B, X)= A, 若X=0 B, 若X≠0

系统动力学自学教程

测试函数(时间控制函数)

在模型测试中,可采用变量的突增、斜坡函数、振荡与随机干扰 等,这些测试有助于揭示模型内部结构与其动态行为的关系。 1. 阶跃函数STEP(P, Q) 2. 脉冲函数PULSE(P, Q, R)

P Q P Q R

系统动力学自学教程

3. 斜坡函数RAMP(P, Q)

斜率为p

Q

4. 噪声函数NOISE()

A B

A*NOISE()+B

系统动力学自学教程

举例——测试函数

测试函数涵义 使用方法 特点 测试结果

订货率(ORDRS) 发货率(SHIP)

简单库存控制系统模型流图

系统动力学自学教程

阶跃函数

本文来源:https://www.bwwdw.com/article/3wsm.html

Top