BEAR plots data for thermal emission and "polar bear" in Chapter 12
by Chuck DiMarzio Northeastern University October 2001
!! This file may be copied, used, or modified for educational and !! research purposes provided that this header information is not !! removed or altered, and provided that the book is cited in !! publications, as DiMarzio, Charles A., Optics for Engineers, !! CRC Press, Boca Raton, FL, 2011. !! http://www.crcpress.com !! Other distribution is prohibited without permission.
Black Body Equation for Spectral Radiant Exitance
c=2.998e8; h=6.626E-34; k=1.381E-23; t=[300,500,1000,2000,5000,10000]; lambda=10.^(-1:.05:2)*1e-6; % wavelengths in meters [tt,ll]=meshgrid(t,lambda); mlambda=2*pi*h*c^2./ll.^5./(exp(h*c./ll./k./tt)-1); fig1=figure;loglog(lambda/1e-6,mlambda/1e6); % Check blackbody curves xlabel('\lambda, Wavelength, \mu m'); ylabel('M_\lambda, Spectral Radiant Exitance, W/m^2/\mu m'); axis([1e-1,1e2,1e-10,1e10]); fig2=figure; % Thermal imagers: 1K temperature difference mlambda2=2*pi*h*c^2./lambda.^5./(exp(h*c./lambda./k./301)-1); mlambda1=2*pi*h*c^2./lambda.^5./(exp(h*c./lambda./k./300)-1); subplot(2,1,1); semilogx(lambda/1e-6,(mlambda2-mlambda1)/1e6); ylabel(' \Delta M_\lambda/Delta T'); title('T = 300 K'); grid on; mlambda2=2*pi*h*c^2./lambda.^5./(exp(h*c./lambda./k./501)-1); mlambda1=2*pi*h*c^2./lambda.^5./(exp(h*c./lambda./k./500)-1); subplot(2,1,2); semilogx(lambda/1e-6,(mlambda2-mlambda1)/1e6); xlabel('\lambda, Wavelength, \mu m'); ylabel(' \Delta M_\lambda/Delta T'); title('T = 500 K'); grid on; % % Greenhouse effect lambda=10.^(-1:.05:2)*1e-6; % still in meters mlambdasun=2*pi*h*c^2./lambda.^5./(exp(h*c./lambda./k./6000)-1); mlambdabear=2*pi*h*c^2./lambda.^5./(exp(h*c./lambda./k./300)-1); i1(1)=0; dlambda=[0,... lambda((2:length(lambda)))-lambda((2:length(lambda))-1)]; itotal=sum(mlambdasun.*dlambda); % normalize sun to 1 Watt/m^2 mlambdasun=mlambdasun/itotal; suntotal=50; % watts per m^2 fig3=figure;subplot(3,1,1); plot(lambda*1e6,mlambdasun*suntotal/1e6,'-',... lambda*1e6,mlambdabear/1e6,'-.',... lambda*1e6,(mlambdasun*suntotal-mlambdabear)/1e6,'.'); xlabel('\lambda, Wavelength, \mu m'); ylabel('W/m^2/\mu m'); axis([0,20,-40,80]); grid on; suntotal=200; % watts per m^2 subplot(3,1,2); plot(lambda*1e6,mlambdasun*suntotal/1e6,'-',... lambda*1e6,mlambdabear/1e6,'-.',... lambda*1e6,(mlambdasun*suntotal-mlambdabear)/1e6,'.'); xlabel('\lambda, Wavelength, \mu m'); ylabel('M_\lambda'); axis([0,20,-50,200]); grid on; suntotal=600; % watts per m^2 subplot(3,1,3); plot(lambda*1e6,mlambdasun*suntotal/1e6,'-',... lambda*1e6,mlambdabear/1e6,'-.',... lambda*1e6,(mlambdasun*suntotal-mlambdabear)/1e6,'.'); xlabel('\lambda, Wavelength, \mu m'); ylabel('M_\lambda'); axis([0,20,-100,1000]); grid on; % now vary amount of sun irradiance suntotallist=0:50:1500; mbare=zeros(1,length(suntotallist)); m400=zeros(1,length(suntotallist)); m800=zeros(1,length(suntotallist)); m2500=zeros(1,length(suntotallist)); mopt=zeros(1,length(suntotallist)); count=0; for suntotal=suntotallist; count=count+1; mlambdanet=(suntotal*mlambdasun-mlambdabear).*dlambda; mbare(count)=sum(mlambdanet); m400(count)=sum(mlambdanet(find(lambda<400e-9))); m800(count)=sum(mlambdanet(find(lambda<800e-9))); m2500(count)=sum(mlambdanet(find(lambda<2.5e-6))); mopt(count)=sum(mlambdanet(find(mlambdanet>0))); end; fig4=figure; plot(suntotallist,suntotallist,'.',... suntotallist,mbare,'-',... % suntotallist,m400,'--',... suntotallist,m800,'-.',... suntotallist,m2500,'-.',... suntotallist,mopt,':'); % ,... % [0,suntotallist(length(suntotallist))],[0,0],'-'); xlabel('E_{sun}, W/m^2'); ylabel('M_{net}, W/m^2'); grid on; legend('Perfect Bear','Bare Bear',... %'400nm LongPass',... '800nm LongPass',... '2.5\mum LongPass','Best Bear',2); fig5=figure; plot(suntotallist,suntotallist-m2500,'-.',... suntotallist,suntotallist-mopt,':'); xlabel('E_{sun}, W/m^2'); ylabel('M_{lost}, W/m^2'); grid on; legend('2.5\mum LongPass','Best Bear','Location','NorthWest');




