Forum: Mikrocontroller und Digitale Elektronik Berechnund der Sonnenposition mit C


von Sekoya A. (sekoya)


Lesenswert?

Hi,
hat jemand zufällig dieses Programm schon programmiert?

von neeeee (Gast)


Lesenswert?

Zuerst sollte man begriffen haben was denn zu rechnen ist. Reinhaemmern 
ist dann nicht mehr so schwierig. Was soll's denn werden ? Ein Heliostat 
?

von Michael H. (mah)


Lesenswert?


von hans (Gast)


Lesenswert?

Hier gibt es alle Formeln:

http://lexikon.astronomie.info/zeitgleichung/

C mußt du selber entsprechend beiner Aufgabe/Rechner schreiben.

gruß hans

von Sekoya A. (sekoya)


Lesenswert?

Hi,
zuerst danke ihnen,
muss eine Entwicklung mir controllbasieren Steuerung mit einem 
Spiegelsystem aufbauen und mit Keil-C compile programmieren. Da nutze 
ich als Mikrocontroller C8051...

Michael,

bist du dir sicher,dass es zu lange und komplisiert ist ?

gruß,

baris

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Baris Cimen wrote:

> muss eine Entwicklung mir controllbasieren Steuerung mit einem
> Spiegelsystem aufbauen

Baust du an so was rum?

Sun Track - Reflects Light into your Home
http://hackedgadgets.com/2008/12/06/sun-track-reflects-light-into-your-home/

von Sekoya A. (sekoya)


Lesenswert?

Hi,

Stefan wrote :
              Baust du an so was rum?


ja, ich werde so ähnlich anbauen, also ist das meine aufgabe.
hast du schon solches projekt gemacht ?

von neeeee (Gast)


Lesenswert?

@StefanB,
Das gezeigte Projekt ist machanisch maximal mager. Dank fehlenden 
Gegengewichten ziehen die Motoren maximal viel strom. Durch eine 
geschickte Wahl der Achsen kann man eine der Achsen quasi weglassen, 
resp muesste die nur eine kleine Bewegung ueber die ganze Saison machen.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Baris Cimen wrote:

> ja, ich werde so ähnlich anbauen, also ist das meine aufgabe.
> hast du schon solches projekt gemacht ?

Nein, ist nur kürzlich (6.12.) durch die verschiedenen DIY Blogs 
gegangen und ich hatte es noch präsent, weil mir interessant vorkommt.

@ neeeee

Diesem Einwand müsste man nach gehen. Die Motoren sind ja reguläre 
Motoren für Sat-Schüsseln. In den Abbildungen und in den 
Firmenprospekten sehe ich nie Gegengewichte. Das Datenblatt zum 
Nachsehen finde ich auch nicht auf die Schnelle beim Motor-Hersteller 
(http://www.moteck.com.tw/product.asp?idproduct=52)

von Gast (Gast)


Lesenswert?

Der Wirkungsgrad dieser Antriebe ist ohnehin nicht berrauschend.
Solange man keine Solarpanels nachführen will sollte man keine
Gegengewichte benötigen. Die Motoren laufen ja nicht permanent
unter Vollast. Und auch dann wären erstmal andere Rotoren angesagt.

Ein Austausch der 150W Halogenbirne in der Wohnzimmerlampe durch
eine moderne(!) Leuchtstofflampe wäre wahrscheinlich sinnvoller.

von Tim T. (tim_taylor) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hatte sowas mal für eine selbstnachführende Solaranlage auf einem Atmega 
gebastelt, Berechnungsroutine im Anhang.

Viel Spaß damit.

von Tim T. (tim_taylor) Benutzerseite


Angehängte Dateien:

Lesenswert?

Grade gemerkt das dir noch das Zeitformat fehlt das ich dabei benutzt 
hab, fehlende Dateien im Anhang.

von Sekoya A. (sekoya)


Lesenswert?

hallo,

danke Tim,
das hilft mir bestimmt viel.

grüß
baris

von Sekoya A. (sekoya)


Lesenswert?

Hey Tim,
wie kann ich das programm aufmachen. ich habe dev-c++

soll ich erst sonnenstand.c dann unter dem zeit.c aufrufen??
habe viele varianten probiert, lauft das nicht
und habe leider wenig c kenntnisse?

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Ich würde einfach beide .c Dateien zur Projektmappe hinzufügen und im 
Hauptprogramm die Sonnenstand.h als include einbinden.
zeit.h wird dann in Sonnenstand.c eingebunden.

von Sekoya A. (sekoya)


Lesenswert?

hi Tim,
meinst du mit beiden c.Daten in einem neuen Daten hinzufügen?
und ich habe die programme überprüft,dass die alle programme miteinander 
schon eingebunden ist.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Nein, ich meine einfach das du die .c Dateien in deine 
Arbeitsmappe/Projekt/wie auch immer das bei dir heißt einbindest, 
irgendwas alá "add to project" oder so. Dann schreibst du in deine 
main.c, oder wie auch immer die Datei bei dir heißt #include 
"sonnenstand.h" und gut ist.
Wobei ich dir jetzt schon empfehe mal ein C-Buch zu besorgen, sonst wird 
das nix da du die zeit.h/.c neuschreiben/anpassen musst, damit sie auf 
deinem Controller läuft.

Mfg
Tim T.

von Sekoya A. (sekoya)


Lesenswert?

hi Tim,
habe noch eine Frage. habe gemerkt,dass das mit einem mikrocontroller 
zusammen lauft. für welchen mikrocontroller hast du das programmiert?
außerdem hast du Berechnungsformel von wikipedia abgeschrieben?

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Wie bereits im ersten Post erwähnt, war das für einen AT Mega von Atmel, 
ich glaub es war für einen AT Mega 8.
In der Tat hatte ich das auf Basis des Wikipedia Artikels 
zusammengebastelt, nachdem ich vorher andere Quellen durchgelesen hatte 
und feststellen musste das dieser doch sehr bequem und umfassend zu 
diesem Thema ist.

Dabei ist mir aufgefallen das ich einen kleinen Fehler bei der Ekliptik 
eingebaut hab, es müsste:
Ekliptik=23.439-0.0000004*n;
heissen.
Was allerdings nur eine minimale Verfälschung der Rektaszension 
verursacht und mir darum bislang nicht aufgefallen ist.

Was für dich noch interessant sein könnte ist die Berechnung der 
Refraktion, hatte die auch testweise mal reingenommen aber Höhenwinkel 
Abweichungen von weniger als 3° waren mir dann doch egal, zumal die 
Korrektur entweder eh ungenau oder kompliziert (Messfühler für Luftdruck 
und Temperatur) wird.

von Hermann-Josef (Gast)


Lesenswert?

Hallo,

hier gibt es eine fertige Library:

http://libnova.sourceforge.net/

aber womöglich etwas zu 'heavy' für einen uC, naja, vielleicht kann man 
ja die notwndigen Routinen isolieren.

Gruß
Hermann-Josef

von Sekoya A. (sekoya)


Lesenswert?

wenn ich Ekliptik=23.439-0.0000004*n statt - ,+ geschrieben habe,kriege 
ich noch gute ergeibnis,sonst kriege zu weit ergeibnis.
Verfälschung der Rektaszension konnte ich nicht sehen.
aueßerdem kriege so schlimm azimutergeibnis,ich weiss es nicht ,warum?
 ich vergleiche immer bei dieser webseite
 http://www.volker-quaschning.de/datserv/sunpos/


http://libnova.sourceforge.net/
auf dieserseite gibt es wiele daten,welche von ihnen soll ich 
runterladen?  und sie sind nicht mit c-code geschrieben.

gruss

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Poste mal deinen Code, bei mir ists auf ~1 Grad genau.

Unterschiede bei der Rektaszension wirst du im Vergleich mit irgeneiner 
Seite die sie nicht berücksichtigt auch schlecht finden.
Was allerdings auch schlecht möglich ist, da man dafür die 
Ortstemperatur/Luftdruck bräuchte.

von Tim T. (tim_taylor) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hab grade nochmal mal nachgesehen, mit meinem Algorithmus komme ich
auf folgede Werte für Berlin (52.5°N, 13.5°E):

Höhenwinkel: 10.6256
Azimut: 154.862

Die von dir genannte Webseite liefert dazu:
Höhenwinkel: 10.625
Azimut: 154.893

Aber da ich irgendwie einen guten Tag habe, liefer ich dir auch den 
Source für Visual C++, siehe Anhang.

Wenns beim Einbau in DEV-C++ jetzt allerdings Probleme gibt, sind das 
deine Probleme...

von Sekoya A. (sekoya)


Angehängte Dateien:

Lesenswert?

ok,das findest du anbei meinen Code,
schau mal ob was nicht stimmt,bitte . Sonnenposition.c ist gleiche(von 
dir),Zeit.c nutze ich nicht,Sonnenposition.h ist gleiche (von dir),ich 
habe nur ganz unten extra

Koordinaten Positionsbestimmung(JDatum, Standort);
JDatum Datum2JDatum(Zeit);

#endif

addiert.

von Sekoya A. (sekoya)


Angehängte Dateien:

Lesenswert?

außerdem habe ich zeit.h auch verändert.

von Sekoya A. (sekoya)


Lesenswert?

hi Tim,
kannst du mir dein email adrese geben,oder sekoya@freenet.de senden,
somit kann ich dir und kannst du mir alle daten senden?

von Tim T. (tim_taylor) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hoppala, die sonnenposition.c die ich die ganz am Anfang gepostet hatte, 
war noch eine Alte Version mit einem dummen Fehler und ohne Refraktion.

Verbesserung anbei.

PS: Die Zeit muss als GMT angegeben werden, also momentane Uhrzeit -1 
Stunde, da in Deutschland zur Zeit GMT + 1 herrscht.

von Sekoya A. (sekoya)


Lesenswert?

hi Tim,
obwohl ich wieder korrigiert und dein PS aufmerksam bekommen habe,wie du 
verbesseriet hast, kriege ich wieder nicht gutes Ergeibnis.
Ich denke,dass du irgendwo Berechnungsfehler gemacht hast?

von Maxxx (Gast)


Lesenswert?

hey leute,

hat sowas schon jemand mit lichtsensoren probiert oder ist es nicht so 
gut, schön, günstig oder was auch immer ?


mfg Maxxx

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Baris C. wrote:
> hi Tim,
> obwohl ich wieder korrigiert und dein PS aufmerksam bekommen habe,wie du
> verbesseriet hast, kriege ich wieder nicht gutes Ergeibnis.
> Ich denke,dass du irgendwo Berechnungsfehler gemacht hast?

Definitiv nein, ich habs mit denen von dir gelieferten Dateien 
kompiliert dazu nur die kleinen Änderungen in der sonnenposition.c (3 
Posts höher).

Der "Fehler" liegt woanders:

Auf der Seite http://www.volker-quaschning.de/datserv/sunpos/ wird 
standardmäßig der Algorithums NREL SUNPOS benutzt, der allerdings nach 
Sonnenuntergang "Unsinn" liefert. Wenn du dort den Algorithmus SUNAE 
oder DIN 5034 benutzt solle es auch hinkommen wenns dunkel ist.

Kurzum es passt genau.

Hab grade genauer geschaut, die Abweichung zwischen DIN 5034 und meinem 
Programm beträgt weniger als 0,02° im Azimut und 0,05° im Höhenwinkel. 
Für meinen Anspruch ist das hinreichend genau...


@Maxxx:

>hat sowas schon jemand mit lichtsensoren probiert oder ist es nicht so
>gut, schön, günstig oder was auch immer ?

Ja hab ich und alles 3 trifft zu. Präzision ist mit dem Algorithmus 
höher, eleganter sowiso und ohne externe Sensoren auch immer günstiger 
als mit. Von Schmutz auf den Sensoren oder Alterung ganz zu schweigen.

von Tim T. (tim_taylor) Benutzerseite


Angehängte Dateien:

Lesenswert?

Oops, jetzt wirds peinlich^^

Vorheriges Posting hat Bestand bis auf die Tatsache das im Quelltext 
überall Längen und Breitengrade verdreht hab. Ich habs nur nicht gemerkt 
da ich es auch immer falsch rum eingegeben habe...
Sorry dafür.

Im Anhang nochmal eine Korrektur der Sonnenposition.c

von Sekoya A. (sekoya)


Lesenswert?

ich verstehe gar nicht,
warum krige ich nicht die ergeibnisse wie deine ??
beispiel,
die kriege ich von der webseite;
koordinaten ,Berlin 52.5, 13.5
algorithmus: DIN 5034,
Berechnungszeitpunkt :  19.12.2008  19:25:08

Sonnenhöhe : -30.666
Sonnenazimuth : 270.821

die kriege ich mit dem programm;
Berechnungszeitpunkt :  19.12.2008  19:25:08

hoehenwinkel :-72.609305
Sonnenposition Azimut : 233.065007
*******************************************
wenn ich Berechnungszeitpunkt :  20.12.2008  19:25:08  nehme,

hoehenwinkel :-80.082380
Sonnenposition Azimut:180.543649

was denkst du daran ??

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

gib die Daten mal so ein:

Sekunden: 8
Minute: 25
Stunde: 19
Tag: 19
Monat: 12
Jahr: 2008
Standort - Breitengrad: 52.5
Standort - Laengengrad: 13.5
Positionsbestimmung:
 Aktuelle Zeit: 19.12.2008 19:25:8
 Aktueller Standort: 52.500000 Breite, 13.500000 Laenge
 Sonnenposition: Azimut 283.496951, Hoehenwinkel -39.730071

Drücken Sie eine beliebige Taste . . .




Sekunden: 8
Minute: 25
Stunde: 18
Tag: 19
Monat: 12
Jahr: 2008
Standort - Breitengrad: 52.5
Standort - Laengengrad: 13.5
Positionsbestimmung:
 Aktuelle Zeit: 19.12.2008 18:25:8
 Aktueller Standort: 52.500000 Breite, 13.500000 Laenge
 Sonnenposition: Azimut 270.776121, Hoehenwinkel -30.695833

Drücken Sie eine beliebige Taste . . .

von Sekoya A. (sekoya)


Lesenswert?

wie kriegst du eigentlich das
 Sonnenposition: Azimut 283.496951, Hoehenwinkel -39.730071

ich gebe Daten auch ein,wie du oben geschrieben hast,
ich kriege aber anders ??

von Hermann-Josef (Gast)


Lesenswert?

@Baris C:

Im allgemeinsten Fall lädt man sich libnova-0.12.2.tar.gz herunter, dann 
unter Linux:
1
tar xzf libnova-0.12.2.tar.gz
2
cd libnova-0.12.2
3
./configure
4
make
5
make install

Vermutlich könnte man das mit den cygwin-Tools unter Windows ähnlich 
machen. Die anderen Dateien sind Binärpakete für Debian-Linux (und 
Verwandte) jeweils für 32-Bit und 64-Bit.

Im tar.gz ist auch eine Datei libnova.proj dabei, die wurde von Visual 
C++ (Vers. 8.0) erzeugt...

Hermann-Josef

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Pack mal alle deine Projektdateien in ein Zip und lad es hier hoch, dann 
schau ich mal da drüber.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Hab nochmal deine Werte mit meinen verglichen, du machst 2 Fehler:

1. Du benutzt nicht GMT Zeit, du musst eine Stunde abziehen!
2. Du vertauschst Länge und Breite.

Beides wurde aber oben erklärt...

von Sekoya A. (sekoya)


Lesenswert?

servus,
 ich habe eigentlich Länge und Breite nicht vertauscht.
es ist aber echt komisch. obwohl ich gestern gleiche daten und methode 
benutzt habe,ist es jetzt gut gelaufen. das ist echt komisch.
danke schön für die hilfe.
Tim,
hast du dieses program für deine Abschlussarbeit programmiert oder,
wenn ich fragen darf? Ich werde es controlbasierte Spiegelsystem nutzen. 
Mit Mikrocontroller,Lichtsensor,motoren...

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Nee, das ist für meine Eltern in Spanien entstanden damit sie mehr aus 
ihrer Solaranlage rausholen konnten, der Wirkungsgrad unbeweglicher fest 
installierter Solarpanele ist sonst mehr als dürftig...

Jeden morgen beim Sonnenaufgang fährt das Ding auf Sonnenposition und 
dreht alle 15 Minuten weiter. 15 Minuten nach Sonnenuntergang legt es 
die Panels flach um möglichst wenig Windlast zu haben. Am nächsten 
Morgen dann wieder von vorne. Läuft alles auf einem Atmel AVR und das 
schon seit etwa einem Jahr oder so.

von Sekoya A. (sekoya)


Lesenswert?

hmm,
fast ähnliches projekt werde ich machen aber als masterarbiet,

bevor das system lauft,überprüft ein lichtsensor schon ,ob das 
sonnelicht ausreichend ist,oder ??
wie viele sensoren laufen mit dem system ?
außerdem nutzt system Endschalter auch ??

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Nee, den Sensor würde ich mir an deiner Stelle verkneifen, die Dinger 
werden immer mal wieder dreckig und liefern dann nur Müll.
Kannst natürlich an jeden Pin einen Sensor hängen...
Endschalter brauchte ich nicht, da ich dafür einen absolut Winkel Sensor 
hab, sonst braucht man natürlich einen.
Oder einen guten Stopper vor den die Anlage gefahrlos fahren kann.

von Sekoya A. (sekoya)


Lesenswert?

ok, wenn Wetter schlecht ist,dann,trotzdem lauft das System?
oder schaltet man mit dem Hand,statt automatisch?
ich soll leider mit Lichtsensor arbeiten.also,alle 15 Minuten berechnet 
man Sonnenposition. Darauf Mikrocontroller gibt es LCD-Display.
Kann man darauf Sonnenposition,Winkel.. sehen. mit welchem Schnittstelle 
trägt die daten von pc nach mikrocontroller. Kannst mir ein 
ablaufsplanbild senden,wenn du vorhanden hast ?

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Baris C. wrote:
> ok, wenn Wetter schlecht ist,dann,trotzdem lauft das System?
Ja.

> oder schaltet man mit dem Hand,statt automatisch?
Alles automatisch.

> ich soll leider mit Lichtsensor arbeiten.also,alle 15 Minuten berechnet
Das ist dann wohl so.

> man Sonnenposition. Darauf Mikrocontroller gibt es LCD-Display.
LCD konnte ich nicht benutzen da ich im Winter unter der 
Mindesttemperatur liege und im Sommer stellenweise drüber.

> Kann man darauf Sonnenposition,Winkel.. sehen. mit welchem Schnittstelle
> trägt die daten von pc nach mikrocontroller. Kannst mir ein
Ich hab zum Flashen ein Atmel AVR ISP MKII. Ansonsten zum Einstellen der 
Anlage einen MAX232 für die Serielle Schnittstelle, war am einfachsten.

> ablaufsplanbild senden,wenn du vorhanden hast ?
Nö, aber so schwer ist der doch nicht. Du testest alle 15 Minuten ob der 
Höhenwinkel über 0 Grad ist, wenn ja dann die Anlage drehen bis Azimut 
Soll=Azimut ist und gleiches für den Höhenwinkel. Zusätzlich kannst du 
wenn der Höhenwinkel unter 0 Grad ist die Anlage in "Nachtstellung" 
bringen.

von Sekoya A. (sekoya)


Lesenswert?

ok, das mmachst du mit diesem programm? oder
gibt es noch dazu ??
wie berechnest du der nötigen paneldrehungs (zwei achsen)
nutzst du auch zwei schrittmotoren für die drehung oder?
das System hat keineechzeituhr oder, kriegt es die Daten vom Pc ?
Das System z.B; Unterstützung einer manuellen Justierung:Kann das Panel 
manuell so gedreht werden, dass er in die richtige Richtung zeigt und 
der Controller kann von dieser Position aus weiterarbeiten.
wenn Ja, dafür hast du noch eigenes Programm, oder es ist alles drin ??

außerdem wünsche dir/euch frohliche weihnachten.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Baris C. wrote:
> ok, das mmachst du mit diesem programm? oder
> gibt es noch dazu ??
Da gibts noch zwei Files die sich um Motorensteuerung und Uart kümmern.

> wie berechnest du der nötigen paneldrehungs (zwei achsen)
> nutzst du auch zwei schrittmotoren für die drehung oder?
Ich benutze Getriebemotoren, die Paneldrehung ergibt sich aus der 
Differenz zwischen Soll und ist, wenn man vom Soll den Ist abzieht kann 
man am Vorzeichen auch die Drehrichtung sehen.

> das System hat keineechzeituhr oder, kriegt es die Daten vom Pc ?
Vom PC bekommt es nur einmal die Urzeit und die Längen/Breitendaten.
Zuerst hatte ich einen DCF77 dran der aber in Spanien nicht wirklich 
funktioniert, eine seperate RTC hab ich nicht.

> Das System z.B; Unterstützung einer manuellen Justierung:Kann das Panel
> manuell so gedreht werden, dass er in die richtige Richtung zeigt und
> der Controller kann von dieser Position aus weiterarbeiten.
> wenn Ja, dafür hast du noch eigenes Programm, oder es ist alles drin ??
Dafür kann ich die Position der Getriebemotors relativ zum Gestell 
anpassen, also rein mechanisch. Allerdings war es für mich nicht nötig 
so genau zu werden.
Aber natürlich kannst du auf den Soll oder Ist Wert immer noch ein 
Offset addieren um das in Software zu machen.


> außerdem wünsche dir/euch frohliche weihnachten.
Dito

von Sekoya A. (sekoya)


Lesenswert?

kannst du diese zwei Files auch freigeben?somit kann ich ein vorbild 
haben.
was meinst du genau mit Soll und Ist ?? was sind die eigentlich ?
ich soll die Anlage Nachstellung bringen. Wie kann ich Offset beim 
Programmieren schreiben ? welche c-code soll ich nutzen,weisst du ??
Eigentlich habe schon einen Ablaufplan gezecihnet und der hat dem Prof. 
gefallen.ich soll aber noch mehr detallierte Ablpl. zeichnen.
da hast du echt gute kenntnisse,respekt.

von Gerhard G. (gerdschi63)


Lesenswert?

Habe jetzt auch das Programm ausprobiert ,
wohne in Wien , bei mir zeigt das Programm erst um ca. 30 Minuten später
die Ergebnisse wie auf der Webseite.
Gibt es da vielleicht eine logische Erklärung dafür , oder muß
ich die Rechnungen durchstöbern.
DANKE und schönes neues Jahr.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Das Programm basiert auf GMT als Zeitbasis, für Österreich bei der 
Zeiteingabe also eine Stunde abziehen...

von Gerhard G. (gerdschi63)


Lesenswert?

Hab ich natürlich gemacht.
Glaube fast das das webprogramm nicht so genau ist.
Nebenbei läuft auch ein Programm für Sonnenauf- und Untergang.
Diese stimmt bei mir genau wie in der Tageszeitung steht,
beim Webprogramm gibt es abweichungen.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Achso, dann versuch mal http://www.volker-quaschning.de/datserv/sunpos/ 
mit dem DIN 5034 Algorithmus, der sollte mit meinem Programm 
übereinstimmen.

von Gerhard G. (gerdschi63)


Lesenswert?

Ich habs , war meiner Zeit 2000 Jahre voraus.
Jetzt funkts auf 0.5 Grad genau passt.

von Stadler (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
vielleicht bringt diese Formel was.
mfg

von Stadler (Gast)


Angehängte Dateien:

Lesenswert?

Hallo hier noch was

von Sekoya A. (sekoya)


Lesenswert?

hi,

wie kann ich die ergeibniss von sonnenberecnung an LCD übertragen, hat 
jemadn eine idea ?
wenn ich direkt programm auf µVisio3 nutze und übertragen will,kriege 
ich viele fehler ??
danke,

von Harry M. (harry4516)


Lesenswert?

auch heute, fast 12 Jahre nach diesen Beiträgen ist
der Code von Tim T. der einzig brauchbare den es für Atmel gibt. Kurz, 
ohne viel Schickschnack, effizient und vor allem aufs Grad genau.

Gruß
Harry

von solstice (Gast)


Lesenswert?

Was ist zu tun, um die Zeiten von Sonnenaufgang und Sonnenuntergang zu 
berechnen?
Die Positionsbestimmung rückwärts für Hoehenwinkel = 0 durchlaufen? 
Allerdings müsste es ja dann zwei Ergebnisse für einen Tag geben, und 
viele Ergebnisse für beliebige Tage. Dann ist wohl erst eine Annäherung 
an den Tag erforderlich.
1
typedef struct{
2
 Zeit aufgang;
3
 Zeit untergang
4
} Zeiten;
5
6
Zeiten Zeitbestimmung(JDatum Jdatum, Standort Ort)
7
{
8
Zeiten Sonnen;
9
...
10
Sonnen.aufgang = ...;
11
Sonnen.untergang = ...;
12
return Sonnen;
13
}

Oder kann jemand entsprechenden Code empfehlen?

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Ist eigentlich recht simpel, einfach den Vorzeichenwechsel beim 
Höhenwinkel beachten. Negativ nach positiv, Sonnenaufgang und umgekehrt. 
Entweder läuft man das einfach jeden Tag komplett in Minuten-Schritten 
durch oder man macht das nur für den ersten Tag und bei den folgenden 
nur noch im kleinen Bereich um die Zeit vom Vortag. Bzw. man macht es 
abgestuft, zuerst die Stunde, dann die Minute; wobei man dann aber bei 
extremen Breitengraden aufpassen muss dass die Sonne evtl. nur kurz 
dazwischen (oder auch gar nicht) auf- bzw. untergeht.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Tim T. schrieb:
> Ist eigentlich recht simpel, einfach den Vorzeichenwechsel beim
> Höhenwinkel beachten.
> ...
> Entweder läuft man das einfach jeden Tag komplett in Minuten-Schritten
> durch ...

Das ist wohl so ziemlich die stumpfsinnigste Methode.
Du hast anscheinend sämliche Bemühungen deiner Mathematiklehrer nach der 
10. Klasse selig verschlafen.

Es geht um die Bestimmung der Nullstelle und dazu gibt es bewährte 
Näherungsverfahren. Der Klassiker wäre das recht schnell konvergierende 
Newton Verfahren. Stetig und differenzierbar sollte die Höhe der Sonne 
als Funktion der Zeit wohl sein ...
https://de.wikipedia.org/wiki/Newtonverfahren

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Wolfgang schrieb:
> Tim T. schrieb:
>> Ist eigentlich recht simpel, einfach den Vorzeichenwechsel beim
>> Höhenwinkel beachten.
>> ...
>> Entweder läuft man das einfach jeden Tag komplett in Minuten-Schritten
>> durch ...
>
> Das ist wohl so ziemlich die stumpfsinnigste Methode.

Natürlich, aber auch mit Abstand die einfachste.

> Du hast anscheinend sämliche Bemühungen deiner Mathematiklehrer nach der
> 10. Klasse selig verschlafen.

Nö, eigentlich nicht, ebenso wenig die Bemühungen meiner Professoren im 
ETechnik Studium. Ich bin mir allerdings auch bewusst, das ich bei einer 
solchen Fragestellung nicht viel vom Fragenden erwarten kann, also hält 
man es einfach.

Beitrag #6519419 wurde von einem Moderator gelöscht.
Beitrag #6519429 wurde von einem Moderator gelöscht.
von Jacko (Gast)


Lesenswert?

Kommen wir mal wieder "auf den Teppich":

Für eine Solarpanel-, oder Solar-Spiegel-Nachführung, sind die 
Ekliptikvariationen über Julianische Jahrhunderte ungefähr so
notwendig, wie Nanometerschrauben beim Haareschneiden.

Mit etwas Ganzzahlrechnung und etwas Tabellendaten, die auch
in 100 Jahren noch taugen, ermittelt man aus Datum und Uhrzeit (!)
eine Ausgangsposition mit +/- 1...20° Genauigkeit in Azimut und
Elevation, oder besser Stundenwinkel und Deklination und steuert
dann mit Hilfe simpler Heliostaten-Sensorik die Konstruktion zur
optimalen Ausrichtung. FERTIG!

Aber auch wenn die hochgenauen Rechenprozeduren von Jan Meeus in den
µC gewürgt worden sind, kommt als nächstes die Frage nach verlässlichem
Datum und Zeit...

Je nach örtlichen Voraussetzungen - ist das meist das größere
Problem. ;-)

- Aber lasst euch nicht beim wechselseitigen Pöbeln stören!

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Jacko schrieb:
> Kommen wir mal wieder "auf den Teppich":
>
> Für eine Solarpanel-, oder Solar-Spiegel-Nachführung, sind die
> Ekliptikvariationen über Julianische Jahrhunderte ungefähr so
> notwendig, wie Nanometerschrauben beim Haareschneiden.

Wenn du das sagst.

> Mit etwas Ganzzahlrechnung und etwas Tabellendaten, die auch
> in 100 Jahren noch taugen, ermittelt man aus Datum und Uhrzeit (!)
> eine Ausgangsposition mit +/- 1...20° Genauigkeit in Azimut und
> Elevation, oder besser Stundenwinkel und Deklination und steuert
> dann mit Hilfe simpler Heliostaten-Sensorik die Konstruktion zur
> optimalen Ausrichtung. FERTIG!

Eventuell will man es doch etwas genauer als +-20° haben, nur mal so als 
Idee. Und mit Ganzzahlrechnung kommst du dort auch nicht sonderlich 
weit, aber egal, du scheinst eh keinen blassen Dunst von der Materie zu 
haben.

> Aber auch wenn die hochgenauen Rechenprozeduren von Jan Meeus in den
> µC gewürgt worden sind, kommt als nächstes die Frage nach verlässlichem
> Datum und Zeit...

Falls du Jean Meeus meinst, sind wir da auch schon etwas weiter, ebenso 
bei vernünftigen RTC.

> Je nach örtlichen Voraussetzungen - ist das meist das größere
> Problem. ;-)

Wie gesagt, entsprechende RTC existieren.

Aber was unterhalte ich mich wieder mit Gästen, ist eh sinnlos.

von Wolfgang (Gast)


Lesenswert?

Jacko schrieb:
> ... ermittelt man aus Datum und Uhrzeit (!) eine Ausgangsposition
> mit +/- 1...20° Genauigkeit ... und steuert dann mit Hilfe simpler
> Heliostaten-Sensorik die Konstruktion zur optimalen Ausrichtung.

Das Ding hat den ganzen Tag nichts anderes zu tun, als ab und zu mal die 
Sonnenposition auszurechnen. Dann kann es das bitte deutlich genauer als 
auf 20° tun, statt sich auf Zielexperimente zu beschränken und 
irgendwelche Eiereien bei durchziehenden Wolken zu veranstalten.

Bei einer Genauigkeit von 2° ist die Lichtausbeute weniger als 0,1% von 
optimal entfernt. Das ist wohl gerade noch zu verschmerzen. Um da noch 
mehr raus zu holen, ist es effektiver, öfter mal die Panele zu reinigen.

von Jacko (Gast)


Lesenswert?

@ Tim T. (tim_taylor)

Du bist jetzt aber leider ein Beweis dafür, dass Beiträge angemeldeter
Personen nicht per se geistvoller, als die von Gästen sind.

1) Ja, Jan Meeus ist Jan Meeus
-  Eine ziemlich dümmliche Nachfrage, sooo viele Menschen mit dem
   Namen in dieser Materie gibt es nicht.

2) +/-1...20° sind nicht +/-20°
-  Sinnentstellende Vereinfachung.

3) "Entsprechende RTC"
-  Werden hier andauernd durchgekaut und gegen gps/dcf abgewogen
   - gäääähn!

3) "keinen blassen Dunst"
-   wie nicht anders zu erwarten, eine unbelegte Behauptung.
    Man könnte es aber bei dir vermuten, wenn du Rektaszenions-
    werte nach Luftdruck / Temperatur korrigieren willst. Früher
    tat man das bei Elevationswerten, die eher an der Deklination
    angebunden sind.

- So weit so angemeldet und schlau???
- Aber lasst dich nicht beim Pöbeln stören! - Bin auch gleich weg.

Ich denke mal der TO erwartet nach deiner geballten Ladung
überflüssig-selbstbefriedigender und praxisferner Positionsgenauigkeit
keine praktische Hilfe mehr aus diesem Thread!

Kannst aber beruhigt sein - ich werde deinen Code weder kontrollieren,
noch korrigieren...

Tschüs und schlaf schön! (Hihi)

von Jacko (Gast)


Lesenswert?

@ Wolfgang (Gast)

Bist auch nur Gast, aber auch nicht schlauer, als der ANGEMELDETE.

1) +/-1...20° sind auch für dich NICHT +/-20°
-  Es kommt nur darauf an, ob ich 0,5%, oder 5% des Aufwands
   für double-Rechnung aufwände.

2) Ohne genaue Zeit sind hochgenaue Berechnungen schon mal Murks.
   Auch wenn man die Formeln irgendwo abgeschrieben hat.

3) Erratische Nachführung bei Wolkendurchzug wird eher von
   Zahlenfetischisten programmiert, als von Menschen mit
   Augenmaß und Praxisbezug.
-  Albern-dümmliche sachfremde Anmerkung von dir.

Dir also auch:

Tschüs und schlaf schön! (Hihi)

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Jacko schrieb:
> 3) "keinen blassen Dunst"
> -   wie nicht anders zu erwarten, eine unbelegte Behauptung.
>     Man könnte es aber bei dir vermuten, wenn du Rektaszenions-
>     werte nach Luftdruck / Temperatur korrigieren willst. Früher
>     tat man das bei Elevationswerten, die eher an der Deklination
>     angebunden sind.

Klar, Du beziehst dich auf meinen Post 
Beitrag "Re: Berechnund der Sonnenposition mit C" von vor 12 Jahren, 
wo ich statt dem Wort Refraktion, Rektaszension geschrieben habe, ja 
mein Fehler. Wie aber aus meinem Posting davor klar erkennbar sein 
sollte bezog sich meine Aussage auf die Refraktion.
Die ich im Übrigen immer noch von JEan Meeus aus Astronomical Algorithms 
S.102 übernommen hatte.

> Ich denke mal der TO erwartet nach deiner geballten Ladung
> überflüssig-selbstbefriedigender und praxisferner Positionsgenauigkeit
> keine praktische Hilfe mehr aus diesem Thread!

Der TO hat schon ewig seine Hilfe bekommen und seine Thesis lange 
abgegeben. Ging jetzt nur noch um die Rückfrage zur 
Sonnenauf/-untergangsberechnung. Aber egal.

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Jacko schrieb:
> Ich denke mal der TO erwartet nach ...

Nach 12 Jahren sollte sich die Solaranlage des TO längst amortisiert 
haben - auch ohne Nachführung und Sonnentracker.

Die jährliche Ertragssteigerung von gut 30% durchs Tracking ist meist 
den zusätzlichen Aufwand für Nachführung/Wartung nicht wert. Allenfalls 
in Sonderfällen lohnt das.

Beitrag #6766892 wurde vom Autor gelöscht.
Beitrag #6766893 wurde vom Autor gelöscht.
von Lötlackl *. (pappnase) Benutzerseite


Lesenswert?

Abgesehen davon, daß ich kleine Änderungen am Source-Code vornehmen 
mußte, (mein Compiler bemängelte das Semikolon hinter geschweiften 
Klammern) ist dieses Stück Software einfach Klasse!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.