Posted by z on June 19, 2009, 3:32 pm
I don't know why I never thought of this before. Turns out spa
manufacturers use a lot of the same kind of hardware I could have used when
making my hydro system.
FINALLY found an actual 2" PVC Wye
http://www.usspaparts.com/index.php?
main_page=advanced_search_result&search_in_description=1&keyword=wye
for the long url impared: http://tinyurl.com/m2d36s
Now i'm checking out the various spa jets and hardware related to sqirting
water. Not really sure how well those would actually work since many are
probably not designed for strait stream, but looking through the basic
plastic jets its probably not too hard to modify them.
I can't believe I never thought to look at the spa thing for inspiration.
They have to contend with the strange angles regular plumbers never use and
they're all about shooting water. Might have to see if I can find a spa
place around here and look at some examples in person before getting order
happy.
So you budding home hydro builders keep the spa people in mind for
ideas/parts
-zachary
Posted by Curbie on June 19, 2009, 4:47 pm
z,
I like the spa idea, economy of scale pricing and availability.
Did you ever figure out the head & flow for your system?
Curbie
Posted by z on June 19, 2009, 5:15 pm
> z,
>
> I like the spa idea, economy of scale pricing and availability.
>
> Did you ever figure out the head & flow for your system?
Its between 37-39 PSI so thats roughly 90 feet of head. My pressure
gauge isn't so easy to read.
The optimal flow for 2 inch pipe at 450 feet is around 54 GPM
so according to microhydrocalc I should have 300+ watts available. Sadly
i'm only making about 120 at the moment (I finally scored a charge
controller that shows watts produced), but i'm not using nearly the
optimal GPM, more like half, so I use 25 GPM as an estimate.
That results in 206 watts, so i'm probably losing quite a bit in my
design. But I'm pretty sure a lot of that is from the transition to the
nozzles and the big T -- so i'm going to get a 2 inch wye like above and
go flexi 2 inch all the way right before the transition to nozzles.
Might gain some there.
Been experimenting with different bore sizes too
I've got a lot of notes one of these days i'll compile everything
together and make some sense of it ;)
-z
Posted by Curbie on June 19, 2009, 5:45 pm
z,
Maybe a stupid idea, but I recall tire air fill nozzle for tube-less
tires that you just bolted to the rim before spooning a tube-less tire
to the rim. The questionable idea would be to bolt one of these air
fill nozzles to a water feed-pipe near your generator to take a water
pressure reading with a cheapo tire pressure gauge?
Sense:
Head * 0.433 = PSI
87 (Ft. Head) * 0.433 = 37.6 (PSI)
Then:
37.6 (PSI) / 0.433 = 87 (Ft. Head)
So you obviously got that.
Flow would be easy, just time how long it takes to fill a 1 gallon jug
from power drum. (?correct term) Say it 21 seconds to a one gallon
jug:
Flow (GPM) 2.85 =(1 / 21) * 60
With proper head and flow measurements that "turgo" spread-sheet you
have should help in estimating the number and size of the jets you
need?
It may take some of the time out of experiments?
Curbie
Posted by Curbie on June 20, 2009, 11:21 pm
z,
SolPos.c is too intense for a simple tracking system, here is some
tracking specific code I ported from JavaScript which is far better
suited for tracking I found here:
http://www.powerfromthesun.net/CALCULATORS/AngleCalc.html
Have fun.
Curbie
***********************************************************************************
Dim LA As Double ' latitude
Dim ZE As Double ' zenith
Dim AZ As Double ' azimuth
Dim TmpAZ As Double ' temporary
azimuth
Dim HA As Double ' hour angle
Dim DE As Double ' declination
Dim AL As Double ' altitude
Dim CZ As Double '
Dim CI As Double ' collector angle
of tncidence
Dim CT As Double '
Dim HAS As Double ' hour of sunset
Dim HAR As Double ' hour of sunrise
Dim HD As Double ' hours of
daylight
Dim Text As String ' results text
LA = Radians(Me.Latitude) ' latitude in
radians
AZ = Radians(Me.Azi) ' azimuth in
radians
ZE = Radians(Me.Zen) ' zenith in
radians
' Perform calculations here
HA = Radians(15 * (Me.ST - 12)) ' calculate hour
angle in radians
DE = ASin(C1 * Cos(Radians(C2 * (Me.Day - 173)))) ' calculate
declination in radians
' calculate
altitude
AL = ASin(Sin(DE) * Sin(Me.Latitude) + Cos(DE) * Cos(HA) *
Cos(Me.Latitude))
ZE = (Pi / 2) - AL ' calculate zenith
' calculate
azimuth
TmpAZ = ACos((Sin(DE) * Cos(LA) - Cos(DE) * Cos(HA) * Sin(LA)) /
Cos(AL))
If Sin(HA) > 0 Then '
AZ = 2 * (Pi) - TmpAZ '
End If '
If Sin(HA) < 0 Then '
AZ = TmpAZ '
End If '
If Sin(HA) = 0 Then '
AZ = Pi '
End If '
' calculate collector angle of incidence
Select Case Me.TA ' get number of
tracking axes
Case 0 ' if fixed
CI = ACos(Sin(AL) * Cos(ZE) + Cos(AL) * Sin(ZE) * Cos(CZ - AZ))
Case 1 ' if eest/west
only
CI = ACos(Sin(AL) * Cos(CT) + Cos(AL) * Sin(CT) * Cos(CZ - AZ))
Case 2 ' if both
east/west and north/south
CI = 0#
End Select ' get number of
tracking axes
HAS = (Degrees(ACos(-Tan(DE) * Tan(LA))) / 15) + 12 ' calculate solar
time of sunset
HAR = 12 - (HAS - 12) ' calculate solar
time of sunrise
HD = 2 * (HAS - 12) ' calculate hours
of daylight
' Display results
''Text = "At Solar Time: " & Format(T, "##.000") & " (hr)" & vbCrLf
Text = Text & "Solar Time: " & DecimalToHMS(ST) & vbCrLf
Text = Text & "Hour Angle: " & Format(Degrees(HA), "###.00") & "
(deg)" & vbCrLf
Text = Text & "Declination: " & Format(Degrees(DE), "###.00") & "
(deg)" & vbCrLf
Text = Text & "Sun Altitude Angle: " & Format(Degrees(AL), "###.00") &
" (deg)" & vbCrLf
Text = Text & "Sun Zenith Angle: " & Format(Degrees(ZE), "###.00") & "
(deg)" & vbCrLf
Text = Text & "Sun Azimuth Angle: " & Format(Degrees(AZ), "###.00") &
" (deg)" & vbCrLf
Text = Text & "Time of Sunset (solar time): " & Format(HAS, "###.000")
& " (hr)" & vbCrLf
Text = Text & "Time of Sunrise (solar time): " & Format(HAR,
"###.000") & " (hr)" & vbCrLf
Text = Text & "Hours of Daylight: " & Format(HD, "###.00") & " (hr)" &
vbCrLf
''Text = Text & "Angle of Incidence on Collector: " &
Format(Degrees(CI), "###.00") & " (deg)" & vbCrLf
Me.Results = Text ' display results
***********************************************************************************
Public Const Pi = 3.14159265 ' define pi
Public Function Radians(Degree As Double) As Double
' convert degrees to radians
Radians = Degree * Pi / 180 ' calculate and
return degrees converted to radians
End Function
Public Function Degrees(Radian As Double) As Double
' convert radians to degrees
Degrees = Radian * 180 / Pi ' calculate and
return radians converted to degrees
End Function
Public Function EquationOfTime(DayNumber As Double) As Double
' Equation of Time using day number
Dim R As Double ' radians
R = Radians((360 * (DayNumber - 1)) / 365.242) ' load radians
EquationOfTime = 0.258 * Cos(R) - 7.416 * Sin(R) - 3.648 * Cos(2 *
R) - 9.228 * Sin(2 * R)
End Function
Public Function LongitudeCorrection(TimeZone As Double, Longitude As
Double) As Double
' Longitude Correction using time zone and longitude
LongitudeCorrection = (15 * TimeZone - Longitude) / 15 ' calculate and
return solar time
End Function
Public Function LocalTime(ST As Double, DST As Double, EOT As Double,
LC As Double) As Double
' Local Time using solar time, daylight saving time, equation of time,
and longitude correction
LocalTime = ST - (EOT / 60) + LC + DST ' calculate and
return local time
End Function
Public Function SolarTime(LTD As Double, DST As Double, EOT As Double,
LC As Double) As Double
' Solar Time using local time decmal, daylight saving time, equation
of time, and longitude correction
SolarTime = LTD + (EOT / 60) - LC - DST ' calculate and
return solar time
End Function
Public Function DecimalToHMS(X As Double) As String
' Return time in 24Hr. string formatted 19:29:12
Dim Hrs As Integer ' hours
Dim Mins As Integer ' minutes
Dim Secs As Integer ' seconds
Hrs = Int(X) ' calculate hours
Mins = Int(60 * (X - Hrs)) ' calculate
minutes
Secs = Int(3600 * (X - Hrs - Mins / 60)) ' calculate
seconds
DecimalToHMS = Format(Hrs, "00") & ":" & Format(Mins, "00") & ":" &
Format(Secs, "00")
End Function
' arc sine
' error if value is outside the range [-1,1]
Function ASin(value As Double) As Double
If Abs(value) <> 1 Then
ASin = Atn(value / Sqr(1 - value * value))
Else
ASin = 1.5707963267949 * Sgn(value)
End If
End Function
' arc cosine
' error if NUMBER is outside the range [-1,1]
Function ACos(ByVal number As Double) As Double
If Abs(number) <> 1 Then
ACos = 1.5707963267949 - Atn(number / Sqr(1 - number * number))
ElseIf number = -1 Then
ACos = 3.14159265358979
End If
'elseif number=1 --> Acos=0 (implicit)
End Function
' arc cotangent
' error if NUMBER is zero
Function ACot(value As Double) As Double
ACot = Atn(1 / value)
End Function
' arc secant
' error if value is inside the range [-1,1]
Function ASec(value As Double) As Double
' NOTE: the following lines can be replaced by a single call
' ASec = ACos(1 / value)
If Abs(value) <> 1 Then
ASec = 1.5707963267949 - Atn((1 / value) / Sqr(1 - 1 / (value *
value)))
Else
ASec = 3.14159265358979 * Sgn(value)
End If
End Function
' arc cosecant
' error if value is inside the range [-1,1]
Function ACsc(value As Double) As Double
' NOTE: the following lines can be replaced by a single call
' ACsc = ASin(1 / value)
If Abs(value) <> 1 Then
ACsc = Atn((1 / value) / Sqr(1 - 1 / (value * value)))
Else
ACsc = 1.5707963267949 * Sgn(value)
End If
End Function
>
> I like the spa idea, economy of scale pricing and availability.
>
> Did you ever figure out the head & flow for your system?