630 likes | 1.12k Views
3. DYNAMO 语言简介. 方程式 延迟、平滑 函数 Vensim 软件. 3.1 DYNAMO 语言概述. DYNAMO 是一种计算机模拟语言系列。取名来自 Dynamic Models( 动态模型 ) 的混合缩写。 顾名思义, DYNAMO 的涵义在于建立真实系统的模型,并借助于计算机进行系统结构、功能与动态行为的模拟。 DYNAMO 系列是伴随系统动力学,相辅相成地发展起来的。 DYNAMOⅠ 、 DYNAMO Ⅱ 、 DYNAMO Ⅲ 、 DYNAMO Ⅳ……
E N D
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方程赋予初始值
方程式举例 • 咖啡冷却系统 L CoffeeT.K=CoffeeT.J+(DT)*(cooling.JK) N CoffeeT=40 R cooling.KL=TIME TO COOL * DISC.K A DISC.K =ROOMT-CoffeeT.K C ROOMT=20 C TIME TO COOL=0.2 Coffee Temperature系统动力学流图
表函数(Table) • 当模型需要用辅助变量描述某些变量间的非线性关系,对变量进行简单的代数运算已不能胜任。 辅助变量的值可以用表函数表示。 例:自变量等间距变化(DT); A Y.K=TABLE(TY, X.K, 0, 8, 2) T TY=7, 4, 3, 9, 4 • 表函数形式: A VAR.k=TABLE(表名,输入变量,最小的X值Xmin,最大的X值Xmax,X的增加值△X) T 表名=Y0, Y1, … Yn
表函数举例 • 某城市人口年增长率 A 增长率.K=TABLE(T增长率, 年份.K, 2000,2004,1) T 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。 延迟环节 疾病蔓延模型的三阶物质延迟 • DELAYP 打印隐含的状态变量功能 • 三阶物质延迟(DELAY3) R SYMP.KL=DELAY3(INF.JK, TSS)
平滑(平均) • 以企业管理为例,企业管理者不会把某一天企业销售数量暴涨的信息,而作为一个企业长远的规划,并把它作为企业库存、招工、扩大生产等问题的决策依据,而是力图从销售信息中去除随机因素,找出真实的趋势。换言之,对销售信息在一段时期内求均值。 “平均”与“平滑”的方式在系统动力学建模时屡见不鲜。 • 平滑函数: 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) CLIP(A, B,X,Y)= A, 若X≥Y B, 若X <Y • 最小值函数MIN(A, B) MIN(A, B)= B, 若A≥B A, 若A < B • 开关函数 SWITCH(A, B, X) SWITCH(A, B, X)= A, 若X=0 B, 若X≠0
P Q 测试函数(时间控制函数) • 在模型测试中,可采用变量的突增、斜坡函数、振荡与随机干扰等,这些测试有助于揭示模型内部结构与其动态行为的关系。 1. 阶跃函数STEP(P, Q) 2. 脉冲函数PULSE(P, Q, R) P Q R
3. 斜坡函数RAMP(P, Q) 斜率为p Q 4. 噪声函数NOISE() A B A*NOISE()+B
举例——测试函数 • 测试函数 涵义 使用方法 特点 测试结果 • 订货率(ORDRS) • 发货率(SHIP) 简单库存控制系统模型流图
DYNAMO小结 • DYNAMO不仅是一种构模语言,而且是一种较为完整的建模、分析与模拟的有力工具。 其他SD语言:STEUA、Vensim、i-think、Powersim等。 • 其中,Vensim的功能尤最,而且能运行方程达数千的大模型。 Vensim是一个建模工具,它可以建立动态系统的概念化的、文档化的仿真模型,便于分析和优化系统。 Vensim提供了一种简单且富有弹性的方法,从常规的循环或储存过程和流程图建立模型。 • http://www.vensim.com/ 减缩版:Vensim-PLE (Personal Learning Edition) Vensim-PLE plus
4. 一阶系统与 二阶系统 一阶正反馈系统 一阶负反馈系统 S型增长的反馈结构 二阶系统、复杂系统简介
3.1 一阶系统与复杂系统 • 定义:系统的阶数是由此系统包含多少状态变量决定的。 一阶系统就是含有一个状态变量的系统。 • 在现实世界中,高阶数、多回路、非线性的反馈复杂系统比比皆是。 研究复杂系统→→系统动力学 • 系统动力学认为:一个复杂系统的行为往往由某些主回路和主要变量决定,换言之,复杂系统中往往存在一些起主导作用的主回路和主要变量。 因此,一个高阶系统可以从结构上分解为一阶或低于四阶的简单系统。 也就是说,简单系统是各种复杂系统中的基本单元或通用的子结构。 其中,一阶系统是最基本、最简单的系统单元。
3.2 一阶正反馈系统 • 在正反馈过程中,由于变量自身的反馈作用,将不断加剧该变量的增长或减小。 如:滚雪球、雪崩效应 工资—物价增长因果反馈关系 • 正反馈:“良性”或“恶性”的循环 这种效应取决于回路中各部分之间的作用是相互改善还是恶化。 良性:规模-收入-GDP增长 恶性:工资—物价增长, 军备增长, 吸毒泛滥等 军备增长的因果反馈关系
正反馈系统特性——指数增长 • 指数增长曲线描述了大多数正反馈系统的特性。 如:发展中国家的人口增长, 污染问题, 再生自然资源的消耗与减少, 都表现出指数增长或减少的特点。 指数增长曲线 • 指数增长的突出特点是,一开始似乎增长得很慢,然后在短时间内猛增。
正反馈系统——结构与方程 • 正反馈一般结构 • 指数增长方程式: L LEV.K=LEV.J+(DT)(RT.JK) R RT.KL=CONST*LEV.K C CONST=1 式中: DT——计算时间间隔(年); CONST——常数(1/年); LEV——状态变量(单位); RT——速率(单位/年) 正反馈系统的典型流图
正反馈系统——参数推导 L LEV.K=LEV.J+(DT)(RT.JK) 变形: (LEV.K-LEV.J)/DT=RT.JK DT→0, d LEV(t)/dt =RT(t) 假设: RT(t)=CONST*LEV(t) 则: d LEV(t)/dt = CONST*LEV(t) 解得: LEV(t) = LEV(0)eCONST*t 令t=T=1/CONST LEV(T) = LEV(0)e =2.73 LEV(0) t=2T LEV(2T) =2.73 LEV(T)=LEV(0)e2=7.45LEV(0)
正反馈系统——重要参数 • 1. 时间常数T 定义:时间常数为CONST的倒数。 T=1/CONST 涵义:T决定正反馈系统中增长或减少的速度。 当T(或1/CONST)大时, 相应的LEV(t) 为较平缓的增长曲线; 反之,LEV(t)为较陡峭的变化曲线。 7.45 LEV(0) 2.73 LEV(0) LEV(0) 时间常数T与倍增时间Td的关系
正反馈系统——重要参数 • 2. 倍增时间Td 变量由初始值增至二倍的初始值时所需的时间。 每经过一个Td,LEV的值将较前增加一倍。 LEV(0) →2LEV(0) 8LEV(0) • 3. T与Td的关系: LEV(t) = LEV(0)eCONST*t 令 LEV(t) = 2LEV(0) 2LEV(0)=LEV(0)eCONST* Td 2= eCONST* Td 则 Td =ln2*T=0.69T 2*2LEV(0) 2LEV(0) LEV(0) 时间常数T与倍增时间Td的关系
正反馈系统——举例 L RAL.K=RAL.J+(DT)(IPR.JK) N RAL=1 R IPR.KL=FAIR*RAL.K C FAIR=0.2 LEV的初始值计算RT; RT*DT; RT*DT+LEV初始值,得新的LEV; 新的LEV代替初始值,重复计算。 银行利息流图 • 银行储蓄的本利计算: LEV与RT的指数增长
正反馈——指数增长的重要特点 以不同大小的时间坐标范围观察指数增长过程: t≤15 Td前,增长趋势不显著, t≥ 15 Td后,状态变量猛然暴涨。
正反馈——超指数增长 • 如图,实线表示的非线性情况,其变化率的增长速度较虚线表示的线性增长情况快得多,这种增长过程称为超指数增长。 • 系统时间常数变化的非线性系统比起线性系统具有更加突出的指数增长特性。 非线性的变化率—状态关系曲线 超指数增长曲线
正反馈——指数增长与崩溃 可产生两种模式的系统变化率与状态关系曲线 指数崩溃模式曲线
正反馈系统——小结 • 在正反馈闭合回路中,其一部分的变化将引起全体在同一方向上产生无休止的变化过程。 • 正反馈系统最简单的模型只包括一个状态变量,它累计速率的变化,状态值的一般特性是指数式增长,不过系统中也可能发生加速崩溃的过程。 • 指数增长过程的显著特点可用倍增时间表述。 • 在现实生活中的有界限环境中,正反馈、负反馈力量相互作用于事物的发展。
3.3 负反馈系统 • 负反馈系统的特点是它的跟随目标的特性(寻的特性)。 即状态值的任意增或减使状态值与目标值之间产生偏差,为了减小偏差,系统的内部作用反过来使状态值相应的减或增,使偏差减小,最终仍大体维持了原先的状态。 • 诸如自调节、自控制、自均衡,体内平衡或自适应等隐含存在着寻的或趋向目标的负反馈结构。 • 负反馈结构因果关系图: 期望状态(目标) 系统状态(水平) 偏差 校正量(速率) 负反馈结构的因果与相互关系回路图
负反馈系统——结构与方程 • 基本方程式: L LEV.K=LEV.J+(DT)(RT.JK) R RT.KL=CONST*DISC.K A DISC.K =GL-LEV.K 式中: DT——计算时间间隔(时间); CONST——常数(1/时间); LEV——状态变量(单位); RT——速率(单位/时间); DISC ——偏差(单位); GL ——目标值(单位) • 负反馈一般结构 负反馈系统的典型流图
负反馈系统——参数推导 LLEV.K=LEV.J+(DT)CONST* (GL-LEV.K) 变形: (LEV.K-LEV.J)/DT=CONST*(GL-LEV.K) DT→0 d LEV(t)/dt = CONST*(GL-LEV(t)) 解得: LEV(t) = GL-[GL-LEV(0)]e﹣CONST*t 令 t=T=1/CONST LEV(T) = GL-[GL-LEV(0)]e﹣1 = LEV(0)+(1- e﹣1)[GL-LEV(0)] = LEV(0)+0.632[GL-LEV(0)] LEV(2T) = LEV(T)+0.632[GL-LEV(T)] LEV(3T) = LEV(2T)+0.632[GL-LEV(2T)]
负反馈系统——重要参数 • 1. 时间常数T T=1/CONST 涵义:代表状态在初始值LEV(0)基础上增长0.632倍的偏差值(目标值与初始值之差)所需的时间。 随着T的增加,状态值(LEV)将越来越接近目标值(GL)。 经过3倍的T之后,LEV接近目标的程度可达到95%; 而经过4T后则达到99%。 (系统状态趋于稳定) 负反馈系统的过渡过程
负反馈系统——重要参数 • 2. 减半时间常数Th LEV(t) = LEV(0)]e﹣CONST*t 1/2LEV(0) = LEV(0)e﹣(1/T)*Th 整理后得: Th =T*ln2=0.69*T Th=0.69T 状态变量的指数衰减曲线
负反馈系统——行为特性 负反馈系统的图解模拟
寻的负反馈系统的三种行为模式 • 模式(1): GL>0, LEV(0)≥0,(LEV(0)-GL)<0 状态值渐近增长趋向目标值GL。 • 模式(2):GL>0, (LEV(0)-GL)>0 状态值指数衰减趋向目标值GL。 • 模式(3):GL=0, LEV(0)>0 状态值指数衰减至0。 寻的系统运行模式(1)与(2) 零目标结构寻的系统
负反馈系统的补偿特性 • 负反馈系统具有当其状态变量受外界输入(或输出)速率作用时仍力图使状态变量趋于目标值的特性,称为补偿特性。 方程式: L LEV.K=LEV.J+ (DT)(RT1.JK+RT2.JK) R RT1.KL=CONST*DISC.K C CONST=1 A DISC.K=GL-LEV.K C GL=100 R RT2.KL=CRT C CRT=8 带有不变外生输入速率的负反馈系统
推导: RT1.KL=CONST*(GL-LEV.K) RT2.KL=CRT NTRT.KL=CONST*(GL- LEV.K)+CRT 当NTRT=0时, CRT=-CONST*(GL-LEV.K) =-CONST*GL+LEV*CONST LEV=NGL=(CRT/CONST)+GL 或以时间常数T(T=1/CONST)表示, NGL=T*CRT+GL • 系统新的动态平衡 速率—状态变量关系曲线 • 系统新的平衡值比原目标值GL增加了T*CRT
负反馈系统——小结 • 由此可见,负反馈系统具有补偿功能。 即:当系统在附加输入或输出速率的情况下,可自动建立起新的平衡,新的平衡值与原期望的目标值不同。此差值(或称误差)与系统的时间常数及外生速率有关。 (1)在最简单的系统中,基于状态值与目标值之差的速率发挥调节作用,驱动系统状态趋向目标值。 (2)时间常数T决定系统对状态变化的反应速度。 • 负反馈系统具有力图维持系统处于平衡状态(寻的)的特性。
举例:库存控制系统 简单的库存控制系统 新的平衡 • 销售率阶跃增加? 一阶负反馈系统对销售阶跃增加的响应