model BodyRadiation "Lumped thermal element for radiation heat transfer"
extends Interfaces.Element1D;
parameter Real Gr(unit = "m2") "Net radiation conductance between two surfaces (see docu)";
equation
Q_flow = Gr * Modelica.Constants.sigma * (port_a.T ^ 4 - port_b.T ^ 4);
annotation (
Icon(
coordinateSystem(
preserveAspectRatio = true,
extent = {
{-100, -100},
{100, 100}}),
graphics = {
Rectangle(
extent = {
{50, 80},
{90, -80}},
fillColor = {192, 192, 192},
fillPattern = FillPattern.Backward),
Rectangle(
extent = {
{-90, 80},
{-50, -80}},
fillColor = {192, 192, 192},
fillPattern = FillPattern.Backward),
Line(
points = {
{-36, 10},
{36, 10}},
color = {191, 0, 0}),
Line(
points = {
{-36, 10},
{-26, 16}},
color = {191, 0, 0}),
Line(
points = {
{-36, 10},
{-26, 4}},
color = {191, 0, 0}),
Line(
points = {
{-36, -10},
{36, -10}},
color = {191, 0, 0}),
Line(
points = {
{26, -16},
{36, -10}},
color = {191, 0, 0}),
Line(
points = {
{26, -4},
{36, -10}},
color = {191, 0, 0}),
Line(
points = {
{-36, -30},
{36, -30}},
color = {191, 0, 0}),
Line(
points = {
{-36, -30},
{-26, -24}},
color = {191, 0, 0}),
Line(
points = {
{-36, -30},
{-26, -36}},
color = {191, 0, 0}),
Line(
points = {
{-36, 30},
{36, 30}},
color = {191, 0, 0}),
Line(
points = {
{26, 24},
{36, 30}},
color = {191, 0, 0}),
Line(
points = {
{26, 36},
{36, 30}},
color = {191, 0, 0}),
Text(
extent = {
{-150, 125},
{150, 85}},
textString = "%name",
lineColor = {0, 0, 255}),
Text(
extent = {
{-150, -90},
{150, -120}},
textString = "Gr=%Gr"),
Rectangle(
extent = {
{-50, 80},
{-44, -80}},
lineColor = {191, 0, 0},
fillColor = {191, 0, 0},
fillPattern = FillPattern.Solid),
Rectangle(
extent = {
{45, 80},
{50, -80}},
lineColor = {191, 0, 0},
fillColor = {191, 0, 0},
fillPattern = FillPattern.Solid)}),
Documentation(info = "<html>\n<p>\nThis is a model describing the thermal radiation, i.e., electromagnetic\nradiation emitted between two bodies as a result of their temperatures.\nThe following constitutive equation is used:\n</p>\n<pre>\n Q_flow = Gr*sigma*(port_a.T^4 - port_b.T^4);\n</pre>\n<p>\nwhere Gr is the radiation conductance and sigma is the Stefan-Boltzmann\nconstant (= Modelica.Constants.sigma). Gr may be determined by\nmeasurements and is assumed to be constant over the range of operations.\n</p>\n<p>\nFor simple cases, Gr may be analytically computed. The analytical\nequations use epsilon, the emission value of a body which is in the\nrange 0..1. Epsilon=1, if the body absorbs all radiation (= black body).\nEpsilon=0, if the body reflects all radiation and does not absorb any.\n</p>\n<pre>\n Typical values for epsilon:\n aluminium, polished 0.04\n copper, polished 0.04\n gold, polished 0.02\n paper 0.09\n rubber 0.95\n silver, polished 0.02\n wood 0.85..0.9\n</pre>\n<p><strong>Analytical Equations for Gr</strong></p>\n<p>\n<strong>Small convex object in large enclosure</strong>\n(e.g., a hot machine in a room):\n</p>\n<pre>\n Gr = e*A\n where\n e: Emission value of object (0..1)\n A: Surface area of object where radiation\n heat transfer takes place\n</pre>\n<p><strong>Two parallel plates</strong>:</p>\n<pre>\n Gr = A/(1/e1 + 1/e2 - 1)\n where\n e1: Emission value of plate1 (0..1)\n e2: Emission value of plate2 (0..1)\n A : Area of plate1 (= area of plate2)\n</pre>\n<p><strong>Two long cylinders in each other</strong>, where radiation takes\nplace from the inner to the outer cylinder):\n</p>\n<pre>\n Gr = 2*pi*r1*L/(1/e1 + (1/e2 - 1)*(r1/r2))\n where\n pi: = Modelica.Constants.pi\n r1: Radius of inner cylinder\n r2: Radius of outer cylinder\n L : Length of the two cylinders\n e1: Emission value of inner cylinder (0..1)\n e2: Emission value of outer cylinder (0..1)\n</pre>\n</html>"),
Diagram(
coordinateSystem(
preserveAspectRatio = true,
extent = {
{-100, -100},
{100, 100}}),
graphics = {
Rectangle(
extent = {
{-90, 80},
{-56, -80}},
fillColor = {192, 192, 192},
fillPattern = FillPattern.Backward),
Line(
points = {
{-56, 80},
{-56, -80}},
thickness = 1),
Line(
points = {
{50, 80},
{50, -80}},
thickness = 1),
Rectangle(
extent = {
{50, 80},
{90, -80}},
fillColor = {192, 192, 192},
fillPattern = FillPattern.Backward),
Line(
points = {
{-40, 10},
{40, 10}},
color = {191, 0, 0}),
Line(
points = {
{-40, 10},
{-30, 16}},
color = {191, 0, 0}),
Line(
points = {
{-40, 10},
{-30, 4}},
color = {191, 0, 0}),
Line(
points = {
{-40, -10},
{40, -10}},
color = {191, 0, 0}),
Line(
points = {
{30, -16},
{40, -10}},
color = {191, 0, 0}),
Line(
points = {
{30, -4},
{40, -10}},
color = {191, 0, 0}),
Line(
points = {
{-40, -30},
{40, -30}},
color = {191, 0, 0}),
Line(
points = {
{-40, -30},
{-30, -24}},
color = {191, 0, 0}),
Line(
points = {
{-40, -30},
{-30, -36}},
color = {191, 0, 0}),
Line(
points = {
{-40, 30},
{40, 30}},
color = {191, 0, 0}),
Line(
points = {
{30, 24},
{40, 30}},
color = {191, 0, 0}),
Line(
points = {
{30, 36},
{40, 30}},
color = {191, 0, 0})}));
end BodyRadiation;