PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Klassifikationsverfahren für Sensordaten



Alani
04.04.2012, 13:26
Hallo,

bitte um Hilfe von Robobasic Kennern.
Es geht um Klassifikation von Sensordaten autonomer Roboter (ROBONOVA).
Ich brauche starthilfe für Robobasic programmierung.
Dazu muss ich sagen, dass die Klassifikation mit einem minimalen Abstandklassifikator erfolgen soll.
Also:
zuerst möchte ich ein Unterprogramm schreiben,
3 Variablen für Merkmal m1, m2, m3
2x3 Variablen für Referenzvektoren u1 und u2
Ergebnis Klasse I oder II

Zuerst muss ich die Variablen Deklariren...

Kann mir jemand da weiter helfen?
Dankeschön

Alani
02.05.2012, 23:21
================================================== ========================================
'Globale Variablen Deklaration
'================================================= =========================================
DIM X1 AS INTEGER 'Parameter
DIM X2 AS INTEGER
DIM X3 AS INTEGER
DIM U1H1 AS INTEGER 'Referenzvektoren
DIM U2H1 AS INTEGER
DIM U3H1 AS INTEGER
DIM U1H2 AS INTEGER
DIM U2H2 AS INTEGER
DIM U3H2 AS INTEGER
DIM A1 AS INTEGER 'Zerlegung der Formel von Minimalen Abstandklassifikator
DIM B1 AS INTEGER
DIM C1 AS INTEGER
DIM D1 AS INTEGER
DIM A2 AS INTEGER
DIM B2 AS INTEGER
DIM C2 AS INTEGER
DIM D2 AS INTEGER
DIM A3 AS INTEGER
DIM B3 AS INTEGER
DIM C3 AS INTEGER
DIM D3 AS INTEGER
DIM A11 AS INTEGER
DIM B11 AS INTEGER
DIM C11 AS INTEGER
DIM D11 AS INTEGER
DIM A21 AS INTEGER
DIM B21 AS INTEGER
DIM C21 AS INTEGER
DIM D21 AS INTEGER
DIM A31 AS INTEGER
DIM B31 AS INTEGER
DIM C31 AS INTEGER
DIM D31 AS INTEGER
DIM D1x AS INTEGER
DIM D2x AS INTEGER
DIM X1A AS INTEGER 'Lernproben Klasse 1
DIM X1B AS INTEGER
DIM X1C AS INTEGER
DIM X1D AS INTEGER
DIM X2A AS INTEGER
DIM X2B AS INTEGER
DIM X2C AS INTEGER
DIM X2D AS INTEGER
DIM X3A AS INTEGER
DIM X3B AS INTEGER
DIM X3C AS INTEGER
DIM X3D AS INTEGER
DIM X4A AS INTEGER 'Lernproben Klasse 2
DIM X4B AS INTEGER
DIM X4C AS INTEGER
DIM X4D AS INTEGER
DIM X5A AS INTEGER
DIM X5B AS INTEGER
DIM X5C AS INTEGER
DIM X5D AS INTEGER
DIM X6A AS INTEGER
DIM X6B AS INTEGER
DIM X6C AS INTEGER
DIM X6D AS INTEGER
'==============Hauptprogramm====================== ===============================
MAIN:
GOSUB Programm_Lernen
GOSUB Klassifikator
GOTO MAIN
'=============Unterprogramm_Lernstichproben_Klasse _1======================================
Lernstichproben_KLASSE_1: '4 Lernproben pro Klasse
X1A=15
X1B=20
X1C=25
X1D=30
X2A=125
X2B=40
X2C=60
X2D=80
X3A=180
X3B=80
X3C=120
X3D=100
RETURN
'==============Unterprogramm_Lernstichproben_Klass e_2=====================================
Lernstichproben_KLASSE_2:
X4A=30
X4B=15
X4C=120
X4D=130
X5A=40
X5B=60
X5C=180
X5D=140
X6A=90
X6B=120
X6C=200
X6D=200
RETURN
'==============Unterprogramm_Programm_Lernen====== ========================
Programm_Lernen:
GOSUB Lernstichproben_Klasse_1
U1H1=X1A+X1B
U1H1=U1H1+X1C
U1H1=U1H1+X1D
U1H1=U1H1/4 '----hier wir der durchschnittleiche Mittelwert ermittelt------
U2H1=X2A+X2B
U2H1=U2H1+X2C
U2H1=U2H1+X2D
U2H1=U2H1/4 '----hier wir der durchschnittleiche Mittelwert ermittelt------

U3H1=X3A+X3B
U3H1=U3H1+X3C
U3H1=U3H1+X3D
U3H1=U3H1/4 '----hier wir der durchschnittleiche Mittelwert ermittelt------
GOSUB Lernstichproben_Klasse_2
U1H2=X4A+X4B
U1H2=U1H2+X4C
U1H2=U1H2+X4D
U1H2=U1H2/4 '----hier wir der durchschnittleiche Mittelwert ermittelt------
U2H2=X5A+X5B
U2H2=U2H2+X5C
U2H2=U2H2+X5D
U2H2=U2H2/4 '----hier wir der durchschnittleiche Mittelwert ermittelt------
U3H2=X6A+X6B
U3H2=U3H2+X6C
U3H2=U3H2+X6D
U3H2=U3H2/4 '----hier wir der durchschnittleiche Mittelwert ermittelt------
RETURN
'===============Unterprogramm_Parametersaetze===== ========================
Parameter:

X1=10
X2=120
X3=190
RETURN
'==================Klassifikator================== ======================
Klassifikator:
GOSUB Parameter
GOSUB Programm_Lernen
A1=X1*X1
B1=X1*U1H1
C1=X1*U1H1
D1=U1H1*U1H1

A2=X2*X2
B2=X2*U2H1
C2=X2*U2H1
D2=U2H2*U2H2
A3=X3*X3
B3=X3*U3H1
C3=X3*U3H1
D3=U3H1*U3H1
D1x=A1-B1-C1+D1+A2-B2-C2+D2+A3-B3-C3+D3

A11=X1*X1
B11=X1*U1H2
C11=X1*U1H2
D11=U1H2*U1H2
A21=X2*X2
B21=X2*U2H2
C21=X2*U2H2
D21=U2H2*U2H2
A31=X3*X3
B31=X3*U3H2
C31=X3*U3H2
D31=U3H2*U3H2
D2x=A11-B11-C11+D11+A21-B21-C21+D21+A31-B31-C31+D31

IF D1x>D2x THEN
GOSUB KLASSE2_LINKE_ARM

ELSEIF D1x<D2x THEN

GOSUB KLASSE1_RECHTE_ARM


ENDIF
RETURN
'===========Auswertung_Klasse_1=================== ===========================================
KLASSE1_RECHTE_ARM:

MOVE G6C,100,30,80,100,100,100
WAIT
RETURN
'===========Auswertung_Klasse_2=================== ========================================
KLASSE2_LINKE_ARM:
MOVE G6B,100,30,80,100,100,100
WAIT
RETURN