Статистические исследования контроля качества в автоматизированных
..pdfПРИЛОЖЕНИЕ 4
Листинг программного кода для расчёта степенных средних величин в программной среде «STATISTICA 8»
Option44Base 1 '#Uses "*STB.SVX"
'#Uses "*GRAPHICS.SVX" Sub Main
Dim den As Spreadsheet
Set den = Active4Spreads heet 'Объявляем переменные типа integer Dim N, i, hs, gs, xs, qs, cs, c As Integer N = 0
For i = 1 To 15 'Цикл For...Next используется для расчёта величины N N = N + den.Value (i,3)
Next i
'Записываем результат вычисления суммы в 1 ячейку 4 столбца den.Value (1,4) = N
'Расчёт простой средней гармонической, средней, квадратической, кубической
hs = 0 xs = 0 qs = 0 сs = 0
For i = 1 To N
hs = hs + 1 / (den.Value (i,1)) xs = xs + den.Value (i,1)
qs = qs + den.Value (i,1)^2 cs = cs + den.Value (i,1)^3 Next i
den.Value (1,5) = N/hs ' гармоническая den.Value (3,5) = xs/N ' средняя
den.Value (4,5) = (qs/N)^(1/2) ' квадратическая den.Value (5,5) = (cs/N)^(1/3) ' кубическая
'Расчёт взвешенной средней гармонической, средней, квадратической, кубической
hs = 0 xs = 0
251
qs = 0 cs = 0
For i = 1 To 14
hs = hs + den.Value (i,3) / (den.Value (i,2)) xs = xs + (den.Value (i,2)) * den.Value (i,3) qs = qs + (den.Value (i,2)^2) * den.Value (i,3) cs = cs + (den.Value (i,2)^3) * den.Value (i,3) Next i
den.Value (1,6) = N/hs ' гармоническая den.Value (3,6) = xs/N ' средняя
den.Value (4,6) = (qs/N)^(1/2) ' квадратическая den.Value (5,6) = (cs/N)^(1/3) ' кубическая
'Расчёт простой средней геометрической gs = 1
For i = 1 To N-1
gs = gs * (den.Value (i+1,1)) / (den.Value (i,1)) Next i
den.Value (2,5) = gs^(1/(N-1))
den.Value (2,6) = (den.Value (N,1)/den.Value (1,1))^(1/(N-1)) End Sub
252
ПРИЛОЖЕНИЕ 5
Листинг программного кода для определения объёма и ошибки выборки, статистической обработки
экспериментальных данных и определения параметров серийной выборки в программной среде «STATISTICA 8»
Option Base 1 '#Uses "*STB.SVX"
'#Uses "*GRAPHICS.SVX" Sub Main
Dim IDE_X As Spreadsheet
Set IDE_X = Active Spreadsheet
'Объявляем x как массив значений типа double Dim id_1 (1 To 101) As Double
Dim k (1 To 101) As Double 'Объявляем переменную i типа integer Dim i As Integer
Dim Nx As Integer Dim e_otn As Double
Dim id_1max As Double Dim id_1mean As Double Dim id_1sum As Double Dim sigma_t2 As Double Dim sigma2 As Double Dim sum_xm As Double Dim sum_x2m As Double Dim sum_m As Double Dim sum_x As Double Dim sigma3 As Double Dim sigma_t3 As Double
Nx = IDE_X.Value (1,4)
Nm = IDE_X.Value (2,4)
'Цикл For...Next используется для заполнения массива x элементами от 1 до 101 из ячеек первого столбца таблицы
For i = 1 To Nx
id_1(i) = IDE_X.Value (i,1) Next i
253
'Расчёт максимального значения элементов массива id_1 и присвоение этого значения переменной id_1max
ValMax(id_1,1,Nx,id_1max)
ValMean(id_1,1,Nx,id_1mean)
ValSum(id_1,1,Nx,id_1sum)
'Расчёт относительной ошибки и запись результата в 1 ячейку 6 столбца e_otn = Abs(IDE_X.Value (2,5)-id_1mean) / id_1mean
IDE_X.Value (1,6) = e_otn
IDE_X.Value (1,7) = e_otn / IDE_X.Value (2,3)
'Расчёт предельной ошибки выборки (101 значение) IDE_X.Value (1,9) = Abs(id_1mean-id_1sum/Nx)
'Определение ошибки выборки (способ № 1) sigma_t = 0
For i = 1 To Nx 'Цикл for...next
'Циклif...then...else для сравнения значений
If Abs(id_1(i) - id_1mean) > IDE_X.Value (1,8) Then IDE_X.Value (i,10) = "True"
Else
IDE_X.Value (i,10) = 0 End If
sigma_t2 = sigma_t2 + (id_1(i) - id_1mean)^2 'IDE_X.Value (i,11) = Abs(id_1(i) - id_1mean) Next i
sigma2 = Sqrt(sigma_t2/(Nx-1))
IDE_X.Value (2,9) = sigma2 ' Среднееквадратическое отклонение(СКО)
'Определение ошибки выборки (способ № 2) For i = 1 To Nx
k(i) = Abs((id_1(i) - id_1mean)/sigma2) IDE_X.Value (i,13) = k(i)
If k(i) > IDE_X.Value (1,11) Then 'Циклif...then...else длясравнениязначений IDE_X.Value (i,12) = "True"
Else
IDE_X.Value (i,12) = 0 EndIf
Next i
254
'Статистическая обработка экспериментальных данных sum_xm = 0
sum_x2m = 0 sum_m = 0 sum_x = 0
For i = 1 To Nm
sum_xm = sum_xm + IDE_X.Value (i,14) * IDE_X.Value (i,15) sum_x2m = sum_x2m + (IDE_X.Value (i,14)^2) * IDE_X.Value (i,15) sum_m = sum_m + IDE_X.Value (i,15)
sum_x = sum_x + IDE_X.Value (i,14) Next i
IDE_X.Value (1,16) = sum_xm / sum_m ' средняя взвешенная IDE_X.Value (2,16) = (sum_x2m / sum_m) - IDE_X.Value (1,16)^2 'дисперсия1 IDE_X.Value (3,16) = Sqrt(IDE_X.Value (2,16)) ' СКО 1
'средняя ошибка выборки 1
IDE_X.Value (1,17) = IDE_X.Value (3,16) / Sqrt(sum_m) 'предельная ошибка 1 выборки с вероятностью 0,954 IDE_X.Value (2,17) = IDE_X.Value (2,8) * IDE_X.Value (1,17) 'нижняя и верхняя границы 1 генеральной средней
IDE_X.Value (1,18) = IDE_X.Value (1,16) - IDE_X.Value (2,17) IDE_X.Value (2,18) = IDE_X.Value (1,16) + IDE_X.Value (2,17) 'поправка на бесповторность отбора
IDE_X.Value (1,19) = Sqrt((IDE_X.Value (2,16) / sum_m) * (1 - (sum_m / (100 * sum_m / IDE_X.Value (3,3)))))
'средний размер изделия по выборочной совокупности
IDE_X.Value (1,20) = sum_x / IDE_X.Value (2,4)
sigma_t3 = 0 For i = 1 To Nm
sigma_t3 = sigma_t3 + (IDE_X.Value (i,14) - IDE_X.Value (1,20))^2 Next i
IDE_X.Value (2,20) = Sqrt(sigma_t3 / Nm) ' дисперсия 2
IDE_X.Value (1,21) = Sqrt((IDE_X.Value (2,20) / Nm) * (1 - (Nm / (100 * Nm / IDE_X.Value (3,3))))) ' cредняя ошибка выборки 2
'предельная ошибка 1 выборки с вероятностью 0,954 IDE_X.Value (2,21) = IDE_X.Value (2,8) * IDE_X.Value (1,21) 'нижняяи верхняя границы 2 генеральной средней
IDE_X.Value (1,22) = IDE_X.Value (1,20) - IDE_X.Value (2,21) IDE_X.Value (2,22) = IDE_X.Value (1,20) + IDE_X.Value (2,21)
255
IDE_X.Value (1,23) = (IDE_X.Value (2,8)^2) * IDE_X.Value (2,20) / IDE_X.Value (2,21)^2 'повторный отбор
IDE_X.Value (2,23) = ((IDE_X.Value (2,8)^2) * IDE_X.Value (2,20)*Nm) / ((IDE_X.Value (2,8)^2) * IDE_X.Value (2,20) + IDE_X.Value (2,21)^2 * Nm) ' бесповторный отбор
End Sub
256
ПРИЛОЖЕНИЕ 6
Листинг программного кода для построения теоретического закона распределения (кривой Гаусса) в программной среде «STATISTICA 8»
Option Base 1 '#Uses "*STB.SVX"
'#Uses "*GRAPHICS.SVX" Sub Main
Dim MR As Spreadsheet
Set MR = ActiveSpreadsheet
Dim x (1 To 100) As Double 'Объявляемx какмассивзначенийтипаdouble Dim xi (1 To 100) As Double
Dim xi_mi (1 To 100) As Double Dim stdev_xi (1 To 100) As Double Dim mi (1 To 8) As Double
Dim i As Integer |
'Объявляем переменную i типа integer |
Dim c As Double |
'Объявляем переменную c типа double |
Dim d As Double |
|
Dim f As Double |
|
Dim n As Double |
|
Dim k As Double |
|
Dim s As Double |
|
Dim p As Double |
|
Dim t As Double |
|
Dim Er As Double |
'Объём выборки |
n = 100 |
|
k = MR.Value (2,7) |
'Число интервалов (правило Старджесса) |
'Цикл For...Next используется для заполнения массива x элементами от 1
до 100
For i = 1 To n
'Заполнение массива x данными из ячеек первого столбца x(i) = MR.Value (i,1) Next i
'Цикл For...Next используется для заполнения массива xi элементами от 1 до 8
For i = 1 To k
'Заполнение массива xi данными из ячеек третьего столбца
257
xi(i) = Abs(MR.Value (i,3)-MR.Value (4,7))
MR.Value (i,4) = xi(i) |
|
Next i |
'ОпределениемаксимальногоэлементамассиваX |
ValMax(x,1,n,c) |
|
ValMin(x,1,n,d) |
'ОпределениеминимальногоэлементамассиваX |
MR.Value (1,6) = c |
|
MR.Value (2,6) = d |
'Определение размаха R |
MR.Value (1,7) = c-d |
MR.Value (3,7) = MR.Value (1,7)/MR.Value (2,7) 'ОпределениеразмахаCp
'Цикл For...Next используется для заполнения массива xi_mi элементами от
1 до 8
For i = 1 To k
xi_mi(i) = MR.Value (i,4)*MR.Value (i,5) Next i
ValSum(xi_mi,1,k,f) 'Определение средней арифетической массива xi MR.Value (1,8) = f/n
'Цикл For...Next используется для заполнения массива stdev_xi элементами от 1 до 8
For i = 1 To k
stdev_xi(i) = MR.Value (i,5)*(MR.Value (i,4)-MR.Value (1,8))^2 Next i
ValSum(stdev_xi,1,k,s)
MR.Value (2,8) = Sqrt(s/(n-1)) 'Определениеср. кв. отклонениямассиваxi 'Определение ср. кв. отклоненияс учётомпогрешности(для100 значений) MR.Value (4,8) = MR.Value (2,8)*MR.Value (3,8)
p = (MR.Value (3,7)*n)/(MR.Value (4,8)*Sqrt(2*PI))
'Цикл For...Next используется для определения mi' по закону Гаусса
For i = 1 To k
t = (MR.Value (i,4)-MR.Value (1,8))/MR.Value (4,8) MR.Value (i,9) = p*Exp(-(t^2)/2)
Nexti
EndSub
258
ПРИЛОЖЕНИЕ 7
Значения одностороннего и двухстороннего критериев для построения модифицированной контрольной карты Шухарта
Таблица П7 . 1 Значения ARL для В1 = 2,75 (односторонний критерий)
Таблица П7 . 2 Значения ARL для В1 = 3,00 (односторонний критерий)
259
Таблица П7 . 3
Значения ARL для В1 = 3,25 (односторонний критерий)
Таблица П7 . 4
Значения ARL (двусторонний критерий)
260