发明内容
为了克服上述问题,本发明人进行了锐意研究,一方面,提出了一种数字仿真系统,包括客户端和服务器端,
其中,所述客户端用于获取用户的仿真计算参数,作为仿真请求传递至服务器端,接收服务器端传回的仿真结果并展示给用户;
所述服务器端根据仿真计算参数进行仿真,将仿真结果传递回客户端。
进一步地,所述客户端具有多个,多个客户端通过网络与服务器端连接。
根据本发明,所述服务器端中设置有仿真运算模块,用于对仿真计算参数进行仿真运算,获得仿真结果,
优选地,所述仿真运算模块中设置有多种仿真模型,可根据仿真计算参数选择对应的仿真模型进行仿真运算,获得仿真结果。
根据本发明一个优选实施方式,客户端对获得的仿真计算参数进行预判断,确定其是否存在逻辑错误,若存在逻辑错误,则提示信息和/或修改建议,若不存在逻辑错误,则将仿真计算参数传递至服务器端。
根据本发明,所述服务器端还具有数据存储模块,用于存储仿真计算参数和对应的仿真结果。
进一步地,所述数据存储模块存储有仿真计算参数对应的仿真运算时长。
根据本发明一个优选的实施方式,所述服务器端设置有运算时长预测模块和控制模块;
所述运算时长预测模块用于预测不同仿真请求需要的运算时长,
所述控制模块用于生成、控制请求队列,将请求队列中不同的仿真请求分配至不同的服务器,所述请求序列是指多个客户端的仿真请求按照传递至服务器端的时间顺序排列成的队列。
优选地,所述服务器端包含一台主服务器和多台备用服务器;
在控制模块中预设有响应时间阈值,控制模块根据运算时长预测模块预测的运算时间,确定请求序列中的仿真请求是否都能在响应时间阈值内运算完成:
当所有仿真请求均能够在响应时间阈值内完成时,不启用备用服务器;
当存在仿真请求不能在响应时间阈值内完成时,启用备用服务器,将部分仿真请求分配至备用服务器进行运算。
进一步优选地,所述神经网络模型的输入为仿真模型种类、电气元件的总参数量和电源数据;所述神经网络模型的输出为运算用时,
所述电气元件的总参数量是指仿真计算参数中所有电气元件的参数总数。
另一方面,本发明还提供了一种数字仿真方法,优选采用所述的数字仿真系统进行仿真,包括以下步骤:
S1、通过客户端获取用户的仿真计算参数,作为仿真请求传递至服务器端;
S2、服务器端根据仿真计算参数进行仿真,将仿真结果传递回客户端;
S3、客户端接收服务器端传回的仿真结果,展示给用户。
本发明至少包括以下有益效果:
(1)本发明可以执行多个用户的仿真计算请求,并能够满足各类仿真计算请求,扩展性、灵活性较高;
(2)本发明将仿真系统拆分成客户端与服务器端,多个客户端共用一个服务器端,从而降低了客户端的性能要求,同时降低了服务器端空载时间,提高了服务器端的利用率,能够极大的降低系统整体的成本,节约资源与能耗;
(3)本发明将仿真运算集中设置在服务器端,方便统一对仿真模型的管理,例如增加仿真模型,调整仿真模型性能等,相对于传统的仿真系统,便于管理与服务升级;
(4)本发明通过服务器端将仿真计算参数和对应的仿真结果存储起来,当出现相同仿真计算参数时,无需重复仿真运算,不仅节约服务器资源,还提高了客户端获取仿真结果速度,提高了用户体验;
(5)本发明解决了多个客户端同时提出仿真请求出现仿真延时的问题,利用控制模块对仿真请求进行管理,确保每个仿真请求均能够得到及时分配、处理。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
应当理解,本文所使用的诸如“具有”、“包含”以及“包括”术语并不排除一个或多个其它元件或其组合的存在或添加。
本发明提出了一种数字仿真系统,如图1所示,包括客户端和服务器端,其中,客户端用于获取用户的仿真计算参数,作为仿真请求传递至服务器端,接收服务器端传回的仿真结果并展示给用户;服务器端根据仿真计算参数进行仿真,将仿真结果传递回客户端。
所述仿真计算参数,包括仿真模型种类、电气元件连接图、电气元件参数、电源数据。其中,所述仿真模型由用户从模型列表中选择确定,所述模型列表由服务器端推送至客户端;所述电源数据是指直流参数(例如电流、电压)、交流参数(例如电压、电流、频率、幅值、初相位)、发电机参数(例如额定电压、额定电流、额定频率、额定功率因数)或变压器参数(例如额定频率、额定电流、空载电流、空载损耗)。
进一步地,所述客户端具有多个,多个客户端通过网络与服务器端连接。
在一种技术方案中,所述客户端在接收用户的仿真计算请求后,验证用户权限,若符合,则接收所述仿真计算参数,通过权限验证,提升系统的安全性。
由于仿真系统在仿真过程中,并不是一直需要进行模拟运算,仅仅需要在提交新的仿真计算参数或改变部分仿真计算参数时需要重新运算,传统的仿真系统配置的高性能计算机或控制板空载时间长、利用率低,资源浪费严重,在本发明中,将仿真系统拆分成客户端与服务器端,多个客户端共用一个服务器端,从而降低了客户端的性能要求,同时降低了服务器端空载时间,提高了服务器端的利用率,能够极大的降低系统整体的成本,节约资源与能耗。
根据本发明,所述服务器端中设置有仿真运算模块,用于对仿真计算参数进行仿真运算,获得仿真结果。
优选地,所述仿真运算模块中设置有多种仿真模型,可根据仿真计算参数选择对应的仿真模型进行仿真运算,获得仿真结果。
在本发明中,将仿真运算集中设置在服务器端,方便统一对仿真模型的管理,例如增加仿真模型,调整仿真模型性能等,相对于传统的仿真系统,便于管理与服务升级。
进一步地,在本发明中,对所述客户端获取用户仿真计算参数的方式不做特别限定,可以是用户直接输入设置,也可以是通过半实物仿真模型获取数值。
在一个优选的实施方式中,客户端对获得的仿真计算参数进行预判断,确定其是否存在逻辑错误,例如电路断路等,若存在逻辑错误,则提示信息和/或修改建议,若不存在逻辑错误,则将仿真计算参数传递至服务器端。由于逻辑错误判断相对简单,对运算能力不高,低性能客户端可快速实现,降低了服务器端的运算压力。
优选地,所述服务器端还具有数据存储模块,用于存储仿真计算参数和对应的仿真结果。
教学是仿真系统的主要应用场景之一,发明人发现,在教学中,由于教材相同,会出现多个仿真请求中仿真计算参数相同的情况,在本发明中,将仿真计算参数和对应的仿真结果存储起来,当出现相同仿真计算参数时,无需重复仿真运算,不仅节约服务器资源,还提高了客户端获取仿真结果速度,提高了用户体验。
在一个优选的实施方式中,所述数据存储模块还存储仿真计算参数对应的仿真运算时长。
不同于传统的仿真系统,在本发明中,由于多个客户端共用一个服务器端,可能出现多个客户端同时提出仿真请求,要求进行仿真运算的状况。
根据本发明,当存在多个仿真请求时,多个仿真请求按照时间顺序依次传递至服务器端,在服务器端形成请求序列,仿真运算模型按照请求序列依次进行仿真运算。
当仿真请求过多时,会造成请求序列中靠后的仿真请求等待时间边长,即客户端长时间等待仿真结果的情况,用户体验较差。
在一个优选的实施方式中,所述服务器端包含一台主服务器和多台备用服务器,根据仿真请求的需求设定多台备用服务器的工作状态。
具体地,在本发明中,服务器端还设置有运算时长预测模块和控制模块,
其中,所述运算时长预测模块用于预测不同仿真请求需要的运算时长,
所述控制模块用于生成、控制请求队列,将请求队列中不同的仿真请求分配至不同的服务器。
具体地,在控制模块中预设有响应时间阈值,控制模块根据运算时长预测模块预测的时间,确定请求序列中的仿真请求是否都能在响应时间阈值内运算完成:
当所有仿真请求均能够在响应时间阈值内完成时,不启用备用服务器;
当存在仿真请求不能在响应时间阈值内完成时,启用备用服务器,将部分仿真请求分配至备用服务器进行运算。
通过控制模块对响应请求的分配,既避免了客户端长时间等待的情况,又节约了服务器资源,降低能耗。
根据本发明,所述运算时长预测模块中设置有神经网络模型,优选为BP神经网络模型。在本发明中,所述神经网络模型的输入为仿真模型种类、电气元件的总参数量和电源数据;所述神经网络模型的输出为运算用时。
不同于传统的神经网络模型,在本发明中,在神经网络模型的输入层前增加参数层,以BP神经网络为例,如图3所示,所述参数层的输入为仿真计算参数中所有电气元件,输出为电气元件的总参数量。
一件电气元件可能具有多个参数,例如电子元件三极管,具有耗散功率参数、特征频率参数、最高振荡频率参数、最大反向电压参数等,在本发明中,所述参数特指对电路有实际影响的参数,不同的电气元件的参数数量不同。
所述电气元件的总参数量是指仿真计算参数中所有电气元件的参数总数,可以表示为:
z=∑pjixjqji (1)
其中,xj表示电路中不同的元件,qji表示第j个元件中不同的参数,pji表示第j个元件中第i个参数的特征系数。
进一步地,发明人发现,元件不同的电气元件或参数对运算时长的影响程度不同,部分电气元件或参数增加运算时长,部分参数降低了运算时长。
在本发明中,所述特征系数pji可以分解为正特征和负特征,其中,正特征表示元件和参数对运算时长有正影响,即增加运算时长,负特征表示元件和参数对运算时长有负影响,即降低了运算时长,通过引入正特征和负特征,使得特征系数更为准确,从而极大提高了模型的预测准确性。
进一步地,所述特征系数可以表示为:
pji=exp(φji+βωji) (2)
其中,φji表示正特征误差,ωji表示负特征误差,β是正特征误差和负特征误差的正则化因子。
进一步地,正特征误差可以表示为:
其中,ai表示参数的置信度;bj表示元件j的影响因子;
A+ i表示参数的正特征集合,可以根据经验预设,例如阻尼系数、斩波频率参数属于正特征。
负特征误差可以表示为:
其中,ai表示参数的置信度;bj表示元件j的影响因子;
A- i表示参数的负特征集合,可以根据经验预设,例如电阻、熔断参数属于负特征。在本发明中,一个参数可以既属于正特征,又属于负特征,在部分电路中对运算时长有正影响,在部分电路中对运算时长有负影响,例如电容参数在隔直流作用时为负特征,降低了运算量,电容参数在无功补偿作用时为正特征,增加了计算量。
通过设置参数层与连接神经网络,将参数层中的传递函数作为输入层的前置运算,在训练神经网络时,能够同时训练获得不同参数的置信度ai、元件j的影响因子bj以及正则化因子β,从而实现将相互影响、相互交互的电气元件及其参数联系起来,进而获得客观总参数量描述。
进一步地,由于未增加神经网络的输入数量,也未增加隐含层层数,并未影响神经网络的运算速度,使得升级网络能够快速的获得预测结果。
经过实验验证,神经网络模型的输入的电气元件的总参数量采用上述方式获取时,预测出的运算用时与实际运算用时偏差在13%以内,能够达到预测要求,为控制模块对响应请求的分配提供了有效的支撑,极大降低了客户端长时间等待的情况的发生概率。
发明人发现,不同元件之间相互影响,例如A元件或B元件单独存在时对运算用时影响较小,当A元件与B元件同时出现,A、B元件会对运算用时产生较大影响。为进一步提高模型预测的准确性,在一个更优选的实施方式中,元件j的影响因子bj可以表示为:
其中,N表示仿真计算参数中电气元件个数,ck表示元件k对元件j的影响张量,dj表示元件j单独存在时的影响因子,影响张量和影响因子均可通过神经网络训练获得。
经过实验验证,元件j的影响因子bj采用式(5)的形式,进一步提高了神经网络模型预测的准确性,预测出的运算用时与实际运算用时偏差在8%以内,基本杜绝了客户端长时间等待的情况。
根据本发明,所述运算时长预测模块还能够建立样本集,对神经网络模型进行训练,获得最终的预测模型,从而通过预测模型对请求序列中的仿真请求进行预测,获得运算时长。
具体地,在样本集中,所述仿真模型种类、电气元件的总参数量和电源数据为通过对数据存储模块中存储的仿真计算参数提取获得,所述运算用时通过对数据存储模块中存储的对应仿真运算时长提取获得。
根据本发明,随着服务器端仿真运算的数量增多,数据存储模块中仿真计算参数和对应的仿真运算时长不断增多,运算时长预测模块不断补充样本集对神经网络模型进行训练,使得运算时长预测模块中的神经网络模型能够不断优化,从而预测的仿真时长更接近实际运算用时。在一个优选的实施方式中,所述运算时长预测模块还能够对服务器的使用率进行监控,当服务器使用率较低时,即未进行仿真运算时,采用补充后的样本集对神经网络模型进行训练优化。
本发明还提供了一种数字仿真方法,优选采用所述的数字仿真系统进行仿真,包括以下步骤:
S1、通过客户端获取用户的仿真计算参数,作为仿真请求传递至服务器端;
S2、服务器端根据仿真计算参数进行仿真,将仿真结果传递回客户端;
S3、客户端接收服务器端传回的仿真结果,展示给用户。
具体地,在步骤S1中,所述仿真计算参数,包括仿真模型种类、电气元件连接图、电气元件参数、电源数据。
所述电源数据是指直流参数、交流参数、发电机参数或变压器参数。
进一步地,所述客户端具有多个,多个客户端通过网络与服务器端连接。
在一个优选的实施方式中,在客户端获取用户的仿真计算参数后,先对其进行预判断,确定其是否存在逻辑错误,若存在逻辑错误,则提示信息和修改建议,若不存在逻辑错误,将仿真计算参数传递至服务器端。
在步骤S2中,服务器端获取仿真计算参数后,与数据存储模块中存储的仿真计算参数比对,
若二者一致,将存储的对应的仿真结果传递回客户端,完成步骤S2;
若二者不一致,进行以下子步骤:
S21、控制模块将仿真请求按时间顺序生成请求序列;
S22、运算时长预测模块预测请求序列中的仿真请求需要的运算时长;
S23、控制模块根据预测的运算时长确定请求序列中的仿真请求是否都能在响应时间阈值内运算完成,
当所有仿真请求均能够在响应时间阈值内完成时,主服务器中的仿真运算模块对所有仿真请求依次进行仿真运算,获得仿真传递回客户端;
当存在仿真请求不能在响应时间阈值内完成时,启用备用服务器,将部分仿真请求分配至备用服务器中的仿真运算模块进行仿真运算,获得仿真传递回客户端。
在步骤S22中,所述运算时长预测模块中设置有神经网络模型,优选为BP神经网络模型。
所述神经网络模型的输入为仿真模型种类、电气元件的总参数量和电源数据;所述神经网络模型的输出为运算用时。
进一步地,所述电气元件的总参数量是指仿真计算参数中所有电气元件的参数总数,优选地,在神经网络模型的输入层前增加参数层,所述参数层的输入为仿真计算参数中所有电气元件,输出为电气元件的总参数量。优选地,在步骤S23之后,还具有步骤S24、将获得的仿真结果及对应的仿真计算参数、运算用时存储至数据存储模块。
优选地,在步骤S24之后,还具有步骤S25、通过运算时长预测模块建立样本集,对神经网络模型进行训练,获得最终的预测模型。
进一步地,在样本集中,所述仿真模型种类、电气元件的总参数量和电源数据为通过对数据存储模块中存储的仿真计算参数提取获得,所述运算用时通过对数据存储模块中存储的对应仿真运算时长提取获得。
这里说明的设备数量和处理规模是用来简化本发明的说明的。对本发明数字仿真系统及方法的应用、修改和变化对本领域的技术人员来说是显而易见的。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。