发明名称 基于矩阵指数的电磁暂态仿真图形处理器并行计算方法
摘要 一种基于矩阵指数的电磁暂态仿真图形处理器并行计算方法,在状态分析框架下建立待研究电力系统的整体电磁暂态仿真模型,结合矩阵指数算法的数据并行性以及图形处理器并行计算的性能优势,实现电力系统电磁暂态快速仿真。本发明保留了矩阵指数积分方法良好的数值精度和刚性处理能力,对电力系统元件的非线性环节具有一般性的建模和仿真能力,利用了矩阵指数积分算法的数据高度并行性特点,实现了矩阵指数积分算法的在大规模电力系统电磁暂态仿真领域的高效性。本发明在状态分析框架下,基于矩阵指数运算实现了一般电力系统电磁暂态模型的仿真图形处理器并行计算,提高了矩阵指数电磁暂态仿真方法的计算速度。
申请公布号 CN105574809A 申请公布日期 2016.05.11
申请号 CN201510941067.X 申请日期 2015.12.16
申请人 天津大学 发明人 李鹏;富晓鹏;王成山;周红珊;刘君陶;赵金利
分类号 G06T1/20(2006.01)I 主分类号 G06T1/20(2006.01)I
代理机构 天津市北洋有限责任专利代理事务所 12201 代理人 杜文茹
主权项 一种基于矩阵指数的电磁暂态仿真图形处理器并行计算方法,其特征在于,在状态分析框架下建立待研究电力系统的整体电磁暂态仿真模型,结合矩阵指数算法的数据并行性以及图形处理器并行计算的性能优势,实现电力系统电磁暂态快速仿真;具体包括如下步骤:1)在状态分析框架下,建立待研究电力系统整体电磁暂态仿真模型,表示为<maths num="0001" id="cmaths0001"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mover><mi>x</mi><mo>&CenterDot;</mo></mover><mo>=</mo><mi>A</mi><mi>x</mi><mo>+</mo><mi>f</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo>)</mo></mtd></mtr><mtr><mtd><mi>y</mi><mo>=</mo><mi>g</mi><mo>(</mo><mi>x</mi><mo>,</mo><mi>t</mi><mo>)</mo></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000880118970000011.GIF" wi="382" he="156" /></maths>其中,x是包含当前时刻系统内所有储能元件与记忆元件状态的状态向量,A为稀疏矩阵,t为时间,Ax和f(x,t)分别表示系统动态特性中的线性和非线性部分,y是仿真使用者所要求的仿真输出向量,输出函数g(x,t)根据仿真研究关注点不同,由使用者任意指定;2)设定仿真时间T,仿真步长△t,设定当前时刻为仿真起始时刻t<sub>n</sub>=t<sub>0</sub>,依照仿真需要设置仿真初值x<sub>n</sub>=x<sub>0</sub>,并由y<sub>0</sub>=g(x<sub>0</sub>,t<sub>0</sub>),得到仿真起始时刻输出变量的值y<sub>0</sub>,写入输出文件;3)分别在中央处理器上分配内存空间、图形处理器上分配显存空间,在所述内存空间和显存空间内用于存放数据:稀疏矩阵A、稠密矩阵<img file="FDA0000880118970000012.GIF" wi="182" he="78" />初始状态变量x<sub>0</sub>、中间计算状态向量、常数项以及常数向量,输出数据t<sub>n+1</sub>时刻的状态变量x<sub>n+1</sub>、输出向量y,在中央处理器上预先处理非线性部分f(x,t)元素内常数数据间的运算,将所需数据由中央处理器内存空间传输到对应的图形处理器显存上,采用完全基于图形处理器的并行计算;4)从统一计算设备架构中调用CUSPARSE库函数,在图形处理器上并行计算当前时刻t<sub>n</sub>的稀疏矩阵向量乘法dx<sub>1</sub>←Ax<sub>n</sub>,将计算结果数据存放在图形处理器显存空间中对应的区域;5)调用自定义内核函数,在图形处理器上并行计算当前时刻t<sub>n</sub>的更新向量f(x<sub>n</sub>,t<sub>n</sub>)并实现叠加dx<sub>2</sub>←dx<sub>1</sub>+f(x<sub>n</sub>,t<sub>n</sub>),将计算结果数据存放在图形处理器显存空间中对应的区域;6)从统一计算设备架构中调用CUBLAS库函数,在图形处理器上并行计算当前时刻t<sub>n</sub>的稠密向量乘法<img file="FDA0000880118970000013.GIF" wi="381" he="70" />将计算结果数据存放在图形处理器显存空间中对应的区域;7)从统一计算设备架构中调用CUBLAS库函数,在图形处理器上并行计算当前时刻t<sub>n</sub>的向量加法x<sub>n+1</sub>←x<sub>n</sub>+dx<sub>3</sub>,得到t<sub>n+1</sub>时刻的状态变量x<sub>n+1</sub>,将计算结果数据存放在图形处理器显存空间中对应的区域;8)将结果向量x<sub>n+1</sub>拷贝到中央处理器内存空间,由y<sub>n+1</sub>=g(x<sub>n+1</sub>,t<sub>n+1</sub>)得到t<sub>n+1</sub>时刻输出向量的值并写入输出数据文件,更新当前时刻为下一时刻t<sub>n+1</sub>=t<sub>n</sub>+△t,仿真向前推进一个步长;9)比较当前时刻t<sub>n</sub>与仿真时间T,判断仿真是否结束,是则仿真结束;否则返回到步骤4)继续进行计算,依此循环迭代,直到仿真结束。
地址 300072 天津市南开区卫津路92号