Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Статистические исследования контроля качества в автоматизированных

..pdf
Скачиваний:
3
Добавлен:
15.11.2022
Размер:
6.82 Mб
Скачать

ПРИЛОЖЕНИЕ 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