Thermal equilibrium examples.

------------------------------------------------------------------------
See also ThermalEquilibrium, Dot, Unit, delta
------------------------------------------------------------------------

Contents

%-------------------------------------------------------------------------------
%   Copyright (c) 2004 Princeton Satellite Systems, Inc.
%   All rights reserved.
%-------------------------------------------------------------------------------

Two nodes connected by a conductor

%------------------------------------
d.k = 10*[1 -1;-1 1];
d.l = 5.67e-8*[1 0;0 1];
q   = 1358;
t   = [300;300];
d.b = [1;0];

t   = ThermalEquilibrium( d, q, t );

d.uSun = [0;1;0];

d.thermal.box.area         = [2 2 2 2 4];
d.thermal.box.u            = [0 0 0 0 -1;-1 0 1 0 0;0 -1 0 1 0]; % [-y -z +y +z -x]

d.thermal.telescope.area   = [2.6 2.6 2.6 2.6 2.6 2.6 5.8];
d.thermal.telescope.u      = Unit([0 0 0 0 0 0 1;-1 -1 1 1 1 -1 0;0 -1 -1 0 1 1 0]);
d.thermal.emissivity       = 0.1*5.67e-8;   % epsilon time Stefan-Boltzman constant
d.thermal.absorptivity     = 0.21;     % Absorptivity times the solar flux
d.thermal.box.temp         = 300*ones(6,1); % Surfaces + battery
d.thermal.telescope.temp   = 300*ones(8,1); % Surfaces + CCD
d.thermal.solarFlux        = 1358;

Thermal matrices

%-----------------
d.thermal.box.d.b          = d.thermal.absorptivity*diag(d.thermal.box.area);
d.thermal.box.d.b(6,6)     = 1; % Heater
d.thermal.box.d.l          = d.thermal.emissivity*diag([d.thermal.box.area 0]); % No radiation coupling in box
d.thermal.box.d.k          = 1.e-2*[1  0  0  0  0 -1;...
                                    0  1  0  0  0 -1;...
                                    0  0  1  0  0 -1;...
                                    0  0  0  1  0 -1;...
                                    0  0  0  0  1 -1;...
                                   -1 -1 -1 -1 -1  5];

d.thermal.telescope.d.b          = d.thermal.absorptivity*diag(d.thermal.telescope.area);
d.thermal.telescope.d.b(8,8)     = 1; % Heater
d.thermal.telescope.d.l          = d.thermal.emissivity*diag([d.thermal.telescope.area 0]); % No radiation coupling in box
d.thermal.telescope.d.k          = 1.e-2*[1  0  0  0  0  0  0 -1;...
                                          0  1  0  0  0  0  0 -1;...
                                          0  0  1  0  0  0  0 -1;...
                                          0  0  0  1  0  0  0 -1;...
                                          0  0  0  0  1  0  0 -1;...
                                          0  0  0  0  0  1  0 -1;...
                                          0  0  0  0  0  0  1 -1;...
                                         -1 -1 -1 -1 -1 -1 -1  7];
q    = [Dot( d.thermal.box.u, d.uSun )'*d.thermal.solarFlux;10]; % [solar flux;battery heater]
k    =  q < 0 ;
q(k) = 0;
[d.thermal.box.temp] = ThermalEquilibrium( d.thermal.box.d, q, d.thermal.box.temp );
disp('Box Temperatures')
disp(d.thermal.box.temp)

q    = [Dot( d.thermal.telescope.u, d.uSun )'*d.thermal.solarFlux;1]; % [solar flux;battery heater]
k    = find( q < 0 );
q(k) = 0;
[d.thermal.telescope.temp, delta] = ThermalEquilibrium( d.thermal.telescope.d, q, d.thermal.telescope.temp );

disp('Telescope Temperatures')
disp(d.thermal.telescope.temp)

%--------------------------------------
Box Temperatures
       123.79
       123.79
        473.4
       123.79
       105.81
       390.12
Telescope Temperatures
       102.03
       102.03
       433.91
       473.23
       433.91
       102.03
       85.562
       261.82