BodyRadiation

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;