"bürgerliche" bzw Zivile Dämmerung bzw sun_rise/set bei -6° Sonnenstand

Begonnen von Holger, 09. November 2010, 08:16:03

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 3 Gäste betrachten dieses Thema.

Holger

Hi,

da mir sun_rise und set speziell im Sommer zu frueh ist um die Rolladen zu fahren habe ich mir kurzerhand die Stelle im Programm gesucht die das berechnet und entsprechend erweitert.
Hoffentlich richtig :) Von den Werten im Moment wuerde ich sagen passt es.

Grundsaetzliches Problem ist ja das speziell im Winter es nach Sonnenuntergang (-0.833°) noch sehr lange hell ist. Definiert ist die "bürgerliche" Dämmerung (siehe Wikipedia) bis -6° Sonnenstand.
Im Prinzip ist das der Sonnenstand "von dem an" bzw "bis zu dem man" draussen noch eine Zeitung lesen kann.

Also folgendes habe ich eingefuegt so das die normal Funktion erhalten bleibt. Im Prinzip werden zwei neue Werte angelegt sun_civil_rise und sun_civil_set (koennte man evtl noch civil_rise und civil_set draus machen)
Der wesentlich Unterschied ist das ich im SUN_TIME eine weiteres delta ausrechne. Welches nicht wie in Zeile 9 mit dem sin(-0.833°) = -0.0145 rechnet sondern mit dem sin(-6°) = -0.1453.

SUN_TIME (FB)
==========

VAR_OUTPUT
sun_civil_rise : TOD; (* civil twilight for current day in local time *)
sun_civil_set : TOD; (* civil twilight for current day in local time *)
VAR
delta_civil: TIME; (* delta from midday for civil twilight *)


delta_civil := HOUR_TO_TIME(ACOS((-0.1453 - SIN(B) * SIN(DK)) / (COS(B) * COS(DK))) * 3.819718632);
sun_civil_rise := sun_midday - delta_civil;
sun_civil_set := sun_midday + delta_civil;


CALENDAR (STRUCT)
==============

SUN_CIVIL_RISE : TOD; (* civil twilight for current location *)
SUN_CIVIL_SET : TOD; (* civil twilight for current location *)


CALENDAR_CALC (FB)
==============

0035 XCAL.SUN_CIVIL_RISE := sun.sun_civil_rise;
036 XCAL.SUN_CIVIL_SET := sun.sun_civil_set;


EMV-Fuzzi

Hallo Holger,

ich bin gerade angefangen, mit der "SUN_TIME" zu spielen und bin darüber
dann auch über Deinen Post gestolpert.

Dir ist ein Tippfehler unterlaufen (es fehlt eine "0"):
Der Wert für sin(-6°) ist -0.104528463

Mit diesem Wert ergibt sich bei mir gegenüber den "richtigen" Zeiten von
http://cgi.stadtklima-stuttgart.de/mirror/sonne.exe
eine Abweichung von 4 Minuten statt 13 Minuten beim falschen Wert.

pelmic

Hallo,

das ist ja Perfekt.
Wenn es funktioniert und getestet ist, kann man dass dann auch ins nächste Release übernehmen?
Das wäre toll.

Danke,

pelmic

Holger

Zitat von: EMV-Fuzzi in 25. November 2010, 16:47:48
Hallo Holger,

ich bin gerade angefangen, mit der "SUN_TIME" zu spielen und bin darüber
dann auch über Deinen Post gestolpert.

Dir ist ein Tippfehler unterlaufen (es fehlt eine "0"):
Der Wert für sin(-6°) ist -0.104528463

Upsssss

Zitat von: EMV-Fuzzi in 25. November 2010, 16:47:48
Mit diesem Wert ergibt sich bei mir gegenüber den "richtigen" Zeiten von
http://cgi.stadtklima-stuttgart.de/mirror/sonne.exe
eine Abweichung von 4 Minuten statt 13 Minuten beim falschen Wert.


Ob die 4 Minuten einfach ungenauigkeiten sind ?! Egal 4 Minuten währe ja (zumindest fuer mich) OK

    Holger


EMV-Fuzzi

Hallo Holger,

Zitat von: Holger in 07. Dezember 2010, 15:52:44

Ob die 4 Minuten einfach ungenauigkeiten sind ?! Egal 4 Minuten währe ja (zumindest fuer mich) OK


Das SIND Ungenauigkeiten innerhalb der Steuerung!

Ich habe nun Zugriff auf eine andere Zielhardware und mit dieser sind die Zeiten weniger als 1 Minute unterschiedlich.

Gruß
  EMV-Fuzzi


hugo

Die normale Dämmerung berechnet die zeiten für sonnenaufgang und untergang exakt dann wenn der obere rand der somme am horizont erscheint bzw wieder verschwindet.

hierbei wird die sogenannte refraktion mit 50 bogrnminuten berücksichtigt.

die bürgerliche dämmerung ist bereits -6° unter dem horizont

die nautische ist -12° unter dem horizont

die astronomische ist -18° unter dem horizont.

wie ihr seht gibt es keine feste definition für sonnenaufgang bzw sonnenuntergang.

damit in zukunft jede beliebige dämmerung berechnet werden kann wird unser baustein noch einen weiteren eingang H besitzen.
an H wird dann mittels einer grandangabe definiert welche dämmerung man haben will.

noch ein hinweis, einfach ein paar grad addieren geht nicht weil je nach breitengrad und sonnenstand die korrekt anders ausfällt.