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.PSSETurGovIEEE1981Type1Parser;
import org.ieee.odm.common.ODMException;
import org.ieee.odm.common.ODMLogger;
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.GovIEEE1981Type1XmlType;
public class PSSETurGovIEEE1981Type1Mapper extends BasePSSEDataMapper{
public PSSETurGovIEEE1981Type1Mapper(PsseVersion ver) {
super(ver);
this.dataParser = new PSSETurGovIEEE1981Type1Parser(ver);
}
public void procLineString(String lineStr, DStabModelParser parser) throws ODMException {
this.dataParser.parseFields(lineStr);
/*
// 0----------1----------2----------3----------4
"IBUS", "Type", "MachId", "JBUS", "M",
// 5----------6----------7----------8----------9
"K", "T1", "T2", "T3", "Uo",
// 10----------11--------12---------13---------14
"Uc", "PMAX", "PMIN", "T4", "K1",
// 15----------16--------17---------18---------19
"K2", "T5", "K3", "K4", "T6",
// 20----------21--------22---------23---------24
"K5", "K6", "T7", "K7", "K8",
*/
/*
* PSSE IEEEG1, corresponding to IEEE 1981 type 1 model
*
*
*/
int i = dataParser.getInt("IBUS");
int j = dataParser.getInt("JBUS");
if(j!=0)
ODMLogger.getLogger().severe("IEEE G1 model currently does NOT support more than one buses, IEEG1 @ Bus" +i );
final String busId = IODMModelParser.BusIdPreFix+i;
String genId = dataParser.getString("MachId");
//check model type
if(!dataParser.getString("Type").equals("IEEEG1")){
throw new ODMException(" Governor of machine : Id"+
genId+" @ Bus"+i+"is not a IEEEG1 type");
}
DStabBusXmlType busXml = parser.getBus(busId);
DStabGenDataXmlType dstabGenData = DStabParserHelper.getDStabContritueGen(busXml, genId);
GovIEEE1981Type1XmlType gov = DStabParserHelper.createGovIEEE1981Type1XmlType(dstabGenData);
gov.setK(dataParser.getDouble("K"));
gov.setT1(DStabDataSetter.createTimeConstSec(dataParser.getDouble("T1")));
gov.setT2(DStabDataSetter.createTimeConstSec(dataParser.getDouble("T2")));
gov.setT3(DStabDataSetter.createTimeConstSec(dataParser.getDouble("T3")));
gov.setT4(DStabDataSetter.createTimeConstSec(dataParser.getDouble("T4")));
gov.setT5(DStabDataSetter.createTimeConstSec(dataParser.getDouble("T5")));
gov.setT6(DStabDataSetter.createTimeConstSec(dataParser.getDouble("T6")));
gov.setT7(DStabDataSetter.createTimeConstSec(dataParser.getDouble("T7")));
gov.setVOpen(dataParser.getDouble("Uo"));
gov.setVClose(dataParser.getDouble("Uc"));
gov.setPMAX(dataParser.getDouble("PMAX"));
gov.setPMIN(dataParser.getDouble("PMIN"));
gov.setK1(dataParser.getDouble("K1"));
gov.setK2(dataParser.getDouble("K2"));
gov.setK3(dataParser.getDouble("K3"));
gov.setK4(dataParser.getDouble("K4"));
gov.setK5(dataParser.getDouble("K5"));
gov.setK6(dataParser.getDouble("K6"));
gov.setK7(dataParser.getDouble("K7"));
gov.setK8(dataParser.getDouble("K8"));
}
}