一种风电机组电磁暂态建模仿真方法和系统
技术领域
本发明涉及新能源发电单元实时仿真建模领域,具体涉及一种风电机组电磁暂态建模仿真方法和系统。
背景技术
风能和太阳能资源潜力巨大,高比例新能源格局已初步形成。新能源基地送端电网电力电子化特征日趋明显,可再生能源发电基地直流外送系统中,电力电子发电装备数量巨大,控制复杂且存在多时间尺度耦合,基地间及其与直流输电的动态相互作用加剧,系统振荡呈宽频带、时变和多形态特征。可再生能源发电基地直流外送系统的暂态行为演化规律复杂化,系统暂态稳定分析面临巨大困难,亟需探索新条件下系统暂态稳定机理,亟需通过建立含大规模新能源集群的区域电网电磁暂态仿真模型,仿真复现电网失稳及暂态压升现象,为大规模新能源集群送出系统稳定性分析提供一种新的电磁暂态仿真手段,支撑电网安全稳定运行。
针对区域性机群风电场电磁暂态建模用普通的常用的仿真工具无法实现,因为仿真规模太大,运算速度特别慢,仿真效率很低。基于RT_LAB的实时建模仿真方法采用离散的解算方法,通过对模型进行分割,分核运行的方法可以大大提高仿真运行效率,使得区域性机群风电场电磁暂态建模仿真可行,从而为研究大规模新能源电站接入电力系统对电网安全稳定运行的研究提供了技术手段。
区域性机群风电场中用到的新能源发电设备型号繁多,为了研究新能源电站各种故障状态下的暂态响应,需要对电站中各发电单元进行高精度建模,即其暂态特性需与实际的物理发电单元高度一致。快速实现高精度区域性机群风电场电磁暂态建模实时仿真,需要新能源发电设备厂家提供与区域风电场运行一致的s-function模块和成套的控制算法源文件,而这些控制算法源文件是企业的知识产权,无厂家愿意提供,这给快速区域性机群风电场电磁暂态建模带来了困难。
Matlab仿真软件自带的S-function提供了扩展Simulink模块库,它的形式十分通用,能够支持连续系统、离散系统和混合系统。S-function采用一种特定的调用语法,可实现C语言或是C++语言函数和Simulink解法器进行交互。利用matlab的s-function模块,调用实际设备控制中运行的C语言或是C++语言进行高精度仿真建模方法在研发能力比较强的新能源发电设备厂家有应用。RT_LAB实时仿真软件完全兼容Matlab软件,而且可将matlab的s-function模块中调用的源文件生成一个动态链接库,实时仿真过程中可只依赖动态链接库文件,而无需源文件。
在区域性机群风电场建模中用到发电设备涉及的厂家和型号特别多,利用基于matlab的s-function模块实现高精度建模需要在实时仿真设备上用设备厂家的核心控制算法生成动态链接库,这种方法有两个必要条件,其一是实时仿真设备,其二是发电设备的核心控制算法,但是现在这两个必要条件无法同时具备,并且实时仿真设备与部分办公加密软件还存在不兼容的情况。
发明内容
为了在有效保护发电设备厂家知识产权不受侵害的基础上,不依赖实时仿真设备,又不受加密办公软件的限制实现快速和精确风电场风电机组电磁暂态实时建模,本发明提出了一种把matlab模型结合用c语言或是c++语言写的源代码生成支持实时仿真用动态链接库的方法,解决实时仿真用风电机组换流器控制算法动态库的手动独立生成问题,使其在普通的linux环境下就可以生成支持实时仿真用的动态库。新能源发电设备换流器厂家研发人员利用该方法可以快速生成实时仿真用单机模型,为快速精准和精细化风电场电磁暂态建模做准备。
本发明提供的技术方案是:
一种风电机组电磁暂态建模仿真方法,包括:
将预先获取的风电机组控制设备代码移植到实时仿真平台RT_LAB中;
在所述RT_LAB中,将预先建立的风电机组初始电磁暂态实时仿真模型链接所述移植后的代码进行模型编译,得到风电机组电磁暂态实时仿真模型可执行目标程序;
在所述RT_LAB实时仿真平台中进行仿真节点分配,并在所述仿真节点中加载所述风电机组电磁暂态实时仿真模型可执行目标程序;
基于所述RT_LAB实时仿真平台执行仿真操作。
优选的,所述风电机组控制设备代码的移植包括以下任意一种或下列两种的移植:
基于数字信号处理器DSP算法的控制算法源代码程序移植和基于matlab的simulink模型的封装。
进一步的,所述基于数字信号处理器DSP算法的控制算法源代码程序移植包括:
根据风电机组系统控制流程,确定所述控制算法源代码程序移植所需的s-function模块中的接口函数,以及接口函数的输入参数、输出参数、需要的基本软件保护和核心控制算法;
依据所述输入参数、输出参数、基本软件保护和接口文件核心控制算法,改写所述接口函数,得到所述控制算法源代码程序的多个s-function接口函数;
将所述控制算法源代码程序的多个s-function接口函数在linux平台下进行编译,生成满足实时仿真需要的第一动态链接库文件。
进一步的,所述基于matlab的simulink模型的封装包括:
使用数据仿真分析软件matlab的simulink模型对包含控制算法的风电机组控制设备初始matlab仿真模型进行封装,得到封装的simulink子系统;
在matlab中根据所述封装的simulink子系统自动生成s-function函数,得到所述simulink模型的s-function函数;
将所述simulink模型的s-function函数在linux平台下进行编译,生成满足实时仿真需要的第二动态链接库文件。
进一步的,所述将预先建立的风电机组初始电磁暂态实时仿真模型链接所述移植后的代码进行模型编译,得到风电机组电磁暂态实时仿真模型可执行目标程序,包括:
将第一动态链接库文件或第二动态链接库文件上传到目标仿真机指定的文件夹下;
在所述RT_LAB中添加所述第一动态链接库文件或第二动态链接库文件,并将所述第一动态链接库文件或第二动态链接库文件与电磁暂态实时仿真模型一同编译,生成可在目标仿真机上运行的电磁暂态实时仿真模型可执行目标程序。
进一步的,所述将第一动态链接库文件或第二动态链接库文件与电磁暂态实时仿真模型一同编译,包括:
将所述电磁暂态实时仿真模型按照实时仿真平台要求进行分割,并产生目标仿真机上可运行的模型C代码;
在所述模型C代码中添加所述第一动态链接库文件或第二动态链接库文件,并使用所述目标仿真机上的intel编译器进行编译和链接。
优选的,所述风电机组初始电磁暂态实时仿真模型的建立包括:
S01:将预先获取的风电机组初始matlab模型进行离散化处理,并封装成RT_LAB实时仿真平台要求的SM、SS和SC子系统;
S02:进行实时仿真模块配置选项设置,并根据所述初始matlab模型的复杂程度添加实时仿真需要的解耦模块对所述离散化处理后的模型进行分组;
S03:判断所述分组后的模型在matlab环境下是否离线运行正常,未正常运行则重新返回步骤S01进行模型离散化,直至所述模型离线运行正常;
S04:在RT_LAB中保存所述离线运行正常的模型,得到风电机组初始电磁暂态实时仿真模型;
所述SM表示:主计算子系统;所述SS表示:次计算子系统;所述SC表示:控制台子系统。
一种风电机组电磁暂态建模仿真系统,所述系统包括:代码移植模块、仿真建模模块和模型运行模块;
所述代码移植模块,用于将预先获取的风电机组控制设备代码移植到实时仿真平台RT_LAB中;
所述仿真建模模块,用于将预先建立的风电机组初始电磁暂态实时仿真模型链接所述移植后的代码进行模型编译,得到风电机组电磁暂态实时仿真模型可执行目标程序;
所述模型运行模块,用于在RT_LAB实时仿真平台中进行仿真节点分配,并在目标仿真节点中加载风电机组电磁暂态实时仿真模型可执行目标程序,并实时运行模型。
所述代码移植模块包括:控制算法源代码移植单元和simulink模型封装单元;
所述控制算法源代码移植单元,用于将基于DSP算法的控制算法源代码程序移植到matlab数据仿真分析软件的用户自定义s-function模块中,得到控制算法源文件的多个s-function接口函数,并完成所述多个s-function接口函数在linux平台下的编译,得到满足实时仿真需要的第一动态链接库文件;
所述simulink模型封装单元,用于使用matlab数据仿真分析软件的simulink模型封装包含控制算法的风电机组控制设备初始matlab仿真模型,得到封装的simulink子系统,并完成所述封装后的simulink子系统在linux平台下的编译,得到满足实时仿真需要的第二动态链接库文件。
所述仿真建模模块包括:前处理单元、判断单元和模型生成单元;
所述前处理单元,用于按照RT_LAB实时仿真要求离散化处理预先获取的风电机组及其控制设备的matlab模型,封装成实时仿真要求的SM、SS和SC子系统,并根据所述预先获取的matlab模型的复杂程度添加实时仿真需要的解耦模块对所述离散化处理后的模型进行分组;
所述判断单元,用于判断分组后的模型在matlab环境下是否离线运行正常,未正常运行则重新进行模型离散化,直至模型离线运行正常;
所述模型生成单元,用于在RT_LAB实时仿真平台中添加第一动态链接库文件和第二动态链接库文件,并进行模型的编译和链接,生成可在目标仿真系统上运行的电磁暂态实时仿真模型可执行目标程序。
所述模型运行模块包括:节点分配单元和模型运行单元;
所述节点分配单元,用于在RT_LAB实时仿真平台中进行仿真节点分配;
所述模型运行单元,用于在下载风电机组电磁暂态实时仿真模型可执行目标程序到目标仿真节点,并在目标仿真节点上实时运行模型。
与现有技术相比,本发明的有益效果为:
本发明提供一种风电机组电磁暂态建模仿真方法,将预先获取的风电机组控制设备代码移植到实时仿真平台RT_LAB中;在所述RT_LAB中,将预先建立的风电机组初始电磁暂态实时仿真模型链接所述移植后的代码进行模型编译,得到风电机组电磁暂态实时仿真模型可执行目标程序;在所述RT_LAB实时仿真平台中进行仿真节点分配,并在所述仿真节点中加载所述风电机组电磁暂态实时仿真模型可执行目标程序;基于所述RT_LAB实时仿真平台执行仿真操作。本发明提供的技术方案不依赖实时仿真设备,又不受加密办公软件的限制,通过在普通的linux环境下生成支持实时仿真的动态链接库的方法,为风电机组电磁暂态实时仿真提供了关键的算法库,帮助研究院所实现快速和精确风电场风电机组电磁暂态实时建模,仿真再现区域性机群风电场运行给电网带来的影响,为解决规模化风电场并网带来的一系列电能送出问题提供研究手段。
本发明提供的技术方案保护了风电机组设备厂家的知识产权不受侵害,也使得风电机组设备厂家愿意配合科研院所开展区域性机群风电场建模,使得精准和精细化大规模风电机组电磁暂态建模得以开展。
本发明提供的技术方案有利于掌握新能源基地暂态运行特性,提出合理的新能源并网设备运行控制策略,提升高比例新能源电网的安全稳定运行水平。
附图说明
图1为本发明的一种风电机组电磁暂态建模仿真方法流程图;
图2为本发明实施例中基于数字信号处理器(DSP)的源代码程序移植生成动态链接库流程;
图3为本发明实施例中基于matlab的simulink模型的封装生成动态链接库流程图;
图4为本发明实施例中基于动态链接库的实时化仿真建模流程图;
图5为本发明的一种风电机组电磁暂态建模仿真系统的结构示意图。
具体实施方式
为了更好地理解本发明,下面结合说明书附图和实例对本发明作进一步详细说明。
实施例1:
本发明实施例提供的一种风电机组电磁暂态建模仿真方法,其具体实施过程如图1所示,包括:
S101:将预先获取的风电机组控制设备代码移植到实时仿真平台RT_LAB中;
S102:在所述RT_LAB中,将预先建立的风电机组初始电磁暂态实时仿真模型链接所述移植后的代码进行模型编译,得到风电机组电磁暂态实时仿真模型可执行目标程序;
S103:在所述RT_LAB实时仿真平台中进行仿真节点分配,并在所述仿真节点中加载所述风电机组电磁暂态实时仿真模型可执行目标程序;
S104:基于所述RT_LAB实时仿真平台执行仿真操作。
具体的,步骤S101,将预先获取的风电机组控制设备代码移植到实时仿真平台RT_LAB中,具体包括:
步骤S101-1,基于数字信号处理器DSP算法的控制算法源代码程序移植,具体执行过程如下:
步骤S101-1-1,根据风电机组系统控制流程,确定所述控制算法源代码程序移植所需的s-function模块中的接口函数,以及接口函数的输入参数、输出参数、需要的基本软件保护和核心控制算法;
步骤S101-1-2,依据所述输入参数、输出参数、基本软件保护和接口文件核心控制算法,改写所述接口函数,得到所述控制算法源代码程序的多个s-function接口函数;
步骤S101-1-3,将所述控制算法源代码程序的多个s-function接口函数在linux平台下进行编译,生成满足实时仿真需要的第一动态链接库文件;
步骤S101-2,基于matlab的simulink模型的封装,具体执行过程如下:
步骤S101-2-1,使用数据仿真分析软件matlab的simulink模型对包含控制算法的风电机组控制设备初始matlab仿真模型进行封装,得到封装的simulink子系统;
步骤S101-2-2,在matlab中根据所述封装的simulink子系统自动生成s-function函数,得到所述simulink模型的s-function函数;
步骤S101-2-3,将所述simulink模型的s-function函数在linux平台下进行编译,生成满足实时仿真需要的第二动态链接库文件。
具体的,步骤S102,在所述RT_LAB中,将预先建立的风电机组初始电磁暂态实时仿真模型链接所述移植后的代码进行模型编译,得到风电机组电磁暂态实时仿真模型可执行目标程序,具体包括:
步骤S102-1,建立风电机组初始电磁暂态实时仿真模型,具体执行过程包括:
S102-1-1:将预先获取的风电机组初始matlab模型进行离散化处理,并封装成RT_LAB实时仿真平台要求的SM、SS和SC子系统;
S102-1-2:进行实时仿真模块配置选项设置,并根据所述初始matlab模型的复杂程度添加实时仿真需要的解耦模块对所述离散化处理后的模型进行分组;
S102-1-3:判断所述分组后的模型在matlab环境下是否离线运行正常,未正常运行则重新返回步骤S102-1-1进行模型离散化,直至所述模型离线运行正常;
S102-1-4:在RT_LAB中保存所述离线运行正常的模型,得到风电机组初始电磁暂态实时仿真模型;
步骤S102-2,将所述电磁暂态实时仿真模型按照实时仿真平台要求进行分割,并产生目标仿真机上可运行的模型C代码;
步骤S102-3,在所述模型C代码中添加所述第一动态链接库文件或第二动态链接库文件,并使用所述目标仿真机上的intel编译器进行编译和链接;
步骤S102-4,在所述RT_LAB中添加所述第一动态链接库文件或第二动态链接库文件,并将所述第一动态链接库文件或第二动态链接库文件与电磁暂态实时仿真模型一同编译,生成可在目标仿真机上运行的电磁暂态实时仿真模型可执行目标程序。
实施例2:
基于同一发明构思,本发明还提供一种风电机组电磁暂态建模仿真系统,其系统结构图如图5所示,所述系统包括:代码移植模块、仿真建模模块和模型运行模块;
代码移植模块,用于将预先获取的风电机组控制设备代码移植到实时仿真平台RT_LAB中;
仿真建模模块,用于将预先建立的风电机组初始电磁暂态实时仿真模型链接所述移植后的代码进行模型编译,得到风电机组电磁暂态实时仿真模型可执行目标程序;
模型运行模块,用于在RT_LAB实时仿真平台中进行仿真节点分配,并在目标仿真节点中加载风电机组电磁暂态实时仿真模型可执行目标程序,并实时运行模型。
所述代码移植模块包括:控制算法源代码移植单元和simulink模型封装单元;
所述控制算法源代码移植单元,用于将基于DSP算法的控制算法源代码程序移植到matlab数据仿真分析软件的用户自定义s-function模块中,得到控制算法源文件的多个s-function接口函数,并完成所述多个s-function接口函数在linux平台下的编译,得到满足实时仿真需要的第一动态链接库文件;
所述simulink模型封装单元,用于使用matlab数据仿真分析软件的simulink模型封装包含控制算法的风电机组控制设备初始matlab仿真模型,得到封装的simulink子系统,并完成所述封装后的simulink子系统在linux平台下的编译,得到满足实时仿真需要的第二动态链接库文件。
所述仿真建模模块包括:前处理单元、判断单元和模型生成单元;
所述前处理单元,用于按照RT_LAB实时仿真要求离散化处理预先获取的风电机组及其控制设备的matlab模型,封装成实时仿真要求的SM、SS和SC子系统,并根据所述预先获取的matlab模型的复杂程度添加实时仿真需要的解耦模块对所述离散化处理后的模型进行分组;
所述判断单元,用于判断分组后的模型在matlab环境下是否离线运行正常,未正常运行则重新进行模型离散化,直至模型离线运行正常;
所述模型生成单元,用于在RT_LAB实时仿真平台中添加第一动态链接库文件和第二动态链接库文件,并进行模型的编译和链接,生成可在目标仿真系统上运行的电磁暂态实时仿真模型可执行目标程序。
所述模型运行模块包括:节点分配单元和模型运行单元;
所述节点分配单元,用于在RT_LAB实时仿真平台中进行仿真节点分配;
所述模型运行单元,用于在下载风电机组电磁暂态实时仿真模型可执行目标程序到目标仿真节点,并在目标仿真节点上实时运行模型。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本发明的实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均包含在申请待批的本发明的权利要求范围之内。