基于FPGA 的电力系统暂态仿真器研究
2021-03-24顾勇张永明强嘉懿
顾勇,张永明,强嘉懿
(上海电机学院电气学院,上海201306)
0 引言
新世纪以来全球经济飞速发展,对能源的需求量日益扩大,煤、石油以及天然气等传统的能源的不断减少,难以维持各国经济的长期发展。风能、太阳能由于清洁、成本低、可再生等优点成为当前应用广泛的可再生新能源,尤其是在发电方面得到了广泛的大力应用,由此分布式发电技术开始得到广泛的应用。同时由于当前电力系统的规模越来越庞大,再加上分布式发电的并网运行给电网带来了越来越多的问题,对于电力系统的仿真的实时性和对电力系统的算法和模型的要求也在不断地提高,针对第三方硬件而言,一些商业的电力系统仿真软件如Dspace、RT-LAB 等,并不适用于所有的硬件平台[1],并且其软件的基础架构以及其所采用的各种器件的模型与仿真算法并不会对用户开放,利用这些软件完成相关的仿真并不是困难的,但是如果需要进行基于模型算法层面的深入研究以及基于第三方硬件平台实现更大规模的、更经济的仿真研究则是一个不可实现的事情。所以,基于自主开发的电力系统的仿真软件成为一项基础且重要的工作。
本文利用Python 语言编写了大众化适用性广的暂态仿真软件,可以适用于第三方FPGA 硬件平台,并在建立电力系统的基本元器件模型,选用IEEE 4 节点模型作为实验模型,完成系统模型的单相接地短路情况下的暂态仿真,对基于FPGA 的仿真平台进行了验证。
1 暂态仿真方法
在电力系统仿真领域常用的数值积分算法有:前向欧拉法、后向欧拉法、梯形积分法以及龙格库塔法。如果对于一个稳定的微分方程一个算法会得到一个稳定的差分方程近似,则称之为A 类稳定[2]。梯形积分法是一种具有A 类稳定性且具有二阶精度的数值算法,所以可以选取梯形积分法作为电力系统电磁暂态仿真的主要算法。
如图1 所示为一电感及其差分离散形式,其离散形式为电导与历史项电流的并联。以此为例,应用梯形积分法后可以得到式(1)(2)(3)的差分方程。
上世纪60 年代,Dommel 教授提出了基于节点电压法的EMTP 方法作为电磁暂态仿真的基本框架[3],EM⁃TP 方法在基尔霍夫定律和电压电流关系的基础上,采用数值积分方法将连续的元件离散等效为等值的诺顿电路,采用节点电压法对线性电路进行求解。EMTP 方法计算效率高稳定性好且计算的精度高,已成为当前主流的仿真方法。节点电压法的基本形式如式(4)所示。
由于电力系统的模型众多且复杂,单纯的利用基本的节点电压方法不能够对电力系统的所有模型都利用EMTP 方法分析,在前人的努力中发展出了改进节点电压法和增广的改进节点电压法[4]。增广的改进节点电压法的表示形式如式(5)所示。
增广的改进节点电压法相对于改进节点电压法而言只保留了Yn 的部分,这个方程式可以看作是一个AX=b 的系统,利用这种形式的节点方程方法可以良好地处理含受控源支路(如理想变压器模型)和不接地的理想电压源模型以及理想开关等器件的分析。
2 元器件建模
本文中针对电力电子开关器件的建模方法是拓扑建模法。拓扑建模法中的经典成熟的方法有二值电阻法和二值L/C 建模法。二值电阻法的优点是仿真时的精度比较高,但是针对小步长仿真的效果不理想。二值L/C 建模法可以适用于小步长仿真,即当开关闭合时建模为一个值很小的电感,当开关断开时建模为一个值很小的电容。当选择合适的电感、电容和仿真步长的数值时,无论开关打开还是闭合都将获得一个不变的电导的数值,可以保证电路对应的导纳矩阵是不变的。二值L/C 建模法开关等效示意图如图2 所示。
图2 二值L/C开关建模示意图
对于要求不是很高的电力系统的仿真而言,电源类器件可以直接用单相交流源进行模拟,三相电源可分解为3 个单相交流源进行模拟,然后利用相位差区分不同的相别[6]。单相交流源的模拟可以用式(6)表示。
其中,A 是幅值,ω是角频率,θ是初始相位。
负荷及支路模型的建立要简单得多,对于多个元件的组合电路可以通过降阶处理来降低支路矩阵的阶数,从而可以使得在仿真时的仿真步长内的计算量减少,利于快速仿真的实现。图3 是RLC 支路的降阶示意图。
图3 RLC支路降阶
RLC 电路的统一表达式如式(7)所示:
表1 RLC 电路的统一参数表达
对于输电线路较近的电力系统模型来说,输电线路模型采用以集中参数表示的PI 等效模型时足够精确的[5],如图4 所示。在某些情况下,可以忽略线路中的对地电容的影响和RL 串联阻抗之间的耦合作用,利用多条RL 串联阻抗来表示表示输电线路模型。
在电力系统中,变压器的接线方式会对暂态仿真时的结果有影响,在电力系统中常用的三相变压器的接线方式有:Yy0 以及Yd11 两种,如图5 所示。
图5 变压器连接组别
在不考虑变压器在公共磁路上的耦合与不对称现象时,可以使用三个单相线性变压器按照不同的接线方式来组成三相变压器。图6 所示为简化的单相线性变压器模型。
图6 单相变压器模型
3 仿真平台设计
本仿真平台的程序软件基于Python 编程语言开发,模型平台是MATLAB 2015b,配合以Vivado 2015.4版本,程序框架采用基于节点电压法的EMTP 框架。Python 语言具有面向对象编程思维方法的特点,具有这种思维方法的编程语言具有易维护且易扩展的特点,在需求变化的时候可以快速简单有弹性的扩展程序功能用以满足仿真的需求,同时Python 语言中存在大量的扩展库,简单易学,可以降低开发的难度。针对不断扩大的电力系统模型而言,仿真程序软件具有良好而扩展性是一个重要的指标。
整个仿真平台由建模模块、模型的识别与分析仿真模块、FPGA 硬件部分以及外部测量仪器如示波器组成。模型仿真模块基于MATLAB/Simulink 平台,通过程序对MATLAB/Simulink 平台的模型进行二次开发,主程序部分识别并获取模型的电气信息以及拓扑构成,由主程序生成计算矩阵,并得到Verilog HDL 硬件描述语言的代码,借助Vivado 软件将程序烧写进入FPGA 平台,获得模型的仿真波形,完成针对模型的仿真。整个仿真平台的结构图如图7 所示。
图7 仿真平台结构图
程序可以分为五个主要的模块:数据输入模块、模型识别模块、矩阵生成模块、开关检查模块以及仿真计算模块。程序各模块的结构图如图8 所示。其中,数据输入模块可以基于Simulink 建立的系统模型传递给模型识别模块,以便后续对模型的识别处理;模型识别模块主要用于识别用户基于MATLAB/Simulink 建立的系统模型,获得系统模型的电气信息及拓扑信息;矩阵形成模块用于形成系统模型的节点计算矩阵,获得节点阻抗矩阵、电流源矩阵和历史项矩阵等;开关检查模块主要用于检查系统模型中的顶管期间的通断状态是否发生变化,然后根据结果判断是否需要修改节点计算矩阵;仿真计算模块可以根据节点矩阵自动生成Verilog HDL 代码,调用Vivado 软件下载到FPGA 中完成系统的仿真计算。
图8 模块组成
程序实现的整体思想框架如图9 所示。程序的核心模块是接收用户设定的对仿真的步长等系统仿真的要求信息、自动读取识别系统模型的各种电气信息以及拓扑信息并将这些信息保留等待后续处理运行,根据不同元器件的不同的描述方式及关键词对不同的模块进行适宜的建模方式,并对元器件进行参数初始化、暂态矩阵的形成和电力电子开关器件的状态的判断,将获得的系统模型的信息以及用户提供信息等仿真数据送入程序的暂态仿真部分,然后通过软件完成电力系统的仿真,将结果输出到示波器等外部设备,完成系统的仿真过程。
图9 程序的架构
程序的计算流程如图10 所示。
程序的实现首先要读取模型的数据文件,获得电力系统模型的元件参数以及拓扑信息。元件信息包括元器件的类型、名称和基本的参数,拓扑信息包括元器件的连接关系以及各支路和各节点的编号信息。系统的初始化包括对系统中的所包含电感电容元件的诺顿等效电路的生成计算,由初始信息确定模型中的历史量的赋值信息,完成系统参数的初始化。然后程序可以根据系统模型的初始化信息以及电气与拓扑信息形成仿真计算所使用的增广的改进节点法的计算矩阵。矩阵的计算过程放在FPGA 中实现,若要实现这个目的必须把计算过程用硬件描述语言来实现,本文使用的语言为Verilog HDL。程序具备自动将矩阵方程的计算流程用HDL 描述实现的功能,然后调用Vivado 软件,将HDL 代码写入FPGA 中。对于模型中没有开关类器件时,利用FPGA 对系统模型的计算就可以按照设定步长开始计算。若系统中存在开关器件,那就需要对开关的状态进行判断。在开始对系统进行仿真计算以后,需要在每一个计算步长的计算完成以后更新由于离散差分所产生的历史项电流源的数值,然后更新到计算矩阵中,开始下一个时步的计算。若对系统的仿真设定了计算时间,还需要考虑是否达到总的仿真时间。
图10 程序计算流程
4 仿真与实验验证
图11 为搭建的实验平台,包括上位机、FPGA,示波器以及波形发生器等。IEEE 4 节点模型[7]如图12 所示。
图11 实验仿真平台
图12 IEEE 4节点模型
暂态过程的产生可以有多种情况产生,本文选取最常见的一种暂态情况,即发生单相接地短路造成暂态过程。为了不失一般性,本文选择A 相作为发生单相接地短路的故障相。
本例中,A 相的单相接地故障发生在母线4 上,测量的是母线3 上故障相即A 相的电压和电流,如图13所示,蓝色的线为电压波形,绿色的线为电流波形。同样的选择程序仿真与RT-LAB 的仿真作为对比。由图13 可以看出,发生暂态时,程序的仿真波形的毛刺会显著的增多,由于示波器的滤波的效果的影响也有一定的影响,接地短路发生时,程序的仿真波形会出现一些粗糙,FPGA 的仿真波形的大小比RTLAB 的仿真波形略大,在算法的精确度和在开关动作发生时的对数值的处理会造成波形的差别。仿真程序的电压与电流的波形趋势与RT-LAB 仿真情况下略有差异,但都在误差的允许范围以内。
5 结语
通过实验结果可以看出,本文所基于FPGA 和自己开发的程序软件的电网仿真实验平台在对于小型电力系统时的仿真能够基本准确地得到暂态情况下的仿真表现,对于系统发生暂态情况时的电压和电流能够与RTLAB 的结果做到在误差范围基本相同。因此,所研究的电网仿真平台可以实现基本的电网暂态的仿真任务。
图13 IEEE 4节点模型的暂态仿真