Demonstrate temperatures of faces of a CubeSat
The default flux is 45 degrees above the xy-plane. The conductivity matrix between panels is zero except for between +X and -Z. It you make dT too large you will run into numerical integration issues. See also: RHSIsothermalCubeSat, AddThermalConductivity
Contents
%-------------------------------------------------------------------------- % Copyright (c) 2019 Princeton Satellite Systems, Inc. % All rights reserved. %--------------------------------------------------------------------------
Incoming flux
a = linspace(0,8*pi,1500);
n = length(a);
% Solar flux in the body frame
p = 0.7071*1367*[cos(a);sin(a);zeros(1,n)];
Set up the thermal model
d = RHSIsothermalCubeSat; % Get defaults d.mass = ones(1,6)/6; % Make each panel separate d.powerTotal = [0.5 0.5 0 0 0 0]; % Internal power on each panel % Add a thermally conductive channel between faces 1 and 6. Watts/Kelvins d = AddThermalConductivity(d,1,6,0.3); tP = zeros(n,6); tK = 300*ones(1,6); % Initial temperatures
Propagate
dT = 1; % sec for k = 1:n-1 tP(k,:) = tK; tK = RK4(@RHSIsothermalCubeSat,tK,dT,0,d,p(:,k)); end tP(n,:) = tK;
Plot
[t,tL] = TimeLabl((0:n-1)*dT); yL = {'T_{+X} (deg-K)' 'T_{-X} (deg-K)' 'T_{+Y} (deg-K)'... 'T_{-Y} (deg-K)' 'T_{+Z} (deg-K)' 'T_{-Z} (deg-K)'... 'p_x (W/m^2)' 'p_y (W/m^2)' 'p_z (W/m^2)'}; Plot2D(t,tP',tL,yL(1:6),'Panel Temperatures'); Plot2D(t,p, tL,yL(7:9),'Incoming Flux Vector'); %--------------------------------------