基于自动微分技术的分布式发电系统暂态仿真方法转让专利

申请号 : CN201010264324.8

文献号 : CN101937481B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王成山高菲李鹏黄碧斌丁承第于浩

申请人 : 天津大学

摘要 :

一种基于自动微分技术的分布式发电系统暂态仿真方法:读取分布式电源的基本信息,拓扑连接关系,数学模型表达式及相关参数;声明对应的组合函数、独立变量,为自动微分分配内存,仿真时间置零;仿真时间向前推进一个仿真步长;使用自动微分计算对应组合函数的导数信息及函数值;联立整个系统方程形成牛顿法迭代格式,以自动微分计算得到的结果更新迭代求解时的雅可比矩阵及函数值列向量相应位置元素;求解线性方程组,得到第k步的变量增量列向量;更新变量值;判断仿真时间是否达到仿真终了时刻,如达到仿真终了时刻,则释放内存,仿真结束;否则返回第三步。本发明提高了程序的计算效率,同时也保持了代码的可维护性和可扩展性。

权利要求 :

1.一种基于自动微分技术的分布式发电系统暂态仿真方法,其特征在于:包括如下步骤:第一步:读取分布式电源的基本信息,包括有电源类型和名称;拓扑连接关系,包括有分布式电源元件的输入和输出编号;数学模型表达式及相关参数;声明对应的组合函数;

第二步:声明独立变量,为自动微分分配内存,仿真时间置零:t=0,t为仿真时间;

第三步:仿真时间向前推进一个仿真步长:t=t+ΔT,ΔT为仿真步长;

第四步:使用自动微分计算对应组合函数的导数信息及函数值;

(k) (k) (k)

第五步:联立整个系统方程形成牛顿法迭代格式F(x )+J Δx =0,其中:(k) (k) (k)

x 表示第k步迭代解的列向量,Δx 表示第k步的变量增量列向量,F(x )表示第(k)k步的目标函数值,J 表示第k步的雅克比矩阵,以自动微分计算得到的结果更新迭代求解时的雅可比矩阵及函数值列向量相应位置元素;

(k)

第六步:求解线性方程组Ax=b,得到第k步的变量增量列向量Δx ,其中:(k)

其中A表示系数矩阵,即为第五步中的J ,x表示待求解的多维列向量,即为第五步中(k) (k)Δx ,b表示已知多维列向量,即为第五步中的-F(x );

(k)

第七步:更新变量值,根据迭代收敛判据‖Δx ‖<ξ判断是否收敛,其中:ξ表示给定的牛顿法迭代精度,

如迭代收敛,则完成该时步的计算,进入下一步骤;否则返回第四步;

第八步:判断仿真时间是否达到仿真终了时刻,如达到仿真终了时刻,则释放内存,仿真结束;否则返回第三步。

2.根据权利要求1所述的基于自动微分技术的分布式发电系统暂态仿真方法,其特征在于,第四步所述的使用自动微分计算对应组合函数的导数信息的实现模式是正向模式或反向模式。

说明书 :

基于自动微分技术的分布式发电系统暂态仿真方法

技术领域

[0001] 本发明涉及一种用于电力系统中的分布式发电系统建模和仿真的方法。特别是涉及一种基于自动微分技术的分布式发电系统暂态仿真方法。

背景技术

[0002] 在分布式发电系统仿真软件的开发过程中,需要面对的一个重要问题就是分布式电源控制系统的模型描述问题,或者说是控制系统模型在仿真算法中的实现问题。分布式电源具有种类多、控制策略多样的特点,将每一种分布式电源及其控制系统按照一个确定的模型整体加以描述并内置于仿真算法中,这样做的优点是使仿真的效率会有所提高,但缺点是面对新的分布式电源或新的控制系统,不得不重新编程对模型加以实现,既然分布式电源及其控制策略种类很多,且处于不断发展变化中,这种内置模型的做法是不现实的。另一种模型处理方式就是采用用户自定义模型,按照分布式电源及其控制系统的构成元件,在用户输入元件参数的过程中,由程序自动搭建相关模型。这种方法的优点是程序具有通用性,增加新的控制系统不需要对仿真程序进行任何修改,而只需要输入参数的变化。但这种方法也有不足之处,分布式电源整个控制系统含有大量基本环节,以这些基本环节为单元进行仿真计算时,对应的雅可比矩阵维数相应较高,且程序中的建模过程比较复杂,会降低程序的仿真效率。
[0003] 为了有效解决分布式发电系统软件开发过程中面对的上述问题,可在仿真软件核心算法与用户之间构建一个灵活、方便的用户自定义模型接口,通过用户自定义模型的组合建模方法对分布式电源控制系统进行建模。用户自定义模型组合建模方法的目的是将内置模型法和基于基本元件的用户自定义方法适当加以折中,既方便用户的输入,又可有效保证仿真算法的效率;既简化了仿真工作的建模过程,降低了雅可比矩阵的维数,同时具有较高的灵活性。在分布式发电系统仿真软件中,用户自定义模型组合建模模块是软件核心仿真算法与用户自定义模型参数输入之间的接口模块。针对新的分布式电源控制系统,用户同样只需要输入基本构成元件的拓扑及参数,用户自定义模型组合建模模块将会对用户输入的基本元件进行适当组合,形成若干函数后提供给仿真核心程序。组合建模模块的输入是构成控制系统的基本元件参数及拓扑连接关系,而输出则是在各仿真时步下的组合函数值及相关的导数,这些导数将直接被填充到相关的雅可比矩阵中。
[0004] 由用户自定义模型接口形成基本元件的组合函数值并不复杂,但自动形成相关的微分项,可以选择不同的方法。常见方法包括手动编程、符号微分和数值差分等。使用手动编程计算导数的解析表达式时,计算过程较为复杂,且有时无法得到某些微分项的解析表达式;符号微分适合小规模问题的计算求解,同时难以计算函数的高阶导数,不利于程序的扩展;数值差分方法的实现比较方便,再加上改进的稀疏差分法求解速度相对较快,从而成为应用最为广泛的方法之一,但是数值差分方法的缺点在于存在截断误差和舍入误差,同时确定恰当的差分区间也很困难。
[0005] 自动微分技术是一种精确微分算法,与其他微分方法(如:数值差分、符号微分)相比,对CPU时间和内存的占用较少,并能得到相当于计算机精度的导数信息,且应用灵活、开发代价小。目前自动微分技术已在电力系统潮流计算和灵敏度分析等领域获得应用。

发明内容

[0006] 本发明所要解决的技术问题是,针对分布式电源控制系统种类多样,采用基于控制系统基本元件的用户自定义模型影响仿真效率的问题,提供一种能够将自动微分技术与该建模方法相结合,利用自动微分技术可准确、高效地求取对应组合函数值及导数信息的特点,有效提高仿真程序的计算效率,同时保持仿真程序代码的可维护性和可扩展性的基于自动微分技术的分布式发电系统暂态仿真方法。
[0007] 本发明所采用的技术方案是:一种基于自动微分技术的分布式发电系统暂态仿真方法,包括如下步骤:
[0008] 第一步:读取分布式电源的基本信息,包括有电源类型和名称;拓扑连接关系,包括有分布式电源元件的输入和输出编号;数学模型表达式及相关参数;声明对应的组合函数;
[0009] 第二步:声明独立变量,为自动微分分配内存,仿真时间置零:t=0,t为仿真时间;
[0010] 第三步:仿真时间向前推进一个仿真步长:t=t+ΔT,ΔT为仿真步长;
[0011] 第四步:使用自动微分计算对应组合函数的导数信息及函数值;
[0012] 第五步:联立整个系统方程形成牛顿法迭代格式F(x(k))+J(k)Δx(k)=0,其中:
[0013] x(k)表示第k步迭代解的列向量,Δx(k)表示第k步的变量增量列向量,F(x(k))表(k)示第k步的目标函数值,J 表示第k步的雅克比矩阵,
[0014] 以自动微分计算得到的结果更新迭代求解时的雅可比矩阵及函数值列向量相应位置元素;
[0015] 第六步:求解线性方程组Ax=b,得到第k步的变量增量列向量Δx(k),其中:
[0016] 其中A表示系数矩阵,即为第五步中的J(k),x表示待求解的多维列向量,即为第五(k) (k)步中Δx ,b表示已知多维列向量,即为第五步中的-F(x );
[0017] 第七步:更新变量值,根据迭代收敛判据‖Δx(k)‖<ξ判断是否收敛,其中:
[0018] ξ表示给定的牛顿法迭代精度,
[0019] 如迭代收敛,则完成该时步的计算,进入下一步骤;否则返回第四步;
[0020] 第八步:判断仿真时间是否达到仿真终了时刻,如达到仿真终了时刻,则释放内存,仿真结束;否则返回第三步。
[0021] 第四步所述的使用自动微分计算对应组合函数的导数信息的实现模式是正向模式或反向模式。
[0022] 本发明的基于自动微分技术的分布式发电系统暂态仿真方法,是通过用户自定义模型的组合建模方法进行建模,利用自动微分技术准确、高效地求取对应组合函数值及导数信息,提高了程序的计算效率,同时也保持了代码的可维护性和可扩展性。与基于控制系统基本环节的用户自定义建模方法相比,本发明具有如下特点:
[0023] 1)采用组合建模方法,避免了大量控制系统的基本环节在雅可比矩阵中的体现,降低了雅可比矩阵维数;
[0024] 2)利用自动微分技术准确、高效地计算雅可比矩阵中相应位置元素,提高了暂态仿真程序的计算效率;
[0025] 3)自动微分技术保持了程序代码的可维护性和可扩展性;
[0026] 4)自动微分技术也适用于常规的控制系统元件,而且能够处理由程序定义的函数,可以包含分支、循环和子程序等结构。

附图说明

[0027] 图1是本发明方法的整体流程图;
[0028] 图2是基于控制系统基本环节的欧姆过电压建模图;
[0029] 图3是自动微分和组合建模方法在燃料电池建模中的应用示意图。

具体实施方式

[0030] 下面结合实施例和附图对本发明的基于自动微分技术的分布式发电系统暂态仿真方法做出详细说明。
[0031] 如图1所示,本发明的基于自动微分技术的分布式发电系统暂态仿真方法,包括如下步骤:
[0032] 第一步:读取分布式电源的基本信息,包括有电源类型和名称;拓扑连接关系,包括有分布式电源元件的输入和输出编号,从而暂态仿真程序能够识别该电源和哪些元件相连;数学模型表达式及相关参数,声明对应的组合函数;
[0033] 第二步:声明独立变量,为自动微分分配内存,仿真时间置零:t=0;
[0034] 第三步:仿真时间向前推进一个仿真步长:t=t+ΔT;
[0035] 第四步:使用自动微分计算对应组合函数的导数信息及函数值;使用自动微分计算对应组合函数的导数信息的实现模式可以是正向模式或反向模式。
[0036] 第五步:联立整个系统方程形成牛顿法迭代格式F(x(k))+J(k)Δx(k)=0,以自动微分计算得到的结果更新迭代求解时的雅可比矩阵及函数值列向量相应位置元素;
[0037] 第六步:求解线性方程组Ax=b,得到第k步的变量增量列向量Δx(k);
[0038] 第七步:更新变量值,根据迭代收敛判据‖Δx(k)‖<ξ判断是否收敛,如迭代收敛,则完成该时步的计算,进入下一步骤;否则返回第四步;
[0039] 第八步:判断仿真时间是否达到仿真终了时刻,如达到仿真终了时刻,则释放内存,仿真结束;否则返回第三步。
[0040] 以下结合附图,以质子交换膜燃料电池(PEMFC)为例,对本发明的基于自动微分技术的分布式发电系统暂态仿真方法作详细说明。
[0041] 第一步:
[0042] 读取PEMFC的基本信息、拓扑连接关系以及PEMFC的数学模型表达式。质子交换膜燃料电池(PEMFC)的输出特性可用如下表达式描述:
[0043] 燃料电池输出电压VFC=Enernst-Vact-Vohm-Vcon,式中各电压计算表达式如下,[0044] 可逆开路电压
[0045] 活化过电压
[0046] 活化过电压式中各参数可用如下公式计算
[0047] ξ1=-0.948
[0048]
[0049] ξ3=7.6×10-5
[0050] ξ4=-1.93×10-4
[0051]
[0052]
[0053] 浓度过电压
[0054] 欧姆过电压Vohm=IFC(RM+RC)
[0055]
[0056]
[0057] 式中,VFC表示燃料电池的运行电压;IFC表示燃料电池的运行电流;Enernst表示电池的可逆开路电压;Vact表示活化过电压;Vcon表示浓度过电压;Vohm表示欧姆过电压; 和分别表示氢气和氧气的分压力;T表示电池的工作温度; 表示阴极催化剂表面的氧气浓度;ξi(i=1...4)表示活化过电压的系数,它的值决定于动力学、热力学和电化学的理论平衡;In表示内部短路电流;RM表示电解质膜电阻;RC表示连接电阻;ρM表示电解质膜的电阻率;A表示电池的活性面积;1表示电解质膜的厚度;B表示浓度过电压的系数,它是由燃料电池本身和运行状态决定;Jmax表示最大电流密度;J表示运行电流密度,其大小为[0058] 将燃料电池输出电压表达式中的各个变量代入,即得到燃料电池模型对应组合函数
[0059]
[0060]
[0061]
[0062]
[0063] VFC=Enernst-Vact-Vohm-Vcon
[0064] 第二步:
[0065] 声明独立变量为T, 和IFC,并为自动微分分配内存,仿真时间置零(t=0);
[0066] 第三步:
[0067] 仿真时间向前推进一个仿真步长(t=t+ΔT);
[0068] 第四步:
[0069] 使用自动微分计算对应组合函数的导数信息及函数值;
[0070] 由于VFC的详细数学表达式非常复杂,所以发明中仅以可逆开路电压Enernst的表达式为例介绍基于自动微分技术计算函数值及导数信息的详细过程。独立变量T, 和IFC分别用x1,x2,x3,x4表示,可逆开路电压Enernst的计算表达式则改写成如下形式:
[0071]
[0072]
[0073] 利用链式法则计算函数值及导数信息,文中仅以正向模式为例给出计算过程,如表1所示。
[0074] 表1函数值及梯度计算
[0075]
[0076]
[0077] 将表中临时变量代入,得到对应的导数信息计算结果
[0078]
[0079]
[0080] 第五步:联立整个系统方程形成牛顿法迭代格式F(x(k))+J(k)Δx(k)=0,以自动微分计算得到的结果更新迭代求解时的雅可比矩阵及函数值列向量相应位置元素;
[0081] 第六步:求解线性方程组Ax=b,得到第k步的变量增量列向量Δx(k);
[0082] 第七步:更新变量值,根据迭代收敛判据‖Δx(k)‖<ξ判断是否收敛,如迭代收敛,则完成该时步的计算,进入下一步骤;否则返回第四步;
[0083] 第八步:判断仿真时间是否达到仿真终了时刻,如达到仿真终了时刻,则释放内存,仿真结束;否则返回第三步。
[0084] 在暂态仿真过程中,使用基于基本元件的用户自定义模型搭建燃料电池模型时将由于含有大量的基本元件,使雅可比矩阵维数较高,影响系统仿真计算效率,图2仅以PEMFC欧姆过电压为例介绍了控制系统基本环节构成。
[0085] 如图3所示,在利用本发明提出的组合建模方法进行建模时,首先基于用户自定义模型形成燃料电池的组合模型,组合模型的输入为T, 和IFC,输出为VFC,属于多输入单输出模型。在此基础上利用自动微分技术计算VFC函数值及其对T, 和IFC的导数信息。
[0086] 在PEMFC模型中,其控制系统大约含有90个基本元件,而利用组合模型处理后,在仿真程序中只需要单个元件表达,这大大降低了对应雅可比矩阵块的维数,将会显著提高系统的仿真效率。
[0087] 为了分析本发明提出方法对仿真计算量的影响,针对PEMFC直接连接电阻负载的算例,分别测试了采用本发明提出方法和基于控制系统基本元件自定义建模方法的计算时间。测试硬件平台配置为Intel Pentium D 9253GHz CPU,1G RAM的PC机,软件平台为天津大学自行开发的分布式发电系统暂态仿真程序(Transient Simulator for Distributed Generation and Micro-grid,TSDG),该软件使用支持操作符重载的高级编程语言C++实现。PEMFC算例仿真时间为1s,步长为10us,测试结果见表2,表中的计算时间是指控制系统解算时间,单位为s。
[0088] 表2计算效率分析
[0089]
[0090] 从表2的测试结果可以看出,两种方法的迭代次数基本相等,但是计算时间相差较大。测试结果显示本发明提出的方法较基于基本元件自定义建模方法的速度大约提高了12倍,暂态仿真程序的计算效率大为提升。