一种基于FPGA的有源配电网实时仿真解算器的设计方法转让专利

申请号 : CN201710837635.0

文献号 : CN107784158B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李鹏曾凡鹏王成山王智颖盛万兴刘科研吕琛

申请人 : 天津大学中国电力科学研究院国网福建省电力有限公司电力科学研究院

摘要 :

一种基于FPGA的有源配电网实时仿真解算器的设计方法,包括:离线预处理过程:采用列近似最小度算法对节点导纳矩阵进行处理;预存电流的地址向量和电流压的地址向量;采用LU分解法对节点导纳矩阵进行分解;预存前代过程和回代过程各子任务的启动时间。在线求解过程:设置仿真启动时刻;仿真时间向前推进一个步长;完成各子任务信息初始化,电流向量的寻址排序;解算开始时,预存的子任务的启动时间对各个处理单元的启动计时器进行初始化;完成前代过程求解,生成中间解向量;完成回代过程求解,寻址排序后生成最终解向量;判断仿真时间是否达到仿真终了时刻。本发明在保证求解精度和求解速度的同时,实现了稀疏线性方程组准确、高效的求解。

权利要求 :

1.一种基于FPGA的有源配电网实时仿真解算器的设计方法,其特征在于,包括离线预处理过程和在线求解过程,其中,所述离线预处理过程包括如下步骤:

1)采用列近似最小度算法对由节点导纳矩阵形成的线性方程组的系数矩阵G进行处理,生成变换后的系数矩阵G′,行置换矩阵P,列置换矩阵Q;

2)由行置换矩阵P和电流向量i的地址向量Ai相乘生成变换后的电流向量i′的地址向量A′i,由列置换矩阵Q和电压向量u的地址向量Au相乘生成变换后的电压向量u′的地址向量A′u,分别存储到FPGA开发板的存储器ROMi和ROMu中;

3)采用LU分解法对变换后的系数矩阵G′进行分解,生成前代求解过程系数矩阵L,回代求解过程系数矩阵U,采用压缩稀疏列格式、以列为单位将前代求解过程系数矩阵L和回代求解过程系数矩阵U中的非零元素分别压缩存储到FPGA开发板的存储器ROML和ROMU中;

4)将LU分解法的前代求解过程和回代求解过程以系数矩阵的列为单位划分成N个子任务,通过对前代求解过程系数矩阵L和回代求解过程系数矩阵U的拓扑分析,分别生成对应前代求解过程和回代求解过程中每个子任务的启动时间TLi和TUi,并对应存储到FPGA开发板的存储器ROMLi和ROMUi中;

所述的在线求解过程包括如下步骤:

5)设置FPGA解算器的系数矩阵维数参数为N;

6)设置仿真时刻t=0,启动仿真;

7)仿真时间向前推进一个步长,t=t+Δt;

8)解算开始时,预存在存储器ROMLi和ROMUi中的每个子任务的启动时间TLi和TUi对各个处理单元的启动计时器start timer进行初始化,同时,输入到解算器的电流向量i根据预存在存储器ROMi中的地址向量A′i寻址排序,生成变换后的电流向量i′;

9)待初始化过程结束后,LU分解法的前代求解过程的启动信号control_y_ena[0]由低电位置为高电位,前代求解过程的各个处理单元的启动计时器starttimer开始减法计时;

10)当前代求解过程的任一计时器计数到1时,所述计时器对应子任务K的使能信号control_y_ena[K]由低电位置为高电位,对应子任务K的处理单元启动,求出对应子任务K的未知解y[K],同时,预存在存储器ROML中的前代求解过程系数矩阵L的第K列非零元素L[K]及对应的行索引L_row[K]以流水线的形式输入到对应子任务K的处理单元中,与输入的变换后的电流向量i′完成浮点数乘法和浮点数减法操作后输出到FPGA解算器的寄存器i_temp[K]中,并通过i&Lmemory bus总线完成所述电流向量i′的更新;

11)待前代求解过程所有的子任务均处理完成后,生成前代求解过程的解向量y,同时,回代求解过程的启动信号control_u_ena[N]由低电位置为高电位,回代求解过程的各个处理单元的启动计时器start timer开始减法计时;

12)当回代求解过程的任一计时器计数到1时,所述计时器对应子任务K的使能信号control_u_ena[K]由低电位置为高电位,对应子任务K的处理单元启动,求出对应子任务K的未知解u[K],同时,预存在存储器ROMU中的回代求解过程系数矩阵U的第K列非零元素U[K]及对应的行索引U_row[K]以流水线的形式输入到对应子任务K的处理单元中,与前代求解过程的解向量y完成浮点数乘法和浮点数减法操作后输出到FPGA解算器的寄存器y_temp[K]中,并通过y&U memory bus总线完成前代求解过程的解向量y的更新;

13)待回代求解过程所有的子任务均处理完成后,生成回代求解过程的解向量u,并根据预存在存储器ROMu中的地址向量A′u寻址排序后生成变换后的电压向量u′,输出到FPGA实时仿真器其余模块,用于各节点电压和支路电流的更新;

14)判断仿真时间是否达到仿真终了时刻,如达到仿真终了时刻,则仿真结束,否则返回步骤7)。

2.根据权利要求1所述的一种基于FPGA的有源配电网实时仿真解算器的设计方法,其特征在于,步骤3)中所述的压缩稀疏列格式,是以列为单位将前代求解过程系数矩阵L和回代求解过程系数矩阵U中的非零元素分别压缩成72位数据帧进行存储,其中,低64位为双精度浮点数形式的数据,高8位为双精度浮点数形式的数据的行索引。

3.根据权利要求1所述的一种基于FPGA的有源配电网实时仿真解算器的设计方法,其特征在于,步骤4)中所述的对前代求解过程系数矩阵L和回代求解过程系数矩阵U的拓扑分析,是通过前代求解过程系数矩阵L和回代求解过程系数矩阵U各自矩阵中的非零元素相互之间的位置关系生成每个非零元素参与运算的起始时刻,并以每一列第一个非零元素参与运算的起始时刻作为对应该列子任务的启动时间TLi和TUi,以用于在线求解过程中各个子任务的调度。

说明书 :

一种基于FPGA的有源配电网实时仿真解算器的设计方法

技术领域

[0001] 本发明涉及一种有源配电网实时仿真解算器。特别是涉及一种基于FPGA的有源配电网实时仿真解算器的设计方法。

背景技术

[0002] 近年来,随着分布式发电与微电网技术、柔性交流配电技术以及智能配用电技术的不断发展与应用,配电网由传统无源网络转变为多源复杂系统,其动态过程也因众多新元素、新技术的加入而变得更加复杂,在规划设计、运行调度、控制保护、仿真分析等诸多方面面临着更大的挑战,因此,必须借助准确、高效的暂态仿真来深入了解有源配电网的运行机理与动态特征。
[0003] 不同于离线的电磁暂态仿真,有源配电网实时仿真能够更加真实地模拟系统的暂态过程,并具备硬件在环仿真的能力,通过将实时仿真器与实际物理设备相连可开展各种控制与保护装置的开发与测试工作,既可以模拟光照及风速变化、电压跌落、短路故障、甩负荷等多种运行场景下的有源配电网复杂暂态过程,又可以有效降低研发及试验成本,避免待测设备对实际系统的影响,因此,在有源配电网规划设计、优化调度、故障自动定位和清除、网络自愈、谐波分析、实际物理系统试验与验证等方面发挥着重要作用。
[0004] 目前,包括RTDS、HYPERSIM、eMEGAsim、NETOMAC等在内的商业化实时仿真器已在电力系统运行与保护、分布式电源控制器设计、电力电子装备研发等领域获得了广泛的应用。然而,随着有源配电网规模的不断增大和分布式电源等设备模型的日趋复杂,对实时仿真器的计算能力提出了更高的要求。同时,作为实时仿真中最为耗时的部分,其线性方程组求解模块的求解速度和求解精度严重制约着实时仿真器仿真性能的提高。传统的商业仿真器价格昂贵且不支持二次开发,相比之下,基于FPGA(field programmable gate array)的有源配电网实时仿真的高性能解算器设计提供了一种新的思路。
[0005] FPGA是具有固有并行性质的可编程逻辑器件,内部集成了大量的逻辑单元、分布式存储资源和DSP运算资源,通过资源配置可实现多线程的并行处理。同时,FPGA本身集成了丰富的外部接口资源,可根据有源配电网实时仿真器二次开发的需求,通过多种外部接口与外部设备互连完成硬件在环仿真。FPGA凭借其高度并行的硬件结构、分布式内存、流水线架构以及可编程特性,在实时仿真领域受到了广泛的关注。
[0006] 在基于FPGA的有源配电网实时仿真中,需要反复求解由节点电导矩阵形成的稀疏线性方程组。

发明内容

[0007] 本发明所要解决的技术问题是,提供一种在保证求解精度和求解速度的同时,实现了由节点电导矩阵形成的稀疏线性方程组准确、高效求解的基于FPGA的有源配电网实时仿真解算器的设计方法。
[0008] 本发明所采用的技术方案是:一种基于FPGA的有源配电网实时仿真解算器的设计方法,包括离线预处理过程和在线求解过程,其中,
[0009] 所述离线预处理过程包括如下步骤:
[0010] 1)采用列近似最小度算法对由节点导纳矩阵形成的线性方程组的系数矩阵G进行处理,生成变换后的系数矩阵G′,行置换矩阵P,列置换矩阵Q;
[0011] 2)由行置换矩阵P和电流向量i的地址向量Ai相乘生成变换后的电流向量i′的地址向量A′i,由列置换矩阵Q和电压向量u的地址向量Au相乘生成变换后的电压向量u′的地址向量A′u,分别存储到FPGA开发板的存储器ROMi和ROMu中;
[0012] 3)采用LU分解法对变换后的系数矩阵G′进行分解,生成前代求解过程系数矩阵L,回代求解过程系数矩阵U,采用压缩稀疏列格式、以列为单位将前代求解过程系数矩阵L和回代求解过程系数矩阵U中的非零元素分别压缩存储到FPGA开发板的存储器ROML和ROMU中;
[0013] 4)将LU分解法的前代求解过程和回代求解过程以系数矩阵的列为单位划分成N个子任务,通过对前代求解过程系数矩阵L和回代求解过程系数矩阵U的拓扑分析,分别生成对应前代求解过程和回代求解过程中每个子任务的启动时间TLi和TUi,并对应存储到FPGA开发板的存储器ROMLi和ROMUi中;
[0014] 所述的在线求解过程包括如下步骤:
[0015] 5)设置FPGA解算器的系数矩阵维数参数为N;
[0016] 6)设置仿真时刻t=0,启动仿真;
[0017] 7)仿真时间向前推进一个步长,t=t+Δt;
[0018] 8)解算开始时,预存在存储器ROMLi和ROMUi中的每个子任务的启动时间TLi和TUi对各个处理单元的启动计时器start timer进行初始化,同时,输入到解算器的电流向量i根据预存在存储器ROMi中的地址向量A′i寻址排序,生成变换后的电流向量i′;
[0019] 9)待初始化过程结束后,LU分解法的前代求解过程的启动信号control_y_ena[0置1,前代求解过程的各个处理单元的启动计时器start timer开始减法计时;
[0020] 10)当前代求解过程的任一计时器计数到1时,所述计时器对应子任务K的使能信号control_y_ena[K]置1,对应子任务K的处理单元启动,求出对应子任务K的未知解y[K],同时,预存在存储器ROML中的前代求解过程系数矩阵L的第K列非零元素L[K]及对应的行索引L_row[K]以流水线的形式输入到对应子任务K的处理单元中,与输入的变换后的电流向量i′完成浮点数乘法和浮点数减法操作后输出到FPGA解算器的寄存器i_temp[K]中,并通过i&Lmemory bus总线完成所述电流向量i′的更新;
[0021] 11)待前代求解过程所有的子任务均处理完成后,生成前代求解过程的解向量y,同时,回代求解过程的启动信号control_u_ena[N]置1,回代求解过程的各个处理单元的启动计时器start timer开始减法计时;
[0022] 12)当回代求解过程的任一计时器计数到1时,所述计时器对应子任务K的使能信号control_u_ena[K]置1,对应子任务K的处理单元启动,求出对应子任务K的未知解u[K],同时,预存在存储器ROMU中的回代求解过程系数矩阵U的第K列非零元素U[K]及对应的行索引U_row[K]以流水线的形式输入到对应子任务K的处理单元中,与前代求解过程的解向量y完成浮点数乘法和浮点数减法操作后输出到FPGA解算器的寄存器y_temp[K]中,并通过y&U memory bus总线完成前代求解过程的解向量y的更新;
[0023] 13)待回代求解过程所有的子任务均处理完成后,生成回代求解过程的解向量u,并根据预存在存储器ROMu中的地址向量A′u寻址排序后生成变换后的电压向量u′,输出到FPGA实时仿真器其余模块,用于各节点电压和支路电流的更新;
[0024] 14)判断仿真时间是否达到仿真终了时刻,如达到仿真终了时刻,则仿真结束,否则返回步骤7)。
[0025] 步骤3)中所述的压缩稀疏列格式,是以列为单位将前代求解过程系数矩阵L和回代求解过程系数矩阵U中的非零元素分别压缩成72位数据帧进行存储,其中,低64位为双精度浮点数形式的数据,高8位为双精度浮点数形式的数据的行索引。
[0026] 步骤4)中所述的对前代求解过程系数矩阵L和回代求解过程系数矩阵U的拓扑分析,是通过前代求解过程系数矩阵L和回代求解过程系数矩阵U各自矩阵中的非零元素相互之间的位置关系生成每个非零元素参与运算的起始时刻,并以每一列第一个非零元素参与运算的起始时刻作为对应该列子任务的启动时间TLi和TUi,以用于在线求解过程中各个子任务的调度。
[0027] 本发明的一种基于FPGA的有源配电网实时仿真解算器的设计方法,能够充分考虑有源配电网实时仿真节点电导矩阵的结构特性和自身硬件的集成结构,发挥FPGA硬件结构并行性的技术优势,在保证求解精度和求解速度的同时,实现了由节点电导矩阵形成的稀疏线性方程组准确、高效的求解,为实现基于FPGA的大规模有源配电系统实时仿真奠定基础。

附图说明

[0028] 图1是本发明一种基于FPGA的有源配电网实时仿真解算器的设计方法的流程图;
[0029] 图2是采用本发明的设计方法设计出的解算器硬件结构示意图;
[0030] 图3是本发明实施例中单极光伏发电系统的测试算例;
[0031] 图4是光伏发电系统输出电流的仿真结果图;
[0032] 图5是光伏发电系统输出电流的相对误差曲线图;
[0033] 图6是光伏发电系统输出电压的仿真结果图;
[0034] 图7是光伏发电系统输出电压的相对误差曲线图。

具体实施方式

[0035] 下面结合实施例和附图对本发明的一种基于FPGA的有源配电网实时仿真解算器的设计方法做出详细说明。
[0036] 如图1所示,本发明的一种基于FPGA的有源配电网实时仿真解算器的设计方法,包括离线预处理过程和在线求解过程。其中,
[0037] 一、所述离线预处理过程包括如下步骤:
[0038] 1)采用列近似最小度算法对由节点导纳矩阵形成的线性方程组的系数矩阵G进行处理,生成变换后的系数矩阵G′,行置换矩阵P,列置换矩阵Q;
[0039] 2)由行置换矩阵P和电流向量i的地址向量Ai相乘生成变换后的电流向量i′的地址向量A′i,由列置换矩阵Q和电压向量u的地址向量Au相乘生成变换后的电压向量u′的地址向量A′u,分别存储到FPGA开发板的存储器ROMi和ROMu中;
[0040] 3)采用LU分解法对变换后的系数矩阵G′进行分解,生成前代求解过程系数矩阵L,回代求解过程系数矩阵U,采用压缩稀疏列格式、以列为单位将前代求解过程系数矩阵L和回代求解过程系数矩阵U中的非零元素分别压缩存储到FPGA开发板的存储器ROML和ROMU中;所述的压缩稀疏列格式,是以列为单位将前代求解过程系数矩阵L和回代求解过程系数矩阵U中的非零元素分别压缩成72位数据帧进行存储,其中,低64位为双精度浮点数形式的数据,高8位为双精度浮点数形式的数据的行索引。
[0041] 4)将LU分解法的前代求解过程和回代求解过程以系数矩阵的列为单位划分成N个子任务,通过对前代求解过程系数矩阵L和回代求解过程系数矩阵U的拓扑分析,分别生成对应前代求解过程和回代求解过程中每个子任务的启动时间TLi和TUi,并对应存储到FPGA开发板的存储器ROMLi和ROMUi中;所述的对前代求解过程系数矩阵L和回代求解过程系数矩阵U的拓扑分析,是通过前代求解过程系数矩阵L和回代求解过程系数矩阵U各自矩阵中的非零元素相互之间的位置关系生成每个非零元素参与运算的起始时刻,并以每一列第一个非零元素参与运算的起始时刻作为对应该列子任务的启动时间TLi和TUi,以用于在线求解过程中各个子任务的调度。
[0042] 二、所述的在线求解过程包括如下步骤:
[0043] 5)设置FPGA解算器的系数矩阵维数参数为N;
[0044] 6)设置仿真时刻t=0,启动仿真;
[0045] 7)仿真时间向前推进一个步长,t=t+Δt;
[0046] 8)解算开始时,预存在存储器ROMLi和ROMUi中的每个子任务的启动时间TLi和TUi对各个处理单元的启动计时器start timer进行初始化,同时,输入到解算器的电流向量i根据预存在存储器ROMi中的地址向量A′i寻址排序,生成变换后的电流向量i′;
[0047] 9)待初始化过程结束后,LU分解法的前代求解过程的启动信号control_y_ena[0置1,前代求解过程的各个处理单元的启动计时器start timer开始减法计时;
[0048] 10)当前代求解过程的任一计时器计数到1时,所述计时器对应子任务K的使能信号control_y_ena[K]置1,对应子任务K的处理单元启动,求出对应子任务K的未知解y[K],同时,预存在存储器ROML中的前代求解过程系数矩阵L的第K列非零元素L[K]及对应的行索引L_row[K]以流水线的形式输入到对应子任务K的处理单元中,与输入的变换后的电流向量i′完成浮点数乘法和浮点数减法操作后输出到FPGA解算器的寄存器i_temp[K]中,并通过i&Lmemory bus总线完成所述电流向量i′的更新;
[0049] 11)待前代求解过程所有的子任务均处理完成后,生成前代求解过程的解向量y,同时,回代求解过程的启动信号control_u_ena[N]置1,回代求解过程的各个处理单元的启动计时器start timer开始减法计时;
[0050] 12)当回代求解过程的任一计时器计数到1时,所述计时器对应子任务K的使能信号control_u_ena[K]置1,对应子任务K的处理单元启动,求出对应子任务K的未知解u[K],同时,预存在存储器ROMU中的回代求解过程系数矩阵U的第K列非零元素U[K]及对应的行索引U_row[K]以流水线的形式输入到对应子任务K的处理单元中,与前代求解过程的解向量y完成浮点数乘法和浮点数减法操作后输出到FPGA解算器的寄存器y_temp[K]中,并通过y&U memory bus总线完成前代求解过程的解向量y的更新;
[0051] 13)待回代求解过程所有的子任务均处理完成后,生成回代求解过程的解向量u,并根据预存在存储器ROMu中的地址向量A′u寻址排序后生成变换后的电压向量u′,输出到FPGA实时仿真器其余模块,用于各节点电压和支路电流的更新;
[0052] 14)判断仿真时间是否达到仿真终了时刻,如达到仿真终了时刻,则仿真结束,否则返回步骤7)。
[0053] 下面以如附图3所示的光伏发电系统测试算例为例进行说明。
[0054] 该算例的执行FPGA开发板为Altera公司的 IV GX FPGA 530官方开发板。测试算例为单极光伏发电系统,仿真步长设为5μs,如附图3所示。在光伏发电系统中,逆变器采用Vdc-Q控制,光伏电压参考值Vref以常量形式给出。算例中光伏发电单元PV的温度设置为298K,Vref设为350V,Qref设为0Var。电源S和变压器T采用电压源串联恒定阻抗模拟。FPGA芯片由100MHz的全局时钟驱动,通过锁相环PLL倍频至120MHz输入仿真解算部分。相同算例在PSCAD/EMTDC中进行搭建与仿真,其中,仿真器和PSCAD/EMTDC的仿真步长均设定为5μs,仿真时间为3s。其中,
[0055] (1)求解速度和求解规模分析
[0056] 在该算例中,FPGA仿真的电气系统包含5个电源类元件、11个RLC元件、6个IGBT、6个二极管以及8个测量元件;求解电气系统线性方程组的维数为21维,非零元素的个数为61个;采用列近似最小度算法处理后,生成的L矩阵和U矩阵中非零元素的个数分别为44和50个;在线前代求解过程、回代求解过程分别被按列划分为21个子任务,共消耗302个时钟,耗时2.517μs,其中,前代求解过程消耗119个时钟周期,回代求解过程消耗120个时钟,分别耗时0.992μs和1.000μs,其余时间用于求解预存信息的初始化和电压、电流向量的重排序;处理单元的个数设置为42个,整个算例逻辑资源消耗74%,存储资源消耗13%,DSP资源消耗53%,其中,解算器模块逻辑资源消耗27%,存储资源消耗2%,DSP资源消耗46%。
[0057] (2)求解精度分析
[0058] 图6给出了光伏发电系统输出电流的仿真结果,图7给出了光伏发电系统输出电流的相对误差仿真结果。从图6~图7中的对比可以看出,基于FPGA的实时仿真器与商业软件PSCAD/EMTDC中光伏发电系统输出的仿真结果基本一致,从而验证了基于FPGA的有源配电网实时仿真高性能解算器的正确性及有效性。
[0059] 以上算例测试结果证明,本发明的一种基于FPGA的有源配电网实时仿真解算器的设计方法能够在保证求解精度和求解速度的同时,实现了由节点电导矩阵形成的稀疏线性方程组准确、高效的求解,为实现基于FPGA的大规模有源配电系统实时仿真奠定基础。