2012年全国大学生数学建模竞赛B题太阳能小屋设计(含word论文和源代码资源)

一、部分题目

2012高教社杯全国大学生数学建模竞赛题目

B题 太阳能小屋的设计

在设计太阳能小屋时,需在建筑物外表面(屋顶及外墙)铺设光伏电池,光伏电池组件所产生的直流电需要经过逆变器转换成220V交流电才能供家庭使用,并将剩余电量输入电网。不同种类的光伏电池每峰瓦的价格差别很大,且每峰瓦的实际发电效率或发电量还受诸多因素的影响,如太阳辐射强度、光线入射角、环境、建筑物所处的地理纬度、地区的气候与气象条件、安装部位及方式(贴附或架空)等。因此,在太阳能小屋的设计中,研究光伏电池在小屋外表面的优化铺设是很重要的问题。

附件1-7提供了相关信息。请参考附件提供的数据,对下列三个问题,分别给出小屋外表面光伏电池的铺设方案,使小屋的全年太阳能光伏发电总量尽可能大,而单位发电量的费用尽可能小,并计算出小屋光伏电池35年寿命期内的发电总量、经济效益(当前民用电价按0.5元/kWh计算)及投资的回收年限。

在求解每个问题时,都要求配有图示,给出小屋各外表面电池组件铺设分组阵列图形及组件连接方式(串、并联)示意图,也要给出电池组件分组阵列容量及选配逆变器规格列表。

在同一表面采用两种或两种以上类型的光伏电池组件时,同一型号的电池板可串联,而不同型号的电池板不可串联。在不同表面上,即使是相同型号的电池也不能进行串、并联连接。应注意分组连接方式及逆变器的选配。

请建立数学模型解决以下问题

问题1 请根据山西省大同市的气象数据,仅考虑贴附安装方式,选定光伏电池组件,对小屋(见附件2)的部分外表面进行铺设,并根据电池组件分组数量和容量,选配相应的逆变器的容量和数量。

问题2 电池板的朝向与倾角均会影响到光伏电池的工作效率,请选择架空方式安装光伏电池,重新考虑问题1。

问题3 根据附件7给出的小屋建筑要求,请为大同市重新设计一个小屋,要求画出小屋的外形图,并对所设计小屋的外表面优化铺设光伏电池,给出铺设及分组连接方式,选配逆变器,计算相应结果。

二、部分论文

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

三、部分源代码

计算价值和成本

完整代码 https://github.com/yan-fanyu/CUMCM-Paper-And-SourceCode
function [COST,value]=cost_value(broad,radio)
%本函数用于计算价值和成本
area=[1.58*0.808 1.966*0.991 1.58*0.808 1.651*0.991 1.65*0.991 1.956*0.991 1.65*0.991 1.956*0.991 1.482*0.992 1.64*0.992 1.956*0.992 1.956*992 1.668*1 1.3*1.1 1.321*0.711 1.414*1.114 1.4*1.1 1.4*1.1 0.310*0.355 0.615*0.180 0.615*0.355 0.92*0.355 0.818*0.355 1.645*0.712];
Sradio=position_radio(broad,radio,area);%调用辐射量函数
value=Sradio/1000*0.5;%计算出一年所发电的钱
W=xlsread('classical.xls','C3:C26');
%计算每块板的价格
for i=1:24
    if i<=6
        cost(i)=W(i)*14.9;
    elseif i>6&i<=13
        cost(i)=W(i)*12.5;
    else
        cost(i)=W(i)*4.8;
    end
end
COST=sum(cost.*broad);

计算F值

完整代码 https://github.com/yan-fanyu/CUMCM-Paper-And-SourceCode
clc,clear
%本程序用于计算F值,用以比较电池板的性能优劣
area=[1.58*0.808 1.966*0.991 1.58*0.808 1.651*0.991 1.65*0.991 1.956*0.991 1.65*0.991 1.956*0.991 1.482*0.992 1.64*0.992 1.956*0.992 1.956*0.992 1.668*1 1.3*1.1 1.321*0.711 1.414*1.114 1.4*1.1 1.4*1.1 0.310*0.355 0.615*0.180 0.615*0.355 0.92*0.355 0.818*0.355 1.645*0.712];
W=xlsread('classical.xls','C3:C26');
efficiency=xlsread('classical.xls','G3:G26');
for i=1:24
    if i<=6
        cost(i)=W(i)*14.9;
    elseif i>6&i<=13
        cost(i)=W(i)*12.5;
    else
        cost(i)=W(i)*4.8;
    end
end
X1=cost./area;
X2=W'./area;
F=X1.*efficiency'./X2

问题1主函数

完整代码 https://github.com/yan-fanyu/CUMCM-Paper-And-SourceCode
clc,clear
%第一问主函数
%屋顶
radio1=roof_radio;
broad1(24)=0;
area=[1.58*0.808 1.966*0.991 1.58*0.808 1.651*0.991 1.65*0.991 1.956*0.991 1.65*0.991 1.956*0.991 1.482*0.992 1.64*0.992 1.956*0.992 1.956*992 1.668*1 1.3*1.1 1.321*0.711 1.414*1.114 1.4*1.1 1.4*1.1 0.310*0.355 0.615*0.180 0.615*0.355 0.92*0.355 0.818*0.355 1.645*0.712];
broad1(3)=42;
[COST1,VALUE1]=cost_value(broad1,radio1');
%东面
radio2=xlsread('weather.xls','E1:E8760');
broad2(24)=0;
broad2(14)=13;
broad2(20)=40;
[COST2,VALUE2]=cost_value(broad2,radio2);
%南面
radio3=xlsread('weather.xls','F1:F8760');
broad3(24)=0;
broad3(14)=2;
broad3(20)=16;
broad3(23)=40;
[COST3,VALUE3]=cost_value(broad3,radio3);
%西面
radio4=xlsread('weather.xls','G1:G8760');
broad4(24)=0;
broad4(14)=14;
broad4(20)=14;
broad4(21)=4;
broad4(23)=13;
[COST4,VALUE4]=cost_value(broad4,radio4);
%北面不管怎么排布,都是亏本,不予考虑
year_value=VALUE1*40*0.94/42+VALUE1*2*0.86/42+0.94*(VALUE2+VALUE3+VALUE4)
year_electricity=year_value*2
total_cost=COST1+COST2+COST3+COST4
total_value=year_value*(10+15*0.9+10*0.8)
total_electricity=2*total_value

问题2主函数

完整代码 https://github.com/yan-fanyu/CUMCM-Paper-And-SourceCode
clc,clear
%第二问按年主函数
%此程序运行时间10分钟左右
X=xlsread('weather.xls','B1:D8760');
Y=xlsread('weather.xls','I1:J8760');
efficiency=xlsread('classical.xls','G3:G26');
W=xlsread('classical.xls','C3:C26');
ts=Y(:,1)+1;
n=ceil((Y(:,2)+1)/24);
level_radio=X(:,1);
scattering_radio=X(:,2);
vertical_radio=X(:,3);
[m,o]=size(X);
max=0;
a(m)=0;A(m)=0;c(m)=0;C(m)=0;cant_radio(m)=0;
broad(24)=0;
area=[1.58*0.808 1.966*0.991 1.58*0.808 1.651*0.991 1.65*0.991 1.956*0.991 1.65*0.991 1.956*0.991 1.482*0.992 1.64*0.992 1.956*0.992 1.956*992 1.668*1 1.3*1.1 1.321*0.711 1.414*1.114 1.4*1.1 1.4*1.1 0.310*0.355 0.615*0.180 0.615*0.355 0.92*0.355 0.818*0.355 1.645*0.712];
broad(3)=42;
for i=1:m
    if vertical_radio(i)>0
       u=ts(i);
       v=n(i);
       [j,k]=sun_azimuth(u,v);
       a(i)=j;A(i)=k;
    end
end
for cita=0.01:0.01:1.57
    for i=1:8760
        %c为直线与法向量的余弦值,即直线与平面的正弦值
        c(i)=(1+tan(cita)*tan(a(i))*sqrt(1+tan(A(i))^2))/sqrt(1+tan(cita)^2)/sqrt(1+tan(A(i))^2+tan(a(i))^2*(1+tan(A(i))^2));
        cant_direct(i)=abs(c(i))*vertical_radio(i);
        cant_radio(i)=cant_direct(i)+scattering_radio(i);
    end
   [COST1,VALUE1]=cost_value(broad,cant_radio');
    if max<VALUE1;
        max=VALUE1;
        CI=cita;
    end
end
disp('倾角:')
CI/pi*180
disp('最大价值:')
max
%东面
radio2=xlsread('weather.xls','E1:E8760');
broad2(24)=0;
broad2(14)=13;
broad2(20)=40;
[COST2,VALUE2]=cost_value(broad2,radio2);
%南面
radio3=xlsread('weather.xls','F1:F8760');
broad3(24)=0;
broad3(14)=2;
broad3(20)=16;
broad3(23)=40;
[COST3,VALUE3]=cost_value(broad3,radio3);
%西面
radio4=xlsread('weather.xls','G1:G8760');
broad4(24)=0;
broad4(14)=14;
broad4(20)=14;
broad4(21)=4;
broad4(23)=13;
[COST4,VALUE4]=cost_value(broad4,radio4);
%北面不管怎么排布,都是亏本,不予考虑
year_value=max*40*0.94/42+max*2*0.86/42+0.94*(VALUE2+VALUE3+VALUE4)
total_cost=COST1+COST2+COST3+COST4
total_value=year_value*(10+15*0.9+10*0.8)

问题3主函数

完整代码 https://github.com/yan-fanyu/CUMCM-Paper-And-SourceCode
clc,clear
%第三问主程序
%改造后的屋顶
X=xlsread('weather.xls','B1:D8760');
Y=xlsread('weather.xls','I1:J8760');
ts=Y(:,1)+1;
n=ceil((Y(:,2)+1)/24);
level_radio=X(:,1);
scattering_radio=X(:,2);
vertical_radio=X(:,3);
[m,o]=size(X);
a(m)=0;A(m)=0;c(m)=0;C(m)=0;cant_radio(m)=0;
for i=1:m
    if vertical_radio(i)>0
       u=ts(i);
       v=n(i);
       [j,k]=sun_azimuth(u,v);
       a(i)=j;A(i)=k;
    end
end
%选择最适宜角度
for i=1:m
    c(i)=(1+tan(0.75)*tan(a(i))*sqrt(1+tan(A(i))^2))/sqrt(1+tan(0.75)^2)/sqrt(1+tan(A(i))^2+tan(a(i))^2*(1+tan(A(i))^2));
    cant_direct(i)=abs(c(i))*vertical_radio(i);
    cant_radio(i)=cant_direct(i)+scattering_radio(i);
end
broad1(24)=0;
broad1(3)=66;
[COST1,VALUE1]=cost_value(broad1,cant_radio');
%东面
radio2=xlsread('weather.xls','E1:E8760');
broad2(24)=0;
broad2(14)=7;
broad2(15)=4;
broad2(20)=31;
[COST2,VALUE2]=cost_value(broad2,radio2);
%南面
radio3=xlsread('weather.xls','F1:F8760');
broad3(24)=0;
broad3(14)=14;
broad3(18)=2;
broad3(22)=2;
broad3(23)=15;
[COST3,VALUE3]=cost_value(broad3,radio3);
%西面
radio4=xlsread('weather.xls','G1:G8760');
broad4(24)=0;
broad4(14)=8;
broad4(15)=4;
broad4(20)=31;
[COST4,VALUE4]=cost_value(broad4,radio4);
%北面不管怎么排布,都是亏本,不予考虑
year_value=(VALUE2+VALUE3+VALUE4)*0.94+0.973*VALUE1
total_cost=COST1+COST2+COST3+COST4
total_value=year_value*(10+15*0.9+10*0.8)

四、完整word版论文和源代码

Word论文和源代码

  • 17
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦是远方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值