Компьютерная обработка экспериментальных данных

Автор работы: Пользователь скрыл имя, 26 Октября 2014 в 16:22, курсовая работа

Краткое описание

В условиях современных высокопроизводительных технологических систем практически невозможно осуществлять сплошной, стопроцентный контроль качества продукции используют статистические методы выборочного контроля. При этом в роли генеральной совокупности выступает вся продукция. изготовленная за контрольный срок, например за смену. за сутки, за месяц и т.п., а в роли выборки- те отборы или пробы, подробный анализ которых дает возможность сделать вывод о возможной доле брака во всей совокупности.

Содержание

Введение 3
Задание курсового проекта 4
Теоретическая часть 4
Техника контрольных карт 4
Практическая часть 7
Алгоритм работы 7
Программная реализация алгоритма 8
Пример работы программы 10
Заключение 11
Список литературы 12
Приложение 13

Прикрепленные файлы: 1 файл

Отчет.docx

— 1.80 Мб (Скачать документ)

Содержание

 

 

 

Введение

В условиях современных высокопроизводительных технологических систем практически невозможно осуществлять сплошной, стопроцентный контроль качества продукции используют статистические методы выборочного контроля. При этом в роли генеральной совокупности выступает вся продукция. изготовленная за контрольный срок, например за смену. за сутки, за месяц и т.п., а в роли выборки- те отборы или пробы, подробный анализ которых дает возможность сделать вывод о возможной доле брака во всей совокупности. Можно выделить две основные задачи статистического контроля:

  1. статистическое регулирование качества продукции;
  2. статистический приемочный контроль.

Статистическое регулирование качества позволяет с помощью регулярных отборов небольших по объему проб предупреждать увеличение брака, следить за качеством выпускаемой продукции в темпе с производственным процессом. Статистический приемочный контроль служит для определения доли брака в уже изготовленной и представленной к сдаче партии продукции.

 

Задание курсового проекта

Темой данного курсового проекта является статистическое регулирование качества продукции.

Теоретическая часть

Техника контрольных карт

 

 

 

 

Практическая часть

Алгоритм работы


 

Программная реализация алгоритма

 

public class MainClass{

    public static void main (String [] args){  //основная функция

 

        Random randNumOfExpl= new Random(); //генератор количества проб

        Random randNumOfElem= new Random(); //генератор количества элементов в пробе

        Random randExpl = new Random();     //генератор  самого числа элемента пробы

 

        int number_of_elem= 3+ randNumOfExpl.nextInt(5); //количество элементов

        int number_of_example= 1+ randNumOfElem.nextInt(20);  //количество проб

        double [][] mass_of_examples = new double[number_of_example][number_of_elem]; //массив пробы

        double [] mass_of_up_mistakes= new double[number_of_elem*number_of_example];  //массив верхних ошибок

        double [] mass_of_down_mistakes=new double[number_of_elem*number_of_example]; //массив нижних ошибок

        double [] mass_of_range_mistakes= new double[number_of_elem*number_of_example]; //массив ошибки размаха

        for (int count_of_example=0; count_of_example<number_of_example; count_of_example++)    //заполняем массив пробы элементами

            for (int count_of_elem=0; count_of_elem<number_of_elem; count_of_elem++)

                mass_of_examples[count_of_example][count_of_elem]=randExpl.nextDouble()*10;

 

        double [] map_of_mid_values= new double[number_of_example];  //средние значения элементов для каждой пробы

        for (int count_of_example=0; count_of_example<number_of_example; count_of_example++)    //заполняем массив пробы элементами

            for (int count_of_elem=0; count_of_elem<number_of_elem; count_of_elem++)

                map_of_mid_values[count_of_example]+=mass_of_examples[count_of_example][count_of_elem]/number_of_elem;

 

        double map_of_medans=0;   //оценка

        for (int count_of_example=0; count_of_example<number_of_example; count_of_example++)

            map_of_medans+=map_of_mid_values[count_of_example]/number_of_example;

 

        Matrix table_of_d0= new Matrix(Var.table_of_d0);

        Matrix table_of_d= new Matrix(Var.table_of_d);

        Matrix table_of_t= new Matrix(Var.table_of_t);

        Matrix matr_of_examples= new Matrix(mass_of_examples);

 

        double [] range= new double[number_of_example];    //размах

        for (int count_of_example=0; count_of_example<number_of_example; count_of_example++)    //расчет размаха для каждой пробы

        {

            Double [] temp_mass= new Double[number_of_elem];

            for (int count_of_elem=0; count_of_elem<number_of_elem; count_of_elem++)

                temp_mass[count_of_elem]=mass_of_examples[count_of_example][count_of_elem];

            double max=(double)Collections.max(Arrays.asList(temp_mass));

            double min=(double)Collections.min(Arrays.asList(temp_mass));

            range[count_of_example]=max-min;

        }

        double map_of_range=0;  //оценка размаха

        for (int count_of_example=0; count_of_example<number_of_example; count_of_example++)

            map_of_range+=range[count_of_example]/number_of_example;

 

        double d=0;    //значение табличное

        for (int count=0; count<table_of_d.getColumnDimension(); count++) //нахождение d

            if(table_of_d.get(0,count)==number_of_elem)

                d=table_of_d.get(1,count);

 

        double Sy=map_of_range/d; //несмещенная оценка

 

        double t=0;     //значение функции Стьюдента

        for (int count=0; count<table_of_t.getColumnDimension(); count++)   //нахождение t

            if(table_of_t.get(0,count)==number_of_elem-1)

                t=table_of_t.get(1,count);

 

        double Kyn=map_of_medans-(Sy/Math.sqrt(number_of_elem))*t;  //нижний предел

        double Kyv=map_of_medans+(Sy/Math.sqrt(number_of_elem))*t;  //верхний предел

 

        double d0=0;     //значение табличное

        for (int count=0; count<table_of_d0.getColumnDimension(); count++)   //нахождение d0

            if(table_of_d0.get(0,count)==number_of_elem)

                d0=table_of_d0.get(1,count);

       

        double Kr=map_of_range*d0;  //граница размаха

 

        int count_of_mistake=0; //счетчик ошибки

 

        for(int count_of_column=0;count_of_column<matr_of_examples.getColumnDimension();count_of_column++)  //ищем верхнюю ошибку

            for(int count_of_row=0;count_of_row<matr_of_examples.getRowDimension();count_of_row++)

                if(matr_of_examples.get(count_of_row,count_of_column)>Kyv)

                {

                    mass_of_up_mistakes[count_of_mistake]=matr_of_examples.get(count_of_column,count_of_row);

                    count_of_mistake++;

                }

        count_of_mistake=0;

        for(int count_of_column=0;count_of_column<matr_of_examples.getColumnDimension();count_of_column++)  //ищем нижнюю ошибку

            for(int count_of_row=0;count_of_row<matr_of_examples.getRowDimension();count_of_row++)

                if(matr_of_examples.get(count_of_row,count_of_column)<Kyn)

                {

                    mass_of_down_mistakes[count_of_mistake]=matr_of_examples.get(count_of_column,count_of_row);

                    count_of_mistake++;

                }

        count_of_mistake=0;

        for(int count_of_column=0;count_of_column<matr_of_examples.getColumnDimension();count_of_column++)  //ищем ошибку размаха

            for(int count_of_row=0;count_of_row<matr_of_examples.getRowDimension();count_of_row++)

                if(matr_of_examples.get(count_of_row,count_of_column)>Kr)

                {

                    mass_of_range_mistakes[count_of_mistake]=matr_of_examples.get(count_of_column,count_of_row);

                    count_of_mistake++;

                }

        //вывод всех параметров

        System.out.println("Привет ^_^ ");

        System.out.println("Таблица d ");

        table_of_d.print(table_of_d.getColumnDimension(), table_of_d.getRowDimension());

        System.out.println("Таблица d0");

        table_of_d0.print(table_of_d0.getColumnDimension(), table_of_d0.getRowDimension());

        System.out.println("Таблица t");

        table_of_t.print(table_of_t.getColumnDimension(), table_of_t.getRowDimension());

        System.out.println("Число примеров " + number_of_elem);

        System.out.println("Количество проб " + number_of_example);

        System.out.println("Значения проб");

        matr_of_examples.print(matr_of_examples.getColumnDimension(),matr_of_examples.getRowDimension());

        System.out.println("Средние значения проб");

        for (int count_of_example=0; count_of_example<number_of_example; count_of_example++)

            System.out.print(map_of_mid_values[count_of_example]+" ");

        System.out.println("\nОценка "+ map_of_medans);

        System.out.println("\nРазмах каждой пробы");

        for (int count_of_example=0; count_of_example<number_of_example; count_of_example++)

            System.out.print(range[count_of_example]+" ");

        System.out.println("\nОценка размаха "+ map_of_range);

        System.out.println("\nНесмещенная оценка "+ Sy);

        System.out.println("\nНижняя граница "+ Kyn);

        System.out.println("\nВерхняя граница "+ Kyv);

        System.out.println("\nГраница размаха "+ Kr);

 

        for (int count=0; count<mass_of_down_mistakes.length; count++)

        {

            if(mass_of_down_mistakes[count]!=0){

                System.out.println("Есть элемент(ы), выходящих(ие) за верхнюю границу");

                break;

            }

            if(mass_of_up_mistakes[count]!=0){

                System.out.println("Есть элемент(ы), выходящих(ие) за нижнюю границу");

                break;

            }

            if(mass_of_range_mistakes[count]!=0){

                System.out.println("Есть элемент(ы), выходящих(ие) за границу размаха");

                break;

            }

            else

                if(count==mass_of_down_mistakes.length-1)

                    System.out.print("В пробе отсутствует брак");

        }

    }

 

}

Пример работы программы

Рис.1. Первый пример работы программы

Рис.2. Второй пример работы 
Заключение

В данной лабораторной работе были изучены статистическое регулирование качества продукции с помощью техники контрольных карт, которые позволяют на основе небольших проб выявить брак в изготовленной продукции без сложных статистических вычислений. Были закреплены практические навыки программирования языка Java в среде разработки IntelliJ IDEA CE.

 

Список литературы

  1. Статистические методы в инженерных исследованиях под ред. Г.К.Круга  (Лабораторный практикум).
  2. Айвазян С.А., Мхитарян В.С. Прикладная статистика в задачах и упражнениях, М., 2000.

 

 

Приложение


 

 


Информация о работе Компьютерная обработка экспериментальных данных