![]() |
Термист Термомеханическое упрочнение арматурного проката технология, средства, разработка |
| Главная | О сайте | Стандарты | Технология | Устройства |
| Лаборатория | Библиотека | Глоссарий | Желтые страницы | Обратная связь |
Главная >> Лаборатория >> Использование контрольных карт Шухарта
Описание методики см. Особые точки карт Шухарта. Восемь тестов для анализа контрольных карт Шухарта или "Выход процесса из-под контроля".
function Test_Shewhart(M, V_Lin)
% Тестирование контрольной карты Шухарта
UCL=V_Lin(1);
UCL_2_3=V_Lin(2);
UCL_1_3=V_Lin(3);
CL=V_Lin(4);
LCL_1_3=V_Lin(5);
LCL_2_3=V_Lin(6);
LCL=V_Lin(7);
N=length(M(1,:));
% Тест одной точки. Точка выходит за контрольные пределы
for i=1:N
if Test_01(M(2,i), LCL, UCL)
plot(M(1,i), M(2,i), 'or', 'LineWidth', 5)
end
end
% Тест "3". Две из трех последовательных точек находятся с одной стороны
% от центральной линии в зоне A или дальше
if N >= 3
for i=1:(N-2)
M_t1=M(:,i:(i+2));
[Flag, V_Out]=Test_03(M_t1(2,:), LCL_2_3, UCL_2_3);
if Flag
M_t1=M_t1(:, V_Out==1);
plot(M_t1(1,:), M_t1(2,:), 'or', 'LineWidth', 5)
end
end
end
% Тест "5". Четыре из пяти последовательных точек находятся с одной
% стороны от центральной линии в зоне B или дальше
if N >= 5
for i=1:(N-4)
M_t1=M(:,i:(i+4));
[Flag, V_Out]=Test_05(M_t1(2,:), LCL_1_3, UCL_1_3);
if Flag
M_t1=M_t1(:, V_Out==1);
plot(M_t1(1,:), M_t1(2,:), 'or', 'LineWidth', 5)
end
end
end
% Тест "6". Шесть последовательных точек расположены по возрастанию
% или по убыванию
if N >= 6
for i=1:(N-5)
M_t1=M(:,i:(i+5));
if Test_06(M_t1(2,:))
plot(M_t1(1,:), M_t1(2,:), 'or', 'LineWidth', 5)
end
end
end
% Тест "8". Восемь последовательных точек находятся вне зоны C
% с обеих сторон от центральной линии
if N >= 8
for i=1:(N-7)
M_t1=M(:,i:(i+7));
if Test_08(M_t1(2,:), LCL_1_3, UCL_1_3)
plot(M_t1(1,:), M_t1(2,:), 'or', 'LineWidth', 5)
end
end
end
% Тест "9". Девять последовательных точек находятся с одной стороны
% от центральной линии
if N >= 9
for i=1:(N-8)
M_t1=M(:,i:(i+8));
if Test_09(M_t1(2,:), CL)
plot(M_t1(1,:), M_t1(2,:), 'or', 'LineWidth', 5)
end
end
end
% Тест "14". Есть 14 последовательных точек, чередующихся вверх-вниз
if N >= 14
for i=1:(N-13)
M_t1=M(:,i:(i+13));
if Test_14(M_t1(2,:))
plot(M_t1(1,:), M_t1(2,:), 'or', 'LineWidth', 5)
end
end
end
% Тест "15". Есть 15 последовательных точек в зоне C (по обе стороны
% от центральной линии)
if N >= 15
for i=1:(N-14)
M_t1=M(:,i:(i+14));
if Test_15(M_t1(2,:), LCL_1_3, UCL_1_3)
plot(M_t1(1,:), M_t1(2,:), 'or', 'LineWidth', 5)
end
end
end
![]() |
Тест одной точки: Точка выходит за контрольные пределы |
function Flag=Test_01(x, LCL, UCL)
% Проверка последовательности при анализе контрольных карт Шухарта
% Тест одной точки: Точка выходит за контрольные пределы
% Входные данные:
% x - анализируемое значение (скаляр)
% LCL и UCL - соответственно нижняя и верхняя контрольные границы (скалярные величины)
% Выходное значение:
% Flag = 1 если условие выполняется, и Flag = 0 если не выполняется
% Проверка входных значений
if ~all(size(x)==[1 1]) | ~all(size(LCL)==[1 1]) | ~all(size(UCL)==[1 1])
error('Ошибка в Test_01. x, LCL, UCL должны быть скалярными.')
end
if x < LCL | x > UCL
Flag=1;
else
Flag=0;
end
![]() |
Тест “3”: Две из трех последовательных точек находятся с одной стороны от центральной линии в зоне A или дальше |
function [Flag, V_Out]=Test_03(V, LCL_2_3, UCL_2_3)
% Проверка последовательности при анализе контрольных карт Шухарта
% Тест “3”: Две из трех последовательных точек находятся с одной стороны
% от центральной линии в зоне A или дальше
% Входные данные:
% V - исходный вектор из 3 значений
% LCL_2_3 - нижняя граница нижней зоны B (скаляр)
% UCL_2_3 - верхняя граница верхней зоны B (скаляр)
% Выходные значения:
% Flag = 1 если условие выполняется, и Flag = 0 если не выполняется
% V_Out - вектор с порядковыми номерами точек не прошедших тестирование
% Проверка входных значений
if length(V)~=3
error('Ошибка в Test_03. В векторе V должно быть 3 значения')
end
if ~all(size(LCL_2_3)==[1 1]) | ~all(size(UCL_2_3)==[1 1])
error('Ошибка в Test_03. LCL_2_3 и UCL_2_3 должны быть скалярными.')
end
if sum(V <= LCL_2_3) >= 2
Flag=1;
V_Out=(V <= LCL_2_3);
elseif sum(V >= UCL_2_3) >= 2
Flag=1;
V_Out=(V >= UCL_2_3);
else
Flag=0;
V_Out=NaN;
end
![]() |
Тест “5”: Четыре из пяти последовательных точек находятся с одной стороны от центральной линии в зоне B или дальше |
function [Flag, V_Out]=Test_05(V, LCL_1_3, UCL_1_3)
% Проверка последовательности при анализе контрольных карт Шухарта
% Тест “5”: Четыре из пяти последовательных точек находятся с одной стороны
% от центральной линии в зоне B или дальше
% Входные данные:
% V - исходный вектор из 5 значений
% LCL_1_3 - нижняя граница зоны C (скаляр)
% UCL_1_3 - верхняя граница зоны C (скаляр)
% Выходные значения:
% Flag = 1 если условие выполняется, и Flag = 0 если не выполняется
% V_Out - вектор с порядковыми номерами точек не прошедших тестирование
% Проверка входных значений
if length(V)~=5
error('Ошибка в Test_05. В векторе V должно быть 5 значений')
end
if ~all(size(LCL_1_3)==[1 1]) | ~all(size(UCL_1_3)==[1 1])
error('Ошибка в Test_05. LCL_1_3 и UCL_1_3 должны быть скалярными.')
end
if sum(V <= LCL_1_3) >= 4
Flag=1;
V_Out=(V <= LCL_1_3);
elseif sum(V >= UCL_1_3) >= 4
Flag=1;
V_Out=(V >= UCL_1_3);
else
Flag=0;
V_Out=NaN;
end
![]() |
Тест “6”: Шесть последовательных точек расположены по возрастанию или по убыванию |
function Flag=Test_06(V)
% Проверка последовательности при анализе контрольных карт Шухарта
% Тест “6”: Шесть последовательных точек расположены по возрастанию или по убыванию
% Входные данные:
% V - исходный вектор из 6 значений
% Выходное значение:
% Flag = 1 если условие выполняется, и Flag = 0 если не выполняется
% Проверка входных значений
if length(V)~=6
error('Ошибка в Test_06. Должно быть 6 значений')
end
V1=diff(V);
Flag = all(V1>=0) | all(V1<=0);
![]() |
Тест “8”: Восемь последовательных точек находятся вне зоны C с обеих сторон от центральной линии |
function Flag=Test_08(V, LCL_1_3, UCL_1_3)
% Проверка последовательности при анализе контрольных карт Шухарта
% Тест “8”: Восемь последовательных точек находятся вне зоны C
% с обеих сторон от центральной линии
% Входные данные:
% V - исходный вектор из 8 значений
% LCL_1_3 - нижняя граница зоны C (скаляр)
% UCL_1_3 - верхняя граница зоны C (скаляр)
% Выходное значение:
% Flag = 1 если условие выполняется, и Flag = 0 если не выполняется
% Проверка входных значений
if length(V)~=8
error('Ошибка в Test_08. В векторе V должно быть 8 значений')
end
if ~all(size(LCL_1_3)==[1 1]) | ~all(size(UCL_1_3)==[1 1])
error('Ошибка в Test_08. LCL_1_3 и UCL_1_3 должны быть скалярными.')
end
Flag = all((V <= LCL_1_3) + (V >= UCL_1_3));
![]() |
Тест “9”: Девять последовательных точек находятся с одной стороны от центральной линии |
function Flag=Test_09(V, CL)
% Проверка последовательности при анализе контрольных карт Шухарта
% Тест “9”: Девять последовательных точек находятся с одной стороны от центральной линии
% Входные данные:
% V - исходный вектор из 9 значений
% CL - значение для центральной линии (скаляр)
% Выходное значение:
% Flag = 1 если условие выполняется, и Flag = 0 если не выполняется
% Проверка входных значений
if length(V)~=9
error('Ошибка в Test_09. Должно быть 9 значений')
end
if ~all(size(CL) == [1 1])
error('Ошибка в Test_09. CL должно быть скаляром')
end
Flag = all(V >= CL) | all(V <= CL);
![]() |
Тест “14”: Есть 14 последовательных точек, чередующихся вверх-вниз |
function Flag=Test_14(V)
% Проверка последовательности при анализе контрольных карт Шухарта
% Тест “14”: Есть 14 последовательных точек, чередующихся вверх-вниз
% Входные данные:
% V - исходный вектор из 14 значений
% Выходное значение:
% Flag = 1 если условие выполняется, и Flag = 0 если не выполняется
% Проверка входных значений
if length(V)~=14
error('Ошибка в Test_14. Должно быть 14 значений')
end
V1=diff(V);
V2=V1([1 3 5 7 9 11 13]);
V3=V1([2 4 6 8 10 12]);
Flag = (all(V2 >= 0) & all(V3 <= 0)) | (all(V2 <= 0) & all(V3 >= 0));
![]() |
Тест “15”: Есть 15 последовательных точек в зоне C (по обе стороны от центральной линии) |
function Flag=Test_15(V, LCL_1_3, UCL_1_3)
% Проверка последовательности при анализе контрольных карт Шухарта
% Тест “15”: Есть 15 последовательных точек в зоне C
% (по обе стороны от центральной линии)
% Входные данные:
% V - исходный вектор из 15 значений
% LCL_1_3 - нижняя граница зоны C (скаляр)
% UCL_1_3 - верхняя граница зоны C (скаляр)
% Выходное значение:
% Flag = 1 если условие выполняется, и Flag = 0 если не выполняется
% Проверка входных значений
if length(V)~=15
error('Ошибка в Test_15. В векторе V должно быть 15 значений')
end
if ~all(size(LCL_1_3)==[1 1]) | ~all(size(UCL_1_3)==[1 1])
error('Ошибка в Test_15. LCL_1_3 и UCL_1_3 должны быть скалярными.')
end
Flag = all((V >= LCL_1_3) & (V <= UCL_1_3));
Материал подготовлен на основании ДСТУ ISO 8258-2001 Статистический контроль. Контрольные карты Шухарта.
Смотри также
Использование контрольных карт
Шухарта
Пример построения x-R карты Шухарта
Web-сайт “Термист” (termist.com)
Термомеханическое упрочнение арматурного проката
Отсутствие ссылки на использованный материал является нарушением заповеди "Не укради"
Редактор сайта: Гунькин И.А. (termist.com@gmail.com)