package org.ieee.odm.adapter.psse.mapper.dynamic.tur_gov; import org.ieee.odm.adapter.psse.PSSEAdapter.PsseVersion; import org.ieee.odm.adapter.psse.mapper.aclf.BasePSSEDataMapper; import org.ieee.odm.adapter.psse.parser.dynamic.tur_gov.PSSETurGovTGOV1Parser; import org.ieee.odm.common.ODMException; import org.ieee.odm.model.IODMModelParser; import org.ieee.odm.model.dstab.DStabDataSetter; import org.ieee.odm.model.dstab.DStabModelParser; import org.ieee.odm.model.dstab.DStabParserHelper; import org.ieee.odm.schema.DStabBusXmlType; import org.ieee.odm.schema.DStabGenDataXmlType; import org.ieee.odm.schema.GovPSSETGOV1ModelXmlType; public class PSSETurGovTGOV1Mapper extends BasePSSEDataMapper{ public PSSETurGovTGOV1Mapper(PsseVersion ver) { super(ver); this.dataParser = new PSSETurGovTGOV1Parser(ver); } public void procLineString(String lineStr, DStabModelParser parser) throws ODMException { this.dataParser.parseFields(lineStr); /* * PSSE TGOV1 * TGOV1 is a simple model representing governor action and the reheater time * constant effect for a steam turbine. The ratio, T2/T3, equals the fraction * of turbine power that is developed by the high pressure turbine. T3 is the * reheater time constant, and T1 is the governor time constant * // 0----------1----------2----------3----------4 "IBUS", "Type", "MachId", "R", "T1", // 5----------6----------7----------8----------9 "VMAX", "VMIN", "T2", "T3", "Dt" */ int i = dataParser.getInt("IBUS"); final String busId = IODMModelParser.BusIdPreFix+i; String genId = dataParser.getString("MachId"); //check model type if(!dataParser.getString("Type").equals("TGOV1")){ throw new ODMException(" Governor of machine : Id"+ genId+" @ Bus"+i+"is not a TGOV1 type"); } DStabBusXmlType busXml = parser.getBus(busId); DStabGenDataXmlType dstabGenData = DStabParserHelper.getDStabContritueGen(busXml, genId); GovPSSETGOV1ModelXmlType gov = DStabParserHelper.createGovPSSETGOV1XmlType(dstabGenData); gov.setR(dataParser.getDouble("R")); gov.setT1(DStabDataSetter.createTimeConstSec(dataParser.getDouble("T1"))); gov.setVMAX(dataParser.getDouble("VMAX")); gov.setVMIN(dataParser.getDouble("VMIN")); gov.setT2(DStabDataSetter.createTimeConstSec(dataParser.getDouble("T2"))); gov.setT3(DStabDataSetter.createTimeConstSec(dataParser.getDouble("T3"))); gov.setDt(dataParser.getDouble("Dt")); } }