LabVIEWForum.de - Messwerte in einem Fuzzysystem bearbeiten

LabVIEWForum.de

Normale Version: Messwerte in einem Fuzzysystem bearbeiten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe LV- Gemeinde,

Ich soll ein Fuzzysystem samt Memberships, Variablen und Regeln erstellen. Die verwendete Version ist 9.0. In diesem System soll ich zuerst eine Variable erstellen. Diese Varibale hat verschiedene Memberships (gleichmäßige Dreiecke). Das habe ich soweit geschafft.

Nun habe ich eine Tabelle mit Messwerten vorliegen. Jede Spalte in diser Tabelle stellt eine Variable dar. (s. Bild Messwerte). Ich will ein Programm erstellen, das folgendes tut:

Das Programm soll jeden Messwert aus der Tabelle entnehmen und diesem Wert eine (Membership-index) zuordnen. D.h das Programm muss so zu sagen wissen, in welchem Membership der Messwert liegt.

Beispiel: (s. Bild Membership)
Fläche von O2Hb1 (Membership1) streckt sich über die Punkte: 20,23,26 .
Fläche von O2Hb2 (zweites Membership) liegt über : 23,26,29 usw...

Wenn nun ein Messwert 24,12 beträge (s. Bild der Messwerte), dann soll das Programm diesen Wert im Membership1 einordnen. Denn der Wert liegt näher an der Spitze von Membership1.

Und so weiter muss es mit den 145 Messwerten geschehen.

Ich hoffe, ich habe das Problem so gut so ich kann erklärt. Ich warte sehr gespannt auf eure Antworte.

MFG

Jebril

PS: Wenn etwas nicht ganz klar ist, dann bitte einfach fragen, damit wir die Lösung finden.
Hi Jebril
Wenn ich FUZZY richtig verstanden habe, wird der Messwert von 24,12 zu den jeweils resultirenden Anteilen sowohl der linguistische Variablen Membership1 und Membership2 zugeordnet. Die Resultate der anzuwendenden Regeln werden dann entsprechend gewichtet.

Ein Messwert wird also im allgemeinen, nämlich bei überlappenden Wertebereichen linguistischer Variablen, nicht nur einer einzigen zugeordnet.

Hast Du Dir schon einmal das Fuzzy-Toolkit von NI angeschaut?

Gruß Holger
Hallo Holger,

Vielen Dank für deine Antwort. Du hast völlig recht. Das Fuzzy-Tool gewichtet die angewandte Regeln und gibt Das Ergebnis aus.
Aber wenn du die Regeln eingibst/baust, musst du eigentlich entscheiden, mit welchem Wertebereich (Membership) eine Variable in einer bestimmten Regel beiträgt. Dementsprechend baust du auch die restlichen Regeln.

Danach wenn du das Fuzzysystem testest, gibt das System das Resultat laut der Gewichtung der angewandten Regeln zurück. Aber Beim Regeln Bauen kann man nur ein Membership wählen (s. angehängtes Bild).


Aber bei meinem Problem geht es um eine andere Sache. und zwar:
ich will, dass ein bestimmter Wert, der in einem Bereich eines beliebigen Membership liegt, seine Membership-index übernimmt. Das Dreieck (Membership) deren Dreieckspitze am naheliegendsten ist an dem Wert soll genommen werden.

Zwar übelappen sich die Wertebereichen, aber es reicht wenn nur ein Membership gewählt.

MFG


PS: ich habe die .fs Datei angehängt, damit ihr auch mit den Variablen und deren Memberships probieren könnt.
Referenz-URLs