Die Überwachung von Fertigungsprozessen und Qualitätssicherung von Industrieprodukten wird häufig mit sog. Kontrollkarten (auch Qualitätsregelkarten genannt) durchgeführt. Basis sind dabei Mittelwerte von Produkt-Stichproben sowie deren Toleranz-Spannweiten. Für die Einrichtung einer (einfachen) Kontrollkarte werden im Vorlauf aus der Lieferung oder Produktion N Stichproben des Umfangs k gezogen und Mittelwerte sowie Spannweiten errechnet. Daraus ergeben sich dann "Konfidenzbänder" (auch Vertrauensintervalle genannt), die wegen des üblicherweise kleinen Stichprobenumfangs aber nicht der Gaussverteilung, sondern einer sog. "Hypergeometrischen Verteilung" folgen.
In der laufenden Fertigung werden dann gelegentlich Stichproben entnommen. Durch Mittelwertbildung ist das Verfahren "Ausreisser-resistent", und die Werte werden daraufhin überprüft, ob sie innerhalb der zugehörigen Konfidenzbänder liegen. Ist das nicht der Fall, muß eingegriffen werden, da es sich nicht mehr um rein zufällige Abweichungen handelt.
Hinweis: Darüber hinaus existieren in der betrieblichen Praxis auch Karten, bei denen zwischen Warn- und Eingriffsgrenzen unterschieden wird!
WindowTitle upper$(" (x,R) - Q u a l i t ä t s k o n t r o l l k a r t e")
'Q:Müller:Di base-Prog.f.d.angew.Statistik, Oldenbourg 1983, S.270f
'Demoübersetzung nach XProfan11, 2017-11 by P.Specht/Wien, OHNE JEDE GEWÄHR!
WindowStyle 24:cls:font 2
declare R![10],X![10,20],X1![10]
declare D$,DATA$,E$,K$
declare E&,I&,j&,K&,N&
declare A!,D1!,D2!,K0!,K9!,R0!,R1!,R9!,tmp!,X0!,X2!,X9!
DATA$=\
"1.88, 0.00, 3.27,"+\
"1.02, 0.00, 2.57,"+\
"0.73, 0.00, 2.28,"+\
"0.58, 0.00, 2.11,"+\
"0.48, 0.00, 2.00,"+\
"0.42, 0.08, 1.92,"+\
"0.37, 0.14, 1.86,"+\
"0.34, 0.18, 1.82,"+\
"0.31, 0.22, 1.78,"+\
"0.29, 0.26, 1.74,"+\
"0.27, 0.28, 1.72,"+\
"0.25, 0.31, 1.69,"+\
"0.24, 0.33, 1.67,"+\
"0.22, 0.35, 1.65,"+\
"0.21, 0.36, 1.64,"+\
"0.20, 0.38, 1.62,"+\
"0.19, 0.39, 1.62,"+\
"0.19, 0.40, 1.60,"+\
"0.18, 0.41, 1.59"
K$="XProfan-PC"
Start:
CLS
print "\n Datum ?: ";:INPUT D$
if D$="":D$=date$(0):locate %csrlin-1,14:print d$
print " Kennung: ";k$:print
PRINT " 1 = Einrichten einer Kontrollkarte auf Grund von Gut-Proben"
PRINT " 2 = Stichprobenauswertung und Einträge in die Kontrollkarte"
PRINT
G150:
print " Gewünschte Wahl-Nr.?: ";:input E&
case (E&<1) OR (E&>2):goto "G150"
PRINT
G180:
print " Anzahl der Stichproben [2..10]?: ";:INPUT N&
if (N&<=1) OR (N&>10):beep:Goto "G180":endif
G200:
print " Stichprobenumfang [3..20]?: ";:INPUT K&
PRINT
if (K&<=2) OR (K&>20):beep:goto "G200":endif
Whileloop N&:I&=&Loop
PRINT "\n ";I&;". Stichprobe\n --------------------------"
whileloop k&:j&=&Loop
PRINT " ";J&;". Eingabewert?: ";
input tmp!:X![I&,J&]=tmp!
endwhile
PRINT
endwhile
' ----------------------------------------------------
weiter:
' Ausdruck
Cls:PRINT " ";D$;" ";K$:PRINT
GOTO if(E&=1,"G380","G400")
G380:
PRINT " Einrichten der Kontrollkarte"
GOTO "G410"
G400:
PRINT " Eintragen in die Kontrollkarte"
G410:
PRINT
PRINT " Anzahl dsr Stichproben: ";N&
PRINT " Jew. Stichprobenumfang: ";K&
PRINT
whileloop n&:i&=&Loop
PRINT
PRINT " ";I&;". Stichprobe"
PRINT
whileloop k&:j&=&Loop
PRINT " ";J&;". Eingabewert: ";format$("%g",X![I&,J&])
endwhile
PRINT
endwhile
' ---------------------------
' Berechnung
whileloop n&:i&=&Loop
X1![I&]=0
endwhile
X2!=0:R1!=0
whileloop n&:i&=&Loop
X0!=X![I&,1]
X9!=X![I&,1]
whileloop k&:j&=&Loop
case X0!>X![I&,J&]:X0!=X![I&,J&]
case X9!<X![I&,J&]:X9!=X![I&,J&]
X1![I&]=X1![I&]+X![I&,J&]
endwhile
X1![I&]=X1![I&]/K&
R![I&]=X9!-X0!
R1!=R1!+R![I&]
X2!=X2!+X1![I&]
endwhile
X2!=X2!/N&
R1!=R1!/N&
Goto if(E&=1,"G790","G1200")
G790:
A! =val(substr$(data$,3*(k&-2)+1,","))
D1!=val(substr$(data$,3*(k&-2)+2,","))
D2!=val(substr$(data$,3*(k&-2)+3,","))
K0!=X2!-A!*R1!
K9!=X2!+A!*R1!
R0!=D1!*R1!
R9!=D2!*R1!
G1200:
' Ausgabeteil
PRINT:PRINT:PRINT
case E&=1:GOTO "G1230"
case E&=2:goto "G1290"
G1230:
PRINT " TOLERANZBÄNDER FÜR DIE KONTROLLKARTE"
PRINT " ------------------------------------"
PRINT " Untere Kontrollgrenze per Stichproben-Mittelwerte: ";format$("%g",K0!)
PRINT " Obere Kontrollgrenze per Stichproben-Mittelwerte: ";format$("%g",K9!)
PRINT " Ontere Kontrollgrenze per Stichproben-Spannweite: ";format$("%g",R0!)
PRINT " Obere Kontrollgrenze per Stichproben-Spannweite: ";format$("%g",R9!)
G1290:
PRINT
PRINT " ERRECHNUNG DER STICHPROBENMITTELWERTE UND -SPANNWEITEN"
Print " ------------------------------------------------------"
PRINT " Nr.";tab(14);"Mittelwert";tab(32);"Spannweite"
whileloop n&:i&=&Loop
PRINT " ";I&;TAB(14);format$("%g",X1![I&]);TAB(32);format$("%g",R![I&])
endwhile
PRINT
G1350:
print:locate %csrlin-1,1
print " Sind weitere Berechnungen gewünscht (j/n)?: ";:INPUT E$
case left$(lower$(E$),1)="j":goto "Start"
END
|