宏在电力系统安稳策略仿真中的应用
2020-03-27司大军张学华
司大军,张学华
(1.云南电网有限责任公司电网规划建设研究中心,昆明 650000;2.昆明能讯科技有限责任公司,昆明 650217)
0 前言
某大电网稳定智能仿真分析平台(以下简称分析平台),该平台能够进行电力系统安稳策略的仿真。在实际电力系统中,相邻区域的安稳策略在适应运行方式、切机与切负荷对象等方面存在一定的重复。当在分析平台中修改或设置相关策略时,需要重复进行相关设置,易出错或遗漏[1-3]。为解决这一问题,本文提出了通过使用“宏”表示重复部分,在不同位置引用定义的宏,当需要重新设置或修改时只修改宏的定义部分即可,在引用宏的位置自动展开宏。
1 安稳策略设置
分析平台能够对电力系统安稳策略进行仿真,安稳策略由“安稳策略文件”定义。“安稳策略文件”中可以包含多个安稳策略,每个安稳策略含有策略名称、策略类型(切机或切负荷)、策略对应运行方式、策略对应故障、各切机/负荷轮级、切机/负荷计算曲线等。
使用“.strategy=
“.mode”用于指定安稳策略适用的运行方式。其格式为:
“.Fault”用于指定安稳策略适用的故障形式。其格式为:
“.curve”用于指定安稳策略切机或切负荷曲线。其格式为:
曲线类型有“stair”、“line”可选,“stair”表示阶梯状切机或切负荷曲线,如下图1 所示。从(0,0)点开始,需要指定(x1, y1)、(x2, y2)、……等值。需要输入参数的个数为偶数个。
“line” 表示线性切机或切负荷曲线,需要输入参数的个数为2,即a, b 两个参数,使用y=a*x+b 计算切机或切负荷量值,其中,x 表示潮流值,y 表示切机或切负荷量值。
使用“.stage”指定安稳策略切机轮级,对于一个策略可以指定任意数目的轮级,分析平台将按轮级先后顺序,从前到后切机/切负荷。一个轮级可以切除多个机组与负荷。使用“.Gen”指定本轮级可切机组,使用“.Load”指定本轮级可切负荷。
使用“.Gen S 厂站名 n reserve=m”指定。“S”(Station 的首字母)表示切除指定“厂站名”发电机;“n”正整数,表示切该厂站的n 台机;“m”为0 或正整数,表示取该厂站需要保留m台机。
使用“.Load S 厂站名, percent”指定。“S”(Station 的首字母)表示切除指定“厂站名”负荷,“percent”为浮点数,表示切该厂站负荷的百分比。
如某区域电网,无检修方式下,A 站至B站220 kV 双回线路N-2 的安稳策略如下:
A 站至C 站220 kV 线路检修方式下,A 站至B 站220 kV 双回线路N-2 的安稳策略如下:
对比两个安稳策略,大部分内容相同,主要差别在运行方式与切机曲线。本文使用“宏”表示不同安稳策略的相同部分,从而简化安稳策略设置以及后续的维护,下面将给出宏的定义与使用方法。
2 宏的定义与使用
分析平台通过在安稳策略定义中使用“宏”,简化安稳策略设置以及维护。
2.1 宏的定义
在安稳策略定义文件或专门的宏定义文件中可以定义宏。宏的定义以“.define”关键字开始,以“.end”关键字结束,定义示例如下所示:
其中“.define”表示宏定义的起始,<宏名称> 为宏对应的名称,不能重复,宏内容可以为多行,也可以为单行,“.end”表示宏定义的结束。
2.2 宏的调用
宏文件的导入。宏可以声明在安稳策略定义文件,也可声明在单独创建的宏文件里,安稳策略定义文件可以通过“包含”的方式使用宏文件中定义的宏,即通过“.include”关键字,在目标文件的头部导入宏文件,具体示例代码如下所示:
“.include”作为宏文引入的关键词,< 文件名>为需要引入的宏文件名称。
宏程使用。在安稳策略定义文件中可以使用已定义的宏,使用方式为在宏名称前后加入百分号“%”,即通过“% 宏名称%”的方式对宏进行引用,表示分析平台在解析到“% 宏名称%”对应的位置时,使用宏内容进行替换。
2.3 宏的展开
宏的读取与解析。分析平台提供编辑界面对安稳策略定义文件数据进行可视化的设置与编辑。分析平台在读取可编辑安稳生客定义文件时,以逐行的方式读取文件内容。当数据行中包含“% 宏名称%”格式的标识符时,需要对宏标识符进行解析,解析程序提取该字符串中的宏名称,调用宏内容查找函数,查找函数首先在定义文件中以“.define 宏名称”格式检索,如果检索不到与之匹配的字符串,则进入宏文件定义文件继续检索,直到找到匹配的字符串,否则函数返回“宏未定义”的提示信息。检索到指定格式的字符串,也就查找到宏定义的起始位置,查找函数以此为起点,查找其后临近的“.end”宏结束关键字位置,通过截取起始位置到结束位置的字符串,解析程序就得到宏的完整定义内容,去掉“.define 宏名称”和“.end”字符后,即得到宏的内容。最后,用宏内容替换定义文件中的宏标识符。
2.4 宏的显示与编辑
在获得宏的内容后,将根据安稳策略定义文件的格式逐行对宏内容进行解析并在分析平台界面上进行显示与编辑。当完成对宏的编辑后,需要对被编辑的宏进行回写,使得其它对宏的引用可以同步更新。由于安稳策略定义文件每一行表示特定的含义,因此,在界面显示与编辑时以行为单位进行。对于宏文件也是如此,在显示宏时,记录显示宏的名称与所在宏内容中的行号。当宏在界面上被编辑后,可以通过宏名称与所在宏的行号对宏定义进行更新。
宏展开与编辑的流程如下所示:
图2 宏展开与编辑的流程图
3 宏的使用范例
以“安稳策略设置简介”章节中给出的某区域电网的安稳策略定义为例,将“无检修,A站-B 站N-2”与“A 站至C 站检修,A 站-B 站N-2”安稳策略的切机轮级部分进行宏定义,以简化策略的设置与维护。即,将切机轮级部分通过宏“公共切机部分”进行定义,在安稳策略设置中进行引用,如下所示:
为宏“A 站至B 站公共部分”,在两种方式的安稳策略定义时,采用“%A 站至B 站公共部分%”格式引用宏,编写示例如下所示:
在分析平台中可以对以上设置进行显示与编辑,宏展开界面为宏展开后的内容。
4 结束语
在分析平台中修改或设置相关策略时,将需要多次使用到的内容定义为宏,使用时仅以宏标识符的形式进行调用,可进行多层级编辑,使用方便、效率高,不易出错或遗漏,实现传统方式不能达到的效果,并且代码执行效率优异,拓宽了电网潮流稳定仿真分析策略定义文件数据编写的能力。