Showing posts with label sunrise. Show all posts
Showing posts with label sunrise. Show all posts

Saturday, December 7, 2019

HP 42S and DM42: Solar Declination, Zenith, and Sunrise

HP 42S and DM42: Solar Declination, Zenith, and Sunrise

Introduction

The program SUNS will calculate:

1.  Approximation declination given month and day.  A 365-year is assumed.

δ ≈ 23.45° sin(.9863 * (284 + n))

where n is the nth day of the year:

If month = 1 or month = 2, then:
n = IP(30.6 * month + 368.8) + day - 399

If month ≥ 3 then:
n = IP(30.6 * month + 1.6) + day - 34

2.  Zenith angle θ:

θ ≈ acos(sin δ * sin ϕ + cos δ * cos ϕ * cos hour_angle)

where:
ϕ = latitude, north is positive
hour_angle = (12 - number of hours before noon) * 15

3.  Approximate time of sunrise:

ω ≈ acos(-tan ϕ * tan δ)
Sunrise time ≈ (12 - ω/15) converted to HMS

The program was entered on a HP 42S, and should work for the Free42 and Swiss Micros DM42.

HP 42S/DM42 Program SUNS

00 {206-Byte Prgm}
01 LBL "SUNS"
02 DEG
03 "MONTH?"
04 PROMPT
05 STO 01
06 "DAY?"
07 PROMPT 
08 STO 02
09 "HRS BEFORE NOON"
10 PROMPT 
11 STO 03
12 "LAT (N+)?"
13 PROMPT
14 →HR
15 STO 04
16 RCL 02     // calculate n
17 RCL 01
18 CF 00
19 3
20 X>Y?
21 SF 00
22 R↓
23 30.6
24 *
25 1.6
26 +
27 FS? 00
28 367.2
29 FS? 00
30 +
31 IP
32 +
33 34
34 -
35 FS? 00
36 365
37 FS? 00
38 -
39 CF 00
40 STO 11
41 284     // calculate δ
42 +
43 0.9863
44 *
45 SIN
46 23.45
47 * 
48 STO 12
49 "DEC="
50 ARCL ST X
51 AVIEW 
52 STOP
53 12
54 RCL- 03
55 15
56  *
57 STO 13
58 RCL 12   // calculate θ
59 SIN
60 RCL 04
61 SIN
62 *
63 RCL 12
64 COS
65 RCL 04
66 COS
67 *
68 RCL 13
69 COS 
70 *
71 +
72 ACOS
73 STO 14
74 "ZENITH="
75 ARCL ST X
76 AVIEW
77 STOP
78 RCL 04   // calculate ω
79 TAN
80 +/-
81 RCL 12
82 TAN
83 *
84 ACOS
85 15
86 ÷
87 12
88 X<>Y
89 -
90 →HMS
91 STO 15
92 "SUNRISE="
93 ARCL ST X
94 AVIEW
95 END

Variables:
R01 = month
R02 = day
R03 = hours before moon
R04 = latitude

R11 = n,  nth day of the year
R12 = δ,  declination
R13 = hour_angle
R14 = θ,  zenith
R15 = ω, approximate sunrise

Example

March 15, 8:00 AM (4 hours before noon), latitude is 40°

Results:
DEC = -2.8191   (-2.8191°)
ZENITH = 114.4672
SUNRISE = 6.0928  (around 6:09:28)

Remember, these results are approximate!

Source:
Hewlett Packard.  "Solar-Beam Irradiation"  Hewlett Packard User's Library Solution:  Solar Engineering.  HP 41C  January 1984.

Eddie

All original content copyright, © 2011-2019.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

Monday, January 28, 2019

HP 71B: Linear Regression, Open Channel, Sunrise/Sunset, Musical Mini-Piano

HP 71B:  Linear Regression, Open Channel, Sunrise/Sunset, Musical Mini-Piano

Feel free to use this pic whenever it's Friday.  Even if it's Monday.  :) 


Linear Regression with a User Keyboard

This program creates a user keyboard with the following keys defined:

[ I ]  Clears the statistics array and variables
[ A ]  Add a data point X,Y: the sample size is shown
[ D ]  Delete a data point X,Y:  the sample size is shown
[ M ] Sample Mean for X and Y data.  Press CONT for mean of Y values.
[ S ] Sums for X and Y data.  Press CONT for sum of Y values.
[ E ]  Standard Deviation for X and Y data.  Press CONT for standard dev. of Y values.
[ R ]  Execute Linear Regression.  A = intercept, B = slope, correlation is calculated, fit to the line Y = A + B*X
[ H ]  Help:  cycles what all the keys do
[ X ] Clears all the user keys, prepares you to go to the next program

PROGRAM STATLIN
689 bytes, 1/26/2019

10 DEF KEY "I", 'RUN 110'
20 DEF KEY "A", 'RUN 200'
30 DEF KEY "D", 'RUN 300'
40 DEF KEY "M", 'RUN 400'
45 DEF KEY "S", 'RUN 440'
50 DEF KEY "E", 'RUN 500'
60 DEF KEY "R", 'RUN 600'
70 DEF KEY "X", 'RUN 700'
75 DEF KEY "H", 'RUN 750'
80 USER ON
90 END

110 DESTROY S,A,B,X,Y,H$,I
120 STAT S(2) @ PRINT "ALL CLEAR"
130 END

200 INPUT "+ X,Y:";X,Y
210 ADD X,Y & DISP "N=";TOTAL(0)
220 END

300 INPUT "- X,Y:";X,Y
310 DROP X,Y & DISP "N=";TOTAL(0)
320 END

400 PRINT "X-BAR=";MEAN(1) @ PAUSE
420 PRINT "Y-BAR=";MEAN(2)
430 END

440 PRINT CHR$(28);"X=";TOTAL(1) @PAUSE
450 PRINT CHR$(28);"Y=";TOTAL(2)
460 END

500 PRINT "sX:";SDEV(1) @ PAUSE
510 PRINT "sY:";SDEV(2)
520 END

600 LR 2,1,A,B
610 PRINT "INT=";A @ PAUSE
620 PRINT "SLP=";B @ PAUSE
630 PRINT "r=";CORR(2,1) @ PAUSE
640 PRINT "Y=";A;"+";B;"X"
650 END

700 PURGE KEYS @ USER OFF
710 PRINT "EXIT COMPLETE"

750 FOR I=1 TO 8
760 READ H$ @ PRINT H$ @ WAIT 1
770 DATA "I: CLEAR","A: ADD","D: DEL","M: MEAN","S: SUMS","E: SDEV","R: A+BX","X: EXIT"
780 NEXT I
790 PRINT "READY." @ END

Example to try:

Data:  X,Y
-5.56, 0.79
-4.30, 0.84
1.86, 1.93
2.24, 2.01
3.95, 2.26

To add data:  (in USER mode) [ A ] -5.56, 0.79 [END LINE] (repeat for all data points)

Results:  n = 5

Mean:
[ M ]  "X-BAR=" -0.362  [ f ] [ + ] (CONT) "Y-BAR=" 1.566

Sums:
[ S ]  "∑X=" -1.81 [ f ] [ + ] (CONT) "∑Y=" 7.83

Standard Deviations:
[ E ] "sX=" 4.26696847891 [ f ] [ + ] (CONT) "sY=" 0.696512742166

Linear Regression:
[ R ] "INT=" 1.62489805306  [ f ] [ + ] (CONT)
"SLP=" 0.162701804029 [ f ] [ + ] (CONT)
"r=" 0.996741950615 [ f ] [ + ] (CONT)
"Y=1.6248905306 + 0.162701804029 X"

Open Channel Parameters

Source: 

Michael R. Lindberg, PE  Civil Engineering Reference Manual for the PE Exam 11th Edition  Professional Publications Inc., Belmont, CA  2008  ISBN-13:  978-1-59126-129-2

The program OPENFLOW calculates the following:

Area
Wetted Perimeter
Hydraulic Radius
Hydraulic Depth
Uniform Section Factor

of conductors of four shapes: rectangle, trapezoid, triangle, and circle.



PROGRAM OPENFLOW
781 bytes, 1/25/2019

10 DESTROY K,D,B,P,R,T,H,W
20 DEGREES
30 DISP "1. RECTANGLE" @ WAIT 1
40 DISP "2. TRAPEZOID" @ WAIT 1
50 DISP "3. TRIANGLE" @ WAIT 1
60 DISP "4. CIRCLE" @ WAIT 1
70 DISP "ELSE. REPEAT" @ WAIT .5
80 INPUT "CHOICE (1-4,E):"; K
90 IF K=1 THEN 1010
100 IF K=2 THEN 2010
110 IF K=3 THEN 3010
120 IF K=4 THEN 4010
130 GOTO 30

1010 INPUT "WIDTH,DEPTH:";W,D
1020 A=D*W @ P=2*D+W @ R=A/P
1030 H=A/W @ S=A*R^(2/3)
1040 GOTO 5010

2010 INPUT "DEPTH:";D
2012 INPUT "WIDTH-LONG:";W
2014 INPUT "WIDTH-SHORT:";B
2016 INPUT "ANGLE:";T
2020 A=D*(B+D/TAN(T)) @ P=B+2*(D/SIN(T)) @ R=A/P
2030 H=A/W @ S=A*R^(2/3)
2040 GOTO 5010

3010 INPUT "WIDTH:";W
3012 INPUT "DEPTH:";D
3014 INPUT "ANGLE:";T
3020 A=D^2/TAN(T) @ P=2*D/SIN(T) @ R=A/P
3030 H=A/W @ S=A*R^(2/3)
3040 GOTO 5010

4010 INPUT "RADIUS:";R
4012 INPUT "ANGLE:";T @ T=PI*T/180
4014 RADIANS
4020 A=1/8*(T-SIN(T))*D^2 @ P=T*D/2 @ R=A/P
4030 H=A/D @ S=A*SQR(D)
4040 GOTO 5010

5010 PRINT "AREA=";A @ PAUSE
5020 PRINT "WET PERIM.=";P @ PAUSE
5030 PRINT "HYD. RADIUS=";R @ PAUSE
5040 PRINT "HYD. DEPTH=";H @ PAUSE
5050 PRINT "SECTION FACTOR=";S
5060 END


Approximate Time of Sunrise and Sunset

Source:

Hewlett Packard "HP-65 Aviation Pac" 1974

The program SUNTIME approximates the time of sunset and sunrise based on a date in a general 365-day calendar, the person's location (longitude (east is negative, west is positive) and latitude (north is positive, south is negative)), and the time zone.

Time Zone Table (United States/Mexico/Canada) 
Hours from GMT:
Hawaii:   Standard and Daylight: -10
Alaska:  Standard: -9, Daylight: -8
Pacific:  Standard: -8, Daylight: -7
Mountain: Standard: -7, Daylight: -6
Central: Standard: -6, Daylight: -5
Eastern: Standard: -5, Daylight: -4

Program SUNTIME
494 bytes, 1/24/2019

10 DESTROY T,E,D,A,Z,G,C
11 DESTROY S,S1,S2,S3
12 DESTROY O1,O2,O3,O,U1,U2,U3,U
14 DEGREES
16 INPUT "MONTH: ";M
20 INPUT "DAY: ";D
26 INPUT "LONG (E/W):D,M,S:";O1,O2,O3
27 O=O1+O2/60+O3/3600
30 INPUT "LAT (S/N):D,M,S:";U1,U2,U3
32 U=U1+U2/60+U3/3600
35 INPUT "TIME ZONE:";Z
40 T=.988*(D-1+30.3*(M-1))
45 E=.123*COS(T+87)-1/6*SIN(2*T+20)
50 C=-23.439*COS(T+10)
55 S=(O-ACOS(-TAN(C)*TAN(U)))/15-E+12+Z
57 S1=IP(S)
59 S2=IP(FP(S)*60)
61 S3=FP(FP(S)*60)*60
65 DISP "Sunrise: ";S1;":";S2;":";S3 @ PAUSE
75 N=(O+ACOS(-TAN(C)*TAN(U)))/15-E+12+Z
77 N1=IP(N)
79 N2=IP(FP(N)*60)
81 N3=FP(FP(N)*60)*60
85 DISP "Sunset: ";N1;":";N2;":";N3

Example:
Time:  January 26  (Month = 1, Day = 26)
Place:  Farifield, CA:   38°15′28″N 122°3′15″W
Time Zone: -8 (Standard)

Inputs:
MONTH: 1
DAY: 26
LONG: 122,3,15
LAT: 38,15,28
TIME ZONE: -8

Results:
Sunrise: 7 : 24 : 19.09497708
Sunset: 17 : 16 : 17.62419468

Musical Mini-Piano

Key map:

[ A ]:  A
[ W ]:  A#
[ S ]: B
[ D ]: C
[ R ]: C#
[ F ]: D
[ T ]: D#
[ G ]: E
[ H ] : F
[ U ]: F#
[ J ]: G
[ I ]: G#
[ K ]: A (higher octave)

[ O ]: One octave higher
[ L ]:  One octave lower

[ P ]: Double the length of the note
[ = ]: Halve the length of the note

[ X ]:  Exit, clears all the user keys

Default octave:  A4 (220 HZ) to A5 (440 Hz)
Default note length:  1/4 second

Program PIANO
743 bytes, 1/27/2019

100 DESTROY A,N,P
110 A=2^(1/12) @ N=0 @ P=0
112 DEF KEY "A", 'BEEP 220.0*2^N,.25*2^P': ! A
114 DEF KEY "W", 'BEEP 233.1*2^N,.25*2^P': ! A#
116 DEF KEY "S'", 'BEEP 246.9*2^N,.25*2^P': ! B
118 DEF KEY "D", 'BEEP 261.6*2^N,.25*2^P': ! C
120 DEF KEY "R", 'BEEP 277.2*2^N,.25*2^P': ! C#
122 DEF KEY "F", 'BEEP 293.7*2^N,.25*2^P': ! D
124 DEF KEY "T", 'BEEP 311.0*2^N,.25*2^P': ! D#
126 DEF KEY "G", 'BEEP 329.6*2^N,.25*2^P': ! E
128 DEF KEY "H", 'BEEP 349.2*2^N,.25*2^P': ! F
129 DEF KEY "J", 'BEEP 392.0*2^N,.25*2^P': ! G
130 DEF KEY "U", 'BEEP 370.0*2^N,.25*2^P': ! G#
132 DEF KEY "I", 'BEEP 415.3*2^N,.25*2^P': ! F
134 DEF KEY "K", 'BEEP 440.0*2^N,.25*2^P': ! A
136 DEF KEY "O", 'N=N+1@ PRINT "OCTAVE UP" ':
138 DEF KEY "L", 'N=N-1 @ PRINT "OCTAVE DOWN" ':
140 DEF KEY "P", 'P=P+1 @ PRINT "NOTE x2" ':
142 DEF KEY "=", 'P=P-1 @ PRINT "NOTE /2" ': 
144 DEF KEY "X", 'RUN 400':
146 USER ON
148 END
400 DESTROY A,N,P
410 PURGE KEYS
420 USER OFF
430 PRINT "EXIT COMPLETE"
440 END

Eddie

All original content copyright, © 2011-2019.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.

HP 71B Basic and Casio fx-CG 100: Weighted Random Sample

HP 71B Basic and Casio fx-CG 100: Weighted Random Sample Introduction In calculators, it is fairly easy to generate a rand...