dyy719 发表于 2011-2-24 14:27:19

请教关于太阳能跟踪方面的方案

大家好,想做一个太阳能跟踪器,太阳能检测方面没有好的方案,谁能提供一个啊?

trustgod 发表于 2011-2-24 14:37:07

跟踪什么啊???没说清楚

tiantian2011 发表于 2011-2-24 14:39:25

半球小孔+加led阵列.

rwdxty 发表于 2011-2-24 15:51:39

太阳有固定的轨迹,只要设定好地点,时间就能计算出来

zbn2010 发表于 2011-2-24 16:59:37

4个光敏电阻摆成4个方位,光线由通孔摄入到4个电阻上。如果检测光线都能打在电阻上就停止矫正,否则按无光线的电阻做相应转动,直至搜到光线

NJ8888 发表于 2011-2-24 17:07:20

楼上方案筒子要是斜口的才行,圆柱筒不行

DigiCat 发表于 2011-2-24 19:55:17

接触过一个实际产品,什么都不需要监测,安装的时候确定下位置就可以了,太阳的轨迹是时间的函数,完全可以确定的

sunhaojie 发表于 2011-4-26 09:47:40

电机运行的累积误差怎么办?

JR.Cheng 发表于 2011-4-26 10:20:59

光敏的方案基本都不靠谱,防尘没法做。太阳能都是室外的,长期可靠性没法保证。

edrkgf 发表于 2011-4-26 12:44:26

[转帖]太阳位置计算程序
把它存成*.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

edrkgf 发表于 2011-4-26 12:57:57

太阳高度角及方位角的计算
http://www.ab126.com/Geography/1904.html

jdh99 发表于 2011-4-26 13:13:51

回复【4楼】zbn2010
-----------------------------------------------------------------------
参与过一款太阳能跟踪电站的设计,用的方法类似,精度可以

dengxbin 发表于 2011-4-27 14:01:07

宿舍同学有个项目就是这个 不过他们机械部分多点 单片机只是防风感应模块 在一本资料书上见过一个纯机械的太阳跟踪仪
看似很简单 lz可以查查这类资料

fangshanlong 发表于 2011-12-3 21:51:08

贯穿地球中心与南、北极相连的线称为地轴。地球除了绕地袖自转外,还在椭圆形轨道上围绕太阳公转,运行周期为一年。椭圆的偏心率不大,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,单位也是分。

fangshanlong 发表于 2011-12-3 21:52:02

我是太阳能专业的学生 正在做方面的项目 大家可以交流下

GIKE 发表于 2012-4-17 23:14:50

我做过,用光敏电阻的,能用。不过要实际用还是有不少问题。

sufeila 发表于 2012-4-17 23:22:11

sunhaojie 发表于 2011-4-26 09:47 static/image/common/back.gif
电机运行的累积误差怎么办?

夜里回到原点

wx85105157 发表于 2012-4-18 02:59:26

LZ的论文题目和我的一样诶。。。 给你上传一些资料。。。




诶?还有好几个文件上传不上。。。。就先这样你看看吧。。。

chenjianyuechan 发表于 2013-6-20 09:32:20

你好, 我现在在做一个太阳能跟踪方面的装置,要用到视日运行轨迹算法,你好像做过这方面的,能加你为好友,用QQ交流下好吗?谢谢
915951956 (不落风帆) 或者你把你的QQ写上也行,非常感谢!

chenjianyuechan 发表于 2013-6-21 13:49:36

你好,我正在帮导师做一个太阳能方面的小项目,要用么视日运行轨迹算法,你好像做过,能交流下吗?
915951956(不落风帆)我的QQ,你不方便加的话,可以把你的QQ留下吗?谢谢了!
页: [1]
查看完整版本: 请教关于太阳能跟踪方面的方案