本发明涉及模拟仿真,尤其涉及一种城市多要素联合模拟方法和装置。
背景技术:
1、目前,城市模拟系统往往基于单一领域的模拟仿真,忽视多领域、多维度和多要素的影响,因此难以协调多种城市特定领域模拟仿真软件,设计合理的通信机制与模拟系统,实现城市多要素联合模拟。
技术实现思路
1、本发明提供一种城市多要素联合模拟方法和装置,用以解决现有技术中基于单一领域的模拟仿真,忽视多领域、多维度和多要素的影响,难以协调多种城市特定领域模拟仿真软件的缺陷,通过设计合理的通信机制与模拟系统,实现城市多要素联合模拟。
2、本发明提供一种城市多要素联合模拟方法,所述方法通过城市多要素联合模拟系统实现,所述系统包括时钟同步功能模块、数据交换功能模块及配置分发与输入输出功能模块;
3、所述方法包括:
4、启动目标模拟程序,其中,所述目标模拟程序为待联合模拟的多个城市要素模拟程序,各所述目标模拟程序在启动完成后,发出一个时钟请求;
5、在各所述目标模拟程序均发出时钟请求的情况下,通过所述时钟同步功能模块对各所述时钟请求进行响应,执行各所述目标模拟程序的数据准备工作,其中,所述数据准备工作包括数据写入及模拟程序内的数据更新;
6、获取待数据交换的所述目标模拟程序的数据状态,其中,所述数据状态包括数据准备工作完成后的数据可交换状态和数据准备工作完成前的数据不可交换状态;
7、基于所述数据状态,通过所述数据交换功能模块执行或延迟所述待数据交换的目标模拟程序的数据更新工作,其中,所述数据更新工作包括数据读取、目标模拟程序间的数据交换、数据输出及模拟仿真中的一种或多种;
8、在各所述目标模拟程序的所述数据更新工作执行结束后,接收各所述目标模拟程序发出的下一个时钟请求,执行各所述目标模拟程序下一轮的数据准备工作和数据更新工作,直至到达预设的模拟时间,输出模拟仿真结果。
9、根据本发明提供的城市多要素联合模拟方法,启动目标模拟程序的步骤,具体包括:
10、将目标模拟程序及所述目标模拟程序所依赖的模拟程序进行启动;
11、将启动后的目标模拟程序进行初始化。
12、根据本发明提供的城市多要素联合模拟方法,所述配置分发与输入输出功能模块包括第一数据库,其中,所述第一数据库用于存储各所述目标模拟程序进行模拟的输入数据;
13、将目标模拟程序及所述目标模拟程序所依赖的模拟程序进行启动的步骤,具体包括:
14、从所述第一数据库中获取目标模拟程序的输入数据;
15、基于所述输入数据,对所述目标模拟程序进行启动;
16、获取已启动目标模拟程序所依赖的目标模拟程序的通信地址与通信端口;
17、基于所述通信地址与通信端口字段,判断已启动目标模拟程序所依赖的目标模拟程序是否启动;
18、在已启动目标模拟程序所依赖的目标模拟程序未启动的情况下,轮询等待所依赖的目标模拟程序启动。
19、根据本发明提供的城市多要素联合模拟方法,所述数据交换功能模块包括第二数据库,其中,所述第二数据库中存储多个模拟程序的数据状态、配置文件及通信地址与通信端口字段;
20、将启动后的目标模拟程序进行初始化的步骤,具体包括:
21、将启动后的目标模拟程序的通信地址与通信端口在所述第二数据库中进行注册;
22、基于所述第二数据库中预设的配置文件,对注册后的各所述目标模拟程序进行初始化。
23、根据本发明提供的城市多要素联合模拟方法,对各所述时钟请求进行响应之前,所述时钟同步功能模块还用于:
24、设置各所述目标模拟程序的数据状态为数据不可交换状态。
25、根据本发明提供的城市多要素联合模拟方法,所述通过所述时钟同步功能模块对各所述时钟请求进行响应,具体包括:
26、在任一所述目标模拟程序未发出时钟请求时,所述时钟同步功能模块对接收到的时钟请求不进行响应,等待各所述目标模拟程序均发出时钟请求时,所述时钟同步功能模拟对各所述目标模拟程序的时钟请求进行响应。
27、根据本发明提供的城市多要素联合模拟方法,各所述目标模拟程序在数据准备工作完成后,将所述目标模拟程序的数据状态更新为数据可交换状态,并将所述数据状态存储于所述第二数据库。
28、根据本发明提供的城市多要素联合模拟方法,获取待数据交换的所述目标模拟程序的数据状态的步骤,具体包括:
29、通过所述第二数据库预设的监听机制,获取目标模拟程序的数据状态。
30、根据本发明提供的城市多要素联合模拟方法,基于所述数据状态,通过所述数据交换功能模块执行或延迟所述待数据交换的目标模拟程序的数据更新工作的步骤,具体包括:
31、待数据交换的所述目标模拟程序的数据状态为数据可交换状态时,对待数据交换的所述目标模拟程序进行数据更新工作;
32、待数据交换的所述目标模拟程序的数据状态为数据不可交换状态时,延迟对待数据交换的所述目标模拟程序进行数据更新工作;直至待数据交换的所述目标模拟程序的数据状态为数据可交换状态。
33、根据本发明提供的城市多要素联合模拟方法,所述配置分发与输入输出功能模块还包括第三数据库,所述第三数据库用于存储各所述目标模拟程序的模拟仿真结果。
34、根据本发明提供的城市多要素联合模拟方法,所述第一数据库为类json数据库,所述第二数据库为键值对数据库,所述第三数据库为sql数据库。
35、本发明还提供了一种城市多要素联合模拟装置,所述装置设置于城市多要素联合模拟系统,所述系统包括时钟同步功能模块、数据交换功能模块及配置分发与输入输出功能模块;
36、所述装置包括:
37、启动单元,用于启动目标模拟程序,其中,所述目标模拟程序为待联合模拟的多个城市要素模拟程序,各所述目标模拟程序在启动完成后,发出一个时钟请求;
38、数据准备单元,用于在各所述目标模拟程序均发出时钟请求的情况下,通过所述时钟同步功能模块对各所述时钟请求进行响应,执行各所述目标模拟程序的数据准备工作,其中,所述数据准备工作包括数据写入及模拟程序内的数据更新;
39、数据状态获取单元,用于获取待数据交换的所述目标模拟程序的数据状态,其中,所述数据状态包括数据准备工作完成后的数据可交换状态和数据准备工作完成前的数据不可交换状态;
40、数据更新单元,用于基于所述数据状态,通过所述数据交换功能模块执行或延迟所述待数据交换的目标模拟程序的数据更新工作,其中,所述数据更新工作包括数据读取、目标模拟程序间的数据交换、数据输出及模拟计算中的一种或多种;
41、结果输出单元,用于在各所述目标模拟程序的所述数据更新工作执行结束后,接收各所述目标模拟程序发出的下一个时钟请求,执行各所述目标模拟程序下一轮的数据准备工作和数据更新工作,直至到达预设的模拟时间,输出模拟结果。
42、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述城市多要素联合模拟方法。
43、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述城市多要素联合模拟方法。
44、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述城市多要素联合模拟方法。
45、本发明提供的城市多要素联合模拟方法和装置,通过启动目标模拟程序;在各所述目标模拟程序均发出时钟请求的情况下,通过所述时钟同步功能模块对各所述时钟请求进行响应,执行各所述目标模拟程序的数据准备工作;获取待数据交换的所述目标模拟程序的数据状态;基于所述数据状态,通过所述数据交换功能模块执行或延迟所述待数据交换的目标模拟程序的数据更新工作;在各所述目标模拟程序的所述数据更新工作执行结束后,接收各所述目标模拟程序发出的下一个时钟请求,执行各所述目标模拟程序下一轮的数据准备工作和数据更新工作,直至到达预设的模拟时间,输出模拟结果。本发明通过构建统一通用的模拟仿真程序间通信组件与软件系统,考虑城市模拟中多领域多要素之间的强关联性,实现多个针对特定城市领域要素的模拟仿真软件的联合模拟仿真,提高城市多要素联合模拟的准确性。