24.03.2020 23:32 | |
Beigetreten: 22.02.2008 Letzter Bes: 18.11.2024 Beiträge: 2698 Bewertung:
|
Hallo Betel, die mathematischen Zusammenhänge sind zwar bemerkenswert, aber leider ist in deiner Demo für den Zylinder ein Fehler drin. Bei Vorgabe AI1=1000 sollten es doch 15708 Liter sein, bei dir kommen aber 16116 dm3 heraus, das ist schon eine enorme Abweichung. Ich habe bisher allerdings nicht nach der Herkunft der Abweichung gesucht, bin da eher für eine Aufteilung in Geraden zu haben. M.f.G. Scorp |
Für diesen Beitrag bedanken sich
1 Benutzer |
25.03.2020 18:59 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung:
|
Hallo Scorp, vielen dank für dein Feedback - ich hatte vergessen, die analogen Schwellwertschalter zur Steuerung der Multiplexer für die Kurvenaufteilung auf den Block "Ax_neu" umzulegen. Die Anzeige im Meldetext der Werte für Ax habe ich auch noch korrigiert von Block "Ax_neu" zum Block "Ax". Im Dateianhang findet Ihr die korrigierte Schaltung ebenfalls. Nun ob Regressionspolynome 1. bis 4. Ordnung oder Geraden als Annäherung an den realen Funktionsverlauf für V(Ax) verwendet wird mögt Ihr/Du entscheiden. Das Lösungskonzept ist letztlich vergleichbar: Approximation durch Teilkurven - daraus Parameter für LOGO!-Blöcke berechnen und Schaltung konzipieren. Für eine Anwendung von Geraden zur Annäherung werde ich demnächst auch Schaltungsvarianten und ein Tool auf Basis von EXCEL im Forum vorstellen (weil Ihr halt diese Variante vorzieht). Allerdings sind dabei dann deutlich mehr Teilkurven erforderlich um eine ähnliche Annäherungsqualität zu erreichen - und das erfordert eine deutlich aufwändigere Ermittelung der geeigneten (Gültigkeits-)Intervalle der einzelnen Geraden! Der Schaltungsaufwand ist dadurch auch vergleichbar... MfG Betel DateianhangDEMO_liegender_Zylinder_(0BA6_LSC_8.0)_V01.zip (341 Downloads) |
==> Meine TAG-Listen: "deut." |
|
Für diesen Beitrag bedanken sich
2 Benutzer |
26.03.2020 22:25 | |
Beigetreten: 22.02.2008 Letzter Bes: 18.11.2024 Beiträge: 2698 Bewertung:
|
Hallo Betel, habe die korrigierte Variante in einer realen Logo8.2 mit ergänzter Datalog-Funktion und Zähler durchlaufen lassen. Es ergaben sich absolute Abweichungen von ca. +/-4 Liter, ein hervorragender Wert. In meiner linearen Variante mit 32 Geraden sind es immer noch ca. +/- 20 Liter. Von daher ist deine Methode wohl die Genauere, was zu erwarten war, aber mit einem Faktor 5 hatte ich eher nicht gerechnet. Bei einer Exponentialfunktion mag das noch anders aussehen, da es hierfür kein Polynom gibt, was sich angleichen lässt. Wäre deine Umsetzung nicht so kompliziert, würde ich mich deiner Variante anschließen. Vielleicht könnte man das auch soweit automatisieren und übersichtlicher darstellen, dass es jeder nutzen kann. Übrigens hatte ich letzte Tage bereits eine Variante für lineare Gleichungen als Tabelle veröffentlicht, siehe Sammlung von Wandlern. Eventuell kann man das auch noch verbessern, verfeinern, ergänzen ….. Vorschläge nehme ich gerne entgegen. M.f.G. Scorp |
Für diesen Beitrag bedanken sich
1 Benutzer |
28.03.2020 12:58 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung:
|
Hallo Scorp, meine EXCEL-Datei zur Polynomregression mag komplex anmuten und beinhaltet auch tatsächlich einiges an Knowhow, aber die Anwendung sollte vergleichsweise einfach sein, denn im Grunde kann dabei die Komplexzität außer acht gelassen werden - Eingabe der Daten in einem Blatt, Anpassung der Regression an die Daten durch wählen der Polynomordnung(en) und der Interwallgrenzen (x-Werte) für die Aufteilung in teilkurven (Polynome). Sicher hier steckt die Arbeit für den Anwender/Programmierer der LOGO!. Ist diese Aufgabe mit der gewünschten Qualität (z.B. minimierte Fehlerquadratsumme, maximale Abweichung) erreicht, dann können dem nächsten Blatt die LOGO!-Blockparameter entnommen werden. Wie die Polynome in einer Schaltung zu realisieren sind habe ich beschrieben und in verschiedenen Beispielen - so auch hier zum liegenden Zylinder - demonstriert. Nun kurz zu deiner Umsetzung der Annäherung von Daten mittels Geraden: A) Ich habe derzeit ein ähnliches Projekt zu laufen, denn hier wird dieser Wunsch nach Anwendung von geraden zur Annäherung von Daten/Funktionen mehrfach angesprochen: Schaltungsvorschläge und per EXCEL Berechnung aller Parameter für diese LOGO!-Schaltungen. b) Deinen Schaltungsvorschlag finde ich interessant und gut finde ich deine Wahl, den Block Arithmetische Anweisung zur Umsetzung der Geradengleichung zu verwenden, denn dieser hat größere Möglichkeiten bezüglich der Geradenkoeffizienten als der Block Analogverstärker. Allerdings erfordert dein Schaltungsdesign eine hohe Anzahl an Analogmerkern bzw. Blöcken Komparator zum Abschluss der analogen Blockausgänge! c) Deine EXCEL-Datei mutet auch recht komplex an, insbesondere bezüglich einer Anpassung an andere Aufgaben..Anders als ich setzt du äquidistante Stützstellen für deine Geraden ein, um deren Berechnung auf Basis der Vorgabe der Anzahl der Geraden automatisch zu berechnen. Nett, aber bei zunehmend gekrümmteren Kurven und besonders wenn diese auch noch unterschiedliche Radien aufweisen ist dieses Vorgehen ungünstig. Die von dir am liegenden Zylinder erreichten Ergebnisse belegen dies deutlich. Deshalb sind meine EXCEL-Lösungen scheinbar komplexer, denn sie ermöglichen (und erwarten) eine Vorgabe, Anpassung bzw. Optimierung der Intervallgrenzen der einzelnen Teilkurven (hier Geraden) durch den Anwender/Programmierer der LOGO! Ich werde zeigen, dass dann jedoch 16 Geraden ausreichen, um eine Lösung für die LOGO! zu erreichen, deren maximale Abweichung ebenfalls kleiner als 4 Liter absolut betrögt. Der Aufwand an Zeit, die selbst mit meinem hier bald erscheinenden Tool zu erreichen ist/war, ist jedoch wesentlich höher als bei der bestehenden Lösung mittels Polynomen 3. Ordnung, denn diese habe ich fast adhoc erreichen können! Ich hoffe, dass mein fast fertiger Vorschlag für euch leichter anzuwenden ist als der (die) bestehende(n) - Ihr dürft also gespannt sein... MfG Betel |
==> Meine TAG-Listen: "deut." |
|
Für diesen Beitrag bedanken sich
1 Benutzer |
28.03.2020 17:20 | |
Beigetreten: 22.02.2008 Letzter Bes: 18.11.2024 Beiträge: 2698 Bewertung:
|
Hallo Betel, danke für deine ausführliche Rückmeldung. Es ist gut möglich, dass man sich in deine Variante leicht einarbeiten könnte. Ist wohl die Macht der Gewohnheit, erstmal geradeaus zu schauen, bevor man links und rechts bessere Wege findet. Erschwerend kommt hinzu, dass ich bisher weder die Polynome noch die linearen Gleichungen für mich selbst gebraucht habe, da es bisher keine eigenen Anwendungen dafür gab. Meine Tabelle sollte die Eingabe von Werten möglichst minimieren und die automatischen Berechnungen gleichzeitig maximieren. Es bleibt natürlich immer ein Kompromiss oder man baut zusätzlich weitere Programmiermöglichkeiten ein, bei Excel wäre das Visual Basic. Das war mir bisher allerdings zu aufregend und zeitaufwändig. Wahrscheinlich lässt sich auch keine eierlegende Wollmilchsau basteln, die allen Anforderungen gerecht wird. Mein Tipp an alle, die eine möglichst genaue Berechnung von komplizierteren Formeln wünschen, nehmt eine richtige SPS, die dafür geeignet ist. M.f.G. Scorp |
28.03.2020 17:44 | |
Beigetreten: 13.08.2016 Letzter Bes: 31.03.2025 Beiträge: 1433 Bewertung:
|
Hallo Betel, möglicherweise ist das unbegründet ? aber ich habe ein Problem wenn in einer Schaltung Systembedingt der Zahlenbereich drastisch eingeengt ist: Bei einem Polynom 3. Ordnung kann man nur der 16Bit Zahlenbereich nutzen, da man zwei Arithmetische Einheiten benötigt. (die interne 32Bit Arithmetik kann man nur innerhalb eines Blockes nutzen.) für x * x * x komme ich auf ein maximales x von 32 !! alle höheren Zahlen liefern das gleiche Ergebnis nämlich 32767. Beim Polynom 4. Ordnung höchster Zahlenwert 13 !! Wenn ich in einem anderen Beispiel sehe das ein Analogverstärker ein Gain von 0,03 hat - habe (eventuell unbegründet ?? ) meine Zweifel ob jemals eine Vernünftige Genauigkeit herauskommen kann. |
29.03.2020 15:57 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung:
|
Hallo Scorp, deinem TIP: "Mein Tipp an alle, die eine möglichst genaue Berechnung von komplizierteren Formeln wünschen, nehmt eine richtige SPS, die dafür geeignet ist. M.f.G. Scorp" muss ich doch widersprechen, denn die LOGO! kann´s doch, wie diverse Lösungen hier im Forum belegen. Und auch bei einer "richtigen SPS" wäre, z. B. für den liegenden Zylinder - und besonders dann, wenn dieser einschließlich gewölbter Böden - zu berechnen ist, eine Vorarbeit erforderlich, denn die dazu nötigen Formeln kann auch diese nicht direkt verarbeiten, sondern ist darauf angewiesen, dass der Funktionszusammenhang etwa als Polynom 5. Ordnung angenähert werden kann/wird. Das erforderliche Vorgehen bzw. Lösungskonzept wäre also sehr ähnlich. Es bestehen lediglich gerätespezifische Unterschiede (, die manchmal halt gelöst und manchmal nicht gelöst werden können!)... Hallo ernstho, ich kann deiner Argumentation nicht folgen, denn mein Konzept mittels Polynomen für die LOGO! zu arbeiten ist doch erfolgreich, wie z. B. hier am liegenden Zylinder demonstriert. Und besonders stolz bin ich auf die Lösung, mit einem Polymom 5. Ordnung (f(x) = m5*x^5 + ...+b) die Absolute Feuchte aus Sensordaten für Temperatur und relativer Feuchte mit der LOGO! berechnen zu können - ansonsten sind dazu Geräte von meist mehr als 500 EUR erforderlich!!! Warum geht das so mit der LOGO! ? Nun, wenn du dir mal die EXCEL-Daten und die Art und Weise der Umsetzung von Polynomen mit der LOGO! von mir analysierst, dann wirst du feststellen, dass die Kombinationen aus x-Wert und Koeffizient bei den Regressionspolynomen von besonderer Art sind: Je höher der Exponent von x wird, umso kleiner wird der Betrag des Koeffizienten. Ist der Betrag des Koeffizienten deutlich näher an Null als an 1, dann ist, bei nicht zu großem x-Wert, eine Berechnung mit der LOGO! möglich. Weil nun auch noch mehrere LOGO!-Blöcke zur Berechnung eines Polynomterms mit 3. bis 4. (5.) Ordnung erforderlich sind, ist außerdem eine geschickte Aufteilung des Polynomkoeffizienten und der Anzahl der Multiplikationen der x-Werte je Block erforderlich. Manchmal hilft es dabei auch, nicht die korrekten x-Werte zu verwenden (besonders, wenn diese vom Betrag her groß werden), sondern transformierte Werte: z. B. anstelle von x-Werten 0 bis 1000 verwendet man/ich z. B. symmetrische x-Werte von -500 bis 500 oder ggf. auch asymmetrisch verteilte Werte, je nach Daten...Und um zu verhindern, dass zwischen den Blöcken, die ein Polynom berechnen KEIN Werteüberlauf auftritt, wird dies im EXCEL-Blatt bereits geprüft!!! MfG Betel |
==> Meine TAG-Listen: "deut." |
|
29.03.2020 21:28 | |
Beigetreten: 13.08.2016 Letzter Bes: 31.03.2025 Beiträge: 1433 Bewertung:
|
Vielen Dank für die Aufklärung - habe nun gesehen das durch Division im V4 Parameter und der Aufteilung auf mehrere Blöcke die 32Bit Arithmetik von dir genutzt wurde. |
18.04.2020 13:09 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung:
|
Hallo, in meinem neuen Beitrag Tool zur Annäherung gegebener Daten x, y mittels mehrerer Geraden (Linearisierung) findet Ihr nun eine Lösung der Annäherung eines liegenden idealen Zylinders mittels "Linearisierung". Demnach kann eine vergleichbar gute Annäherung wie mittels zuvor von mir angegebenen drei Polynomen 3. Ordnung auch mittels 16 Geraden für die Berechnung des Füllvolumens auf Basis der Füllhöhe erfolgen. Die Berechnung ist dabei auch wieder auf Füllhöhen von 0 mm bis Durchmesser / 2 abgestellt. Für größere Füllhöhen ist dann die selbe Methode wie in der hier von mir vorgestellten LOGO!-Schaltung anzuwenden (Füllvolumen für h > r aus noch verbliebenem Leervolumen berechnen)... MfG Betel |
==> Meine TAG-Listen: "deut." |
|
06.01.2021 15:07 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung:
|
Hallo, hier wurde eine interessante Aufgabenstellung diskutiert, jedoch lediglich anhand von Behältern bzw. Tanks in Form eines idealen Zylinders, dessen Füllvolumen abhängig von der Füllhöhe durch eine Formel beschreibbar ist. Ergänzend ist u. a. auch die Weiterverarbeitung bis hin zur Berechnung von Parametern für entsprechende LOGO!-Schaltungen von mir beschrieben und diese Schaltungen konkret ausgeführt und als Dateianhang beigefügt worden. Mit dem im neuen Beitrag Tool zur Behälterberechnung - Füllvolumen auf Basis der Füllhöhe vorgestellten TOOL lassen sich nun auch LOGO!-Schaltungen für reale zylindrische Behälter bzw. Tanks mit Parametern nach entsprechender Weiterverarbeitung ausgestalten und diese Aufgabe der Berechnung des Füllvolumens auf Basis einer gemessenen Füllhöhe mit einer LOGO! ab Serie 0BA6 lösen!!! Ich wünsch euch nun viel Erfolg bei der Messung und Anzeige an euren zylindrischen Behältern und Tanks. Übrigens lassen sich auch andere Behältergeometrien mit der verwendeten Vorgehensweise einer entsprechenden Berechnung unterziehen... MfG |
==> Meine TAG-Listen: "deut." |
|
Für diesen Beitrag bedanken sich
1 Benutzer |
Wir arbeiten an einem neuen Interface unseres Forums! Dieses stellt eine bessere Übersicht zur Verfügung und liefert mehr Relevanz.
Folgen Sie uns auf