太阳辐射负荷计算

注释

'''
'''
1、赤纬角:地球中心与太阳中心的连线与赤道平面的夹角= 23.45*sin(360*(284*n)/365) n是一年中某一天对应365天中的天数
2、真太阳时:H = H_s +(-) (L-L_s)/15 + e/60 H_s为该地区标准时间,L,L_s分别为当地的纬度和地区标准时间位置的经度,东半球为+,西半球为+
3、将真太阳时用角度表示,称为当地太阳时角 = (H_s +(-) (L-L_s)/15 + e/60 -12) * 15
4、太阳高度角h:sinh = sin(纬度)*sin(赤纬角) + cos(纬度)*cos(赤纬角)*cos(当地太阳时角)
5、太阳方位角a:太阳偏东为-,偏西为+,sina= cos(赤纬角)*sin(当地太阳时角)/cos(太阳高度角),当计算出sina大于1,或sina的绝对值较小时,cosa = (sin(太阳高度角)*sin(纬度) - sin(赤纬角))/(cos(太阳高度角)cos(纬度))
6、太阳位置:太阳入射角i(太阳射线与壁面法向之间的夹角):cosi = cos(壁面与水平面的夹角)*sin(太阳高度角) + sin(壁面与水平面的夹角)*cos(太阳高度角)cos(壁面太阳方位角)
7、太阳常数:单位面积单位时间内来自太阳的辐射能量,用I_0表示,1353W/平方米
8、太阳光谱:I_0 等于各个光谱辐射强度之和
9、大气透明度:阳光经过大气层时,强度按指数规律衰减,为exp(-k*x)
10、太阳位于天顶时,到达地面的法向太阳直射辐射为I_l = I_0 * p
11、太阳不位于天顶是,阳光路径为l',到达地面上的法向太阳辐射强度应为:I_DN = I_0*(exp-k*l') = I_0 * exp(-k*m*l) = I_0*p的m次方,p的m次方为大气透明度,m = 1/sinh
12、太阳直射辐射强度计算:I_Dθ = I_DNcosi = I_0*p的m次方cosi,(i是太阳入射角)
13、天空散射辐射:I_dH = 0.5 * I_0 * sinh * (1-p的m次方) / (1-1.4lnp)
14、太阳总辐射I_Sθ = I_Dθ + I_dθ'''
'''

引入模块

import datetime
from math import sin, cos, asin, acos, log, pi
from tkinter import E

某一天对应365天中的天数

list_31 = [1, 3, 5, 7, 8, 10, 12]
list_30 = [4, 6, 9, 11]
def number_day(mouth, day):num = 0for i in range(1, mouth):if i in list_31:num = num + 31elif i in list_30:num = num + 30elif i == 2:num = num + 28num = num + dayreturn num

计算各种太阳角度

class Solar_angle(): '''n_day 是当前天对应365天中的那一天H_s 是该地区的标准时间H 是该地区的真太阳时L 是该当地经度L_s 是地区标准时间位置的经度latitude 该地区的纬度wall_horizontal_angle 是墙与水平面的夹角wall_sun_angle 是太阳与墙对水平面的投影的夹角location 位于南北半球transpancy 透过率p'''def __init__(self, n_day = 0, H_s = 0, L = 0, L_s = 0, latitude = 0, location = "E"):self.n_day = n_dayself.H_s = H_sself.L = Lself.L_s = L_sself.location = locationB = 360* (self.n_day - 81) / 364self.e = 9.87 * sin(2 * B * pi / 180) - 7.53 * cos(B * pi / 180) - 1.5 * sin(B * pi / 180)self.lat = latitude#赤纬角def Declination_angle(self):angle = 23.45 * sin((360 * (284 + self.n_day) / 365) * pi / 180)return angle#真太阳时def True_Solar_time(self):  #location代表半球位置E为东半球,W为西半球if self.location == 'E':H = self.H_s + (self.L-self.L_s)/15 + self.e/60elif self.location == 'W':H = self.H_s - (self.L-self.L_s)/15 + self.e/60else:print("请在参数表中输入一个所求位置的东西半球位置,E为东半球,W为西半球")return H#当地太阳时角 = (H_s +(-) (L-L_s)/15 + e/60 -12) * 15def Local_Solar_Time_angle(self):if self.location == 'E':angle = (self.H_s + (self.L-self.L_s)/15 + self.e/60 - 12) * 15elif self.location == 'W':angle = (self.H_s - (self.L-self.L_s)/15 + self.e/60 - 12) * 15else:print("请在参数表中输入一个所求位置的东西半球位置,E为东半球,W为西半球")return angle#4、太阳高度角h:sinh = sin(纬度)*sin(赤纬角) + cos(纬度)*cos(赤纬角)*cos(当地太阳时角)def Solar_Altitude_angle(self):sinh = sin(self.lat * pi / 180) * sin(Solar_angle.Declination_angle(self) * pi / 180) + cos(self.lat * pi / 180) * cos(Solar_angle.Declination_angle(self) * pi / 180) * cos(Solar_angle.Local_Solar_Time_angle(self) * pi / 180)h = asin(sinh)return {'h':h * 180 / pi,'sinh':sinh,}#5、太阳方位角a:太阳偏东为-,偏西为+,sina= cos(赤纬角)*sin(当地太阳时角)/cos(太阳高度角),当计算出sina大于1,或sina的绝对值较小时,cosa = (sin(太阳高度角)*sin(纬度) - sin(赤纬角))/(cos(太阳高度角)cos(纬度))def Solar_azimuth(self):sina = cos(Solar_angle.Declination_angle(self) * pi / 180) * sin(Solar_angle.Local_Solar_Time_angle(self) * pi / 180) / cos(Solar_angle.Solar_Altitude_angle(self)['h'] * pi / 180)if sina > 1.0 or abs(sina) < 0.001:cosa = (sin(Solar_angle.Solar_Altitude_angle(self)['h'] * pi / 180) * sin(self.lat * pi / 180) - sin(Solar_angle.Declination_angle(self) * pi / 180)) / (cos(Solar_angle.Solar_Altitude_angle(self)['h'] * pi / 180) * cos(self.lat * pi / 180))if self.L_s > 12:  a = -acos(cosa)else:a = acos(cosa)else:a = asin(sina)return a * 180 / pi

计算太阳辐射

class Solar_radition():def __init__(self, Solar_angle, wall_horizontal_angle = 0, wall_sun_angle = 0, location = 'E', transpancy = 0):self.wall_horizontal_angle = wall_horizontal_angleself.solar_angle = Solar_angleself.wall_sun_angle = wall_sun_angleself.transparency = transpancyself.location = location#6、太阳位置:太阳入射角i(太阳射线与壁面法向之间的夹角):cosi = cos(壁面与水平面的夹角)*sin(太阳高度角) + sin(壁面与水平面的夹角)*cos(太阳高度角)cos(壁面太阳方位角)def Solar_Angle_of_incidence(self):cosi = cos(self.wall_horizontal_angle * pi / 180) * sin(self.solar_angle.Solar_Altitude_angle()['h'] * pi / 180) + sin(self.wall_horizontal_angle * pi / 180) * cos(self.solar_angle.Solar_Altitude_angle()['h'] * pi / 180) * cos(self.solar_angle.Solar_azimuth() * pi / 180)return cosi# 11、太阳不位于天顶是,阳光路径为l',到达地面上的法向太阳辐射强度应为:I_DN = I_0*(exp-k*l') = I_0 * exp(-k*m*l) = I_0*p的m次方,p的m次方为大气透明度,m = 1/sinhdef Sun_Radiation(self):if self.solar_angle.Solar_Altitude_angle()['h'] > 0:m = 1 / (self.solar_angle.Solar_Altitude_angle()['sinh'])I_DN = I_0 * self.transparency ** mif self.solar_angle.Solar_Altitude_angle()['h'] < 0:I_DN = 0return I_DN# 12、太阳直射辐射强度计算:I_Dθ = I_DNcosi = I_0*p的m次方cosi,(i是太阳入射角)def Direct_Solar_intensity(self):if self.solar_angle.Solar_Altitude_angle()['h'] > 0:I_D0 = Solar_radition.Sun_Radiation(self) * Solar_radition.Solar_Angle_of_incidence(self) elif self.solar_angle.Solar_Altitude_angle()['h'] < 0:I_D0 = 0return I_D0# 13、天空散射辐射:I_dH = 0.5 * I_0 * sinh * (1-p的m次方) / (1-1.4lnp)def Scattered_Radiation_from_Sky(self):m = 1 / (self.solar_angle.Solar_Altitude_angle()['sinh'])if self.solar_angle.Solar_Altitude_angle()['h'] > 0:I_dH = 0.5 * I_0 * self.solar_angle.Solar_Altitude_angle()['sinh'] * (1 - self.transparency ** m) / (1 - 1.4 * log(self.transparency, 2.71828182))elif self.solar_angle.Solar_Altitude_angle()['h'] < 0:I_dH = 0return I_dH# 14、太阳总辐射I_Sθ = I_Dθ + I_dθdef Total_Solar_Radiation(self):I_S0 = 0if self.solar_angle.Solar_Altitude_angle()['h'] > 0:I_S0 = Solar_radition.Direct_Solar_intensity(self) + Solar_radition.Scattered_Radiation_from_Sky(self)elif self.solar_angle.Solar_Altitude_angle()['h'] < 0:I_S0 = 0return I_S0

使用实例

#将上述代码保存到同目录下的名为Load.py的文件
from Load import Solar_angle
from Load import number_day
from Load import Solar_radition
import pandas as pd
import math
a = number_day(9, 18)
d = []
e = []
f = []
g = []
h = []
k = []
#__init__(self, n_day, H_s, L, L_s, latitude, wall_horizontal_angle, wall_sun_angle, location, transpancy)
for i in range(0,24):b = Solar_angle(a, H_s = i, L = 120, L_s = 117.2, latitude = 39.13, location = 'E')#当地太阳时角d.append(b.Local_Solar_Time_angle())#太阳高度角e.append(b.Solar_Altitude_angle()['h'])#太阳方位角f.append(b.Solar_azimuth())g.append(str(i) + '时')#墙朝南,太阳方位角等于太阳和墙的夹角c = Solar_radition(b, wall_horizontal_angle = 0, wall_sun_angle = b.Solar_azimuth(), location = 'E', transpancy = 0.62)h.append(c.Total_Solar_Radiation())j = Solar_radition(b, wall_horizontal_angle = 90, wall_sun_angle = b.Solar_azimuth(), location = 'E', transpancy = 0.62)k.append(j.Total_Solar_Radiation())dataframe = pd.DataFrame({'逐时':g, '当地太阳时角':d, '太阳高度角':e, '太阳方位角':f})
dataframe.to_csv("./tes.csv",index=False,sep=',')
dataframe1 = pd.DataFrame({'水平逐时':g, '辐射强度':h})
dataframe1.to_csv("./tes1.csv", index = False, sep = ',')
dataframe2 = pd.DataFrame({'南墙逐时':g,'辐射强度':k})
dataframe2.to_csv("./tes2.csv", index = False, sep = ',')

输出结果


使用pandas模块写入csv文件

建筑热过程太阳辐射负荷计算相关推荐

  1. 计算机教室冷量负荷,7.2空调负荷计算 - 民用建筑供暖通风与空气调节设计规范 GB50736-2012 - 消防规范大全 - 消防资源网!...

    7.2.1除在方案设计或初步设计阶段可使用热.冷负荷指标进行必要的估算外,施工图设计阶段应对空调区的冬季热负荷和夏季逐时冷负荷进行计算. 7.2.2空调区的夏季计算得热量,应根据下列各项确定: 1 通 ...

  2. 华电源全年空调负荷计算及分析软件

    1.HDY-SMAD空调负荷计算及分析软件概述 HDY-SMAD空调负荷计算及分析软件设计日24小时动态逐时负荷计算基于国内广泛应用的谐波反应法,它满足国家主管部门发布的<工程建设标准强制性条文 ...

  3. 【案例】弱电机房用电负荷计算意义及计算方法

    弱电机房每次设计或者施工的时候,总是要统计一下用电负荷,需要甲方或者总包提供多少负荷的配电箱(配电柜),这是一项非常重要的工作,如何做好这个工作呢?那么需要计算,如何计算呢?看完本篇文章你就知道了 机 ...

  4. 计算尖峰电流的目的_入门必看!负荷计算的目的、方法以及原则详解

    感谢关注[易筑电气],我们会定期为您推送最新的电气资讯和各类实用干货,欢迎有料的电气设计师加入我们的QQ交流群:571819142.想了解我们的线上讲师招募计划?添加QQ:3335847624 开启新 ...

  5. 数据中心电气设计怎么做?丨规范、负荷计算、设备选型、微模块/液冷机房…...

    在"互联网+".大数据战略.数字经济等国家政策的指引驱动下,各地都在完善大数据体系相关内容的建设,其中数据中心是数字经济运行的底座. "十四五"期间,数据中心投 ...

  6. 如何实现BIM模型与空调负荷计算软件的链接

    如何实现BIM模型与空调负荷计算软件的链接 使用平台 操作步骤 1. 建筑绘制 2. 创建房间 3. 根据房间创建对应空间 4. 导出GBXML文件 5. 负荷计算软件中导入建筑信息 使用平台 BIM ...

  7. 负荷计算(文字版) | Revit MEP

    Revit MEP内置的负荷计算工具基于美国ASHRAE的负荷计算标准,采用热平衡法(HB)和辐射时间序列法(RTS)进行负荷计算.该工具可以自动识别建筑模型信息,读取建筑构件的面积.体积等数据并进行 ...

  8. 负荷计算的时候assert失败_负荷计算的入门基础知识,小白入门必备!

    负荷计算是电气设计人员必须掌握的一必修课,选导体.设备还有保护开关的选择,电网系统分析,都离不开负荷计算的内容,为此小编特意总结9个负荷计算的入门基础知识,分享给大家,希望能在工作和学习中作为一份参考 ...

  9. 鸿业负荷计算9.0打不开闪退完美解决方法

    鸿业负荷计算9.0打不开闪退完美解决方法 安装鸿业暖通空调12.0破解版后,发现鸿业暖通负荷计算打不开闪退 原因是你的鸿业负荷计算使用的是试用版,改成正式版即可. 修改方法: 在开始中找到鸿业设备设计 ...

最新文章

  1. sparkstreaming监听hdfs目录_flume kafka和sparkstreaming整合
  2. [转] MySQL 查询表数据大小的总结
  3. BZOJ4881 线段游戏(二分图+树状数组/动态规划+线段树)
  4. 甭给《程序员》把脉——你不是主编
  5. android按任意建关闭对话框,Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭...
  6. 完全掌握1级日本与能力考试语法问题对策
  7. Http-Only Cookie
  8. 【SSM】SSM框架介绍
  9. 计算机无法外接投影,电脑连不上投影仪怎么办
  10. 3线spi屏幕驱动方式
  11. 屏幕适配的总结记录-重新起航
  12. Linux的编辑器、编译器、配置文件、及其安装方法的理解
  13. 林中鸟计算机弹奏,用现象证实现象这叫复试,计算机的计算只是计算,与经络的现象无关。气感循行...
  14. 安卓使用POI读取及修改Word文档(.doc格式)
  15. 创造与魔法维护服务器奖励,创造与魔法5月最新兑换码大全 创造与魔法礼包码2021及使用方法一览...
  16. 几何光学学习笔记(1)- 1.1 几何光学的基本概念和定律
  17. java高校实验室预约管理系统
  18. 超级可爱的萌妹焊接艺术壁画,它是画上去的!
  19. 秒懂1U、2U、4U和42U服务器
  20. viper4android 贴吧,最新ViPER Cure+ 技术详解

热门文章

  1. 学术-数学:四色猜想
  2. SDL2中文API(整理)
  3. Laravel5.4中文分词搜索-使用 Laravel Scout,Elasticsearch,ik 分词(三)
  4. Laravel5.4中文分词搜索-使用 Laravel Scout,Elasticsearch,ik 分词(一)
  5. Solidity入门-开发众筹智能合约
  6. 用Burg法估计AR模型并绘制功率谱曲线的python实现
  7. 计算机硬盘加密的原理,一种计算机硬盘加密方法及装置
  8. 数据分析学习记录(五)--Paired Comparison Plot App插件的使用
  9. 计算机自带pdf吗,电脑自带pdf转换工具哪个好?办公必备!
  10. UC浏览器设置代理服务器JAVA_uc浏览器让JAVA手机变“聪明”的方法