八、附录
附录1:问题一南顶面铺设方案源代码
%第五面电池竖铺;
o1=data3(:,7);%电池的转换效率;
n1=floor(65.766453./S1); n2=floor(10.1./W1); n3=floor(6.51153./L1);
%根据该面面外表面的面积、长宽确定适合的同一型号电池数量上限;
n4=n2.*n3;%n4即为长宽顺序铺陈一个平面内所能用到的该型号电池最大数量上限;
n4=min(n4,n1);
x1=find(S1(1:6).*n4(1:6).*o1(1:6)==max(S1(1:6).*n4(1:6).*o1(1:6)));%保存该面选用的最优电池组件型号编号;
ders=65.766453-n4(x1)*S1(x1);%计算剩余面积; derl=10.1-n2(x1)*W1(x1);%计算剩余长度; derw=6.51153-n3(x1)*L1(x1);%计算剩余宽度;
y1=[S1(x1)*n4(x1)*o1(x1),n2,n3,n4,x1];%y1为第五面竖铺的经济效益,组件矩阵的长宽与总电池数; %第五面横铺
n1=floor(65.766453./S1); n2=floor(10.1./L1); n3=floor(6.51153./W1);
n4=n2.*n3;%n4即为长宽顺序铺陈一个平面内所能用到的该型号电池最大数量上限;
n4=min(n4,n1);
x3=find(S1(1:6).*n4(1:6).*o1(1:6)==max(S1(1:6).*n4(1:6).*o1(1:6)));%保存该面选用的最优电池组件型号编号;
ders=65.766453-n4(x3)*S1(x3);%计算剩余面积; derl=10.1-n2(x1)*L1(x3);%计算剩余长度;
derw=6.51153-n3(x1)*W1(x3);%计算剩余宽度;
y3=[S1(x3)*n4(x3)*o1(x3),n2,n3,n4,x1];%y3为第五面横铺铺的经济效益,组件矩阵的长宽与总电池数;
%比较y1(1),y3(1)较大数即为答案 8.2第一问Ⅵ面铺设方案源代码 %第六面铺设方案
29
%竖铺无方案
o1=data3(:,7);%电池的转换效率; %横铺
n1=floor(14.031368./S1); n2=floor(10.1./L1); n3=floor(1.3892./W1);
%根据该面面外表面的面积、长宽确定适合的同一型号电池数量上限;
n4=n2.*n3;%n4即为长宽顺序铺陈一个平面内所能用到的该型号电池最大数量上限;
n4=min(n4,n1);
x1=find(S1(7:13).*n4(7:13).*o1(7:13)==max(S1(7:13).*n4(7:13).*o1(7:13)))+6;%保存该面选用的最优电池组件型号编号;
ders=65.766453-n4(x1)*S1(x1);%计算剩余面积; derl=10.1-n2(x1)*L1(x1);%计算剩余长度; derw=1.3892-n3(x1)*W1(x1);%计算剩余宽度;
y1=[S1(x1)*n4(x1)*o1(x1),n2,n3,n4];%y1为第六面竖铺的经济效益,组件矩阵的长宽与总电池数;
附录2:问题二最优倾斜角的计算程序
%计算外表面的最佳倾斜角度;
clc;clear;
weather=xlsread('weatherdata.xls');%读取大同市一年天气参数; rad1=weather(:,7); rad2=weather(:,6); rad3=weather(:,9); rad4=weather(:,8); rad7=weather(:,3);
rads=weather(:,4);%水平面散射强度;
radn=weather(:,3)-weather(:,4);%radn保存水平面直射辐射强度; ts=weather(:,1)-13;
ts(find(ts==-13))=11;%北京时间的太阳时;
w1=15*(ts+(113.3-120)/15)/180*pi;%大同的地方时角; n=[];
for i=1:365
n=[n;i*ones(24,1)]; end
dec1=pi*23.45.*sin(2*pi.*(284+n)./365)./180;%太阳赤纬; lati1=40.1/180*pi;%大同纬度
30
max=-inf;
for j=-90:0.1:90 beta=j/180*pi; s=0;
for i=1:size(weather,1)
wt=acos(-tan(lati1)*tan(dec1(i)));
wp=min(acos(-tan(lati1)*tan(dec1(i))),acos(-tan(lati1-beta)*tan(dec1(i))));
rb=abs((cos(lati1-beta)*cos(dec1(i))*sin(wp)+pi/180*wp*sin(lati1-beta)*sin(dec1(i)))/(cos(lati1)*cos(dec1(i))*sin(wt)+pi/180*wt*sin(lati1)*sin(dec1(i)))); s=s+rb*radn(i)+0.5*rads(i)*(1+cos(beta)); end
if s>max
max=s;%一年最大的辐射量;
count1=j;%count1保存近似最佳倾斜角度; end End
附录3:第三问最优朝向角的计算程序
%计算房屋朝向最佳方位; clc;clear;
weather=xlsread('weatherdata.xls');%读取大同市一年天气参数; rad1=weather(:,7); rad2=weather(:,6); rad3=weather(:,9); rad4=weather(:,8); rad7=weather(:,3);
rad=weather(:,5);%法向辐射总强度; rads=weather(:,4);%水平面散射强度;
radn=weather(:,3)-weather(:,4);%radn保存水平面直射辐射强度; ts=weather(:,1)-11;
%北京时间的太阳时; ts1=ts+(113.3-120)/15;
w1=15*(ts+(113.3-120)/15)/180*pi;%大同的地方时角; n=[];
for i=1:365
n=[n;i*ones(24,1)]; end
dec1=pi*23.45.*sin(2*pi.*(284+n)./365)./180;%太阳赤纬;
31
lati1=40.1/180*pi;%大同纬度;
htr=asin(sin(lati1).*sin(dec1)+cos(lati1).*cos(dec1).*cos(w1));%太阳高度角 maxs=-inf;
for j=-180:0.1:180%检索不同的墙面法向量角 x=j/180*pi; s=0;
for i=1:size(rad1,1)
a1=dec1(i);%太阳赤纬 a2=w1(i);%地方时角 a3=htr(i);%太阳高度角 a4=lati1;%大同纬度
if a2<0
A=acos((sin(a1)*cos(a4)-cos(a2)*cos(a1)*sin(a4))/cos(a3)); else
A=2*pi-acos((sin(a1)*cos(a4)-cos(a2)*cos(a1)*sin(a4))/cos(a3)); end
s=s+rad(i)*cos(a3)*cos(A-x); end
if s>maxs maxs=s;
count2=j;%保存朝向角; end end
32