发明名称 一种电力系统仿真软件输入数据转换方法
摘要 本发明公开了一种PSASP程序格式的输入数据文件转换为PSS/E程序格式的电力系统仿真软件输入数据转换方法,以解决电力系统的PSS/E软件仿真研究的建模难、建模工作量大等问题。它将PSASP程序格式的母线数据、负荷数据、并联电容电抗器数据、发电机数据、交流线数据、两绕组变压器数据和三绕组变压器数据,经数据类型转换后,按照母线编号顺序写入到PSS/E程序格式的潮流计算输入数据源文件,以及将PSASP程序格式的发电机及其调节器数据,经数据类型转换后,按照PSS/E自定义模型的格式写入到PSS/E程序格式的动态分析输入数据文件。它不仅使我国电力系统的PSS/E软件仿真建模成为了可能,还为大电网的PSS/E仿真建模基础数据的准备提供了一种快捷的途径,节省了大量的数据输入工作。
申请公布号 CN102521343B 申请公布日期 2013.05.15
申请号 CN201110409110.X 申请日期 2011.12.09
申请人 山东大学 发明人 于大洋;孙东磊;黄海丽;周利梅;任敬国;郭启伟;于强强;雷宇
分类号 G06F17/30(2006.01)I;G06F17/50(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 济南圣达知识产权代理有限公司 37221 代理人 张勇
主权项 一种电力系统仿真软件输入数据转换方法,其特征在于:它将PSASP程序格式的母线数据、负荷数据、并联电容电抗器数据、发电机数据、交流线数据、两绕组变压器数据和三绕组变压器数据,经数据类型转换后,按照母线编号顺序写入到PSS/E程序格式的潮流计算输入数据源文件,以及将PSASP程序格式的发电机及其调节器数据,经数据类型转换后,按照PSS/E自定义模型的格式写入到PSS/E程序格式的动态分析输入数据文件; 所述电力系统仿真软件输入数据转换方法具体步骤为: 步骤301:获取PSASP项目路径,设置PSS/E输入文件路径,创建以raw为后缀的PSS/E潮流计算输入数据文件; 步骤302:在PSS/E潮流计算输入数据文件中添加算例标识数据和标题行数据; 步骤303:读取PSASP项目路径下bus.dbf、generat.dbf和trans_3w.dbf,获取母线数据,经处理后写入PSS/E潮流计算输入数据文件; 步骤304:读取PSASP项目路径下load.dbf和bus.dbf,获取负荷数据,经处理后写入PSS/E潮流计算输入数据文件; 步骤305:读取PSASP项目路径下acline.dbf,获取并联电容电抗器数据,经处理后写入PSS/E潮流计算输入数据文件; 步骤306:读取PSASP项目路径下generat.dbf,sb.dbf和lib.dbf,获取发电机数据,经处理后写入PSS/E潮流计算输入数据文件; 步骤307:读取PSASP项目路径下acline.dbf,获取交流线数据, 经处理后写入PSS/E潮流计算输入数据文件; 步骤308:读取PSASP项目路径下trans_2w.dbf和bus.dbf,获取两绕组变压器数据,经处理后写入PSS/E潮流计算输入数据文件; 步骤309:读取PSASP项目路径下trans_3w.dbf和bus.dbf,获取三绕组变压器数据,经处理后写入PSS/E潮流计算输入数据文件; 步骤310:在PSS/E潮流计算输入数据文件添加以0开头的11个空行,保存PSS/E潮流计算输入数据文件; 步骤311:判断是否进行动态分析输入数据转换,若是则创建以dyr为后缀的PSS/E动态分析输入数据文件,否则结束; 步骤312:读取PSASP项目路径下generat.dbf,获取generat.dbf中记录数generat.count,并令计数器变量k=1; 步骤313:根据发电机数据数组generat[k]中字段[″gen_model″]所对应的值,确定该发电机在PSS/E中对应的模型型号,并根据该模型参数格式和gen_lib.dbf第generat[k]中字段[″gen_par″]所对应记录在PSS/E动态分析输入数据文件中添加该发电机的模型数据; 步骤314:根据发电机数据数组generat[k]中字段[″avr_model″]所对应的调压器模型在PSS/E中的自定义格式和该型数据库第generat[k]中字段[″avr_par″]对应记录在PSS/E动态分析输入数据文件中添加该发电机的调压器模型数据; 步骤315:根据发电机数据数组generat[k]中字段[″gov_model″]所对应的调压器模型在PSS/E中的自定义格式和该型数据库第generat[k]中字段[″gov_par″]对应记录在PSS/E动态分 析输入数据文件中添加该发电机的调速器模型数据; 步骤316:根据发电机数据数组generat[k]中字段[″pss_model″]所对应的PSS模型在PSS/E中的自定义格式和该型数据库第generat[k]中字段[″pss_par″]对应记录在PSS/E动态分析输入数据文件中添加该发电机的PSS模型数据; 步骤317:判断k是否等于generat.count,若是则保存PSS/E动态分析输入数据文件,否则令k=k+1返到步骤313; 所述步骤303的流程为: 步骤3031:获取bus.dbf中记录数bus.count,初始化母线数据转换中保存母线数据的数组,以下简称母线数据数组,并令计数器变量d=1,m=1; 步骤3032:遍历trans 3w.dbf,判断第d条母线记录对应母线是否为三绕组变压器中心母线,若是则跳至步骤3036,否则进行下一步; 步骤3033:保存该母线相应字段至母线数据数组,按保存顺序给定母线编号m,并m=m+1;给母线电压幅值赋初值1,母线电压相角赋初值0,母线类型设为PQ型; 步骤3034:遍历generat.dbf,判断该母线是否为发电机母线,若是则进行下一步,否则跳至步骤3036; 步骤3035:根据generat.dbf中该发电机对应记录,修改该母线电压和母线类型,并保存至母线数据数组; 步骤3036:判断d是否等于bus.count,若是则进行下一步,否 则令d=d+1返到步骤3032; 步骤3037:根据母线数据数组形成母线编号和母线名对照表; 步骤3038:选择是否进行母线优化编号,若是则进行下一步,否则跳至步骤3040; 步骤3039:母线优化编号,更新母线编号和母线名对照表; 步骤3040:逐条添加母线数据; 所述步骤304的流程为: 步骤3041:获取load.dbf中记录数load.count,初始化负荷数据转换中保存负荷数据的数组,以下简称负荷数据数组,并令计数器变量e=1; 步骤3042:保存第e条记录对应负荷中相应的Valid、bus_name、P和Q字段至负荷数据数组,遍历bus.dbf,寻找负荷数据数组load[e]中字段[″bus_name″]对应的记录,并将该记录中的area_no字段值作为负荷的区域号; 步骤3043:逐条添加母线数据; 步骤3044:判断e是否等于load.count,若是则结束,否则令e=e+1返到步骤3042; 所述步骤305流程为: 步骤3051:获取acline.dbf中记录数acline.count,初始化并联电容电抗器数据转换中保存并联电容电抗器数据的数组,以下简称并联电容电抗器数据数组,并令计数器变量f=1; 步骤3052:判断第f条交流线记录中并联电容电抗器数据数组 acline[f]中字段[″i_name″]和[″j_name″]对应的记录值是否相等,若是则进行下一步,否则跳至步骤3057; 步骤3053:将acline.dbf中第f条记录的有用字段值保存至并联电容电抗器数据数组; 步骤3054:判断acline[f]中字段[″i_name″]对应的记录值是否在第f条记录之前的记录中出现过,若是则进行下一步,否则跳至步骤3057; 步骤3055:修改该电容电抗器标识值; 步骤3056:添加该电容电抗器数据; 步骤3057:判断f是否等于acline.count,若是则结束,否则令f=f+1返到步骤3052; 所述步骤306的流程为: 步骤3061:获取generat.dbf中记录数generat.count,读取sb.dbf,获取系统基准容量,初始化发电机数据转换中保存发电机数据的数组,以下简称发电机数据数组,并令计数器变量g=1; 步骤3062:将发电机数据数组generat[g]中字段[″pg″]和[″qg″]对应的记录值结合系统基准容量转换为有名值后同generat.dbf中第g条记录的其它有用字段值保存至相应发电机数组; 步骤3063:判断发电机数据数组generat[g]中字段[″gen_model″]对应的记录值是否为0,若是则跳至3065,否则进行下一步; 步骤3064:根据gen.lib中与generat[g]中字段[″gen_par″]相 对应的记录修改保存该发电机的次暂态电抗的发电机数组; 步骤3065:添加该发电机数据; 步骤3066:判断g是否等于generat.count,若是则结束,否则令g=g+1返到步骤3062; 所述步骤307的流程为: 步骤3071:获取acline.dbf中记录数acline.count,初始化交流线数据转换中保存交流线数据的数组,以下简称交流线数据数组,并令计数器变量h=1; 步骤3072:判断第h条交流线记录中交流线数据数组acline[h]中字段[″i_name″]和[″j_name″]所对应的记录值是否相等,若是则跳至步骤3057,否则进行下一步; 步骤3073:将acline.dbf中第h条记录的有用字段值保存至交流线数据数组; 步骤3074:判断acline[h]中字段[″i_name″]和[″j_name″]所对应的记录值是否在第h条记录之前的记录中出现过,若是则进行下一步,否则跳至步骤3076; 步骤3075:修改该交流线标识值; 步骤3076:添加该三绕组变压器数据; 步骤3077:判断h是否等于acline.count,若是则结束,否则令h=h+1返到步骤3072; 所述步骤308的流程为: 步骤3081:获取trans_2w.dbf中记录数trans_2w.count,初始化 两绕组变压器数据转换中保存双绕组变压器数据的数组,以下简称双绕组变压器数据数组,并令计数器变量j=1; 步骤3082:将trans_2w.dbf中第j条记录的有用字段值保存至双绕组变压器数据数组; 步骤3083:判断双绕组变压器数据数组trans_2w[j]中字段[″i_name″]和[″j_name″]所对应的记录值是否在第j条记录之前的记录中同时出现过,若是则进行下一步,否则跳至步骤3085; 步骤3084:修改该变压器标识值; 步骤3085:添加该两绕组变压器数据; 步骤3086:判断j是否等于trans_2w.count,若是则结束,否则令j=j+1返到步骤3082; 所述步骤309的流程: 步骤3091:获取trans_3w.dbf中记录数trans_3w.count,初始化三绕组变压器数据转换中保存三绕组变压器数据的数组,以下简称三绕组变压器数据数组,并令计数器变量x=1; 步骤3092:将trans_3w.dbf中第x条记录的有用字段值保存至三绕组变压器数据数组; 步骤3093:判断三绕组变压器数据数组trans_3w[x]中字段[″name_1″]、[″name_2″]和[″name_3″]所对应的记录值是否在第x条记录之前的记录中同时出现过,若是则进行下一步,否则跳至步骤3095; 步骤3094:修改该三绕组变压器标识值; 步骤3095:添加该三绕组变压器数据; 步骤3096:判断x是否等于trans_3w.count,若是则结束,否则令x=x+1返到步骤3092。
地址 250061 山东省济南市历下区经十路17923号