请教关于太阳能跟踪方面的方案
大家好,想做一个太阳能跟踪器,太阳能检测方面没有好的方案,谁能提供一个啊? 跟踪什么啊???没说清楚 半球小孔+加led阵列. 太阳有固定的轨迹,只要设定好地点,时间就能计算出来 4个光敏电阻摆成4个方位,光线由通孔摄入到4个电阻上。如果检测光线都能打在电阻上就停止矫正,否则按无光线的电阻做相应转动,直至搜到光线 楼上方案筒子要是斜口的才行,圆柱筒不行 接触过一个实际产品,什么都不需要监测,安装的时候确定下位置就可以了,太阳的轨迹是时间的函数,完全可以确定的 电机运行的累积误差怎么办? 光敏的方案基本都不靠谱,防尘没法做。太阳能都是室外的,长期可靠性没法保证。 [转帖]太阳位置计算程序把它存成*.vbs运行
'定义常数圆周率π
Const pi = 3.14159265359
'定义弧度与角度的转换比例
Const radeg = 57.29577951307
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'工具函数:把任意角度化为0-360度范围内的角度
Function in360(bigdeg)
While bigdeg < -3600
bigdeg = bigdeg + 3600
Wend
While bigdeg >3600
bigdeg = bigdeg - 3600
Wend
While bigdeg < 0
bigdeg = bigdeg + 360
Wend
While bigdeg >=360
bigdeg = bigdeg - 360
Wend
in360 = bigdeg
End Function
'工具函数:角度转弧度
Function toRad(deg)
toRad = deg / radeg
End Function
'工具函数:弧度转角度
Function toDeg(rad)
toDeg = rad * radeg
End Function
'工具函数:角度三角函数Sin
Function fnsind(x)
fnsind = Sin(x/radeg)
End Function
'工具函数:角度三角函数Cos
Function fncosd(x)
fncosd = Cos(x/radeg)
End Function
'工具函数:角度三角函数Tan
Function fntand(x)
fntand = Tan(x/radeg)
End Function
'工具函数:角度反正弦
Function fnasind(x)
fnasind = radeg * Atn(x/Sqr(1-x*x))
End Function
'工具函数:角度反余弦
Function fnacosd(x)
fnacosd = 90 - fnasind(x)
End Function
'工具函数:角度反正切
Function fnatand(x)
fnatand = radeg * Atn(x)
End Function
'工具函数:角度反正切任意象限
Function fnatan2d(y,x)
If x = 0 Then
fnatan2d = 90
End If
If x < 0 Then
fnatan2d = radeg * Atn(y/x) - 180
End If
If x >0 Then
fnatan2d = radeg * Atn(y/x)
End If
End Function
'工具函数:弧度反正切任意象限
Function fnatan2(y,x)
If x = 0 Then
fnatan2 = pi/2
End If
If x<0 Then
fnatan2 = Atn(y/x) - pi
End If
If x>0 Then
fnatan2 = Atn(y/x)
End If
End Function
'工具函数:立方根
Function Cbrt(x)
If x > 0.0 Then
Cbrt = Exp(Log(x)/3)
Else
If x < 0.0 Then
Cbrt = -Cbrt(-x)
Else
Return 0.0
End If
End If
End Function
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'把赤经化成小时、分、秒的常用形式
Function printRA(RA)
RA = in360(RA)
cHour = RA\15
cMinute = Int((RA - cHour*15)/0.25)
cSecond = Round((RA - cHour*15 - cMinute*0.25)/(0.25/60),1)
printRA = cHour&"h"&cMinute&"m"&cSecond&"s"
End Function
'把赤纬化成度、分、秒的区分南北纬的常用形式
Function printDecl(Decl)
If Decl >= 360 Or Decl < 0 Then
Decl = in360(Decl)
End If
If Decl >90 And Decl < 270 Then
Decl = 180 - Decl
End If
If Decl >=270 And Decl < 360 Then
Decl = Decl - 360
End If
If Decl < 0 Then
flag = "-"
Else
flag = "+"
End If
Decl = Abs(Decl)
arcDeg = Int(Decl)
arcMin = Int((Decl - arcDeg)*60)
arcSec = Round((Decl - arcDeg - arcMin/60)*3600,0)
printDecl = flag&arcDeg&"°"&arcMin&"'"&arcSec&Chr(34)
End Function
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'计算一个给定的世界时日期与UT2000.0的差值
Function dayFrom2000(theYear,theMonth,theDate)
dayFrom2000 = 367*theYear-7*(theYear+(theMonth+9)\12)\4 + (275*theMonth)\9 + theDate - 730530
End Function
'从赤经赤纬距离计算赤道平面直角坐标
Function EquatRectCoord(RA,Decl,dist)
xequat = dist * Cos(RA) * Cos(Decl)
yequat = dist * Sin(RA) * Cos(Decl)
zequat = dist * Sin(Decl)
EquatRectCoord = Array(xequat,yequat,zequat)
End Function
'从赤道平面直角坐标来计算赤道球面坐标
Function EquatSpherCoord(xequat,yequat,zequat)
r = Sqr(xequat*xequat + yequat*yequat + zequat*zequat)
RA = toDeg(fnatan2(yequat,xequat))'天球赤道经度
Decl = toDeg(fnatan2(zequat,Sqr(xequat*xequat+yequat*yequat)))'天球赤道纬度
EquatSpherCoord = Array(r,RA,Decl)
End Function
'球面赤道坐标换算为对于某地的地平坐标
'RA:赤经,Decl:赤纬,SiderealT:恒星时,geoLat:地理纬度,geoLon:地理经度,ASL:海拔高度
Function HorizonalCoord(RA,Decl,SiderealT,geoLat,geoLon,ASL)
'@todo Not completed, wait to implement
End Function
Sub Main
Call SunPosition
End Sub
Sub SunPosition '计算太阳的位置
Dim today
today = CDate(now)
todayYear = DatePart("yyyy",today)
todayMonth = DatePart("m",today)
todayDate = DatePart("d",today)
d = dayFrom2000(todayYear,todayMonth,todayDate)'距历元的间隔
w = 282.9409 + 4.70935E-5 * d '地球的近日点日心黄经。
a = 1.0000000 '地球与太阳的平均距离,单位为天文单位au
eqe = 0.016709 - 1.151E-9 * d '地球公转轨道偏心率
M = 356.0470 + 0.9856002585 * d '太阳平均运动
oblecl = 23.4393 - 3.563E-7 * d '地球的黄赤交角
L = w + M '太阳的平均黄道经度
'解开普勒方程,求偏近点角
E = M + radeg * eqe * fnsind(M) * (1 + eqe * fncosd(M))
E = M + radeg * eqe * fnsind(E)
'黄道平面近日点直角坐标
x = fncosd(E) - eqe
y = fnsind(E) * Sqr(1 - eqe*eqe)
'地日距离
r = Sqr(x*x + y*y)
'近日点角距
v = fnatan2d(y,x)
lon = v + w'太阳的黄道经度
lon = in360(lon)'将黄道经度化归到360度角以内
xecliptic = r * fncosd(lon)'将太阳黄道经度化为黄道直角坐标
yecliptic = r * fnsind(lon)
zecliptic = 0.0
xequat = xecliptic'将黄道直角坐标旋转到赤道直角坐标
yequat = yecliptic * fncosd(oblecl) - zecliptic*fnsind(oblecl)
zequat = yecliptic*fnsind(oblecl) + zecliptic*fncosd(oblecl)
spher_Sun = EquatSpherCoord(xequat,yequat,zequat)'通过赤道直角坐标计算太阳球面坐标
MsgBox("the Day "&todayYear&"-"&todayMonth&"-"&todayDate&"'s lon is" & lon)
MsgBox("r="&r&";RA="&printRA(spher_Sun(1))&";Decl="&printDecl(spher_Sun(2)))
End Sub
Call Main 太阳高度角及方位角的计算
http://www.ab126.com/Geography/1904.html 回复【4楼】zbn2010
-----------------------------------------------------------------------
参与过一款太阳能跟踪电站的设计,用的方法类似,精度可以 宿舍同学有个项目就是这个 不过他们机械部分多点 单片机只是防风感应模块 在一本资料书上见过一个纯机械的太阳跟踪仪
看似很简单 lz可以查查这类资料 贯穿地球中心与南、北极相连的线称为地轴。地球除了绕地袖自转外,还在椭圆形轨道上围绕太阳公转,运行周期为一年。椭圆的偏心率不大,1月1日近日点时,日地距离为147.1×106km,7月1日远日点时为152.1×106km,相差约为3%。地球自转袖与椭圆轨道平面(称黄道平面)的夹角为66°33′,该轴在空间的方向始终不变,因而赤道平面与黄道平而的夹角为23°27′。但是,地心与太阳中心的连线(即午时太阳光线)与地球赤道平面的夹角是一个以一年为周期变化的量,它的变化范围为土23°27′,这个角就是太阳赤纬角。赤纬角是地球绕日运行规律造成的特殊现象,它使处于黄道平面不同位置上的地球接受到的太阳光线方向也不同,从而形成地球四季的变化,如图2.2所示。北半球夏至(6月22日)即南半球冬至,太阳光线正射北回归线δ=23°27′;北半球冬至(12月22日)即南半球夏至,太阳光线正射南回归线,δ=-23°27′;春分及秋分太阳正射赤道,赤纬角都为零,地球南、北半球日夜相等。每天的赤纬角可由下式计算:
(2-1)
式中,n是所求日期在一年中的日子数,也可借助表2.1查出。
图2.2 地球绕太阳运行图
2.地球的自转与太阳时
地球始终绕着地轴由西向东在自转,每转一周(360°)为—昼夜(24小时)。显而易见;对地球上的观察者来说,太阳每天清晨从东方升起,傍晚由西方落下;时间可以用角度来表示,每小时相当于地球自转15°。
在以后导出的太阳角度公式中,涉及的时间都是当地太阳时,它的特点是午时(中午12点)阳光正好通过当地子午线,即在空中最高点处,它与日常使用的标准时间并不一致。转换公式为:
太阳时=标准时间+E±4(Lst-Lloc) (2-2)
式中, L st ——制定标准时间采用的标准经度,( °);
L loc——当地经度,( °)。
所在地点在东半球取负号,西半球取正号。
我国以北京时为标准时间,式(2-2)成为
太阳时=北京时+E-4(120—Lloc) (2-3)
转换时考虑了两顶修正,第一项E是地球绕日公转时进动和转速变化而产生的修正,时差E以分为单位,可按下式计算
E=9.87sin2B-7.53cosB—1.5sinB (2-4)
式中, ;
n为所求日期在一年中的日子数,1≤n≤365。时差E也可以从图2.3上查出。
第二项是考虑所在地区的经度Lloc与制定标准时间的经度(我国定为东经120°)之差所产生的修正。由于经度每相差1°,在时间上就相差4min,所以公式中最后一项乘4,单位也是分。 我是太阳能专业的学生 正在做方面的项目 大家可以交流下 我做过,用光敏电阻的,能用。不过要实际用还是有不少问题。 sunhaojie 发表于 2011-4-26 09:47 static/image/common/back.gif
电机运行的累积误差怎么办?
夜里回到原点 LZ的论文题目和我的一样诶。。。 给你上传一些资料。。。
诶?还有好几个文件上传不上。。。。就先这样你看看吧。。。 你好, 我现在在做一个太阳能跟踪方面的装置,要用到视日运行轨迹算法,你好像做过这方面的,能加你为好友,用QQ交流下好吗?谢谢
915951956 (不落风帆) 或者你把你的QQ写上也行,非常感谢!
你好,我正在帮导师做一个太阳能方面的小项目,要用么视日运行轨迹算法,你好像做过,能交流下吗?
915951956(不落风帆)我的QQ,你不方便加的话,可以把你的QQ留下吗?谢谢了!
页:
[1]