Auringon korkeuden yhtälö

Seuraa 
Viestejä45973
Liittynyt3.9.2015

Auringon korkeus horisontista asteina ajan funktiona:

h(t) = -23,44cos(180(D)/182,5) - (90 - L)cos(180(60(hh)+(mm)+(ee))/720)

jossa D on aika vuorokausina talvipäivänseisauksesta (22.12).
jossa L on leveysaste
jossa hh on kellonajan tuntiosa
jossa mm on kellonajan minuuttiosa
jossa ee on erotus minuutteina normaaliajasta, jossa aurinko saavuttaa huippunsa klo 12 ja alimman arvonsa klo 00. (esim. Espoossa talviaikaan -22 ja kesäaikaan -22 - 60 = -82 .

----------

Tuota yhtälöä ehdin käyttää jonkun aikaa kunnes pettymyksekseni huomasin, että esim. päiväntasaajalla yhtälö väittää, että aurinko pysyisi tasauspäivänä pidemmän aikaa 90 asteen tienoilla kuin mitä se oikeasti pysyy.

Päiväntasaajalla auringon kuuluisi tasauspäivänä nimittäin oikeasti edetä taivaan halki tasaisesti 1 aste / 4min. Yhtälö ei siis päde ainakaan lähellä päiväntasaajaa oleville leveyspiireille. Meidänkään leveyspiirille, 60 astetta, se ei täydellisesti päde, mutta on sentään suuntaa antava.

Olen koittanut tässä kehitellä pätevämpää yhtälöä auringon korkeudelle. Netistä en ole vastaavaa löytänyt. Onko kellään ideoita?

Kommentit (6)

Neutroni
Seuraa 
Viestejä26890
Liittynyt16.3.2005
sieniukko

Olen koittanut tässä kehitellä pätevämpää yhtälöä auringon korkeudelle. Netistä en ole vastaavaa löytänyt. Onko kellään ideoita?

Ratalaskut ovat yksinkertaisimmillaankin liian työläitä selitettäväksi täällä. Käy lainaamassa kirjastosta Tähtitieteen perusteet. Sieltä löydät Maan ja muiden planeettojen rataparametrit ja ohjeet miten niistä lasketaan taivaankappaleiden sijainnit muutaman vuosikymmenen ajan muutaman kaariminuutin tarkkuudella. Laskujen ohjelmointi tietokoneelle ei ole vaikeaa.

Nasalla löytyy sitten ohjelma, joka laskee sijainnit huomoiden kaikenlaisia periodisia häiriöitä. Katso: http://ssd.jpl.nasa.gov/?horizons .

CE-hyväksytty
Seuraa 
Viestejä29006
Liittynyt30.4.2005

Mä tein tämmösen aurinkopaneelin kääntelyä varten. En vaan osaa lähettää noita kulmia pc:ltä aaveeärrälle, kun oon niin tumpelo.

Turha tämmösen kanssa on kyllä mitään sekunteja ja asteen osia kyttäillä...

#include    "stdafx.h"
#include    "stdio.h"
#include    "stdlib.h"
#include    "windows.h"
#include    "conio.h"
#include    "math.h"
#include    "ctime"
using namespace std;

int main ()
{
        float pi = 3.14159265;
        float latitude = 0;
        float lognitude = 0;
        float x_angle=0;
        float y_angle=0;

        printf("Latitude: ");
        scanf("%f",&latitude);
        printf("Lognitude: ");
        scanf("%f",&lognitude);

    while(1)
    {       
        time_t now = time(0);
        tm *ltm = localtime(&now);

        float day;
        int this_day = ltm->tm_mday;                            // tämä päivä
        int this_month = ltm->tm_mon + 1;                    // tämä kuukausi
        int this_hour = ltm->tm_hour;                            // tämä tunti
        float this_min = ltm->tm_min;                            // tämä minuutti
        float this_sec = ltm->tm_sec;                            // tämä sekunti

        /* tunteja tänään kulunut */
        float hours = this_hour + this_min / 60 + this_sec / 3600;   
        /* korjaus normaaliaikaan tunteina */
        float fix = (30 - lognitude) * 0.06666667;               

        struct tm setdate;
        setdate = *localtime(&now);

        setdate.tm_hour = 13;                                    // asetettu aika kevätpäivän tasaus
        setdate.tm_min = 41;
        setdate.tm_sec = 0;
        setdate.tm_mon = 2;                                      // maaliskuu
        setdate.tm_mday = 20;                                    // 20 pv.

        double seconds = difftime(now,mktime(&setdate));                // sekunnit asetetusta ajasta

        printf("%.1f %.1f    ", latitude, lognitude);
        printf("%2d.%2d  ", this_day, this_month);               
        printf("%2d.%2.f    ", this_hour, this_min);           

        day = seconds / 86400;                                    // monesko päivä sitten asetetun ajan
       
        printf ("day %.f ", day);
        printf(" hours %.2f    ", hours);

        y_angle = (-cos(2*pi*(hours-fix)/24)) * ((180-2*latitude)/2) + (sin((2*pi/365)*day)*23.44);

        x_angle = ((hours-fix)*15-180);

        printf("y = %.1f  ", y_angle);
        printf("x = %.1f\n", x_angle);

        Sleep(10000);
    }
  return 0;
}

CE-hyväksytty
Seuraa 
Viestejä29006
Liittynyt30.4.2005

Joo. En osaa mitään visualstudiolla tehtyä pätkää laittaa laittamaan sarjaporttiin mitään.
Anteeksi jos häiriköin tässä ketjussa, mutta kun tämä asia ei kuulu melkein uusiin telaketjuihin. Ei ainakaan mulla sodan sytyttyä ole mitään tiatsikkaa millä laskea jotain kulmia. Teen sitten aaveeärrälle koko homman. Hieman tarkka kello pitäisi vaan keksiä. Siinä olisi tosin  Arduinolla toimisi noi trikonometriset funktiot suoraan, mutta perinteisesti paljaalla ei.

Se on juhlaa kun saa ydintuhon jälkeen aurinkopaneeleista virtaa juuri tarpeeksi kääntämään aurinkopaneelia aurinkoon päin...

korant
Seuraa 
Viestejä8326
Liittynyt16.12.2013
sieniukko

Päiväntasaajalla auringon kuuluisi tasauspäivänä nimittäin oikeasti edetä taivaan halki tasaisesti 1 aste / 4min.
Aurinko vaeltaa kyllä taivaalla tuota vauhtia mutta ei leveyspiireihin nähden vaan pituuspiireihin nähden Maan pyörimisen johdosta. Kyllä aurinko etenee vuorokauden aikana kevät- tai syyspäivän tasauksen aikaan hyvin pienen kulman päiväntasaajaan nähden, lienee vain jokunen kulmaminuutti.

pöhl
Seuraa 
Viestejä878
Liittynyt19.3.2005

Voipi olla melko pitkä lasku. Siskoni kehitti joskus auringin nousuun ja laskuun yhtälön, mutta se heitti muutaman minuutin, ilmeisesti kun ei ottanut huomioon ilmakehän taittamista. Netistä löytyi tällainen artikkeli tuohon korkeuteen: http://www.physics.arizona.edu/~cronin/Solar/References/Irradiance%20Models%20and%20Data/SPR07.pdf . Nyt kun kysyin, perusmalli auringon laskuun ja nousuun on johdettu osoitteessa http://www.artofproblemsolving.com/Forum/viewtopic.php?f=332&t=569192 , mutta siinä ei ole otettu kaikkia tekijöitä huomioon.

CE-hyväksytty
Seuraa 
Viestejä29006
Liittynyt30.4.2005
Puuhikki

Voipi olla melko pitkä lasku. Siskoni kehitti joskus auringin nousuun ja laskuun yhtälön, mutta se heitti muutaman minuutin, ilmeisesti kun ei ottanut huomioon ilmakehän taittamista. Netistä löytyi tällainen artikkeli tuohon korkeuteen: http://www.physics.arizona.edu/~cronin/Solar/References/Irradiance%20Models%20and%20Data/SPR07.pdf . Nyt kun kysyin, perusmalli auringon laskuun ja nousuun on johdettu osoitteessa http://www.artofproblemsolving.com/Forum/viewtopic.php?f=332&t=569192 , mutta siinä ei ole otettu kaikkia tekijöitä huomioon.

Jos se muutaman minuutin heitti niin kyllä siinä muutakin oli pielessä kuin ilmakehän taittaminen.

Uusimmat

Suosituimmat