Vensim函数库
vensim延迟函数

vensim延迟函数摘要:1.了解vensim延迟函数的基本概念2.vensim延迟函数的使用方法及注意事项3.实际应用场景分享正文:venSim是一款强大的系统动力学仿真软件,通过构建动态模型来描述和预测现实世界中的复杂现象。
在venSim中,延迟函数是一种重要的功能模块,它可以实现模型中某些变量在特定时间点的输出。
本文将简要介绍venSim延迟函数的基本概念、使用方法及注意事项,并通过实际应用场景进行说明。
一、了解vensim延迟函数的基本概念在venSim中,延迟函数是一种特殊的函数,它允许用户在特定的时间点计算和输出模型变量的值。
延迟函数的输入参数为一个或多个变量,输出结果为这些变量的特定时间点的值。
通过使用延迟函数,用户可以更好地控制模型中变量的动态行为,从而实现对模型的精细化管理。
二、vensim延迟函数的使用方法及注意事项1.使用方法:在venSim中,延迟函数的语法格式如下:```LAG(变量名,时间步长)```其中,变量名表示要进行延迟的变量,时间步长表示延迟的时间间隔。
例如,若变量名为“X”,则延迟函数可以表示为:```LAG(X,10)```这表示输出变量X在当前时间点之前的10个时间步长的值。
2.注意事项:- 延迟函数的时间步长必须为正数,且小于等于模型的时间步长。
- 延迟函数可以应用于任何类型的变量,包括连续变量和离散变量。
- 延迟函数的输出结果为单位时间内变量的平均值,而非精确值。
若需要精确值,请使用其他函数进行计算。
三、实际应用场景分享1.场景一:某供应链管理系统模型中,需要计算每个时间点库存量的平均值。
可以使用延迟函数实现如下:```LAG(库存量,1)```这表示输出每个时间点的库存量在当前时间点之前的平均值。
2.场景二:某经济growth 模型中,需要计算过去5个时间点的经济增长率。
可以使用延迟函数实现如下:```LAG(经济增长率,5)```这表示输出每个时间点的经济增长率在当前时间点之前的5个时间点的平均值。
vensim表函数withlookup

vensim表函数withlookupVensim是一款流行的系统动力学建模软件,它提供了许多强大的功能,其中之一就是表函数withlookup。
这个函数可以帮助用户在模型中使用查找表,从而更加准确地模拟实际情况。
在系统动力学建模中,我们通常需要使用一些函数来描述变量之间的关系。
例如,我们可能需要使用线性函数、指数函数或对数函数来描述某些变量的变化。
然而,在某些情况下,这些函数可能无法准确地描述变量之间的关系。
例如,当我们需要描述一个变量在不同条件下的变化时,使用传统的函数可能会变得非常困难。
这时,我们可以使用查找表来描述变量之间的关系。
查找表是一种将输入值映射到输出值的表格,它可以帮助我们更加准确地描述变量之间的关系。
在Vensim中,我们可以使用表函数withlookup来实现这一功能。
使用withlookup函数,我们可以将输入值映射到输出值。
例如,我们可以使用withlookup函数来描述某个变量在不同温度下的变化。
我们可以将温度作为输入值,将变量的值作为输出值,然后在表格中输入不同的温度和对应的变量值。
当我们需要模拟这个变量在不同温度下的变化时,只需要使用withlookup函数即可。
除了可以使用withlookup函数来描述变量之间的关系外,我们还可以使用它来进行插值。
插值是一种将输入值映射到输出值的方法,它可以帮助我们更加准确地描述变量之间的关系。
在Vensim中,我们可以使用withlookup函数来进行线性插值或样条插值。
Vensim的表函数withlookup是一种非常强大的工具,它可以帮助我们更加准确地描述变量之间的关系。
无论是在描述变量在不同条件下的变化,还是在进行插值时,withlookup函数都可以帮助我们实现这一目标。
因此,如果你正在使用Vensim进行系统动力学建模,不妨尝试一下withlookup函数,相信它会给你带来意想不到的效果。
vensim中integer函数的运用 -回复

vensim中integer函数的运用-回复vensim中的integer函数是用于将实数转换为整数的函数。
在模拟建模中,我们经常遇到需要使用整数的情况,例如人口数量、数量统计等。
integer函数可以将实数四舍五入为最接近的整数,并将结果返回。
在vensim中,integer函数的语法为:INTEGER(x)其中,x为需要转换为整数的实数。
integer函数会将x四舍五入为最接近的整数,并返回整数结果。
下面,我们将详细介绍integer函数的使用方法和实际应用场景。
首先,我们来看一个使用integer函数的简单示例。
假设我们需要模拟一个城市的人口增长情况,初始人口为1000人,每年增长率为2.5。
在vensim中,我们可以使用integer函数来计算每年的人口数量:1. 创建一个变量Population来表示人口数量,使用initial函数设置初始人口为1000。
2. 创建一个变量GrowthRate来表示人口增长率,使用constant函数设置增长率为0.025(即2.5)。
3. 创建一个变量Year来表示模拟的年份,使用time函数生成从初始年份开始的连续年份序列。
4. 创建一个变量YearlyGrowth来表示每年新增的人口数量,使用Population * GrowthRate计算。
5. 创建一个变量TotalPopulation来表示累计人口数量,使用integral函数计算每年新增人口数量的累计值。
6. 创建一个变量IntegerPopulation来表示每年的整数人口数量,使用integer函数将Population的值四舍五入为整数。
通过以上步骤,我们实现了对人口数量的模拟和计算。
在实际应用中,integer函数常常用于人口数量统计、物品数量计算等场景中。
例如,假设我们需要模拟一个超市的销售情况,每天的销售数量可能是实数(例如1.5、2.8等),但是我们需要将其转换为整数进行统计和分析。
vensim中的函数说明

第8章 Vensim PLE 软件包中系统动力学函数系统动力学所以能处理复杂的系统问题,除提出流位流率系简化流率基本入树建模法去描述系统外,还有一个重要原因是其专用软件都设计了一系列通用的系统动力学函数。
第一节数学、逻辑、测试函数§ 8.1.1 数学函数Vensim PLE备有五种普通数学函数供用户使用.1.SIN(X)定义1:SIN(X)为三角正弦函数,X须以弧度表示,其值小于8。
35×105当自变量是角度时,应通过乘以2π/360 转化为弧度。
2.EXP(X)定义2:EXP(X) = e X ,e是自然对数的底,e=2.7182…,X的值必须小于36。
人们常用指数函数去描述系统,有了上面函数将会带来很大方便。
3。
LN(X),变量X大于零.即以e为底的对数函数,它与EXP(X)互为反函数,这样可以用EXP(X)和LN(X)来计算非以e为底的幂函数和对数函数。
4. SQRT(X)=√X—,X必须是非负量。
5。
ABS(X) = │X│,对X取绝对值。
§ 8.1。
2 逻辑函数逻辑函数的作用类似于其它计算机语言中的条件语句,Vensim PLE的逻辑函数有三种。
1.最大函数MAX(P,Q)MAX表示从两个量中选取较大者,P和Q是被比较的两个量,结果也是在这两个量中选取。
P 若P≥Q定义1:若MAX(P,Q)=Q 若P≤Q其中P,Q是变量或常量,则MAX(P,Q)为最大函数。
可用MAX函数从多个量中选取较大者.如从P,Q,D三个量中选择较大者可用:MAX(D,MAX(P,Q))。
最小函数 Q 若P≥Q定义2:若MIN(P,Q)=P若P≤Q 则MIN(P,Q)为最小函数。
MIN同MAX一样,可以从MIN(P,Q)基本功能中派生出各种用法。
3。
选择函数IF THEN ELSE(C,T,F)定义3:若IF THEN ELSE(C,T,F)T C条件为真时= (C为逻辑表达式)F 否则则IF THEN ELSE(C,T,F)为选择函数。
vensim_使用手册

6.1 Vensim 规则......................................................................................................................25 6.2 兔子繁殖模型..................................................................................................................25
该使用手册是以 Vensim 5.4a PLE 版本为基础,结合教学和科研实践整理而 成的。本手册可以帮助初学者快速掌握 Vensim 的使用,在复旦大学管理学院本 科教学多次试用,收到了很好的效果。本手册可以配合《系统动力学》课程的教 学和实验、为教学服务,也可以供科研工作者参考。虽然手册中的各个步骤都上 机做了验证,但仍然会存在错误和不足,希望广大使用者批评指正。同时也欢迎 大家就 Vensim DSS 的相关内容一起学习和讨论。
第 3 章 应用举例 .......................................................................................................13
3.1 用 Vensim 建模步骤..........................................................................13 3.2 劳动力库存问题建模实例..............................................................................................13
系统动力学 建模软件 Vensim函数 总结

16
SMOOTHI(input,delay time,initial step(5,10) value)
17
RANDOM UNIFORM(2,20 , X ) SMOOTH(X, 10 ) SMOOTH(X, 10 ,2)
Y
20
1
4
Y : Current
6
7 10 13 16 19 22 25 28 31 34 37 40 Time (Month)
Y
4.5
3
1.5
0 14
Y : Current
7 10 13 16 19 22 25 28 31 34 37 40 Time (Month)
Returns BASE to the power of X. Same as BASE^X
Provides a normal distribution of mean 0 and variance 1 before it is stretched,
14 shifted and truncated. This is
equivalent to a normal distribution with mean h and standard deviation r. The units of r should match m, x and h.
time, initial value)
DELAY1I(X,10, -8 )
Y
-4
-5
-6
-7
-8 0 10 20 30 40 50 60 70 80 90 100 Time (Month)
Y : Current
vensim中的函数

Vensim PLE 软件包中系统动力学函数系统动力学所以能处理复杂的系统问题,除提出流位流率系简化流率基本入树建模法去描述系统外,还有一个重要原因是其专用软件都设计了一系列通用的系统动力学函数。
第一节数学、逻辑、测试函数§ 8.1.1 数学函数Vensim PLE备有五种普通数学函数供用户使用。
1.SIN(X)定义1:SIN(X)为三角正弦函数,X须以弧度表示,其值小于8.35×105当自变量是角度时,应通过乘以2π/360 转化为弧度。
2.EXP(X)定义2:EXP(X) = e X ,e是自然对数的底,e=2.7182…,X的值必须小于36。
人们常用指数函数去描述系统,有了上面函数将会带来很大方便。
3. LN(X),变量X大于零。
即以e为底的对数函数,它与EXP(X)互为反函数,这样可以用EXP (X)和LN(X)来计算非以e为底的幂函数和对数函数。
4. SQRT(X)=√X—,X必须是非负量。
5. ABS(X) = │X│,对X取绝对值。
§ 8.1.2 逻辑函数逻辑函数的作用类似于其它计算机语言中的条件语句,Vensim PLE的逻辑函数有三种。
1.最大函数MAX(P,Q)MAX表示从两个量中选取较大者,P和Q是被比较的两个量,结果也是在这两个量中选取。
P 若P≥Q定义1:若MAX(P,Q)=其中P,Q是变量或常量,则MAX(P,Q)为最大函数。
可用MAX函数从多个量中选取较大者。
如从P,Q,D三个量中选择较大者可用:MAX(D,MAX(P,Q))。
最小函数 Q 若P≥Q定义2:若MIN(P,Q)=P 若P≤Q则MIN(P,Q)为最小函数。
1.MIN同MAX一样,可以从MIN(P,Q)基本功能中派生出各种用法。
3. 选择函数IF THEN ELSE(C,T,F)定义3:若IF THEN ELSE(C,T,F)T C条件为真时= (C为逻辑表达式)F 否则则IF THEN ELSE(C,T,F)为选择函数。
Vensim中的主要函数

V ensim中的主要函数A FUNCTION OF(#,A,B,C,,,) 。
Shows "generic" relationships -automatically generated by Sketch tool.ABS(A)求a的绝对值。
Returns the absolute value of A.ACTIVE INITIAL(A,N)。
Defines an Auxiliary with distinct active and initial values.DELAY1(I,T)一阶物质延迟(现实中几乎没有这种情况高版本中已没有此函数)。
First order exponential delay of I for time T conserving I.DELAY1I(I,T,N)一阶信息延迟。
Same as DELAY1 but starting at N.DELAY3(I,T)三阶物质延迟。
A third order exponential delay of I for time T conserving I. DELAY3I(I,T,N)三阶信息延迟。
Same as DELAY3 but starting at N.EXP(X)e的指数函数。
Returns e(2.718...) to the X power.IF THEN ELSE(cond,X,Y)选择判断。
Returns X if condition is non-zero(cond >=0), otherwise Y.INITIAL(A)返回A的初始值。
Returns the value of A at initialization time and holds it constant.INTEG(R,N) 。
Performs numerical integration of R starting at N (defi nes a Level).LN(X)x的自然对数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Vensim函数库Vensim 函数库就是Vensim 软件内部集成的函数功能,在Vensim_PLE 版本中,函数库中一共包含25 个函数。
当这些函数可以直接体现模型变量间关系的时候,建模者可以在设置变量关系的过程中选择使用这些函数。
单击Equation 功能键,Vensim 就会打开公式编辑器。
在这里,单击Function(函数)功能键,Vensim 所提供的所有函数关系就会出现在Function下面的下拉式菜单中。
如图1-1 所示。
Vensim 函数库中的25 个函数主要可以分为以下几类:数学函数、逻辑函数、随机函数、测试函数与延迟函数。
以下我们对这五类函数一一进行介绍。
1.数学函数数学函数就是Vensim 函数库中最简单的一类函数。
它包括SIN、EXP、LN、SQRT、ABS、INTEGER、MODULO 七个函数,主要应用于变量间的基本数学关系。
表1-1中总结了这七个数学函数的名称、形式与功能,可以在建立模型过程中参考与使用。
表1-1 Vensim 数学函数总结函数名称函数形式函数功能SIN SIN( {x} ) 取正弦EXP EXP( {x} ) exLN LN( {x} ) 取对数SQRT SQRT( {x} ) 取平方根ABS ABS( {x} ) 取绝对值2.逻辑函数Vensim 函数库中另一类重要的函数就是逻辑函数。
在建立模型过程中,有时候变量间的关系需要经过一些比数学计算更复杂的处理,比如判断若干变量中的最大或者最小的值,然后将结果赋予另一个变量。
Vensim_PLE 版本中的逻辑函数包括最大、最小值判断函数与条件函数。
这三个函数在很多模型中的变量关系判断中使用频率都很高。
下面就对这三个函数进行一一介绍。
1)MAX基本形式:MAX ({x1},{x2})函数功能:MAX 后面括号中的x1, x2, ……就是函数的变量。
在运行过程中,MAX 函数对这些变量进行比较,返回其中最大值作为函数值。
使用方法:将需要判断的对象作为函数对象输入MAX 后面的括号内(在Equation 编辑器窗口下可以直接点击选择变量)。
2)MIN基本形式:MIN ({x1},{x2})函数功能:MIN 后面括号中的x1, x2, ……就是函数的变量。
在运行过程中,MIN 函数对这些变量进行比较,返回其中最小值作为函数值。
使用方法:与MAX 类似,在Equation 编辑器中直接选中需要比较的对象名称,对象即会自动变为函数变量,参加逻辑运算。
3)IF THEN ELSE基本形式:IF THEN ELSE ({cond}, {ontrue}, {onfalse})函数功能:在模型建立过程中常常遇到这样的情况,变量值在不同的情况(符不符合某条件)有不同的计算方法。
IF THEN ELSE 函数就就是针对这样的情况设计的。
在Vensim 中,这个函数实际上具有两种意义。
a) 像其她函数一样,IF THEN ELSE 函数会根据运算结果返回一个函数值。
b) 表达式d = IF a THEN b ELSE c 实际上把变量“IF a THEN b ELSE c”赋给了d 这个变量。
使用方法:打开公式编辑器→选择Function 图标,并点击IF THEN ELSE 函数→选择Variable 图标→点击函数中的{cond}变量→在Variable 中选择要使用的目标变量,设定一个临界条件→同样地选择{ontrue}与{onfalse}变量并分别赋予条件满足与不满足两种情况下对应的不同的函数关系式。
举例:DHPI = IF THEN ELSE( Time>=1920, COE, 0 )说明:这个函数的意思就是,如果时间大于或等于1920 年(Time 就是一个表示时间的变量,就是模型内置的一个变量,在这里的意思就就是当Time 变量的值大于或等于1920 的时候),逻辑函数返回值为COE,这时DHPI = COE;其她情况下,即时间变量Time < 1920 年的时候,逻辑函数返回值为0,这时DHPI = 0。
3.随机函数随机函数就是另一类很常用的函数类型。
因为我们所建立的模型就是模拟现实环境的,而现实的环境中常常存在一些不能确定的情况,即存在随机性。
所以除了模型中确定的变量关系外,我们还需要模拟一种不确定性的发生。
Vensim 函数库中的随机函数就就是针对这种用途设计的。
1)RANDOM UNIFORM函数形式:RANDOM UNIFORM ( {min} , {max} , {seed} )函数功能:产生一个介于min 值与max 值之间的数值,这个数值就是随机生成的,但就是它的分布依赖于种子(seed)的确定。
每一个不同的种子都可以产生一个不同的基本分布。
当没有制定种子的时候,Vensim 会自动使用默认种子及其分布,以产生随机变量。
使用方法:在函数列表种选择RANDOM UNIFORM,然后用鼠标依次点击{min} , {max} , {seed}并输入设定值。
2)RANDOM NORMAL函数形式:RANDOM NORMAL( {min} , {max} , {mean} , {stdev} , {seed} )函数功能:此函数与上一个功能类似,都就是产生min 与max 之间的随机数值,并依赖于种子产生的分布。
其不同之处在于,此函数可以设定种子所产生分布的期望均值与方差。
函数中mean 即表示均值,而stdev 则表示方差。
使用方法:在函数列表种选择RANDOM UNIFORM,然后用鼠标依次点击{min} , {max} , {mean} , {stdev} , {seed}并输入相应的设定值。
4.测试函数测试函数就是Vensim 中另一类非常有特色且常用的函数类型。
这里我们将主要介绍四种测试函数,即(1)阶跃函数STEP (2)斜坡函数RAMP(3)单脉冲函数PULSE(4)多脉冲函数PULSE TRAIN。
这四种函数都可以产生比较典型与有特色的数值变化规律,因此在建立问题模型过程中经常用到。
1)阶跃函数STEP基本形式:STEP( {height} , {stime} )基本功能:此函数可以控制对变量启动赋值的时间。
如图所示,在StartTime之前,函数赋予变量的数值为0。
当时间到达StartTime 后,函数赋予变量的值为预先设定的Height,并持续下去。
使用方法:在函数列表中选择STEP,然后用鼠标依次点击{height} , {stime}并输入阶跃函数的取值与起始时间。
2)斜坡函数RAMP函数形式:RAMP( {slope} , {start} , {finish} )函数功能:函数从规定的起始时间开始到规定的结束时间终结。
在这个过程中,函数的变化完全取决于预先设定的斜率。
斜坡函数的初值默认为0。
使用方法:从函数菜单中选择RAMP 函数,在{slope}处单击鼠标左键,输入设定的函数斜率,然后用同样地方法设定起始时间{start}与结束时间{finish}。
3)单脉冲函数PULSE函数形式:PULSE ( {start} , {duration} )函数功能:此函数与阶跃函数功能具有共同点,但较阶跃函数不同之处在于两点:第一,单脉冲函数在起始时间后的脉冲高度只能为1。
这个值就是Vensim 默认的,而不就是自行设置的。
第二,单脉冲函数可以控制脉冲持续的时间,即函数图示中的Width。
在StartTime 后经过Width 时间长度,函数将重新开始赋予变量0 值。
使用方法:在函数列表种选择PULSE,然后用鼠标依次点击{start} , {duration}并输入脉冲起始时间与持续时间长度。
4)多脉冲函数PULSE TRAIN函数形式:PULSE TRAIN ( {start} , {duration} , {repeattime} , {end} )函数功能:多脉冲函数较单脉冲函数可以实现更多的功能,即把原本单个连续的赋值阶段切分成若干小阶段,如图7-5 所示。
这里的Width 指的就是分割后每一个阶段的持续时间长度,而t-between 指的就是一个阶段开始时刻(终结时刻)与下一个阶段开始时刻(终结时刻)间的时间间隔长度。
这样的阶段反复循环出现,直到时间到达End Time。
使用方法:选择PULSE TRAIN 函数,依次点击{start} , {duration} ,{repeattime} , {end}并设置。
需要注意的就是,这里的{duration}就是图示中的单位持续长度Width Time , 而{repeattime}就是图示中的间隔时间t-between。
5.延迟函数延迟函数就是Vensim 函数库中非常重要的一类函数,使用范围很广。
因为在建立模型的过程中,我们常常需要模拟物质或信息在模型中不同模块间的流动。
而现实中,由于物质或信息传播渠道的客观限制,这种流动经常会产生一定的延迟。
延迟函数正就是为模拟这种延迟效果而设计。
Vensim 中的延迟函数包括两类,即模拟物质延迟效果的DELAY 函数与模拟信息延迟效果的SMOOTH 函数。
1)物质延迟函数a)DELAY1函数形式:DELAY1 (In, Delay Time)函数功能:此函数根据设定的延迟时间,对输入量作延迟处理。
其运行过程中,内部原理相当于下面的等式:DELAY1=LV/delay timeLV=INTEG (In-DELAY1, input*delay time)这里INTEG 函数的功能就是对括号内的变量In-DELAY1 作积分。
使用方法:选择DELAY1 函数,单击鼠标设定输入值In 与延迟时间DelayTime。
b)DELAY1I函数形式:DELAY1I (In, Delay Time, Initial Value)函数功能:此函数功能与DELAY1 功能类似,不同之处在于其可以设定初值。
使用方法:与DELAY1 操作方法相同,但需要设定初值Initial Value。
c)DELAY3函数形式:DELAY3 (In, Delay Time)函数功能:DELAY3 函数同样对物质作延迟处理。
但与DELAY1 不同,它就是针对三阶延迟设计的,即在处理过程中,它根据延迟时间对物质作三次延迟处理,然后再返回函数值。
换句话说,它相当于做了三次DELAY1,但每一次延迟的时间只有原函数中设定延迟时间Delay Time 的三分之一。
DELAY3 内部原理等同于下面的等式:DELAY3=LV3/DLLV3=INTEG(RT2-DELAY3,DL*IN)RT2=LV2/DLLV2=INTEG(RT1-RT2,LV3)RT1=LV1/DLLV1=INTEG(In-RT1,LV3)DL=Delay Time/3使用方法:与DELAY1 使用方法相同。