当前位置: 首页 > 专利查询>梁文毅专利>正文

一种基于分布式并行运算方法的电气仿真方法技术

技术编号:29490493 阅读:11 留言:0更新日期:2021-07-30 19:02
本发明专利技术公开了一种基于分布式并行运算方法的电气仿真方法,具体包括如下步骤:S1、更新Jacobian矩阵元素和右端项;S2、对Jacobian矩阵进行预处理,以减小系数矩阵的条件数;S3、采用Krylov子空间法求解矩阵方程;S4、在各个进程中,根据主进程分配的任务,进行相应的计算;S5、将各个进程计算完成后的数据收集到主进程中,处理得到本次迭代解向量;S6、进行收敛判断,当矩阵求解收敛则进入步骤S7,否则返回步骤S3,根据当前计算得到的解向量;S7、判断当前非线性迭代求解收敛条件是否成立,当收敛条件不成立时,重新求解,直到非线性求解收敛。本发明专利技术设计优化,通过充分利用局域网内的硬件计算资源,可以显著提高复杂大系统仿真的求解效率。

【技术实现步骤摘要】
一种基于分布式并行运算方法的电气仿真方法
本专利技术涉及计算机虚拟仿真
,具体为一种基于分布式并行运算方法的电气仿真方法。
技术介绍
电气仿真技术广泛应用于航空、航天、舰船、兵器以及轨道交通等复杂电气系统的设计,目前通用的电气系统仿真器普遍采用基于LU三角分解的直接法来进行系统模拟仿真。对于大型稀疏矩阵,实现LU三角分解的并行运算有较大的技术障碍,因此,目前通用的求解器普遍采用单节点技术进行电气系统仿真。随着多电、全电技术的发展,独立供电系统越来越复杂,同时,随着建模技术的不断进步,电气系统仿真模型的复杂程度也越来越高,采用单节点硬件配置由于仿真效率低下,难以应对越来越高的复杂大系统仿真的需求。
技术实现思路
本专利技术的目的在于提供一种基于分布式并行运算方法的电气仿真方法,以解决上述
技术介绍
中提出的问题,以便提高复杂电气系统仿真的收敛性能和求解效率。为实现上述目的,本专利技术提供如下技术方案:一种基于分布式并行运算方法的电气仿真方法,具体包括如下步骤:S1、在初始化时求解器读入网表文件,网表文件包括元件类型、元件管脚节点连接信息、元件模型参数、仿真步长、收敛参数、积分方法的详细信息,并基于节点电压法,构造Jacobian初始矩阵;在进行牛顿-拉斐逊非线性迭代时,在任一迭代时刻,根据当前解向量状态,更新Jacobian矩阵元素和右端项;S2、对Jacobian矩阵进行预处理,以减小系数矩阵的条件数;S3、采用Krylov子空间法求解矩阵方程;S4、在各个进程中,根据主进程分配的任务,进行相应的计算;S5、将各个进程计算完成后的数据收集到主进程中,并对数据进行综合处理得到本次迭代解向量;S6、根据迭代结果进行收敛判断,当矩阵求解收敛,则进入步骤S7,否则返回步骤S3,根据当前计算得到的解向量,重新更新Jacobian矩阵和右端项,继续迭代求解当前矩阵,直到迭代收敛;当迭代次数超过最大迭代次数仍然不收敛时,给出警告信息;S7、根据求解向量和右端项状态与收敛准则进行比较,判断当前非线性迭代求解收敛条件是否成立,当收敛条件不成立时,将迭代得到的解向量代入到Jacobian矩阵和右端项中,重新更新方程系数和激励元,进行方程求解,直到非线性求解收敛;重复非线性迭代过程,直到完成所有的求解任务。优选的,在步骤S1中解向量的初始状态在进入迭代之前,根据历史求解数据获得,在进入非线性迭代后,为每次迭代获得的解向量。优选的,在步骤S1中牛顿-拉斐逊非线性迭代计算过程中,采用变步长算法。优选的,步骤S2中采用预处理算法后,根据所选择的预处理子,对右端项同步进行处理。优选的,步骤S3中根据Krylov子空间法,获得方程迭代解的表达式,并采用稀疏矩阵进行求解运算;当求解对象矩阵较大时,根据局域网中的硬件资源,对计算负荷进行分解,并分配到局域网各个进程中。与现有技术相比,本专利技术的有益效果是:本专利技术为了为了提高复杂电气系统仿真的求解效率,提供了一种基于分布式并行运算方法的电气仿真技术。该方法基于Krylov子空间迭代法,来实现分布式并行运算。由于Krylov子空间迭代法的主要计算负荷为矩阵向量乘法,可以充分利用稀疏矩阵来进一步提高计算效率。分布式并行计算基于MPI并行环境实现多进程并行运算。本专利技术设计优化,通过充分利用局域网内的硬件计算资源,可以显著提高复杂大系统仿真的求解效率。附图说明图1为一种基于分布式并行运算方法的电气仿真方法的流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,本专利技术提供一种技术方案:一种基于分布式并行运算方法的电气仿真方法,具体包括如下步骤:一种基于分布式并行运算方法的电气仿真方法,具体包括如下步骤:S1、在初始化时求解器读入网表文件,网表文件包括元件类型、元件管脚节点连接信息、元件模型参数、仿真步长、收敛参数、积分方法的详细信息,并基于节点电压法,构造Jacobian初始矩阵;在进行牛顿-拉斐逊非线性迭代时,在任一迭代时刻,根据当前解向量状态,更新Jacobian矩阵元素和右端项;在步骤S1中,解向量的初始状态在进入迭代之前,根据历史求解数据获得,在进入非线性迭代后,为每次迭代获得的解向量;牛顿-拉斐逊非线性迭代计算过程中,采用变步长算法,以提高计算效率;S2、对Jacobian矩阵进行预处理,以减小系数矩阵的条件数;采用预处理算法后,根据所选择的预处理子,对右端项同步进行处理;S3、采用Krylov子空间法求解矩阵方程;显然,这里数值求解问题可以转化为求解通用线性方程组:Ax=b,式中,矩阵A∈Rn×n和向量b∈Rn给定,x∈Rn为未知向量;这里设定系数矩阵A为非奇异的大型稀疏矩阵;取初始向量x0∈Rn,则解方程组等效于求解Ay=r0,x=x0+y,r0=b-Ax0,构造一个Krylov子空间则可以求得一个使其在某种意义上是方程组Ay=r0的解的最佳逼近,即y=A-1r0≈yk=h0r0+h1Ar0+hkAk-1r0,对应的原方程组Ax=b的近似解为xk=x0+yk;在上述计算过程中,将矩阵求逆运算用矩阵多项式来代替,并且在计算过程中,根据矩阵A与向量Ak-1r0乘法递推得到Akr0;由于矩阵A具有非常明显的稀疏特征,且稀疏矩阵与向量乘法的并行计算易于实现,因此,这里采用稀疏矩阵运算;通过利用稀疏矩阵的特性,减少存储空间,降低计算需求;这里采用的稀疏矩阵存储格式为行压缩存储(CSR,CompressedSparseRowStorage);这里以CSR格式为例来说明稀疏矩阵的存储方式;设定有稀疏矩阵A,采用CSR格式时需要创建三个数组,一个浮点型数组V,另外两个为整型数组C和R,这三个数组分别用于:A)V数组维数为矩阵A的非零元素的个数,按从上往下、从左往右的行遍历方式保存矩阵A的非零元素;B)C数组维数和V数组一样,用于保存V数组中元素的列索引;C)R数组维数为矩阵A的行数,保存矩阵A的每行第一个非零元素在V中的索引;步骤S3中,根据Krylov子空间法获得方程迭代解的表达式,并采用稀疏矩阵进行求解运算;当求解对象矩阵较大时,根据局域网中的硬件资源,对计算负荷进行分解,并分配到局域网各个进程中;S4、在各个进程中,根据主进程分配的任务,进行相应的计算;S5、将各个进程计算完成后的数据收集到主进程中,并对数据进行综合处理得到本次迭代解向量;S6、根据迭代结果进行收敛判断,当矩阵求解收敛,则进入步骤S7,否则返回步骤S3,根据当前计算得到的解向量,重新更本文档来自技高网...

【技术保护点】
1.一种基于分布式并行运算方法的电气仿真方法,其特征在于:具体包括如下步骤:/nS1、在初始化时求解器读入网表文件,网表文件包括元件类型、元件管脚节点连接信息、元件模型参数、仿真步长、收敛参数、积分方法的详细信息,并基于节点电压法,构造Jacobian初始矩阵;在进行牛顿-拉斐逊非线性迭代时,在任一迭代时刻,根据当前解向量状态,更新Jacobian矩阵元素和右端项;/nS2、对Jacobian矩阵进行预处理,以减小系数矩阵的条件数;/nS3、采用Krylov子空间法求解矩阵方程;/nS4、在各个进程中,根据主进程分配的任务,进行相应的计算;/nS5、将各个进程计算完成后的数据收集到主进程中,并对数据进行综合处理得到本次迭代解向量;/nS6、根据迭代结果进行收敛判断,当矩阵求解收敛,则进入步骤S7,否则返回步骤S3,根据当前计算得到的解向量,重新更新Jacobian矩阵和右端项,继续迭代求解当前矩阵,直到迭代收敛;当迭代次数超过最大迭代次数仍然不收敛时,给出警告信息;/nS7、根据求解向量和右端项状态与收敛准则进行比较,判断当前非线性迭代求解收敛条件是否成立,当收敛条件不成立时,将迭代得到的解向量代入到Jacobian矩阵和右端项中,重新更新方程系数和激励元,进行方程求解,直到非线性求解收敛;重复非线性迭代过程,直到完成所有的求解任务。/n...

【技术特征摘要】
1.一种基于分布式并行运算方法的电气仿真方法,其特征在于:具体包括如下步骤:
S1、在初始化时求解器读入网表文件,网表文件包括元件类型、元件管脚节点连接信息、元件模型参数、仿真步长、收敛参数、积分方法的详细信息,并基于节点电压法,构造Jacobian初始矩阵;在进行牛顿-拉斐逊非线性迭代时,在任一迭代时刻,根据当前解向量状态,更新Jacobian矩阵元素和右端项;
S2、对Jacobian矩阵进行预处理,以减小系数矩阵的条件数;
S3、采用Krylov子空间法求解矩阵方程;
S4、在各个进程中,根据主进程分配的任务,进行相应的计算;
S5、将各个进程计算完成后的数据收集到主进程中,并对数据进行综合处理得到本次迭代解向量;
S6、根据迭代结果进行收敛判断,当矩阵求解收敛,则进入步骤S7,否则返回步骤S3,根据当前计算得到的解向量,重新更新Jacobian矩阵和右端项,继续迭代求解当前矩阵,直到迭代收敛;当迭代次数超过最大迭代次数仍然不收敛时,给出警告信息;
S7、根据求解向量和右端项状态与收敛准则进行比较,判断当前非线性迭代求解收敛条件是否成立,当收敛...

【专利技术属性】
技术研发人员:梁文毅高秋
申请(专利权)人:梁文毅
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1