Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - Winkelfunktionen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    - √ - Winkelfunktionen

    Hi,

    ich bastel gerade an meiner Beschattung und hab dabei ein Problem mit den Winkelfunktionen.

    Der EibPC liefert bei der COS-Funktion das Ergebnis in RAD. Um das umzurechnen auf Grad muss ich <Ergebnis> = <RAD> / PI * 180 rechnen.

    Ich hab alles auf f32 konvertiert und es kommt Müll heraus.

    Hier der Code aus meinem Makro
    Code:
    echteLamellenBreite@ = convert(lamellenbreite,0.0f32) / (cos(azimuth - ausrichtung)/PI*180.0f32)
    Z.B.:
    Südfenster
    Ausrichtung = 180°
    Azimuth = 209,46°
    Lamellenbreite = 80mm
    Erwartetes Ergebnis: 91,88mm
    Ergebnis des EibPC: -4,42mm

    Weiß irgendwer worans scheitert?

    #2
    kann es sein, dass die Cosinus Funktion den übergebenen Parameter ebenfalls in RAD erwartet (alles andere würde mich wundern)? Dann geht natürlich die Übergabe 29,46 Grad nicht
    Mit freundlichen Grüßen
    Niko Will

    Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
    - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

    Kommentar


      #3
      Hab ich auch schon probiert und hat nicht funktioniert.

      Habs aber nochmal eingebaut:
      Code:
      echteLamellenBreite@ = convert(lamellenbreite,0.0f32) / (cos((abs(azimuth - ausrichtung))/180.0f32*PI)/PI*180.0f32)
      Z.B.:
      Südfenster
      Ausrichtung = 180°
      Azimuth = 220°
      Lamellenbreite = 80mm
      Erwartetes Ergebnis: 287,2mm
      Ergebnis des EibPC: 2,2mm

      Kommentar


        #4
        Bei deinem Code wandelst du ja das Ergebnis der Cosinus Funktion um... ich meinte aber die Eingangsparameter, also azimuth - ausrichtung ergeben eine Zahl in Grad... es müsste wahrscheinlich aber Rad sein.

        wie wärs mit folgendem Code (hoffe die Klammern passen)?

        Code:
        echteLamellenBreite@ = convert(lamellenbreite,0.0f32) / (cos((azimuth - ausrichtung)*180.0f32/PI)/PI*180.0f32)
        Mit freundlichen Grüßen
        Niko Will

        Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
        - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

        Kommentar


          #5
          Wieso beide Male /PI*180?

          Kommentar


            #6
            Ist verkehrt. Grad in RAD umwandeln bedeutet mit PI/180 zu multiplizieren, also:

            (azimuth - ausrichtung)*PI/180.0

            Und davon den cosinus.

            Das Ergebnis von sinus, cosinus und tangens ist ein einheitenloses Verhältnis. Da gibt es kein RAD, Grad oder andere Winkeleinheiten.
            Gleiches gilt für die Argumente der Umkehrfunktionen. Also muss das Ergebnis von cos() auch nicht irgendwie umgerechnet werden.

            Also:
            Code:
            echteLamellenBreite@ = convert(lamellenbreite,0.0f32) / cos((azimuth - ausrichtung)*PI/180.0f32)
            sollte das gewünschte Ergebnis bringen. [Nachtrag: mit den oben genannten Beispielwerten kommt jetzt auch das erwartete Ergebnis heraus, habe es gerade mal mit auf rad umgeschaltetem Taschenrechner geprüft.]

            PS: Warum liefert der EibPC den Azimuth eigentlich in Grad während die trigonometrischen Funktionen ansonsten mit RAD arbeiten? Konsequent ist das nicht, die Logik dahinter erschließt sich mir auch nicht so recht.
            Weil die Menschen meist lieber mit Grad arbeiten? Dann gilt das aber auch für sin&Co...
            Tessi

            Kommentar


              #7
              uups, ja hab mich in Wikipedia vertan

              aber auf jeden Fall muss das Ding in die Cosinus Klammer mit rein!
              Mit freundlichen Grüßen
              Niko Will

              Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
              - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

              Kommentar


                #8
                Nur liefert leider keine der bisherigen Varianten die richtige Lösung und ich hab mMn schon so ziemlich alle möglichen und unmöglichen Varianten ausprobiert, die mir eingefallen sind ... ohne Erfolg :-(

                Kommentar


                  #9
                  Du meinst aber nicht zufällig die elevation(), also den Höhenwinkel, oder? Du hast also Vertikaljalousetten?

                  Gruß,
                  berdn

                  Kommentar


                    #10
                    Um den Beschattungswinkel meiner horizontalen Raffstores richtig berechnen zu können, muss ich vorher wissen welchen Weg das Licht von vorn nach hinten zwischen den Raffstores ist. Das ändert sich mit der horizontalen Position der Sonne. Das hier ist also nur einmal eine vorbereitende Berechnung, welche Distanz die Sonne zwischen den Raffstores zurücklegt.

                    Ist zwar eh nur dafür notwendig, dass man das maximum an Licht bei einem Minimum an direkter Sonneneinstrahlung hinbekommt, ändert aber nichts daran, dass es funktionieren muss.

                    Kommentar


                      #11
                      Zitat von mclb Beitrag anzeigen
                      Nur liefert leider keine der bisherigen Varianten die richtige Lösung und ich hab mMn schon so ziemlich alle möglichen und unmöglichen Varianten ausprobiert, die mir eingefallen sind ... ohne Erfolg :-(
                      Falls meine per Taschenrechner geprüfte Variante beim EibPC was anderes liefert, sollte man mal prüfen, ob die verwendeten Funktionen ggf. anders als üblich rechnen...
                      Also mal Zwischenergebnisse vom EibPC ausgeben lassen und gegen einen TR prüfen [Nachtrag: nicht vergessen vorher auf rad umzuschalten...].
                      Tessi

                      Kommentar


                        #12
                        Zitat von mclb Beitrag anzeigen
                        Um den Beschattungswinkel meiner horizontalen Raffstores richtig berechnen zu können, muss ich vorher wissen welchen Weg das Licht von vorn nach hinten zwischen den Raffstores ist. Das ändert sich mit der horizontalen Position der Sonne. Das hier ist also nur einmal eine vorbereitende Berechnung, welche Distanz die Sonne zwischen den Raffstores zurücklegt.

                        Ist zwar eh nur dafür notwendig, dass man das maximum an Licht bei einem Minimum an direkter Sonneneinstrahlung hinbekommt, ändert aber nichts daran, dass es funktionieren muss.
                        Dann sollte man die Auswertung der Formel aber auf Differenzen größer als -90° und kleiner als 90° beschränken, sonst gibt es negative Lamellenbreiten
                        Tessi

                        Kommentar


                          #13
                          Zitat von mclb Beitrag anzeigen
                          ich bastel gerade an meiner Beschattung und hab dabei ein Problem mit den Winkelfunktionen.
                          Südfenster
                          Ausrichtung = 180°
                          Azimuth = 209,46°
                          Lamellenbreite = 80mm
                          Erwartetes Ergebnis: 91,88mm
                          Ergebnis des EibPC: -4,42mm
                          Mit Deinen Werten:
                          [highlight=epc]
                          [EibPC]
                          ausrichtung = 180f32
                          azimuth = 220f32
                          lamellenbreite = 80f32
                          x=convert(lamellenbreite,0.0f32) / cos(abs(azimuth - ausrichtung)/180.0f32*PI)
                          [/highlight]
                          bekomme ich mit dem Taschenrechner: x=104.4325831
                          und mit dem EibPC
                          % Typ: 32-Bit-Fliesskommazahl
                          % Wert: 104.4325942993164
                          Die verbleibende Diskrepanz ist der eingestellten Maschinengenauigkeit im EibPC zu schulden und ist wohl ok ...
                          offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                          Enertex Produkte kaufen

                          Kommentar


                            #14
                            Das kommt dann schon noch, ändert ja nichts dran, dass die Berechnung für Süd-Fenster bei 190° Azimuth Schrott liefert.

                            Und die Zwischenergebnisse hab ich auch schon kontrolliert, die passen auch ... nur der cos liefert nicht das was ich erwarte. Würde ja nur gern wissen, wie man den verwenden muss, damit man ein korrektes Ergebnis bekommt. Aus der Doku werd ich einfach nicht schlau. Steht ja auch nicht viel mehr drin, als dass das Ergebnis in RAD geliefert wird.

                            Kommentar


                              #15
                              OK, Tessi und Energetus haben recht ... funktioniert jetzt so. Wieso auch immer ich diese Variante nicht ausprobiert hab.

                              Jetzt läufts, Thema erledigt, Danke!

                              Kommentar

                              Lädt...
                              X