22.02.2010, 19:37
Beitrag #1
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Nichtlinearität einer Kennline bestimmen
Gegeben ist eine Kennlinie als Punktarray. Für die Bestimmung der Nichtlinearität bräuchte ich eine optimale Gerade durch diese Punkte.
Für gewöhnlich werden die Koeffizienten a und b einer solchen Geraden a+bx nach der Methode der kleinsten Quadrate bestimmt, und hierfür gibt es ein fertiges VI. Leider ist das nicht das, was ich brauche.
Gesucht ist die Gerade, bei der der Absolutwert der maximalen Differenz zu den Originalpunkten ein Minimum ist.
Da es hier um Absolutbeträge geht, ist das Problem wahrscheinlich mathematisch nicht elegant lösbar, sondern nur mit ekelhafter Iteration. Das würde ich auch hinbekommen, nur: Was ich will, ist doch nichts anderes als die Nichtlinearität zu bestimmen, wie sie gängigerweise definiert ist, auch in einschlägigen Standards. Ergo müsste da irgendwo eine Lösung des Problem als fertiges VI herumliegen. Kann mir da jemand einen Tipp geben? Wo könnte man da fündig werden?
Gruß Ludwig
|
|
|
22.02.2010, 22:33
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Nichtlinearität einer Kennline bestimmen
Suchst du diese "beste" Gerade?
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
23.02.2010, 09:45
(Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2010 09:48 von Lucki.)
Beitrag #3
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Nichtlinearität einer Kennline bestimmen
' schrieb:Suchst du diese "beste" Gerade?
Eine "beste Gerade" suche ich schon, nur nicht diese. Will mal an einem Beispiel verdeutlichen, was ich suche.
Statt einer "Punktwolke" benutzte ich im folgenden Beispiel ein analytische Kurve, und statt eines ansteigenden, annähernd linearen Kurvenverlaufs benutzte ich eine symmetrische Parabel. Von diesen praxisfernen Vorgaben sollte man sich aber nicht irritieren lassen.
Wenn ich also von der Parabel Y=0.1*x² im Bereich -10..+10 die Ausgleichsgerade nach der Methode der kleinsten Quadrate berechne, dann lautet deren Gleichung Y=3.4.
Der maximale absolute Fehler zwischen Kurve und Ausgleichsgeraden beträgt 6.6.
Ich suche aber diejenige Gerade, bei der dieser absolute maximale Fehler ein Minimum ist. Hier erkennt man ohne Berechnung sofort, daß das die Gerade Y=5 wäre. Der maximale Fehler zwischen Gerade und Kurve würde hier nur 5 betragen.
In diesem Sonderfall diese Gerade zu erechnen ist ein Kinderspiel, aber wie macht man es allgemein?
|
|
|
23.02.2010, 10:46
Beitrag #4
|
|
|
23.02.2010, 13:44
(Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2010 14:09 von dimitri84.)
Beitrag #5
|
dimitri84
Astronaut
Beiträge: 1.496
Registriert seit: Aug 2009
2020 Developer Suite
2009
DE_EN
53562
Deutschland
|
Nichtlinearität einer Kennline bestimmen
' schrieb:Wenn ich also von der Parabel Y=0.1*x² im Bereich -10..+10 die Ausgleichsgerade nach der Methode der kleinsten Quadrate berechne, dann lautet deren Gleichung Y=3.4.
Was kommt denn raus, wenn man die Ring-Konstante anschließt mit der Methode "Minimieren von Residuum"? Wie bei Jens.
(Ich find das VI für die Parabel nicht, sonst hätte ich es selbst ausprobiert.)
Und mich würde auch interessieren wie das Bewerten vonstatten geht, wenn man denn endlich die passende "beste" Gerade vorliegen hat.
„Sag nicht alles, was du weißt, aber wisse immer, was du sagst.“ (Matthias Claudius)
|
|
|
23.02.2010, 14:45
Beitrag #6
|
|
|
23.02.2010, 15:38
(Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2010 15:41 von Lucki.)
Beitrag #7
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Nichtlinearität einer Kennline bestimmen
' schrieb:Was kommt denn raus, wenn man die Ring-Konstante anschließt mit der Methode "Minimieren von Residuum"?
Als ich das sah, dachte ich "das isses". Ist es aber nicht. Was da gamacht wird, weiß ich zwar nicht, aber auf jeden Fall kommt nicht das raus was ich möchte. Der Beschreibung nach geht es darum, den Einfluss von Ausreißern auf das Ergebnis zu verringern. Bei dem was ich will, würden gerade Ausreißer das Egebnis entscheidend beeinflussen. (Sie dürfen deshalb nicht vorhanden sein, gegebenenfalls wäre die Kurve vorher zu glätten.)
Zitat:Und mich würde auch interessieren wie das Bewerten vonstatten geht, wenn man denn endlich die passende "beste" Gerade vorliegen hat.
Die maximale Abweichung wird durch die Spanne (Xmax-Xmin) dividiert und das Ergegnis in Prozent ausgedrückt. Üblich ist dann allerdings die Angabe der "Linearität" = 100% -Nichltinearität.
Soweit klar - nur: Man kann das alles von der X- oder von der Y- Achse aus machen. Bleibt die Nichtlinearität bei Vertauschung der Achsen gleich? Darüber muß ich mir noch Gedanken machen.
Werde (in anderem Posting) noch ein Beispiel aus dem wirklichen Leben liefern, damit es verständlicher wird.
|
|
|
24.02.2010, 19:26
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2010 19:37 von Lucki.)
Beitrag #8
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Nichtlinearität einer Kennline bestimmen
Hab das Problem inzwischen gelöst, Dank an alle, die mich hier unterstützt haben. Es war gar nicht so schwer. Ausgangspunkt ist die mittlere Gerade aus dem VI "Lineare Anpassung". Wenn ich die von der Originalkurve subtrahiere, dann erhalte ich ein horizontale, aber gewellte Kurve entsprechend der Nichtlinearität. Diese Kurve hat noch den Schönheitfehler, daß die Absolubeträge von Maximum und Minimum nicht gleich groß sind. (D.h.: Der Absolutbetrag der hieraus abgelesenen max. Abweichung lät sich also noch etwas reduzieren, wenn man die Kurve im Anstieg und Versatz etwas modifiziert)
Ich habe deshalb, ausgehend von dieser Fehlerkurve, Anstieg a1 und Versatz a0 der Referenzgeraden iiterativ in kleinen Schritten verändert, bis das Optimum (=Minimum der maxmalen Abweichung) erreicht ist. Entscheidend war dabei die Erkenntnis, daß man nur einen Parameter iterativ optimieren muß: a1. Den Versatz ao muß man nicht iterieren, der läßt sich jederzeit rein rechnerisch leicht auf geich große Abweichungen zu beiden Seiten trimmen.
Wenns jemand interessiert, hier das VI. (Beispielkurve ist als Standardwert gespeichert. Wens interessiert: Die Daten beziehen sich auf ein Galvanometer Typ 6860 von CTI)
lv90
Lintest.llb (Größe: 99,04 KB / Downloads: 319)
|
|
|
24.02.2010, 20:05
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2010 20:06 von dimitri84.)
Beitrag #9
|
|
|
24.02.2010, 22:45
(Dieser Beitrag wurde zuletzt bearbeitet: 24.02.2010 22:48 von Lucki.)
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Nichtlinearität einer Kennline bestimmen
' schrieb:Wer hat das so definiert? Ich finde da haben die Ausreißer aber 'nen ziemlich hohen Einfluss.
Weiß nicht, ob es sich hier überhaupt um eine Norm handelt, es ist eher eine Definition, und außerdem nicht die einzige dieser Art. Eine primitivere Definitionen ist z.B. die "Endpunkt-Linearität": Durch die Endpunkt der Kennlinie wird eine Gerade gezogen, und die maximale Abweichung der Kurve von dieser Geraden, dividiert durch die Spanne, ist das Maß für die Linearität.
In den Datenblättern werden, sofern es sich um Garantiewerte handelt, fast immer Maximalwerte, also Toleranzen, benannt und nicht irgendwelche mittleren Quadratsummen. Stell Dir vor: Die Kennline ist extrem linear, ausgenommen unmittelbar an einer der Grenzen des Bereichs. Da nützt es dem Anwender gar nichts, wenn er schriftlich hat, daß die über die gesamte Kennline aus den Quadratsumen berechnete durchschnittliche Abweichung einen ganz guten Eindruck macht: der Sensor ist Schrott.
Es kann allerdings ein messtechnisches Problem geben: Ausreißer können auch aus Messfehlern bei der Kennlinienaufnahme resultieren, d.h. sie haben gar nichts mit dem Sensor zu tun. Der Linearitätswert würde dann durch die Messung sehr leicht verfälscht. Wenn damit zu rechen ist, dann muß eben durch Datenkonditionierung dafür gesorgt werden, daß solche Aureißer vorher eliminiert werden. Falls ich bei meinem Projekt dieses Problem haben sollte, dann weiß ich schon was ich mache: Die gemessenen Punkte (ca. 500) werden vorher durch ein Polynom 10 Grades approximiert. Das kostet mit LabVIEW überhaupt nichts, man muß das entsprechende VI nur dazwischenschalten.
Gruß Ludwig
|
|
|
| |