|
|
| Line 4: |
Line 4: |
|
| |
|
| I've written a simple model of a flat plate solar water heater. | | I've written a simple model of a flat plate solar water heater. |
| | | I'll put it up when it's appropriate. |
| <source lang="a4c">
| |
| (*
| |
| | |
| 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;
| |
| | |
| | |
| </source>
| |
| | |
| [[Image:IncidenceGraph.png|thumb|1100px|1100px|Incidence Graph generated by ASCEND for the model of simple flat plate solar water heater]]
| |
| [[Image:FlatPlateSolarWaterHeaterValues1.png|thumb|1100px|1100px|Values obtained after solving the model of simple flat plate solar water heater part I]]
| |
| [[Image:FlatPlateSolarWaterHeaterValues2.png|thumb|1100px|1100px|Values obtained after solving the model of simple flat plate solar water heater part II]]
| |
Name: Chetan Suresh Bademi
University: Indian Institute of Technology, Madras.
I've written a simple model of a flat plate solar water heater.
I'll put it up when it's appropriate.