一种基于离散事件仿真引擎的图形化建模方法和装置
- 国知局
- 2024-08-30 14:32:23
本发明属于离散事件仿真,具体涉及一种基于离散事件仿真引擎的图形化建模方法和装置。
背景技术:
1、离散事件仿真是一种利用发生在一系列离散时间点上的事件对系统进行描述的建模方法,其核心是由各类实体和实体活动组成的离散事件。离散事件仿真具有不同于一般编程语言的语法规则和执行逻辑,学习门槛高,且离散事件包含复杂的逻辑关系,容易出错,不利于工程开发和跨领域交流协作。图形化建模是一种利用简单图元对系统进行描述的抽象化建模方法,能够简化仿真模型的创建和编辑过程,使非专业的用户也能够快速上手,并对系统进行仿真和分析。
2、鉴于图形化建模的优势,将离散事件仿真与图形化建模方法相结合,能够使用直观、可视化的图形化界面来创建和编辑离散事件仿真模型,进而降低使用门槛,促进仿真技术的应用和推广。
3、中国专利:基于算盘的离散事件仿真图形化建模方法(cn 117055869 a),提出了一种基于算盘的离散事件仿真图形化建模方法,用以模拟不同离散事件仿真系统。该方法基于离散系统仿真,可将离散事件生成的工程文件转换为可执行的python代码,但无法将可视化的模型转化为可执行的simscript/c/c++代码,也不能深入构建离散事件节点内部规则和事件执行流程。
技术实现思路
1、本发明的目的是提供一种基于离散事件仿真引擎的图形化建模方法和装置。使用本方法能够通过可视化方式深入构建离散事件节点内部规则和事件执行流程,并将规则文件转化为simscript/c/c++代码,可基于底层的离散事件仿真引擎直接编译运行,实现仿真模型的低代码开发,提升建模人员的工作效率,实现模型开发、测试一体化功能,做到所见即所得。
2、本发明采用的技术方案如下:
3、一种基于离散事件仿真引擎的图形化建模方法,包括以下步骤:
4、对离散事件进行可视化建模,形成含有节点和流程线的离散事件仿真规则文件;
5、根据离散事件仿真规则文件自动生成代码文件;
6、利用离散事件仿真引擎将生成的代码文件进行规则检查和调度执行。
7、进一步地,所述节点包括:
8、开始节点:开始节点声明当前规则的参数,一个规则文件有且只有一个开始节点并且开始节点必须是第一个节点;
9、结束节点:结束节点声明规则的返回值,一个规则文件至少有一个结束节点,并且结束节点不能存在后续节点;
10、判断节点:判断节点声明一个条件判断语句,判断节点必须有两个后续节点,并且和两个后续节点连接的流程线的值分别为true和false,分别对应条件判断语句真值为“真”或者“假”时执行的节点;
11、条件选择节点:条件选择节点声明一个条件,用在根据状态判断要执行的下一步动作的场景中;
12、规则引用节点:规则引用节点引用一个规则,并声明被引用规则的参数,并且规则引用节点必须包含和被引用规则返回节点数量相等的后续节点;
13、输出节点:输出节点用来记录当前系统状态或规则执行日志;
14、变量定义节点:变量定义节点定义变量;
15、代码块节点:代码块节点的内容作为代码的一部分参加后续编译执行。
16、进一步地,所述离散事件仿真规则文件包括节点和流程线,节点之间由流程线进行连接,流程线包含值和指向关系,节点和流程线共同指明执行流程与执行内容。
17、进一步地,所述代码文件为simscript/c/c++代码文件。
18、进一步地,所述根据离散事件仿真规则文件自动生成代码文件,采用的生成规则包括:
19、开始节点:开始节点的内容在代码生成过程中被解析为函数的参数;
20、结束节点:结束节点的内容在代码生成过程中被解析为函数的返回值;
21、判断节点:规则在执行到判断节点时,检查条件判断语句的真值,真值为“真”或者“假”分别执行不同的后续节点;
22、条件选择节点:规则在执行到条件选择节点时,检查条件的值,然后选择条件的值相等的后续节点执行,如果没有相等的条件或者不存在条件,则选择条件为“默认”的节点执行;
23、规则引用节点:规则在执行到规则引用节点时执行被引用的规则,规则引擎根据被引用规则的返回值来选择要执行的后续节点;
24、输出节点:输出节点被解析为输出语句或者函数调用语句;
25、变量定义节点:变量被解析为变量定义语句;
26、代码块节点:代码块节点的内容在代码生成过程中被直接插入到生成的代码中,作为代码的一部分参加后续编译执行。
27、进一步地,所述利用离散事件仿真引擎将生成的代码文件进行规则检查和调度执行,包括:在代码执行之前,对代码文件进行语法检查、类型检查、规范性检查,以确保代码的正确性和合法性;然后离散事件仿真引擎按照预定的事件调度策略,根据事件的发生时间和优先级,对事件进行按序调度。
28、进一步地,所述离散事件仿真引擎的运行流程包括离散事件队列初始化和离散事件队列执行两部分;所述离散事件队列初始化是将初始事件加入事件队列中;所述离散事件队列执行是指离散事件仿真引擎不断地从事件队列中取当前仿真时间应该执行的事件进行执行,同时更新仿真时间,重复事件调度过程,直至事件队列为空。
29、一种基于离散事件仿真引擎的图形化建模装置,其包括:
30、可视化建模模块,用于对离散事件进行可视化建模,形成含有节点和流程线的离散事件仿真规则文件;
31、代码自动生成模块,用于根据离散事件仿真规则文件自动生成代码文件;
32、离散事件仿真引擎调度模块,用于利用离散事件仿真引擎将生成的代码文件进行规则检查和调度执行。
33、本发明的有益效果如下:
34、本发明公开了一种基于离散事件仿真引擎的图形化建模方案,包括可视化建模模块、代码自动生成模块和离散事件仿真引擎调度模块,具有基于离散事件仿真引擎的图形化建模功能和代码自动生成功能,生成的代码能够基于离散事件仿真引擎运行,实现模型开发、测试一体化。该专利能够极大简化建模过程、提高离散事件仿真效率和模型可靠性,并通过可视化分析和交互式调试功能,帮助用户更好地进行离散系统开发和维护。本发明能够基于可视化方法自定义离散事件节点的内部规则,能够将可视化的模型自动转换为能够被离散事件仿真引擎直接加载的simscript/c/c++代码,并通过离散事件仿真引擎调度模拟,提升模型开发效率。
35、本发明提供的基于离散事件仿真引擎的图形化建模方法提供三个功能,其一,简化建模过程,图形化建模工具可以通过拖拽、连接和设置属性等操作,定义离散事件节点内部规则和事件流程,将复杂的离散事件抽象为可视化的模块,使用户能够更加简单和直观地构建仿真模型;其二,提高代码开发效率和准确性,代码自动生成模块使得建模过程更加高效和准确,减少了手动编写代码的工作量和错误的可能性;其三,离散事件仿真引擎调度模块提供交互式的仿真过程,用户可以实时观察模型的运行状态,进行调试和优化,快速获取仿真结果。
本文地址:https://www.jishuxx.com/zhuanli/20240830/282572.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。