Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Messkurve Toleranzband

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
18.01.2011, 22:12 Uhr
~Martin3110
Gast


Bei der Messkurve handelt es sich um Analogwerte (Drehmoment), die von einer I/O Karte gemessen weden. Diese Analogwerte werden in einem Array gespeichert.
Unser Ziel ist es eine Vergleichskurve aufzuzeichnen mit der man dann alle anderen Kurven vergleicht. Alle Kurven, die in einem Toleranzband liegen sind Gut und die außerhalb liegen sind schlecht. Jetzt bräuchte ich eine Möglichkeit einfach ein Toleranzband zu erzeugen.

Die Meßkurve kann einen beliebiegen Verlauf haben (keine matematische Gleichung).
Der Ansatz mit der Steigung horcht sich recht gut an. Wie kann ich aber diese Steigung ermitteln. Ich habe ein simples Array zur Verfügung.
x[0] = 0.3
x[1] = 0.4
....
x[n] = 0

Ich hoffe jetzt kann mir wer weiterhelfen.

danke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
19.01.2011, 01:39 Uhr
Hans
Library Walker
(Operator)


also eine Referenzkurve incl. Toleranzen, mit der dann weitere Kurven verglichen werden sollen.
Ich nehme mal an, das sich die Drehmomente kontinuierlich ändern, und sich somit ein definierter Kurvenverlauf bestimmen lässt. Beispielsweise wenn ein Motor anläuft oder ein Gelenk bewegt wird. Wenn nicht mathematisch, dann zumindest unter definierten Bedingungen am Teststand bzw. im Versuchsaufbau.
Zur Auswertung kommt da jetzt die numerische Mathematik ins Spiel. Das Stichwort heisst Polynominterpolation, bzw. Splineinterpolation. Da bin ich jedoch kein Experte drin und hab es auch noch nicht gemacht, so das ich dabei nicht viel weiter helfen kann.

Nach einem Blick in ein einführendes Lehrbuch vermute ich jedoch, das die Splineinterpolation die günstigere Möglichkeit zur Auswertung ist, weil sie keine "Überschwinger" erzeugt. Und um meinem Titel gerecht zu werden hier noch ein weiterer Buchtip dazu:

Numerical Recipes 3rd Edition: The Art of Scientific Computing
William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery
Weitere Daten von Amazon:
Gebundene Ausgabe: 1256 Seiten
Verlag: Cambridge University Press; Auflage: 3 (6. September 2007)
Sprache: Englisch
ISBN-10: 0521880688
ISBN-13: 978-0521880688

Die Autoren bieten zum jeweils behandelten Stoff auch Quellcode an, der sich im Buch zum abtippen befindet, oder auf einer separat erhältlichen CD. Der Code in dieser aktuellen Auflage ist in C++ verfasst. Von den älteren Auflagen des Buches gibt es auch Versionen für Basic, Pascal, C (ohne ++) und Fortran, wenn ich mich nicht irre.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 19.01.2011 um 01:45 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
19.01.2011, 02:38 Uhr
Hans
Library Walker
(Operator)


Nachtrag: Irgendwie hab ich mich da an ein Teilproblem festgefressen, das womöglich gar nicht näher betrachtet werden muss...

Aber löschen will ich den Beitrag jetzt auch nicht mehr; - Das hat der Browser aus irgend einem Grund schon mal für mich erledigt, als ich ihn fast fertig geschrieben hatte, so das ich noch mal von vorne anfangen durfte. Und vielleicht sind die Literaturtips ja trotzdem ganz nützlich.


Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
19.01.2011, 09:06 Uhr
~Martin3110
Gast


Mit der Interpolation bzw. Glättung der Kurve habe ich mich schon beschäfftigt und das funktioniert auch schon.

Jetzt such noch etwas zum Ermitteln des Toleranzbandes...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
19.01.2011, 11:55 Uhr
Tommix



Hallo,
naja der Anstieg der einzelnen Geraden ist dy/dx bzw. in dem Fall einfach nur x[i+1]-x[i] (x[i] entspricht y und dx ist immer eins). Wie AO vorschlug, kannst Du als Anstieg an der Stelle i den Mittelwert der Geraden vor- und nachher nehmen. Der Anstiegswinkel ist der Arcus-Tangens aus diesem Wert.
Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: