CN111444682A - 一种系统动力学模型转换为xml文件的方法 - Google Patents
一种系统动力学模型转换为xml文件的方法 Download PDFInfo
- Publication number
- CN111444682A CN111444682A CN202010373637.0A CN202010373637A CN111444682A CN 111444682 A CN111444682 A CN 111444682A CN 202010373637 A CN202010373637 A CN 202010373637A CN 111444682 A CN111444682 A CN 111444682A
- Authority
- CN
- China
- Prior art keywords
- node
- model
- nodes
- component
- system dynamics
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000004088 simulation Methods 0.000 claims abstract description 90
- 238000011156 evaluation Methods 0.000 claims description 18
- 238000005094 computer simulation Methods 0.000 description 19
- 238000004364 calculation method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 239000002243 precursor Substances 0.000 description 8
- 241000282414 Homo sapiens Species 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 240000004808 Saccharomyces cerevisiae Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003306 harvesting Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000007363 ring formation reaction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于系统动力学领域,具体涉及一种系统动力学模型转换为XML文件的方法,系统动力学模型转换为XML文件的步骤为:步骤一:转换系统动力学模型的仿真配置信息,将系统动力学模型的仿真配置信息转换到XML的execute节点下;步骤二:生成组件序号,系统动力学模型中的所有组件编号,每个编号唯一标识一个组件,每一个组件对应的编号为该组件的唯一标识符;步骤三:转换系统动力学模型组件的属性信息转换到XML的对应节点下。本发明基于XML通用格式的系统动力学模型文件具备可拓展性和外部可编辑性,便于移植到其他系统中使用。
Description
技术领域
本发明属于系统动力学领域,具体涉及一种系统动力学模型转换为XML文件的方法。
背景技术
随着研究问题领域不断扩大,规模不断深入,人类要处理的系统越来越复杂。这些复杂的系统中所包含各元素间相互作用影响着整个系统。整个系统行为特征也不是个体行为特征简单线性叠加。通常会表现出系统结构复杂,具有动态变化等特性。
系统动力学是一种连续性的系统建模方法,系统动力学模型以反馈控制理论为基础,能够对复杂系统进行动态仿真和研究,比较适合于分析研究系统的结构与动态行为,主要用于较大和复杂的系统。
常见的仿真工具有Powersim、Vensim等商业软件,这些软件允许用户进行模型构建,可生成固定的模型格式,但生成的模型格式只有指定的付费工具可读,仅支持通过付费软件对模型进行编辑。此外,生成的模型格式并非通用格式,模型文件本身不具备可拓展性和外部可编辑性,不利于移植到其他系统中使用。
发明内容
本发明的目的在于:提供一种系统动力学模型转换为XML文件的方法,基于系统动力学仿真建模范式的XML系统动力学仿真建模语言,使用相应的XMLSchema来描述XML的具体结构。
本发明的技术方案为:提供一种系统动力学模型转换为XML文件的方法,定义一种与系统动力学模型中的组件相对应,能够表示系统动力学模型中具体参数信息的XML文件,所述XML文件所包含的系统动力学模型具体参数信息包括:系统动力学模型的仿真配置信息,流图的顺序信息,模型组件的属性信息;
系统动力学模型转换为XML文件的步骤为:
步骤一:转换系统动力学模型的仿真配置信息,将系统动力学模型的仿真配置信息转换到XML的execute节点下;
步骤二:生成组件序号,系统动力学模型中的所有组件编号,每个编号唯一标识一个组件,每一个组件对应的编号为该组件的唯一标识符;
步骤三:转换系统动力学模型组件的属性信息转换到XML的对应节点下。
优选地,设置的XML节点包括根节点simulation节点,所述simulation节点包含所有仿真信息;simulation节点下设置execute节点与setup节点,所述execute节点包含模型的仿真配置信息;setup节点包含所有组件的信息。
优选地,所述execute节点包含必需节点Initialtime、Finaltime、Timestep与可选节点TimeUnits,其中Initialtime为必需节点,代表仿真的初始时间,数据类型为十进制数;Finaltime为必需节点,代表仿真的结束时间,数据类型为十进制数;Timestep为必需节点,代表仿真的时间步长,数据类型为十进制数;TimeUnits为可选节点,代表仿真的时间单位,数据类型为字符串;
所述Setup节点包含必需节点Stocks及可选节点Rates、Variables;其中Stocks节点代表模型中的存量集合,Rates与Variables为可选节点,分别代表模型中的流量集合和变量集合,所述Stocks、Rates以及Variables节点在XML文件中的个数均至多为一个。
优选地,所述Rates节点集代表模型中的流量集合,内含多个Rate节点,其中每个Rate节点代表一个流量组件,用于存放对应流量组件的所有信息。
优选地,Variables节点集代表模型中的变量集合,内含多个Variable节点,其中每个Variable节点代表一个变量组件,用于存放对应变量组件的所有信息。
优选地,Stocks节点集代表模型中的存量集合,内含多个Stock节点,其中每个Stock节点代表一个存量组件,用于存放对应存量组件的所有信息。
优选地,每个所述Rate节点包含Rate节点的属性id、name节点、equation节点、unit节点、max节点、min节点、predecessors节点、succeeds节点;其中所述name节点、equation节点为必需节点,所述unit节点、max节点、min节点、predecessors节点、succeeds节点为可选节点。
优选地,每个所述Variable节点包含Variable节点的属性id、name节点、equation节点、unit节点、max节点、min节点、predecessors节点、succeeds节点、increment节点;其中所述name节点、equation节点为必需节点,所述unit节点、max节点、min节点、predecessors节点、succeeds节点、increment节点为可选节点。
优选地,每个所述Stock节点包含Stock节点的属性id、name节点、equation节点、unit节点、max节点、min节点、predecessors节点、succeeds节点、initialvalue节点;其中所述name节点、equation节点为必需节点,所述unit节点、max节点、min节点、predecessors节点、succeeds节点、initial value节点为可选节点。
本发明的有益效果在于:定义了一种基于系统动力学仿真建模范式的XML系统动力学仿真建模语言,提供了一种系统动力学仿真模型的通用XML格式转换方法,实现了解析按照步骤构建的可拓展性和可外部编辑的XML模型文件,能够对解析后重构的模型进行仿真建模。基于XML通用格式的系统动力学模型文件具备可拓展性和外部可编辑性,便于移植到其他系统中使用。
附图说明
图1是本发明实施例中的将Vensim系统动力学模型转换为通用XML模型文件的方法流程图;
图2是本发明实施例中的林木资源消耗模型在商业软件Vensim中的模型图;
图3是本发明实施例中林木资源消耗模型在Vensim中的仿真配置信息;
图4是本发明实施例中的林木资源消耗模型基于XML建模语言的系统动力学模型文件;
图5是本发明提供的一种对使用XML通用建模语言构建的系统动力学模型进行仿真的装置的结构示意图;
图6是本发明定义的XML建模语言节点结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
本文使用的术语“模型”是指系统动力学模型。
本文使用的术语“模型具体参数”是指系统动力学模型中用来表示系统逻辑结构及变量间的反馈关系的信息,具体包括系统参数、存量、流量、变量、关系式等。
本文使用的术语“系统参数”是指系统动力学模型的仿真配置信息,具体包括仿真的初始时间、结束时间、时间步长以及时间单位。
本文使用的术语“模型组件”是指在系统动力学模型中用以仿真的最小单元——模型组件元素,主要包括存量、流量和变量。
本文使用的术语“存量”是指系统动力学模型中的存量,存量指在过程中移动或存储的物理或逻辑实体。
本文使用的术语“流量”是指系统动力学模型中的流量,流量指存量变化的速率。
本文使用的术语“变量”是指变量是仿真过程中系统的信息量及决定系统结构的参数。
本文使用的术语“建模语言”是指基于系统动力学仿真建模范式的XML系统动力学仿真建模语言。
本文使用的术语“计算器”是指Jmathlib科学计算库,是一个计算数学函数的程序,可以用来计算复杂的数学表达式。
本文使用的术语“存量对象”是指仿真装置中用于存储系统动力学模型中存量组件的对象。
本文使用的术语“流量对象”是指仿真装置中用于存储系统动力学模型中流量组件的对象。
本文使用的术语“变量对象”是指仿真装置中用于存储系统动力学模型中变量组件的对象。
本文使用的术语“仿真结果数据”是指在仿真过程中模型所有组件的数值参数随时间变化的数据信息,即所有组件在每一个时间步长上的数据水平。
本发明提供了一种系统动力学模型转换为XML文件的方法,定义一种与系统动力学模型中的组件相对应,能够表示系统动力学模型中具体参数信息的XML文件,所述XML文件所包含的系统动力学模型具体参数信息包括:系统动力学模型的仿真配置信息,流图的顺序信息,模型组件的属性信息;
系统动力学模型转换为XML文件的步骤为:
步骤一:转换系统动力学模型的仿真配置信息,将系统动力学模型的仿真配置信息转换到XML的execute节点下;
步骤二:生成组件序号,系统动力学模型中的所有组件编号,每个编号唯一标识一个组件,每一个组件对应的编号为该组件的唯一标识符;
步骤三:转换系统动力学模型组件的属性信息转换到XML的对应节点下。
图6是本发明XML文件中设置的节点框架图。
设置的XML节点包括根节点simulation节点,所述simulation节点包含所有仿真信息;simulation节点下设置execute节点与setup节点,所述execute节点包含模型的仿真配置信息;setup节点包含所有组件的信息。
所述execute节点包含必需节点Initialtime、Finaltime、Timestep与可选节点TimeUnits,其中Initialtime为必需节点,代表仿真的初始时间,数据类型为十进制数;Finaltime为必需节点,代表仿真的结束时间,数据类型为十进制数;Timestep为必需节点,代表仿真的时间步长,数据类型为十进制数;TimeUnits为可选节点,代表仿真的时间单位,数据类型为字符串,字符串中不可以包含空格。
所述Setup节点包含必需节点Stocks及可选节点Rates、Variables;其中Stocks节点代表模型中的存量集合,Rates与Variables为可选节点,分别代表模型中的流量集合和变量集合,所述Stocks、Rates以及Variables节点在XML文件中的个数均至多为一个。
所述Rates节点集代表模型中的流量集合,内含多个Rate节点,其中每个Rate节点代表一个流量组件,用于存放对应流量组件的所有信息。
Variables节点集代表模型中的变量集合,内含多个Variable节点,其中每个Variable节点代表一个变量组件,用于存放对应变量组件的所有信息。
Stocks节点集代表模型中的存量集合,内含多个Stock节点,其中每个Stock节点代表一个存量组件,用于存放对应存量组件的所有信息。
每个所述Rate节点包含Rate节点的属性id、name节点、equation节点、unit节点、max节点、min节点、predecessors节点、succeeds节点;其中所述name节点、equation节点为必需节点,所述unit节点、max节点、min节点、predecessors节点、succeeds节点为可选节点。Rate节点的属性id必有,为该组件的唯一标识符,数据类型为整数;name节点为必需节点,代表模型组件的名称,数据类型为字符串,字符串内不可有空格、括号、引号以及“-”,上述字符可用下划线“_”代替;equation节点为必需节点,代表模型组件的公式,数据类型为字符串,在XML文件中公式运算符需要替换为转义字符;unit节点为可选节点,表示模型组件的单位,数据类型为字符串,字符串中不可以包含空格;max节点为可选节点,表示模型组件的最大值,数据类型为十进制数;min节点为可选节点,表示模型组件的最小值,数据类型为十进制数;predecessors节点为可选节点,表示模型组件的所有前驱组件集合;succeeds节点为可选节点,表示模型组件的所有后继组件集合;value节点为可选节点,表示模型组件的当前值,数据类型为十进制数。
每个所述Variable节点包含Variable节点的属性id、name节点、equation节点、unit节点、max节点、min节点、predecessors节点、succeeds节点、increment节点;其中所述name节点、equation节点为必需节点,所述unit节点、max节点、min节点、predecessors节点、succeeds节点、increment节点为可选节点。Variable节点的属性id必有,为该组件的唯一标识符,数据类型为整数;name节点为必需节点,代表模型组件的名称,数据类型为字符串,字符串内不可有空格、括号、引号以及“-”,上述字符可用下划线“_”代替;equation节点为必需节点,代表模型组件的公式,数据类型为字符串,在XML文件中公式运算符需要替换为转义字符;unit节点为可选节点,表示模型组件的单位,数据类型为字符串,字符串中不可以包含空格;max节点为可选节点,表示模型组件的最大值,数据类型为十进制数;min节点为可选节点,表示模型组件的最小值,数据类型为十进制数;predecessors节点为可选节点,表示模型组件的所有前驱组件集合;succeeds节点为可选节点,表示模型组件的所有后继组件集合;increment节点为可选节点,表示模型组件的增量值,数据类型为十进制数;value节点为可选节点,表示模型组件的当前值,数据类型为十进制数。
每个所述Stock节点包含Stock节点的属性id、name节点、equation节点、unit节点、max节点、min节点、predecessors节点、succeeds节点、initial value节点;其中所述name节点、equation节点为必需节点,所述unit节点、max节点、min节点、predecessors节点、succeeds节点、initial value节点为可选节点。Stock节点的属性id必有,为该组件的唯一标识符,数据类型为整数;name节点为必需节点,代表模型组件的名称,数据类型为字符串,字符串内不可有空格、括号、引号以及“-”,上述字符可用下划线“_”代替;equation节点为必需节点,代表模型组件的公式,数据类型为字符串,在XML文件中公式运算符需要替换为转义字符;unit节点为可选节点,表示模型组件的单位,数据类型为字符串,字符串中不可以包含空格;max节点为可选节点,表示模型组件的最大值,数据类型为十进制数;min节点为可选节点,表示模型组件的最小值,数据类型为十进制数;predecessors节点为可选节点,表示模型组件的所有前驱组件集合;succeeds节点为可选节点,表示模型组件的所有后继组件集合;initialvalue节点为必需节点,表示模型组件的初始值,数据类型为字符串。
equation节点中放置组件变量的表达式,当出现乘号“×”时,需要使用“*”进行替代;当出现乘号“÷”时,需要使用“/”进行替代;当出现小于号“<”时,需要使用“<;”进行替代;当出现大于号“>”时,需要使用“>;”进行替代;当出现与操作符“&”时,需要使用“&;”进行替代。
组件元素内的predecessors和succeeds节点中需要放置该组件的前驱后继信息,用来表示模型流图的顺序信息。为避免出现环路问题,组件的前驱和后继列表均不可包含其自身。
Predecessors节点集表示改组件的前驱节点集合,内可含多个predecessor节点,其中每个predecessor节点中的属性代表该组件的一个前驱组件的唯一标识符id。
succeeds节点集表示该组件的后继节点集合,内可含多个succeed节点,其中每个succeed节点中的属性代表该组件的一个后继组件的唯一标识符id。
本发明实施例定义了一种基于系统动力学仿真建模范式的XML系统动力学仿真建模语言,使用相应的XML Schema来描述XML的具体结构。
定义的XML文件所包含的模型信息主要包括:模型的仿真配置信息,模型组件的基本信息及流图的顺序信息。
模型的仿真配置信息(系统参数),包括仿真的初始时间T1、结束时间T2、时间步长S以及时间单位Unit。通过将模拟时间(T2-T1)划分为长度均为S的离散区间,然后按照S的间隔对模型进行推进,从而可完成动态模型的仿真。
模型组件的基本信息,包括组件的类型信息type、组件名称name、具体关系式equation、初始值initial value等。系统动力学模型主要有三种组件:存量Stock、流量Rate及变量Variable。存量指在过程中移动或存储的物理或逻辑实体,存量可以在每一个模拟时间间隔发生变化;流量指存量变化的速率;变量是仿真过程中对系统有影响的其余部分。存量、流量、变量及所有元素间的相互影响和反馈关系构成了系统动力学模型。具体关系式说明了如何利用其他组件以及系统可用的信息来对组件产生影响,初始值为模型组件在仿真开始时的数据水平。
流图的顺序信息,包括每一个组件的前趋组件predecessor和后继组件succeed。前驱和后继关系表示系统的逻辑结构及变量间的相互影响关系。其中,前驱组件指会对该组件造成影响的其他组件,后继组件指该组件会影响的其他组件。
在基于XML的系统动力学仿真建模语言中,根节点为simulation代表仿真模型的所有信息,根节点包含execute与setup两个子节点,execute节点包含模型的仿真配置信息,setup节点包含所有模型组件的信息。
execute节点的定义见表1,包含必需子节点Initialtime、Finaltime、Timestep与可选子节点TimeUnits,分别代表仿真的初始时间、结束时间、时间步长及时间单位。
表1
节点名称 | 数据类型 | 是否必有 | 约束 | 含义 |
Initialtime | 十进制数 | 是 | 无 | 模型边界:初始时间 |
Finaltime | 十进制数 | 是 | 无 | 模型边界:结束时间 |
Timestep | 十进制数 | 是 | 无 | 时间步长 |
TimeUnits | 字符串 | 否 | 不可有空格 | 时间单位 |
Setup节点定义见表2,包含必需子节点Stocks与可选子节点Rates、Variables。分别代表仿真模型的存量集、流量集及变量集。
表2
节点名称 | 是否必有 | 约束 | 含义 |
Stocks | 是 | 至多一个 | 模型中的存量集合 |
Rates | 否 | 至多一个 | 模型中的流量集合 |
Variables | 否 | 至多一个 | 模型中的变量集合 |
Stocks节点的定义见表3,Stocks节点集代表模型中的存量集合,内可含多个Stock节点,其中每个Stock节点代表一个Stock组件。
表3
节点名称 | 是否必有 | 约束 | 含义 |
Stock | 是 | 不限制个数上限 | 存量组件 |
Stocks节点的子节点Stock需要放置该流量组件的所有信息,Stock节点的定义见表4。
表4
Rates节点集代表模型中的流量集合,内可含多个Rate节点,其中每个Rate节点代表一个Rate组件。Rates节点的定义见表5。
表5
节点名称 | 是否必有 | 约束 | 含义 |
Rate | 否 | 不限制个数上限 | 流量 |
Rates内的Rate节点需要放置该Rate组件的所有信息,Rate节点的定义见表6。
表6
Variables节点代表模型中的变量集合,内可含多个Variable节点,其中每个Variable节点代表一个Variable组件。Variables节点的定义见表7。
表7
Variables内的Variable节点需要放置该Variable组件的所有信息,Variable节点的定义见表8。
表8
equation节点中放置组件变量的表达式,当出现乘号“×”时,需要使用“*”进行替代;当出现乘号“÷”时,需要使用“/”进行替代。
此外,由于XML中不允许出现一些特殊字符,在equation中如果出现表9所示字符时,需要使用转义字符代替。equation中常用字符列表见表9。
表9
显示结果 | 描述 | 转义字符 |
< | 小于 | <; |
> | 大于 | >; |
& | 与 | &; |
predecessors和succeeds节点表示组件的前驱后继信息,使用前驱后继来表示模型流图的顺序信息。其中,组件的前驱和后继列表均不可包含其自身。
Predecessors节点表示该组件的前驱组件集合,内可含多个predecessor节点,其中每个predecessor节点中的id属性代表该组件前驱组件的id。predecessors节点的定义见表10。
表10
节点名称 | 是否必有 | 约束 | 含义 |
predecessor | 否 | 不限制个数上限 | 前驱组件 |
succeeds节点表示该组件的后继节点集合,内可含多个succeed节点,其中每个succeed节点中的id属性代表该组件的一个后继组件的id。succeeds节点的定义见表11。
表11
节点名称 | 是否必有 | 约束 | 含义 |
succeed | 否 | 不限制个数上限 | 后继组件 |
第二方面,本发明实施例提供了一种系统动力学仿真模型的通用XML格式转换方法。所述方法包括:
仿真配置信息转换,将模型的仿真配置信息转换为XML的execute节点信息;
模型组件序号生成,按照系统动力学存量、流量及变量的顺序依次对模型所有组件进行编号,赋予id值,每个编号可唯一标识一个组件;
模型组件信息转换,将存量组件、流量组件及变量组件的基本信息及模型流图的顺序信息等转换为XML的setup节点下所有子节点的节点信息。
为了便于理解,将本发明实施例的主要发明构思进行简述。
定义一种基于系统动力学仿真建模范式的XML系统动力学仿真建模语言,提供了一种系统动力学仿真模型的通用XML格式转换方法和一种包含通用XML格式解析方法的系统动力学仿真装置。实现了解析按照步骤构建的可拓展性和可外部编辑的XML模型文件,对解析后重构的模型进行仿真建模的方法。基于XML通用格式系统动力学模型文件具备可拓展性和外部可编辑性,便于移植到其他系统中使用。
本实施例的技术方案支持系统动力学建模,图1为本发明实施例一中的将Vensim系统动力学模型转换为通用XML模型文件的方法流程图,下面结合图1对本发明实施例一提供的一种对系统动力学仿真模型进行仿真的过程进行说明。
示例性的,图2是本发明实施例一中的系统动力学林木资源消耗模型在商业软件Vensim中的模型图,模型图中元素的具体含义参见Vensim使用手册。
在林木资源消耗模型中,图3是Vensim中模型的仿真配置信息,如图所示,仿真的初始时间“-500年”、结束时间“1500年”、仿真时间步长“10年”及时间单位“年”为仿真模型的仿真配置信息。
在该模型中,人类的现存数量Population以及树木的现存数量Trees为模型的存量,人类每年的出生量net births per year及树木的增长率tree harvesting为模型的流量,初始人口数量initial population、出生率net birth rate、树木初始数量initialtrees、人均树木消耗量per capita tree consumption以及时间步长TIMESTEP为可能影响模型变化的变量。其中,Trees的前驱组件有tree harvesting和initial trees,后继组件有tree harvesting。
本发明定义的基于XML的系统动力学仿真建模语言可以描述系统动力学仿真模型包括的主要信息。
请参阅图1所示,本实施例中提供了一种将Vensim系统动力学模型转换为基于XML建模语言的系统动力学模型文件的方法,具体步骤如下:
步骤111:仿真配置信息转换,将模型的仿真配置信息转换为XML的execute节点信息;
将图1Vensim中模型的仿真配置信息转换为execute的四个子节点,使用<Initialtime>-500</Initialtime>、<Finaltime>1500</Finaltime>、<Timestep>10</Timestep>、<TimeUnits>Year</TimeUnits>四个节点表示模型的仿真配置信息,以完成对模型仿真配置信息的设置。
步骤112:模型组件序号生成,按照系统动力学存量、流量及变量的顺序依次对模型所有组件进行编号,赋予id值,每个编号可唯一标识一个组件,得到id-组件映射表;
对系统动力学林木资源消耗模型的所有模型组件进行编号,赋予id值,以便后续对流图顺序信息的系列操作。首先,对模型组件中的所有存量组件分配id,将该模型中的存量组件——人类的现存数量Population、树木的现存数量Trees的id值设为“0”和“1”。随后,对模型组件中的所有流量组件分配id,将该模型中的流量组件——人类每年的出生量net births per year、树木的增长率tree harvesting的id值设为“2”和“3”。最后,对模型组件中的所有变量组件分配id,将该模型中的变量组件——初始人口数量initialpopulation、出生率netbirth rate、树木初始数量initial trees、人均树木消耗量percapita tree consumption以及时间步长TIME STEP的id值设为“4”、“5”、“6”、“7”及“8”。组件-ID映射情况见表12。
表12
组件名称 | 组件id |
Population | 0 |
Trees | 1 |
net births per year | 2 |
tree harvesting | 3 |
initial population | 4 |
net birth rate | 5 |
initial trees | 6 |
per capita tree consumption | 7 |
TIME STEP | 8 |
步骤113:模型组件信息转换,将存量组件、流量组件及变量组件的基本信息及模型流图的顺序信息等转换为XML的setup节点下所有子节点的节点信息。
将系统动力学林木资源消耗模型中存量组件、流量组件及变量组件的基本信息及模型流图的顺序信息转换为Setup节点下的Stocks、Rates以及Variables子节点。
首先,将存量组件——人类的现存数量Population及树木的现存数量Trees转换为Stocks节点下的两个Stock子节点。使用Stock节点来代表两个存量,并在Stock节点中存储组件的基本信息。其中,两个存量组件的基本信息见表13。
表13
表一每一行代表一个存量组件,将组件的名称、单位、前驱、后继、关系式以及初始值转换为Stock节点下的name、unit、predecessors、succeeds、equation及initialvalue节点。其中,predecessors的predecessor子节点的属性中代表前驱组件的id值,succeeds节点同理。
随后,将流量组件——人类每年的出生量net births per year、树木的增长率tree harvesting转换为Rates节点下的两个Rate子节点。使用Rate节点来代表两个流量,并在Rate节点中存储组件的基本信息。其中,两个流量组件的基本信息见表14。
表14
表一每一行代表一个流量组件,将组件的名称、单位、前驱、后继以及关系式转换为Rate节点下的name、unit、predecessors、succeeds及equation节点。其中,predecessors的predecessor子节点的属性中代表前驱组件的ID值,succeeds节点同理。
最后,将变量组件——初始人口数量initial population、出生率net birthrate、树木初始数量initial trees、人均树木消耗量per capita tree consumption以及时间步长TIME STEP转换为Variables节点下的五个Variable子节点。使用Variable节点来代表五个变量,并在Variable节点中存储组件的基本信息。其中,五个变量组件的基本信息见表15。
表15
表一每一行代表一个变量组件,将组件的名称、单位、前驱、后继以及关系式转换为Variable节点下的name、unit、predecessors、succeeds及equation节点。其中,predecessors的predecessor子节点的属性中代表前驱组件的ID值,succeeds节点同理。
本发明实施例的技术方案,根据系统动力学模型的特点,提供了一种系统动力学仿真模型的通用XML格式转换方法。按照步骤构建的可拓展性和可外部编辑的基于XML通用格式系统动力学模型文件具备可拓展性和外部可编辑性,便于移植到其他系统中使用。图4是本发明实施例一中的林木资源消耗模型基于XML建模语言的系统动力学模型文件;
图5为本发明提供的一种对使用XML通用建模语言构建的系统动力学模型进行仿真的装置结构示意图,该系统动力学模型的仿真装置,包括:XML输入模块210、系统动力学仿真计算模块220和仿真结果输出模块230。
其中,XML输入模块210,用于解析使用XML通用建模语言构建的模型,重构系统动力学模型,重构的系统动力学模型包括系统动力学模型仿真配置信息及模型组件元素信息;
系统动力学仿真计算模块220,用于基于系统动力学流量存量的积分关系,以一种连续的方式定量的对模型进行单次仿真建模;
仿真结果输出模块230,用于在系统动力学模型仿真过程中,收集并分析模型运行产生的信息,以图表的格式输出模型的仿真结果数据。
根据系统动力学模型的特点,按照既定步骤将模型转换为一种由通用XML格式构建的系统动力学模型。解析XML文件重构模型,并基于系统动力学的积分关系执行仿真,收集和分析模型运行过程中的数据信息并输出仿真结果。实现了解析按照步骤构建的可拓展性和可外部编辑的XML模型文件,对解析后重构的模型进行仿真建模的方法。基于XML通用格式系统动力学模型文件具备可拓展性和外部可编辑性,便于移植到其他系统中使用。
所述XML输入模块210,包括:
XML模型文件校验单元,对输入的XML模型文件进行模型语言的校验,判断是否可以使用仿真装置进行仿真建模;
XML模型文件解析单元,从XML模型文件中提取出系统动力学模型的所有信息,根据提取出的模型信息进行模型组件对象的创建及模型的重构。
所述系统动力学仿真计算模块220,包括:
模型组件排序单元,用于将读取后的XML文件根据记录的前驱和后继信息进行去环化的拓扑排序,为组件计算做准备;
模型组件初始化单元,用于对排序后的所有模型组件赋初值,以及调整计算顺序。
模型组件计算单元,用于将排序并赋初值的模型组件,以既定步长和既定次数逐个计算。
所述模型组件计算单元,具体用于:
变量计算时,首先从计算器中取出其原始值,之后取出其计算公式,判断公式中包含了哪种函数,再调用相应函数计算。最后将新计算的值存入计算器中并将值存入对应的变量对象,以备之后输出。变量对象是指仿真装置中用于存储系统动力学模型中变量组件的对象;
流量计算时,需要考虑步长,在根据公式计算出结果后,需要结合考虑步长的因素,最后存入计算器中,并将值存入对应的流量对象,以备之后输出。流量对象是指仿真装置中用于存储系统动力学模型中流量组件的对象;
存量计算时,由于建模过程为动态建模过程,而存量的实现是积分过程,积分是微观的累加,所以需要将其计算结果与原结果相加,计算完成后,将新计算的值存入计算器中并将值存入对应的存量对象,以备之后输出。存量对象是指仿真装置中用于存储系统动力学模型中存量组件的对象。
所述仿真结果输出模块230,包括:
模型组件数据收集单元,用于收集和整理模型运行过程中产生的数据信息并将数据信息的具体方法,为结果输出做准备;
模型组件数据输出单元,用于对整理的模型数据信息进行分析并输出模型的仿真结果数据。
所述的模型仿真结果数据,指模型所有组件的数值参数随时间变化的数据信息,即所有组件在每一个时间步长上的数据水平。
本发明实施例所提供的系统动力学模型的仿真装置可执行本发明任意实施例中使用的XML通用建模语言构建的系统动力学模型,具备执行方法相应的功能模块和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (9)
1.一种系统动力学模型转换为XML文件的方法,其特征在于,定义一种与系统动力学模型中的组件相对应,能够表示系统动力学模型中具体参数信息的XML文件,所述XML文件所包含的系统动力学模型具体参数信息包括:系统动力学模型的仿真配置信息,流图的顺序信息,模型组件的属性信息;
系统动力学模型转换为XML文件的步骤为:
步骤一:转换系统动力学模型的仿真配置信息,将系统动力学模型的仿真配置信息转换到XML的execute节点下;
步骤二:生成组件序号,系统动力学模型中的所有组件编号,每个编号唯一标识一个组件,每一个组件对应的编号为该组件的唯一标识符;
步骤三:转换系统动力学模型组件的属性信息转换到XML的对应节点下。
2.根据权利要求1所述的系统动力学模型转换为XML文件的方法,其特征在于,设置的XML节点包括根节点simulation节点,所述simulation节点包含所有仿真信息;simulation节点下设置execute节点与setup节点,所述execute节点包含模型的仿真配置信息;setup节点包含所有组件的信息。
3.根据权利要求2所述的系统动力学模型转换为XML文件的方法,其特征在于,所述execute节点包含必需节点Initialtime、Finaltime、Timestep与可选节点TimeUnits,其中Initialtime为必需节点,代表仿真的初始时间,数据类型为十进制数;Finaltime为必需节点,代表仿真的结束时间,数据类型为十进制数;Timestep为必需节点,代表仿真的时间步长,数据类型为十进制数;TimeUnits为可选节点,代表仿真的时间单位,数据类型为字符串;
所述Setup节点包含必需节点Stocks及可选节点Rates、Variables;其中Stocks节点代表模型中的存量集合,Rates与Variables为可选节点,分别代表模型中的流量集合和变量集合,所述Stocks、Rates以及Variables节点在XML文件中的个数均至多为一个。
4.根据权利要求3所述的系统动力学模型转换为XML文件的方法,其特征在于,所述Rates节点集代表模型中的流量集合,内含多个Rate节点,其中每个Rate节点代表一个流量组件,用于存放对应流量组件的所有信息。
5.根据权利要求3所述的系统动力学模型转换为XML文件的方法,其特征在于,Variables节点集代表模型中的变量集合,内含多个Variable节点,其中每个Variable节点代表一个变量组件,用于存放对应变量组件的所有信息。
6.根据权利要求3所述的系统动力学模型转换为XML文件的方法,其特征在于,Stocks节点集代表模型中的存量集合,内含多个Stock节点,其中每个Stock节点代表一个存量组件,用于存放对应存量组件的所有信息。
7.根据权利要求4所述的系统动力学模型转换为XML文件的方法,其特征在于,每个所述Rate节点包含Rate节点的属性id、name节点、equation节点、unit节点、max节点、min节点、predecessors节点、succeeds节点;其中所述name节点、equation节点为必需节点,所述unit节点、max节点、min节点、predecessors节点、succeeds节点为可选节点。
8.根据权利要求5所述的系统动力学模型转换为XML文件的方法,其特征在于,每个所述Variable节点包含Variable节点的属性id、name节点、equation节点、unit节点、max节点、min节点、predecessors节点、succeeds节点、increment节点;其中所述name节点、equation节点为必需节点,所述unit节点、max节点、min节点、predecessors节点、succeeds节点、increment节点为可选节点。
9.根据权利要求6所述的系统动力学模型转换为XML文件的方法,其特征在于,每个所述Stock节点包含Stock节点的属性id、name节点、equation节点、unit节点、max节点、min节点、predecessors节点、succeeds节点、initial value节点;其中所述name节点、equation节点为必需节点,所述unit节点、max节点、min节点、predecessors节点、succeeds节点、initial value节点为可选节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010373637.0A CN111444682B (zh) | 2020-05-06 | 2020-05-06 | 一种系统动力学模型转换为xml文件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010373637.0A CN111444682B (zh) | 2020-05-06 | 2020-05-06 | 一种系统动力学模型转换为xml文件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111444682A true CN111444682A (zh) | 2020-07-24 |
CN111444682B CN111444682B (zh) | 2022-04-22 |
Family
ID=71652011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010373637.0A Active CN111444682B (zh) | 2020-05-06 | 2020-05-06 | 一种系统动力学模型转换为xml文件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111444682B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112906132A (zh) * | 2021-02-09 | 2021-06-04 | 中国商用飞机有限责任公司 | 一种用于生成飞机线束组件数据的方法和装置 |
CN113312769A (zh) * | 2021-05-27 | 2021-08-27 | 南京大学 | 一种系统动力学与离散事件仿真混合仿真建模方法 |
CN114942757A (zh) * | 2022-05-16 | 2022-08-26 | 北京世冠金洋科技发展有限公司 | 一种文件生成方法、系统及电子设备 |
CN116484768A (zh) * | 2023-05-25 | 2023-07-25 | 之江实验室 | 一种系统动力学模型构建方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128296A1 (en) * | 2002-12-28 | 2004-07-01 | Rajasekar Krishnamurthy | Method for storing XML documents in a relational database system while exploiting XML schema |
US20090199089A1 (en) * | 2004-01-28 | 2009-08-06 | Sankhya Technologies Private Limited | Converting a Heterogeneous Document |
CN101645075A (zh) * | 2009-09-07 | 2010-02-10 | 浪潮集团山东通用软件有限公司 | 一种基于xml和动态脚本文件配置实现的通用数据列表方法 |
CN101727527A (zh) * | 2009-12-28 | 2010-06-09 | 中国农业大学 | 动力学分析软件与有限元分析软件间数据自动转换的方法 |
CN103559321A (zh) * | 2013-11-22 | 2014-02-05 | 方正国际软件有限公司 | 文档格式转换系统 |
US20160063154A1 (en) * | 2014-08-31 | 2016-03-03 | Tata Consultancy Services Limited | Method and system for structured simulation of enterprise model and data |
CN106096194A (zh) * | 2016-06-28 | 2016-11-09 | 沈阳航空航天大学 | 基于可插拔式接口的固定翼飞行器快速建模设计方法 |
CN106446466A (zh) * | 2016-11-09 | 2017-02-22 | 沈阳航空航天大学 | 基于可编辑配置参数接口的四旋翼快速建模设计方法 |
-
2020
- 2020-05-06 CN CN202010373637.0A patent/CN111444682B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128296A1 (en) * | 2002-12-28 | 2004-07-01 | Rajasekar Krishnamurthy | Method for storing XML documents in a relational database system while exploiting XML schema |
US20090199089A1 (en) * | 2004-01-28 | 2009-08-06 | Sankhya Technologies Private Limited | Converting a Heterogeneous Document |
CN101645075A (zh) * | 2009-09-07 | 2010-02-10 | 浪潮集团山东通用软件有限公司 | 一种基于xml和动态脚本文件配置实现的通用数据列表方法 |
CN101727527A (zh) * | 2009-12-28 | 2010-06-09 | 中国农业大学 | 动力学分析软件与有限元分析软件间数据自动转换的方法 |
CN103559321A (zh) * | 2013-11-22 | 2014-02-05 | 方正国际软件有限公司 | 文档格式转换系统 |
US20160063154A1 (en) * | 2014-08-31 | 2016-03-03 | Tata Consultancy Services Limited | Method and system for structured simulation of enterprise model and data |
CN106096194A (zh) * | 2016-06-28 | 2016-11-09 | 沈阳航空航天大学 | 基于可插拔式接口的固定翼飞行器快速建模设计方法 |
CN106446466A (zh) * | 2016-11-09 | 2017-02-22 | 沈阳航空航天大学 | 基于可编辑配置参数接口的四旋翼快速建模设计方法 |
Non-Patent Citations (4)
Title |
---|
KARIM CHICHAKLY: "SMILE and XMILE: A Common Language and Interchange Format for System Dynamics", 《ISEE SYSTEMS》 * |
KARIM CHICHAKLY: "XMILE: An XML Interchange Language for System Dynamics", 《INFORMATION SYSTEMS SIG OF THE SYSTEMS DYNAMICS SOCIETY LANGUAGE SUBCOMMITTEE》 * |
VEDAT G. DIKER 等: "XMILE: towards an XML interchange language for system dynamics models", 《SYSTEM DYNAMICS MODELS》 * |
陈友东: "精密机电系统联合仿真软件外部模型转换模块研究与开发", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112906132A (zh) * | 2021-02-09 | 2021-06-04 | 中国商用飞机有限责任公司 | 一种用于生成飞机线束组件数据的方法和装置 |
CN113312769A (zh) * | 2021-05-27 | 2021-08-27 | 南京大学 | 一种系统动力学与离散事件仿真混合仿真建模方法 |
CN113312769B (zh) * | 2021-05-27 | 2023-09-08 | 南京大学 | 一种系统动力学与离散事件仿真混合仿真建模方法及系统 |
CN114942757A (zh) * | 2022-05-16 | 2022-08-26 | 北京世冠金洋科技发展有限公司 | 一种文件生成方法、系统及电子设备 |
CN114942757B (zh) * | 2022-05-16 | 2023-07-21 | 北京世冠金洋科技发展有限公司 | 一种文件生成方法、系统及电子设备 |
CN116484768A (zh) * | 2023-05-25 | 2023-07-25 | 之江实验室 | 一种系统动力学模型构建方法及装置 |
CN116484768B (zh) * | 2023-05-25 | 2023-08-18 | 之江实验室 | 一种系统动力学模型构建方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111444682B (zh) | 2022-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111444682B (zh) | 一种系统动力学模型转换为xml文件的方法 | |
US11790161B2 (en) | Machine learning selection and/or application of a data model defined in a spreadsheet | |
Masad et al. | Mesa: An Agent-Based Modeling Framework. | |
US8489622B2 (en) | Computer-implemented systems and methods for providing paginated search results from a database | |
CN105868019A (zh) | 一种Spark平台性能自动优化方法 | |
CN107609141A (zh) | 一种对大规模可再生能源数据进行快速概率建模方法 | |
Gil et al. | Mind your metadata: Exploiting semantics for configuration, adaptation, and provenance in scientific workflows | |
CN106445645A (zh) | 用于执行分布式计算任务的方法和装置 | |
CN111444635B (zh) | 一种基于xml语言的系统动力学仿真建模方法及系统 | |
CN104133891B (zh) | 一种基于关系型数据库的海量结构化数据的存储方法 | |
CN108073582B (zh) | 一种计算框架选择方法和装置 | |
CN106096159A (zh) | 一种云平台下的分布式系统行为仿真分析系统的实现方法 | |
CN107330129A (zh) | 面向类型化资源的投入驱动的存储与计算一体化的事务处理优化方法 | |
Wang | Application of MPP database and artificial intelligence system in online evaluation of college students' mental health | |
Joyfong et al. | Preparation of Smart Card Data for Food Purchase Analysis of Students through Process Mining | |
CN112149826B (zh) | 深度神经网络推理计算中一种基于Profile图的优化方法 | |
CN110377769A (zh) | 基于图数据结构的建模平台系统、方法、服务器及介质 | |
CN111523685B (zh) | 基于主动学习的降低性能建模开销的方法 | |
CN114691302A (zh) | 一种面向大数据处理的动态缓存替换方法及设备 | |
US9239867B2 (en) | System and method for fast identification of variable roles during initial data exploration | |
CN113535828A (zh) | 时序数据的聚合查询方法、系统、设备及存储介质 | |
CN110942139A (zh) | 深度学习神经网络部署系统及其方法 | |
CN109993313A (zh) | 样本标签处理方法及装置、社群划分方法及装置 | |
CN112988404B (zh) | 基于管理进程的集成电路仿真粗颗粒并行方法及装置 | |
Uduwela et al. | An Approach To Automate The Relational Database Design Process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |