一种基于fpga的高并行度的电力系统实时仿真方法

xiaoxiao2020-10-23  21

一种基于fpga的高并行度的电力系统实时仿真方法
【技术领域】
[0001]本发明涉及电力系统数字仿真技术领域,尤其涉及一种基于FPGA的高并行度的 电力系统实时仿真方法。
【背景技术】
[0002] 在新能源变革形势下,智能电网已成为适应新能源变革和承担电网新使命的新一 代电网。发展数字实时仿真技术对智能电网一次系统故障再现分析、智能控制装置试验等 诸多方面有着重大的意义。在推进智能电网的建设中,新的二次设备和控制策略的综合试 验研宄需要数字实时仿真平台能够模拟复杂故障,且能够连接多种真实设备。随着电力系 统日益变得复杂,仿真网络包含大量电力电子元件与仿真规模愈发庞大对数字实时仿真从 计算能力和计算速度等方面提出了更高的要求。
[0003] 传统实时仿真器一般设置多个处理器单元(如多核、PC机群等),通过"分解-协 调"策略实现系统级的并行,以使仿真具有实时的计算能力。由于单个处理器内部串行执 行、处理器之间通信耗时等硬件条件的制约,这种方法仅适用于粗粒度的并行仿真。
[0004] 现场可编程门阵列(fieldprogrammablegatearray,FPGA)拥有并行硬件结构, 可实现高度并行的数值计算。FPGA内部包含的DSP模块和高速收发器可分别实现多个浮点 运算部件和低时延的高速通信。为矩阵运算、快速傅里叶变换等领域设计高性能的硬件结 构已成为当前FPGA并行结构设计的研宄热点。
[0005] 从功能角度来说,电气系统可以划分为电气系统、机械系统和控制系统。控制系统 大多是数字式控制装置,而机械系统的时间常数要大于电气系统,故可采用弱耦合的粗粒 度并行计算方法对整个电力系统进行实施仿真。采用输电线分网、节点分裂分网等方法,还 可把电气系统分为多个独立的电气子系统。这种按照功能和区域划分的粗粒度并行计算方 法使电力系统实时仿真的规模有了很大的提高,但对包含繁重运算量的大粗粒度显得力不 从心。因此,研宄一种基于细粒度并行化的电力系统实时仿真方法具有重要意义。

【发明内容】

[0006] 本发明所要解决的技术问题是,提供一种能够保证电力系统电磁暂态仿真实时性 的基于FPGA的高并行度的电力系统实时仿真方法,其充分利用FPGA在针对特定应用特征 定制专门方案的优势,提出了一种基于FPGA的细粒度并行仿真策略。
[0007] -种基于FPGA的高并行度的电力系统实时仿真方法,所述电力系统实时仿真方 法包括以下步骤:
[0008] 构建带缓存的组合运算组件,所述组合运算组件包括:运算器,
[0009] 其中,每个运算器的输入口配备有一个输入口控制器,输出口配备一个输出口控 制器和任意位置可读写的缓冲通道;
[0010] 组合运算组件通过读写数据存储区获得仿真参数,并协同配合共同完成所有仿真 计算任务,实现细粒度并行计算。
[0011] 其中,通过所述输入口控制器、所述输出口控制器、所述缓冲通道实现带缓存的组 合运算组件中运算器的连接关系的可变性;
[0012]进一步地,所述运算器采用Altera公司提供的双精度浮点数运算器IP核,包括: 除法器、乘法器和加法器。
[0013] 其中,所述缓冲通道由一条寄存器级联组成,缓冲通道的首端连接运算器的输出 口,末端悬空,每个时钟缓冲通道中的数据都由首端集体向末端移动一个位置。
[0014] 所述输入口控制器和输出口控制器具有通用性,包括:存储一系列控制指令的程 序存储区、读取程序和解析程序的指令解码器、执行指令的多路开关。
[0015] 其中,所述组合运算组件通过读写数据存储区获得仿真参数,并协同配合共同完 成所有仿真计算任务,实现细粒度并行计算的步骤具体为:
[0016] 指令解码器将程序存储区中的所有控制指令程序进行翻译;多路开关根据翻译后 的控制指令程序执行指令完成数据存储区或缓冲通道到运算器输入口的数据流控制,输出 口控制器负责从缓冲通道到数据存储区的数据流控制;
[0017] 组合运算组件之间的协同配合是通过数据交换实现的,数据交换由交换站完成;
[0018] 指令安排程序将仿真程序转化为带缓存的组合运算组件可执行的控制指令,并安 排控制指令的执行顺序。
[0019] 进一步地,所述指令安排程序将仿真程序转化为带缓存的组合运算组件可执行的 控制指令,并安排控制指令的执行顺序具体为:
[0020] 指令安排程序将仿真程序中每个基本运算看作一个任务,利用有向无环图描述任 务之间的依赖关系,通过表调度思想实现控制指令的安排。
[0021] 进一步地,所述通过表调度思想实现控制指令的安排的步骤具体为:
[0022] 以理想最早启动时间为主权值、理想最晚启动时间为次权值、缓冲通道取出位置 为第三权值确定指令的优先级排序,根据资源的占用情况为指令选择执行资源。
[0023] 本发明提供的技术方案的有益效果是:本发明采用日益广泛应用的现场可编程门 阵列(FPGA)作为细粒度并行计算的实时仿真平台,提出了一种基于FPGA细粒度并行计算 的电力系统实时仿真方法。本发明设计了一种可实现任意运算组合的带缓存的组合运算组 件使得FPGA内部硬件资源充分利用;指令安排程序将仿真程序变成带缓存的组合运算组 件可以接受的控制指令,实现细粒度并行计算,并使控制指令的设计变得简单方便。本发明 在智能电网对电力系统实时仿真技术提出了更高要求的情况下,提供了一种新的电力系统 电磁暂态实时仿真解决方案。
【附图说明】
[0024] 图1带缓存的组合运算组件的示意图;
[0025] 图2DAG模型示意图;
[0026] 图3生成控制指令流程图;
[0027] 图4IEEE-14电力系统网络图;
[0028] 图5母线13的三相电压;
[0029] 图6发电机4的功角和励磁电压。
【具体实施方式】
[0030] 下面结合附图对本发明的一种基于FPGA的高并行度的电力系统实时仿真方法具 体实施方式做出详细说明。
[0031] 实施例1
[0032] -种基于FPGA的高并行度的电力系统实时仿真方法,参见图1,其主要包括:带缓 存的组合运算组件和指令安排程序。带缓存的组合运算组件是在FPGA上实现的一种程序 指令控制运算系统,其通过读写数据存储区获得仿真参数,并由多个带缓存的组合运算组 件协同配合共同完成所有仿真计算任务;指令安排程序使得带缓存的组合运算组件处于最 优的工作状态,实现细粒度并行计算。
[0033] 其中,带缓存的组合运算组件包括:运算器、输入口控制器、输出口控制器、缓冲通 道。带缓存的组合运算组件中的每个运算器之间连接关系并不是固定不变的,可以根据计 算需要组合出不同的计算功能;变结构运算组件中的每个运算器的输入口配备有一个输入 口控制器,输出口配备一个输出口控制器和任意位置可读写的缓冲通道;通过输入口控制 器、输出口控制器、缓冲通道实现带缓存的组合运算组件中运算器的连接关系的可变性。
[0034] 其中,运算器采用Altera公司提供的双精度浮点数运算器IP核,包括:除法器、乘 法器和加法器,运算器的个数根据FPGA芯片的运算资源和实际需求决定。
[0035] 缓冲通道是一条由寄存器级联组成的,缓冲通道中任意位置都可以进行读写操 作。缓冲通道的首端连接运算器的输出口,末端悬空,每个时钟缓冲通道中的数据都由首端 集体向末端移动一个位置。运算器输出的数据可以暂存在缓冲通道中,同时数据存储区中 的数据也可以暂时存放在换种通道中。
[0036] 输入口控制器和输出口控制器具有通用性,其具体包括存储一系列控制指令的程 序存储区、读取程序和解析程序的指令解码器、执行指令的多路开关。
[0037] 程序存储区由FPGA内部RAM实现;指令解码器将程序存储区中的所有控制指令程 序进行翻译;多路开关根据翻译后的控制指令程序执行指令完成数据存储区或缓冲通道到 运算器输入口的数据流控制,输出口控制器负责从缓冲通道到数据存储区的数据流控制。
[0038] 带缓存的组合运算组件之间的协同配合是通过数据交换实现的,数据交换由交换 站完成。交换站由一组寄存器和若干个输出口控制器组成,其控制器负责交换站寄存器与 其他带缓存的组合运算组件的数据存储区之间的数据流控制。
[0039] 其中,指令安排程序将仿真程序转化为带缓存的组合运算组件可执行的控制指 令,并合理安排控制指令的执行顺序。指令安排程序将仿真程序中每个基本运算看作一个 任务,可以利用有向无环图(^DirectedAcyclicGraph,DAG)描述任务之间的依赖关系,在 有限的资源条件下通过表调度思想实现控制指令的合理安排。
[0040] 仿真程序是对电力系统实时仿真进行描述的运算级的伪代码程序。运算代码由基 本运算组成。各运算代码可描述出仿真模型中变量之间的依赖关系。
[0041] 其中,任务包括运算任务、读取RAM任务和写RAM任务。任务执行所需数据来源包 括数据存储区RAM和缓冲通道,用前驱任务和后继任务来表示任务之间的依赖关系,前驱 任务和后继任务之间的数据引用可以通过数据存储区RAM和缓冲通道实现。< br>[0042] 资源包括加、乘、除运算器资源(C类资源),以及读写RAM数据操作资源(M类资 源)。C类资源与变结构运算组件中运算器相匹配,M类资源与各个RAM有固定的匹配关系。
[0043] 表调度思想建立在变结构运算组件结构的基础上,以理想最早启动时间为主权值 (升序)、理想最晚启动时间为次权值(降序)、缓冲通道取出位置为第三权值(降序)确定 任务的优先级排序,根据资源的占用情况为任务选择执行资源。
[0044] 表调度思想可以表述为以下5个主要步骤:
[0045] 1)计算由DAG描述的所有任务的理想最早启动时间和理想最晚启动时间,清空缓 冲通道和资源占用标记,时间计数器开始计时,将任务分为已调度任务和未调度任务。
[0046] 2)按照理想最早启动时间为主权值(升序)、理想最晚启动时间为次权值(降 序)、缓冲通道取出位置为第三权值(降序)确定任务的优先级并排序。
[0047] 3)对于未调度的任务,如果其已被调度的前驱任务在缓冲通道中的位置未超过缓 冲通道的长度,那么进入步骤4);反之,如果其已被调度的前驱任务在缓冲通道中的位置 超过了缓冲通道的长度,需要将已被调度的前驱任务及其之后安排的所有任务重新放回到 未调度列表中,同时将已被调度的前驱任务的理想最早启动时间加1,重新计算所有未调度 任务的理想最早启动时间和理想最晚启动时间,返回2)。
[0048] 4)给未调度任务进行资源分配,存在资源分配的情况下,只需将被分配的资源打 上已被占用标记,进入步骤5);对于没有资源分配的情况下,只需将该任务的理想最早启 动时间加1,并放回未调度任务列表中,重新计算所有未调度任务的理想最早启动时间和理 想最晚启动时间,返回2);
[0049] 5)当任务的理想最早启动时间大于计数器的值时,计数器加1,同时清空所有资 源的占用标记。在调度完所有任务之后将所有已调度任务表示成输入口控制器和输入空控 制器的控制指令。
[0050]其中,控制指令分为输入口控制器指令流和输出口控制器指令流,输入口控制器 指令流格式表示为:时间序号、操作源地址;输出口控制器指令流格式表示为:时间序号、 操作源地址和操作目标地址。
[0051] 下面结合图1、图2和数学公式详细描述实施例1中的方案的操作步骤,详见下文 描述:
[0052] 实施例2
[0053] 如图1所示,运算系统是一种带缓存的组合运算组件,组件中包括加法运算器、除 法运算器和乘法运算器,其中,双精度浮点数除法、乘法、加法运算器和读写RAM操作均为 流水线操作。每个运算器连接关系并不是固定不变的,可以根据计算需要组合出不同的计 算功能。为使组件中运算器的连接关系可变,为运算器的每个输入口配备一个输入口控制 器,为运算器的每个输出口配备一个输出口控制器,以及一条由寄存器级联组成且任意位 置可读写的缓冲通道。
[0054] 输出口控制器和输入口控制器具有通用性,其具体细分成存储一系列控制指令的 程序存储区、读取程序和解析程序的指令解码器、执行指令的多路开关。缓冲通道的首端连 接运算器的输出口,末端悬空。输入口控制器负责从数据存储区或缓冲通道到运算器输入 口的数据流控制,输出口控制器负责从缓冲通道到数据存储区的数据流控制。带缓存的组 合运算组件之间的数据交换是通过交换站完成的,交换站由一组寄存器和若干个输出口控 制器组成,其控制器负责交换站寄存器与其他带缓存的组合运算组件的数据存储区之间的 数据流控制。
[0055] 当某个运算器的两个输入数据来自同一数据块时,需要多花费一个时钟节拍来传 送输入数据,这导致运算器的工作效率下降。如果允许数据存储区的数据流向缓冲通道,则 可事先把其中的一个数据安放在缓冲通道上,需要时把它传送到运算器的输入口。因此,在 图3中增加了以空心箭头表示的从数据存储区到缓冲通道的数据流。这样,也解决了数组 之间的数据流动问题。
[0056] 对于图2所示的带缓存的组合运算组件,其核心是输入口控制器和输出口控制 器。而对控制器的控制是由控制指令来完成。组件中运算器的增加意味着缓冲通道和数 组的增加。过多的缓冲通道和数组会使控制器的多路开关变得复杂,很难保证多路开关在 较高频率下运行。实时模仿一个具有一定规模的电力系统通常需要几十个变结构运算组 件。在这里,组件之间的数据交互通过交换站来完成。交换站由一组寄存器和若干个输出口 控制器组成,其控制器负责交换站寄存器与某个组件的数据存储区之间的数据流控制。指 令格式与缓冲通道中的输入口控制指令和输出口控制指令一致,但需把缓冲通道变成交换 站。
[0057] 控制指令控制带缓存的组合运算组件数据的运算和存取,是细粒度并行的关键。 将计算过程中每个操作看作一个任务,利用DAG模型来描述任务之间的依赖关系。在满足 任务关系和处理资源的约束条件下,采用表调度思想设计指令安排程序。
[0058] 任务集T由运算任务集、读RAM任务集T2和写RAM任务集T3组成。用addr(tJ 表示任务{ti|心GTiUiy的数据存储位置。用{pa,pb,pc,pr,pw}表示任务{ti|心GT}所 需的处理资源类型,其中pa、pb、pc是C(运算器资源类)中的加、乘、除运算器;pr、pw是 M(存储控制器资源类)中的读、写控制器。由于所有处理资源均是流水线结构,将任务执行 时间均视为1,相邻任务&到的最小数据传输时间视为1(tJ-1,其中1 (tj为任务&所 对应处理资源的流水线深度(latency)。
[0059] 用es(h)和Is(tj表示任务&的理想最早可能启动时间和理想最晚可能启动时 间,用es(tp和Is(tp表示任务\的理想最早可能启动时间和理想最晚可能启动时间,即
[0062]其中,en⑴和ex⑴为所有入口任务和出口任务的集合,pcKti)和SC(ti)为任 务&的直接前驱任务集合和直接后驱任务集合。
[0063] 为满足处理资源的约束条件,将某些任务的前驱任务的执行结果暂存入缓冲通 道,实现任务的推迟执行,其额外延迟的时间记为bt。为防止缓冲溢出,缓冲通道存入位置bi应选取距离缓冲通道入口最近的空闲位置,缓冲通道取出位置bo( =bi+bt)不能超过缓 冲通道长度bh。因此,本方法以es为主权值(升序)、Is为次权值(降序)、bo为第三权 值(降序)确定任务的优先级排序。
[0064] 由于pr、pw与RAM有固定的匹配关系,读写任务能否安排取决于对应的pr、pw的 占用情况。而运算任务除了考虑相应运算资源的占用情况外,还要优先选用直接前驱任务 所安排的变结构运算组件内的处理资源。
[0065]用任务属性集(P,rs,bt,bi,bo,addr)描述任务的调度结果,其中P为任务的处理 资源序号,rs为任务开始执行时间。对heT且P(ti)eC,P(ti)中输入口控制器指令流 〈it,il> (it为时间序号,il为操作源地址)和输出口控制器指令流<ot,〇11,〇12> (ot为时 间序号,oil为操作源地址,〇12为操作目标地址)可表示为
[0068]其中,B(x)表示处理资源序号x的缓冲通道基地址,pd(tJ,tkGsc(t)。[0069]公式(3)说明输入口控制器指令存在3种可能情况:
[0070] 1)当运算任务&的前驱任务^属于读RAM任务T2并且从RAM读出的数据没有进 入运算器的缓冲通道时,输入口控制器指令表示为前驱任务\开始时间,以及前驱任务t』 数据所在数据存储区中的位置。
[0071] 2)当运算任务&的前驱任务t」属于读RAM任务T2并且从RAM读出的数据进入运 算器的缓冲通道时,输入口控制器指令表示为运算任务&开始时间,以及前驱任务t」所在 缓冲通道的位置。
[0072] 3)当运算任务&的前驱任务属于运算任务T:时,输入口控制器指令表示为运 算任务^开始时间,以及前驱任务t/斤在缓冲通道的位置。
[0073] 公式⑷说明输出口控制器指令存在2种可能情况:
[0074] 1)当运算任务&的前驱任务t』属于读RAM任务T2并且从RAM读出的数据进入运 算器的缓冲通道时,输入口控制器指令表示为前驱任务\开始时间,以及前驱任务t」数据 所在数据存储区中的位置以及需要将数据存向缓冲通道的位置。
[0075]2)当运算任务、的后继任务t」属于写RAM任务T3时,输入口控制器指令表示为 运算任务^开始时间,以及运算任务%的所在缓冲通道的位置以及需要将数据存向数据存 储区中的位置。
[0076] 如图2所示,具体的指令程序生成算法如下:
[0077] ①计算DAG所有任务的es和ls,并将bo置零,计时器ct置零,重置处理资源和交 换站标记。
[0078] ②以任务优先级排序原则生成就绪列表。
[0079] ③就绪列表非空时,转步骤④。否则,调度完成,转步骤⑩。
[0080] ④取就绪列表首节点ti。若esUiDct,重置处理资源和交换站标记。若存在 {tj|tjGpdUi)}使得boh,tj)>bh,标记It』}并转步骤⑧;否则,转步骤⑤。
[0081] ⑤为任务ti选取处理资源。 若调度成功,标记占用的处理资源和交换站,转步骤 ⑥;否则转步骤⑦。
[0082] ⑥更新任务属性集(P,rs,bt,bi,bo,addr),并将ct改为es(tD。转步骤⑨。
[0083] ⑦将节点h放回就绪列表,并将es(tD和bt(h,tj)分别增加1,计算bi(tj)和 130(1^,1:』),其中1^口(1(1^)。转步骤@。
[0084] ⑧将节点h放回就绪列表,并将任务属性集(P,rs,bt,bi,bo,addr)中的任务从 后向前依次放回就绪列表,直至标记的It」}放回为止,将eS(tj)和btaptj分别增加1, 计算bi(tk)和bo(tj,tk),其中tkGpd(tj)。将ct改为min{es(tj)},取消{tj}标记。转 步骤⑨。
[0085] ⑨更新就绪列表中各任务的es和ls,转步骤②。
[0086] ⑩由公式(3)和(4)生成控制器的〈it,il>或<ot,oll,ol2>,并进一步处理得到 符合指令格式的程序流。
[0087] 实施例3
[0088] 为了使本技术领域的人员更好地理解本发明的方法,下面结合附图和实施例来详 细说明本发明,但本发明并不仅限于此。
[0089] 如图3所示,IEEE-14电力系统网络图中,在发电机、变压器、母线、传输线之间设 有断路器,在变压器出口、母线、传输线末端放置短路故障模型。同时,为发电机配备调速系 统和励磁控制系统,为发电机、变压器、母线、传输线配备相应的保护。断路器状态,短路故 障有无,保护投切(包括真实保护)通过人机界面来设置。
[0090] 本发明选择Altera公司的DSPStratixV官方开发板。开发板配有StratixV 系列FPGA5SGSMD5,该芯片包含457000个逻辑单元、172600个自适应逻辑模块、39Mbit嵌 入式存储资源、3180个18X18硬件乘法器、24个锁相环资源等。
[0091] 为仿真图3所示电力系统,在5SGSMD5芯片上创建了 16个带缓存的组合运算组件 和5个交换站。每个组件配有2个除法器、6个乘法器和8个加法器,缓冲通道长度为32。 每个交换站配有16个控制器,缓冲通道长度为128。除运算组件和交换站之外,还搭建了时 钟锁相环、电流过零检测、网络参数更改等硬件电路,并添加了QuartusII提供的逻辑分析 仪SignaltapII模块以验证仿真结果。整个电路共消耗FPGA片上65%的逻辑资源、69% 的存储资源、55 %的硬件乘法器和20 %的锁相环资源。
[0092] 双精度浮点数除法、乘法、加法运算器和读写RAM操作的流水线长度设计为7、5、 10和2,经QuartusII提供的软件TimeQuest进行时序约束,将仿真运算的最高工作时钟频 率定为184MHz。通过表调度形成的仿真程序在一个步长内执行时间为27. 1ys。
[0093] 当双精度浮点数加法、乘法、除法运算器和读写RAM的流水线深度为7、5、10和2 时,DAG的模型示意图如图4所示。其中,Cn、C3i、C5i的读写操作由pr丨、pWl控制;C2i、C4i、 Wi、Ydqi的读写操作由Pr2、PW2控制。
[0094] 输入口指令由时间序号、操作源地址构成,其中时间序号由输入口指令存储在指 令存储区中的位置表示,操作源地址描述了操作数来源于的哪个数据存储区及数据存储区 中的哪个位置。本实施例设计了输入口指令的长度为16位,其格式如表1所示。
[0095]表1输入口控制指令格式[0096]
[0098] 操作源地址包括两个部分:用数组号(通道号)来表示操作数位于哪个数组(通 道),用数组内变量地址(通道内寄存器号)来表示操作数位于数组(通道)中的哪个位 置。为了缩短程序存储区的长度,采用短指令,且对有规律的指令串用块指令替代。块指令 包括停止、重复、地址递增、地址递减等,针对数组类型的指令采用执行次数来表示,针对换 从通道类型的数据用重复次数来表示。
[0099] 输出口指令由时间序号、操作源地址和操作目标地址构成,其中时间序号由输出 口指令存储在指令存储区中的位置表示,操作源地址描述了操作数来源于的哪个数据存储 区及数据存储区中的哪个位置,操作目标地址描述了操作数将存储到哪个数据存储区及数 据存储区中的哪个位置。本实施例设计了输出口指令的长度为24位,其格式如表2所示。
[0100] 表2输出口控制指令格式
[0102] 操作源地址和操作目标地址都有可能来自数组或缓冲通道,故用了传输方向来表 示数据是从数组流向缓冲通道还是数据从缓冲通道流向数组。为了缩短程序存储区的长 度,采用短指令,且对有规律的指令串用块指令替代。块指令包括停止、重复、地址递增、地 址递减等,针对数组类型的指令采用执行次数来表示。
[0103]为验证仿真的准确性,本发明用PSCAD仿真软件模拟同样的故障和保护。图5、图 6分别给出了线路a发生三相接地故障后母线13的三相电压,发电机4的功角与励磁电压。 经比较,仿真步长为25ys的FPGA实时仿真平台与PSCAD的仿真波形基本一致,误差在5% 以内。
[0104] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种基于FPGA的高并行度的电力系统实时仿真方法,其特征在于,所述电力系统实 时仿真方法包括以下步骤: 构建带缓存的组合运算组件,所述组合运算组件包括:运算器, 其中,每个运算器的输入口配备有一个输入口控制器,输出口配备一个输出口控制器, 以及任意位置可读写的缓冲通道; 组合运算组件通过读写数据存储区获得仿真参数,并协同配合共同完成所有仿真计算 任务,实现细粒度并行计算。2. 根据权利要求1所述的一种基于FPGA的高并行度的电力系统实时仿真方法,其特征 在于,通过所述输入口控制器、所述输出口控制器、所述缓冲通道实现带缓存的组合运算组 件中运算器的连接关系的可变性。3. 根据权利要求1或2所述的一种基于FPGA的高并行度的电力系统实时仿真方法,其 特征在于,所述运算器采用Altera公司提供的双精度浮点数运算器IP核,包括:除法器、乘 法器和加法器。4. 根据权利要求1或2所述的一种基于FPGA的高并行度的电力系统实时仿真方法,其 特征在于,所述缓冲通道由一条寄存器级联组成,缓冲通道的首端连接运算器的输出口,末 端悬空,每个时钟缓冲通道中的数据都由首端集体向末端移动一个位置。5. 根据权利要求1或2所述的一种基于FPGA的高并行度的电力系统实时仿真方法,其 特征在于,所述输入口控制器和输出口控制器具有通用性,包括:存储一系列控制指令的程 序存储区、读取程序和解析程序的指令解码器、执行指令的多路开关。6. 根据权利要求5所述的一种基于FPGA的高并行度的电力系统实时仿真方法,其特征 在于,所述组合运算组件通过读写数据存储区获得仿真参数,并协同配合共同完成所有仿 真计算任务,实现细粒度并行计算的步骤具体为: 指令解码器将程序存储区中的所有控制指令程序进行翻译;多路开关根据翻译后的控 制指令程序执行指令完成数据存储区或缓冲通道到运算器输入口的数据流控制,输出口控 制器负责从缓冲通道到数据存储区的数据流控制; 组合运算组件之间的协同配合是通过数据交换实现的,数据交换由交换站完成; 指令安排程序将仿真程序转化为带缓存的组合运算组件可执行的控制指令,并安排控 制指令的执彳丁顺序。7. 根据权利要求6所述的一种基于FPGA的高并行度的电力系统实时仿真方法,其特征 在于,所述指令安排程序将仿真程序转化为带缓存的组合运算组件可执行的控制指令,并 安排控制指令的执行顺序具体为: 指令安排程序将仿真程序中每个基本运算看作一个任务,利用有向无环图描述任务之 间的依赖关系,通过表调度思想实现控制指令的安排。8. 根据权利要求7所述的一种基于FPGA的高并行度的电力系统实时仿真方法,其特征 在于,所述通过表调度思想实现控制指令的安排的步骤具体为: 以理想最早启动时间为主权值、理想最晚启动时间为次权值、缓冲通道取出位置为第 三权值确定指令的优先级排序,根据资源的占用情况为指令选择执行资源。
【专利摘要】本发明公开了一种基于FPGA的高并行度的电力系统实时仿真方法,所述仿真方法包括带缓存的组合运算组件和指令安排程序。带缓存的组合运算组件是在FPGA上实现的一种指令控制运算系统,其通过读数据存储区得到计算数据,通过写数据存储区保存计算结果,并由多个带缓存的组合运算组件协同配合共同完成整个仿真计算任务,使得FPGA内部硬件资源充分利用;指令安排程序将仿真程序变成带缓存的组合运算组件可以接受的控制指令,实现细粒度并行计算,并使控制指令的设计变得简单方便。本发明通过带缓存的组合运算组件和指令安排程序为电力系统电磁暂态实时仿真提供了一种新的解决方案,具有高度并行优势。
【IPC分类】G06F9/455
【公开号】CN104899074
【申请号】CN201510325509
【发明人】张炳达, 王潇, 陈雄
【申请人】天津大学
【公开日】2015年9月9日
【申请日】2015年6月12日

最新回复(0)