// $Id: residential_loads.glm 4738 2014-07-03 00:55:39Z dchassin $
// Copyright (C) 2008 Battelle Memorial Institute
// This model is a fully functional integrated load and powerflow model.
// A single house is defined with each enduse represented with varying
// power aggregation consumption is attached to the IEEE 4 Node Feeder.
// 

module powerflow;
module climate;
module residential {
	implicit_enduses LIGHTS|PLUGS;
};
module tape;

clock {
	timestamp '2000-01-01 0:00:00';
	timezone EST+5EDT;
}

//////////////////////////////////////////////////////////////////////////
// IEEE 4 Node Feeder: Balanced step-down delta-delta

object overhead_line_conductor {
	name OH100;
	geometric_mean_radius 0.0244;
	resistance 0.306;
}

object overhead_line_conductor {
	name OH101;
	geometric_mean_radius 0.00814;
	resistance 0.592;
}

object line_spacing {
	name LS200;
	distance_AB 2.5;
	distance_BC 4.5;
	distance_AC 7.0;
	distance_AN 5.656854;
	distance_BN 4.272002;
	distance_CN 5.0;
}

object line_configuration {
	name LC300;
	conductor_A OH100;
	conductor_B OH100;
	conductor_C OH100;
	conductor_N OH101;
	spacing LS200;
}

object transformer_configuration {
	name XFC400;
	connect_type 2;
	power_rating 6000;
	primary_voltage 12470;
	secondary_voltage 4160;
	resistance 0.01;
	reactance 0.06;
}

object transformer_configuration {
	name PoleTop;
	connect_type SINGLE_PHASE_CENTER_TAPPED;
	power_rating 400;
	powerA_rating 400;
	primary_voltage 2400;
	secondary_voltage 120;
	resistance 0.01;
	reactance 0.06;
}

object node {
	name Node1;
	phases A|B|C;
	voltage_A +7199.558+0.000j;
	voltage_B -3599.779-6235.000j;
	voltage_C -3599.779+6235.000j;
	nominal_voltage 7199.558;
}

object overhead_line {
	name Link12;
	phases A|B|C;
	from Node1;
	to Node2;
	length 2000;
	configuration LC300;
	nominal_voltage 7199.558;
}

object node {
	name Node2;
	phases A|B|C;
	voltage_A +7199.558+0.000j;
	voltage_B -3599.779-6235.000j;
	voltage_C -3599.779+6235.000j;
	nominal_voltage 7199.558;
}

object transformer {
	name Link23;
	phases A|B|C;
	from Node2;
	to Node3;
	configuration XFC400;
}

object node {
	name Node3;
	phases A|B|C;
	voltage_A +2401.777+0.000j;
	voltage_B -1200.889-2080.000j;
	voltage_C -1200.889+2080.000j;
	nominal_voltage 2401.777;
}

object overhead_line {
	name Link34;
	phases A|B|C;
	from Node3;
	to Node4;
	length 2500;
	configuration LC300;
}

object load {
	name Load;
	parent Node4;
	phases A|B|C|D;
	voltage_A +2401.777+0.000j;
	voltage_B -1200.889-2080.000j;
	voltage_C -1200.889+2080.000j;
	power_A +1800000.000+871779.789j;
	power_B +1800000.000+871779.789j;
	power_C +1800000.000+871779.789j;
	maximum_voltage_error 0.001;
	nominal_voltage 2401.777;
}

object node {
	name Node4;
	phases A|B|C|D;
	voltage_A +2401.777+0.000j;
	voltage_B -1200.889-2080.000j;
	voltage_C -1200.889+2080.000j;
	nominal_voltage 2401.777;
}

object transformer {
	name Link45;
	phases AS;
	from Node4;
	to Meter;
	configuration PoleTop;
}
	
////////////////////////////////////////////////////////////////////////
// residential model

object triplex_meter {
	name Meter;
	parent Link45;
	nominal_voltage 120.0;
	phases AS;
}

object house {
	name House;
	parent Meter;
	latitude "48N";
	longitude "125W";
	floor_area 1500.0 sf;
	envelope_UA 450.0;
	window_wall_ratio 0.25;
	heating_setpoint 72.0;
	cooling_setpoint 76.0;
}

object waterheater {
	name Waterheater;
	parent House;
	tank_volume 60;
	tank_UA 2.0;
	water_demand 0.25 gpm;
	heating_element_capacity 4500 W;
	location INSIDE;
	tank_setpoint 120 degF;
}

/////////////////////////////////////////////////////////////////////////
// these recorders are set to gather data about the simulation results
object recorder{
	name MeterCorder;
	parent Meter;
	property measured_voltage_1,measured_voltage_2,measured_voltage_N,measured_current_1,measured_current_2,measured_current_N;
	file plot:residential_meter.plot;
	interval 3600;
	limit 1440;
}

object recorder{
	name MeterCorder2;
	parent Meter;
	property measured_voltage_1,measured_voltage_2,measured_voltage_N,measured_current_1,measured_current_2,measured_current_N;
	file output.csv;
	interval 3600;
	limit 1440;
}
/////////////////////////////////////////////////////////////////////////
// END
