(*
Assumptions: Wind transfer coefficient is 0.
*)
REQUIRE "atoms.a4l";
(* New Definition: for overall collector loss coefficient. *)
ATOM heat_loss_coeff REFINES solver_var
DIMENSION M/T^3/TMP
DEFAULT 10{W/m^2/K};
lower_bound := 0{W/m^2/K};
upper_bound := 1e100 {W/m^2/K};
nominal := 1{W/m^2};
END heat_loss_coeff;
ATOM heat_capacity REFINES solver_var
DIMENSION L^2/T^2/TMP
DEFAULT 4181.3{J/kg/K}; (* heat_capacity of water at 25 degree celcius *)
lower_bound := -1e60{J/kg/K};
upper_bound := 1e60{J/kg/K};
nominal := 1{J/kg/K};
END heat_capacity;
MODEL FlatPlate;
N "number of plates" IS_A factor;
beta "collector angle( in degree )" IS_A factor;
C "A function of beta, for intermediate calculations." IS_A factor;
E "A function of TempPlateMean. For calculations only" IS_A factor;
TempAmbient "Ambient temperature" IS_A temperature;
TempPlateMean "Mean plate temperature" IS_A temperature;
TempFluidInlet "Fluid inlet temperature" IS_A temperature;
TempFluidOutlet "Fluid outlet temperature" IS_A temperature;
EmittanceGlass "Emittance of glass" IS_A factor;
EmittancePlate "Emittance of plate" IS_A factor;
HeatLossCoeffTop "Heat loss coefficient of the top surface" IS_A heat_loss_coeff;
HeatLossCoeffSide "Heat loss coefficient of the side surface" IS_A heat_loss_coeff;
HeatLossCoeffBack "Heat loss coefficient of the back surface" IS_A heat_loss_coeff;
HeatLossCoeff "Overall heat loss coefficient of the collector" IS_A heat_loss_coeff;
HeatUseful "Useful heat" IS_A energy_rate;
MassRate "Rate of flow of mass" IS_A mass_rate;
HeatCapacity "Amount of heat required to change temperature" IS_A heat_capacity;
RemovalFactor "Heat removal factor" IS_A factor;
CollectorArea "Area of the collector" IS_A area;
BackConductivity "Conductivity of the back insulation" IS_A thermal_conductivity;
SideConductivity "Conductivity of the side insulation" IS_A thermal_conductivity;
CollectorLength "Length of the Collector" IS_A distance;
CollectorWidth "Width of the Collector" IS_A distance;
CollectorThickness "Thickness of the collector" IS_A distance;
SideThickness "Thickness of the side insulator" IS_A distance;
BackThickness "Thickness of the back insulator" IS_A distance;
Efficiency "Efficiency of the collector" IS_A factor;
SolarRadiation "Solar Radiation at the surface" IS_A irradiance;
NetRadiation "Effective solar radiation" IS_A irradiance;
TransmittanceNormal "Normal transmittance of the glass plate" IS_A factor;
AbsorptanceNormal "Normal absorptance of the glass plate" IS_A factor;
AngleModifier "Incidence angle modifier" IS_A factor;
AngleModifierCoeff "Incidence angle modifier coefficient" IS_A factor;
IncidenceAngle "Incidence angle" IS_A factor;
(* EQUATIONS *)
find_area_of_collector:
CollectorArea = CollectorLength * CollectorWidth ;
find_intermediate_const_C:
C = 520 * ( 1 -0.00005 * beta * beta ) ;
find_intermediate_const_E:
E = 0.430 * ( 1 - 100 / TempPlateMean ) ;
find_heat_removal_factor:
RemovalFactor = MassRate * HeatCapacity * ( TempPlateMean - TempAmbient ) / CollectorArea / ( NetRadiation - HeatLossCoeff*( TempFluidInlet - TempAmbient) ) ;
find_heat_loss_coeff_top:
HeatLossCoeffTop = C / TempPlateMean / N * ( ( TempPlateMean - TempAmbient ) / ( 1.07886 * N + 1) )^E
+ 5.67E-8 * (TempPlateMean + TempAmbient) *(TempPlateMean^2 + TempAmbient^2)/( 1 / EmittancePlate - N + ( 2.07886 * N + 0.133 *EmittancePlate ) / EmittanceGlass) ;
find_heat_loss_coeff_back:
HeatLossCoeffBack = BackConductivity / BackThickness ;
find_heat_loss_coeff_side:
HeatLossCoeffSide = SideConductivity * 2 * ( CollectorLength + CollectorWidth ) * CollectorThickness / SideThickness / CollectorArea ;
calc_incidence_angle_modifier:
AngleModifier = 1 + AngleModifierCoeff * (1 / cos(IncidenceAngle * 1{PI} / 180 ) - 1 ) ;
calc_net_radiation_at_collector:
NetRadiation = SolarRadiation * TransmittanceNormal * AbsorptanceNormal * AngleModifier ;
(* Calculate HeatLossCoefficient and TempPlateMean by solving equations 6.4.9 and 6.9.4 iterativelys(Duffie and Beckman) *)
find_overall_heat_loss_coeff:
HeatLossCoeff = HeatLossCoeffTop + HeatLossCoeffBack + HeatLossCoeffSide ;
find_mean_plate_temperature:
TempPlateMean = TempFluidInlet + ( NetRadiation - HeatLossCoeff * ( TempFluidInlet - TempAmbient ) ) * ( 1 - RemovalFactor ) / HeatLossCoeff ;
(* Calculating the amount of heat that can be used. *)
calc_useful_heat:
HeatUseful = CollectorArea * RemovalFactor * ( NetRadiation - HeatLossCoeff * ( TempFluidInlet - TempAmbient ) ) ;
(* Calculate efficiency of the collector. *)
calc_efficiency:
Efficiency = HeatUseful / CollectorArea / SolarRadiation ;
METHODS
METHOD on_load;
FIX N;
N := 1 ;
FIX beta;
beta := 45 ;
FIX TempAmbient;
TempAmbient := 300{K};
(* Initial guess for the solver. *)
TempPlateMean := TempAmbient + 10{K} ;
FIX TempFluidInlet;
TempFluidInlet := 310{K};
FIX TempFluidOutlet ;
TempFluidOutlet := 350{K};
FIX EmittanceGlass;
EmittanceGlass := 0.88 ;
FIX EmittancePlate;
EmittancePlate := 0.95 ;
FIX MassRate;
MassRate := 0.03{kg/s};
FIX HeatCapacity;
HeatCapacity := 4181.3{J/kg/K};
FIX SolarRadiation;
NetRadiation := 1400 {kg/s^3} ;
FIX CollectorLength;
CollectorLength := 2{m};
FIX CollectorWidth ;
CollectorWidth := 1{m};
FIX CollectorThickness;
CollectorThickness := 7.5{mm};
FIX SideThickness;
SideThickness := 25{mm};
FIX BackThickness;
BackThickness := 50{mm};
FIX BackConductivity;
BackConductivity := 0.045 {kg*m/s^3/K};
FIX SideConductivity;
SideConductivity := 0.045 {kg*m/s^3/K};
FIX AbsorptanceNormal;
AbsorptanceNormal := 0.96;
FIX TransmittanceNormal;
TransmittanceNormal := 0.96;
(* Enter the angle of incidence in degrees *)
FIX IncidenceAngle;
IncidenceAngle := 60;
FIX AngleModifierCoeff;
AngleModifierCoeff := -0.10;
END on_load;
END FlatPlate;
Error creating thumbnail: File missingIncidence Graph generated by ASCEND for the model of simple flat plate solar water heater
Error creating thumbnail: File missingValues obtained after solving the model of simple flat plate solar water heater part I
Error creating thumbnail: File missingValues obtained after solving the model of simple flat plate solar water heater part II