04.06.2013 23:13 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung: (580)
|
Hallo HeadyCS, also: wie mit der LOGO! auch nicht-lineare Zusammenhänge verarbeitet werden können, habe ich verschiedentlich gezeigt und Tools dazu veröffentlicht, z. B. unter: Berechnung von Polynomen f(Ax) aus analogen Eingangswerten Ax
Dabei ist das Konzept so, dass eine Kurve nun durch eine oder mehrere Polynome angenähert wird."Zusammengebaut" wird die Gesamtkurve dann aus "parallel" berechneten Einzelkurven, die mittels Multiplexer entsprechend dem jeweiligen Eingangswertebereich "ausgewählt" werden und so z. B. auf einen Ausgang gegeben werden können.... MfG Betel |
==> Meine TAG-Listen: "deut." |
|
07.06.2013 21:28 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung: (580)
|
Hallo HeadyCS, in meiner vorhergehenden Antwort habe ich dir ja einen Beitrag genannt, über den du ein Konzept und entsprechende Hilfsmittel findest um die von dir genannte Funktion mit den Möglichkeiten der LOGO! (ab Serie 0BA6) zu realisieren. |
==> Meine TAG-Listen: "deut." |
|
08.06.2013 09:51 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung: (580)
|
Hallo HeadyCS, ich kann leider die "Gleichwertigkeit der beiden von dir angegebenen Formeln micht erkennen....vgl. Dateianhang! Ich werde dir demnächst eine Lösung für die 1. Formel angeben und den Weg dahin beschreiben MfG Betel DateianhangKurververgleich.zip (385 Downloads) |
==> Meine TAG-Listen: "deut." |
|
08.06.2013 11:28 | |
Beiträge: 24 Bewertung: (1) |
Hallo Betel, hier einen Excel Datei mit den Kennlinien und richtigen Formeln im Anhang. Das gegenteil der Quardatischen Linie ist zwar nicht das selbe wie die degressive Linie (Formel im 1. Beitrag), will es aber zuerst damit probieren. Die Formeln in meinen letzten Beitrag stimmen warscheinlich nicht, ist immer schwierig im nachhinein zu reproduzieren. Dateianhangkennlinien.zip (372 Downloads) |
Zuletzt bearbeitet von: HeadyCS am: 08.06.2013 11:31 |
|
Für diesen Beitrag bedanken sich1 Benutzer |
09.06.2013 11:59 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung: (580)
|
Hallo HeadyCS, nun, mit dem von mir angegebenen Konzept und den dazu entwickelten Hilfsmitteln konnten von mir bereits verschiedene andere Aufgaben zu nichtlinearen Funktionsberechnungen mit der LOGO! gelöst werden, z. B. (So etwas findet ihr in KEINEM Fachbuch zur LOGO oder anderswo!): - ph-Wertberechnungen (AQ = k * 10** [n-x]) und Energiemessungen (in engl. Forenteil) Ab der LOGO!-Serie 0BA6 ist es mit Hilfe des Blocks "Analoge Arithmetik" möglich, nicht nur lineare Zusammenhänge (= Polynome 1. Ordnung) zu lösen, sondern auch Polynome höherer Ordnungen (2 bis 4 oder gar 5) zu berechnen, sofern die Wertebereiche der einzelnen Terme den der Analogblöcke nicht überschreiten. Das Konzept ist nun, Daten einer Wertetabelle oder eine Funktionsgleichung in einem definierten Wertebereich zu interpolieren oder zu approximieren (anzunähern). Eine Interpolation könnte z. B. mittels kubischer Splines erfolgen (vgl. EXCEL-Dateien "splines..." im Dateianhang). Alternativ können die Daten bzw. die Funktion mittels einer oder mehrerer Teilkurven (hier Polynome 2. bis 4. (5.) Ordnung) angenähert (approximiert) werden, wobei besonders auf die Übergänge der Teilkurven zu achten ist. Beide Varianten haben ihre Vor- und Nachteile, besonders im Hinblick einer Anwendung bei der LOGO!. Ich möchte die Anfrage von HeadyCS dazu nutzen euch das Vorgehen bezüglich der Approximation mit Polynomen erneut nahe zu bringen und so die Leistungsfähigkeit der LOGO! zu demonstrieren. Mit den von mir erstellten Hilfsmitteln erscheint dies noch immer komplex aus, aber letztendlich ist die erforderliche Datenaufbereitung und die LOGO!-Programmierung nicht mehr wirklich schwierig: C) Vorgehen...hier am Beispiel der Approximation der nichtlinearen Funktion AQ = 1000 - Quadratwurzel(Al1 * 1000): C2) Datei "PolynomRegressionDynamisch_LOGO_V4 (Basis).xls", Tabellenblatt "Regression": Zunächst kann man mal prüfen ob die gesamten Daten mittels eines Polynoms z´ approximiert werden können. Dazu die Ordnung des Polynomes z´ von kleinen Werten zu großen ändern...Man erkennt schnell, dass bei kleinen x-Werten die größte Kurvenkrümmung und die größten Abweichungen auftreten. Dementsprechend macht man sich nun an die Approximation mittels der Teilkurven heran. Dazu legt man empierisch die x-Bereiche der Teilkurven und deren Ordnung fest. Diese werden solange modifiziert, bis die Annäherung an die originale Gesammtkurve den Anforderungen genügt...dazu ist Geschick und viel Geduld erforderlich...Mit zunehmender Anzahl der erforderlichen Teilkurven und mit deren steigender Ordnung nimmt auch der Umfang der erforderlichen LOGO!-Programmierung zu. C3) Datei "PolynomRegressionDynamisch_LOGO_V4 (Basis).xls", Tabellenblatt "Regression_LOGO!": Dieses Blatt dient nun der Anpassung der Polynomkoeffizienten für eine Programmierung der LOGO!. Dazu erfolgen die Berechnungen in der Datentabelle (links) so, wie auch in einer LOGO!-Schaltung. Diese sind in den Dateien "Hinweise_zur_Polynombildung_mit_einer_LOGO_0BA6.pdf" und DEMO_Polynomberechnung_V01 (0BA6).lsc" angegeben. In den Farbfeldern rechts neben der Datentabelle sind nun, separat für jede Kurve bzw. Teilkurve abhängig von den im Blatt "Regression" vorgegebenen Parametern, die Polynomkoeffizienten aufbereitet als LOGO!-Blockparameter. Dazu wird jeder Polynomkoeffizient als Bruch berechnet. Weil die Terme höherer Ordnung durch 2 Blöcke "analoge Arithmetik" berechnet werden müssen, sind diese Brüche dann noch in Faktoren aufgeteilt. Alle FETT und BLAU dargestellten Werte stellen dann die LOGO!-Parameter dar. C4) Nun werden ggf. auf Basis der resultierenden statistischen Daten (grüne Felder) und auf Basis der zahlenmäßigen Bewertung der Übergänge von einer Teilkurve zur anderen (linke Datentabelle) bei Bedarf die Vorgabewerte der Geltungsbereiche der Teilkurven (und ggf. auch deren Ordnung) angepasst bis die Qualität der Approximaltion der gesamten Kurve im Tabellenblatt "Regression_LOGO!" den Anforderungen genügt. Dies muss ggf. mehrmals erfolgen, denn durch Rundungsfehler und ggf. Verletzungen des LOGO!-Analogwertebereiches kann es vorkommen, das die beste Regression nicht die optimale Umsetzung in die LOGO!-Parameter darstellt. Ihr solltet insbesondere den Wert der Fehlerquadratsumme minimieren, denn die Maxima der absoluten Fehler liegen häufig an den Teilkurvenrändern und geben so ggf. ein verzerrtes Bild der Approximationsgüte wieder. C5) Makrooptimierung: Diese habe ich wegen der bereits guten Approximation nicht ausgeführt. Die Makrooptimierung ist sehr zeitaufwändig und teilweise reagiert Excel nicht mehr. Das Konzept dabei ist so, dass C6) Hat man nun die Teilpolynome und die zugehörigen LOGO!-Parameter mit EXCEL bestimmt (vgl. Datei "PolynomRegressionDynamisch_LOGO_V4 (WurzelFunktion).xls"), dann erstellt man auf Basis der Datei "DEMO_Teilkurven_eines_Analogbereiches_V01.lsc" die Grundlage der LOGO!-Programmierung - die Aufteilung des Wertebereiches x in n Teilkurven. Mit einem LOGO!-Block "Multiplexer" können maximal 4 Teilkurven zusammengestellt werden. Weil nun aber unsere definierten Teilkurven z1´ bis z3´ an den Grenzen des x-Wertebereiches nicht exakt den Ergebniswert abbilden, haben wir bei der hier betrachteten Funktion nun 5 Bereiche für die x-Werte zu unterscheiden: x = 0, x = 1..12; x = 13..175; x = 176..999 und x = 1000. Wie man dies nun geschickt macht, findert ihr in der Datei "DEMO_Teilkurven_für_Wurzelfunktion_Basis.lsc". C7) Nun sind noch die Polynome, unsere Teilkurven z1´ bis z3´, als LOGO!-Schaltung zu erstellen. Auf Basis der Datei "DEMO_Polynomberechnung_V01 (0BA6).lsc" werden diese nun programmiert. Das Ergebnis findet ihr in der Datei "DEMO_Teilkurven_für_Wurzelfunktion_V1.lsc". Eine PC-Simulation zeigt schnell, dass die mit EXCEL berechneten Werte (vgl. "PolynomRegressionDynamisch_LOGO_V4 (Basis).xls", Tabellenblatt "Regression_LOGO!"; linke Datentabelle) auch von der LOGO! berechnet werden - Ziel erreicht!!! Viel Spaß und Erfolg bei der Anwendung und der Lösung eigener Aufbereitungen von Wertetabellen oder nichtlinearer Funktionen für die LOGO! MfG DateianhangPolynomRegressionDynamisch_LOGO_V4 (WurzelFunktion).zip (414 Downloads) |
==> Meine TAG-Listen: "deut." |
|
23.06.2013 22:31 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung: (580)
|
Hallo Heady, hast du inzwischen mit der von mir angegebenen Lösung deiner Fragestellungdeine Aufgabenstellung gelöst? Eine Rückmeldung bzw. ein Feedback wäre hilfreich... MfG Betel |
==> Meine TAG-Listen: "deut." |
|
24.06.2013 17:01 | |
Beiträge: 24 Bewertung: (1) |
Hallo Betel, habe mich bis jetzt damit nicht mehr weiter beschäftigt. Wenn wieder mehr Zeit ist... |
Für diesen Beitrag bedanken sich1 Benutzer |
24.06.2013 21:32 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung: (580)
|
Hallo HeadyCS, alles klar - vielen Dank für deine Rückmeldung. Bei Fragen zu meiner vorhergehenden Antwort melde dich einfach hier. MfG Betel |
==> Meine TAG-Listen: "deut." |
|
09.08.2013 14:43 | |
Beigetreten: 06.08.2013 Letzter Bes: 01.03.2021 Beiträge: 2 Bewertung: (2) |
Hallo Betel, Ich hatte eine ähnliche Fragestellung wie der Themenstarter und wollte auch erst deinen Lösungsansatz dazu verwenden, habe dann aber noch einen anderen Weg gefunden den ich zumindest hier mal reinstellen möchte um vll auch noch andere Wege und Ideen mit ein zu bringen. Ich habe versucht die Wurzelfunktion so einfach wie möglich zu gestalten und habe dafür eine Iteration verwendet. Das Problem dabei ist das ich damit nur einen Wurzel bis zu einer Zahl von 322 ziehen kann. Da ich um die Genauigkeit zu erhöhen den Wert mit 100 multiplizieren muss. War für mich ausreichend aber vll kann man das ja auch noch weiter entwickeln. Dafür habe ich das Heron-Verfahren genutzt mit folgender Ausgangsformel. erg = 1 bei Start erg = (erg+(zahl/erg))/2 Ich komme damit auf für mich ausreichend genaue Ergebnisse und wollte einfach nur mal eure Meinung dazu hören. Die Analogkomparatoren können theoretisch zu Überwachung genommen werden ob die Wurzel mit entsprechnender Genauigkeit ausgerechet wurden ist. Die Datei ist direkt als UDF gemacht um sie einfacher zu Handhaben. Mfg DateianhangWurzel.zip (291 Downloads) |
Für diesen Beitrag bedanken sich2 Benutzer |
14.08.2013 21:23 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung: (580)
|
Hallo Technikbimbo, da hast du einen sehr interessanten Lösungsansatz eingebracht, der mich inspririert hat, damit mal ein wenig zu experimentiren und deine Fragen dazu zu lösen. Im Dateianhang habe ich zunächst mal einige Hintergrundinfos zum Iterationsverfahren nach HERON zusammengestellt. Dann habe ich folgende UDF-Schaltungsversionen erstellt und in der Schaltung "DEMO_UDF_Wurzel_Versionsvergleich (0BA7).lsc" verglichen und deren Anwendung bzw. deren Nutzen bewertet. a) Wurzel_opt_327.lma b) Wurzel_opt_327_V2a.lma c) Wurzel_opt_32767.lma d) Wurzel_opt_32767_V2a.lma e) Wurzel_opt_32767_V2b.lma f) Wurzel_opt_32767_V2c.lma ====>> FAZIT:
Das Verfahren von HERON lässt sich auch verallgemeinern und insbesondere zur Iterativen Berechning der 3. Wurzel aus a (Kubikwurzel) anwenden: ====>> FAZIT: Ich bin gespannt auf eure Kommentare. MfG DateianhangWurzel_V2 (komplexes_Rechnen).zip (289 Downloads) |
==> Meine TAG-Listen: "deut." |
|
Für diesen Beitrag bedanken sich4 Benutzer |
22.01.2015 23:50 | |
Beigetreten: 05.01.2007 Letzter Bes: 07.04.2023 Beiträge: 1690 Bewertung: (580)
|
Hallo liebe LOGO!-Freunde, ich habe weitere Beiträge zum Thema "komplexes Rechnen mir der LOGO! verfasst:
|
Zuletzt bearbeitet von: Betel am: 30.01.2015 20:53kleine Korrekturen... ==> Meine TAG-Listen: "deut." |
|
Folgen Sie uns auf