Разработка модели, алгоритма и программы для определения технического состояния объекта по его признакам

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    311,07 kb
  • Опубликовано:
    2011-12-18
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка модели, алгоритма и программы для определения технического состояния объекта по его признакам

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

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

Типовой темой курсовой работы является разработка модели, алгоритма и программы для определения технического состояния объекта по его признакам.

Разработать систему диагностики станка с ЧПУ, использующую дедуктивный логический вывод для принятия решения. Самостоятельно определить названия входных и выходных параметров системы, матрицу бинарных отношений. Система диагностики должна определять по значениям выходных параметров В=6 значения входных параметров А=5.

ВВЕДЕНИЕ

Системный анализ - научный метод познания <#"535649.files/image001.gif">; .

Между  и  существуют нечёткие причинные отношения . Все нечёткие отношения можно представить в виде матрицы R c 5 строками и 6 столбцами, т. е. существует матрица нечётких отношений


Конкретные входы (предпосылки) и выходы (заключения) системы можно рассматривать как нечёткие множества А и В на пространствах Х и Y. Обозначим отношения этих множеств как , где R - матрица, отражающая знания эксперта (экспертов) о влиянии факторов на симптомы; «°» - есть правило композиции нечётких выводов. Направление выводов является обратным к направлению входов для правил. То есть в случае диагностики R (знания эксперта) наблюдаются выходы В (симптомы) и определяются входы А (факторы).

Знания эксперта имеют вид:

 Пусть, например, ,

где первый столбец соответствует симптому ; второй столбец - симптому ; третий столбец - симптому , четвертый - симптому  и т.д.

При этом причиной появления, например, симптома , является первый столбец факторов X (). Значения степеней соответствия напоминают собой вероятности (классические), но при этом не требуется, чтобы , т. е. сумма не должна обязательно равняться единице, как в классической теории вероятностей.

Пусть в результате поверхностного осмотра места аварии на некотором участке коммуникаций ГИК состояние этого участка оценивается экспертом как , т. е. симптом ,  имеет место со степенью соответствия . Например,


Требуется определить причину такого состояния:


Представим формулы для В и А в виде строк:

где  

Тогда

Формулу  можно представить в виде

или


или, транспонируя, в виде нечётких векторов-столбцов


где «» - операция максиминной (max-min) свёртки.

При этом вычисляется «произведение» вектора А и матрицы R, но вместо операции умножения выполняется операция взятия минимума («» - min), а вместо операции сложения - выполняется операция взятия максимума («» - max) соответственно.

Тогда (1) можно привести к виду:

 

Решим систему (2)-(5). В уравнении (2):


Из (3) получим:


Из (4) получим:


Из (5) получим:


Таким образом, получаем решение:


т.е. лучше устранить фактор  ( - параметр, характеризующий проявление фактора  - параметр, характеризующий проявление фактора).

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

На практике m и n могут принимать значения от нескольких единиц до нескольких десятков. Можно использовать несколько правил композиции нечётких выводов и могут быть построены 2- и 3-каскадные нечёткие системы принятия решений.

При этом решение будет получено как значение на отрезке (10), в результате чего можно предположить максимальное  и минимальное  решение.

В общем случае очевидно, что для композиции максимум-минимум существует единственное максимальное и несколько «меньших» решений. Таким образом, решение - это вектор значений, каждое из которых принадлежит некоторому отрезку (лежащему в интервале от 0 до 1).

Аналогичная модель может быть построена и для определения предпосылок, приводящих к появлению факторов (причин) предложенной выше модели диагностики. Например, можно выявить из-за чего возникает коррозия, разрыв трубы, построить соответствующую матрицу бинарных отношений R и снова применить правило композиции нечётких выводов.

Довольно часто из-за проявления субъективного человеческого фактора (незначительных ошибок эксперта) при оценивании состояния участка ГИК не удаётся получить точное решение для системы . В этом случае предлагается найти ближайшее («минимальное по сумме абсолютных отклонений от нуля для каждого из уравнений указанной выше системы) приближённое решение (или решения) системы  и принять или отклонить полученное приближённое (одно из приближенных решений).

Очевидно, что приемлемое приближенное решение должно незначительно (на 0.1-0.3 по сумме абсолютных отклонений) отличаться от точного решения системы . Если суммарное отклонение довольно большое (с точки зрения эксперта), следует предложить самому эксперту снова оценить состояние участка ГИК, так как очевидно, что при первом оценивании он ввёл противоречивые оценки состояния ГИК.

РАЗРАБОТКА АЛГОРИТМА ПРОГРАММЫ

Блок - схема алгоритма работы программы представлена на рисунке 1.

Рисунок 1 - Блок - схема алгоритма работы программы

РАЗРАБОТКА ПРОГРАММЫ

Данная программа написана на языке программирования С++ в среде разработки MFC. MFC - это базовый набор (библиотека) классов, написанных на языке С++ и предназначенных для упрощения и ускорения процесса программирования для Windows. Библиотека содержит многоуровневую иерархию классов, насчитывающую около 200 членов. Они дают возможность создавать Windows-приложения на базе объектно-ориентированного подхода. С точки зрения программиста, MFC представляет собой каркас, на основе которого можно писать программы для Windows.

Одним из основных преимуществ работы с MFC является возможность многократного использования одного и того же кода. Так как библиотека содержит много элементов, общих для всех Windows-приложений, нет необходимости каждый раз писать их заново. Вместо этого их можно просто наследовать (говоря языком объектно-ориентированного программирования). Кроме того, интерфейс, обеспечиваемый библиотекой, практически независим от конкретных деталей, его реализующих. Поэтому программы, написанные на основе MFC, могут быть легко адаптированы к новым версиям Windows (в отличие от большинства программ, написанных обычными методами).

Еще одним существенным преимуществом MFC является упрощение взаимодействия с прикладным программным интерфейсом (API) Windows. Любое приложение взаимодействует с Windows через API, который содержит несколько сот функций. Внушительный размер API затрудняет попытки понять и изучить его целиком. Зачастую даже сложно проследить, как отдельные части API связаны друг с другом! Но поскольку библиотека MFC объединяет (путем инкапсуляции) функции API в логически организованное множество классов, интерфейсом становится значительно легче управлять. Поскольку MFC представляет собой набор классов, написанных на языке С++, поэтому программы, написанные с использованием MFC, должна быть в то же время программами на С++. Для этого необходимо владеть соответствующими знаниями. Для начала необходимо уметь создавать собственные классы, понимать принципы наследования и уметь переопределять виртуальные функции. Хотя программы, использующие библиотеку MFC, обычно не содержат слишком специфических элементов из арсенала С++, для их написания тем не менее требуются солидные знания в данной области.

Программа определяет техническое состояние объекта по его признакам. Текст программы диагностики станка с ЧПУ представлен в приложении А.

СЦЕНАРИЙ ДИАЛОГА

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

Рисунок 2 - Вариант диалогового окна №1

Рисунок 3 - Вариант диалогового окна №2 икона помощи

ЗАКЛЮЧЕНИЕ

В ходе выполнения данного курсового проекта были разработаны алгоритм и программа для определения технического состояния станка с ЧПУ по его признакам (выходным параметрам). В соответствии с этой моделью был разработан алгоритм её реализации программными средствами, в результате чего написана программа на языке С++ с применением библиотек классов MFC. Разработанная программа соответствует заданным на этапе проектирования требованиям. Выполненный проект может быть модернизирован и использован в производственных целях для анализа и контроля станка с ЧПУ и определения вероятностей причин его возможных повреждений. В ходе проведения вычислительного эксперимента программа сбоев не давала, результаты подтверждались проверочными расчетами. Ехе-файл проекта занимает 184 Кб.

СПИСОК ЛИТЕРАТУРЫ

1. Дэн Гукин С, 2-е издание. - М.: Диалектика, 2006. - 355 с.

. Каев Артем «MFC. Шаг за шагом» - <http://www.firststeps.ru/>

. Никитин Ю.Р. Методическое пособие к выполнению курсовой работы по дисциплине «Системный анализ и принятие решений»: Учеб. пособие. - Ижевск: Изд-во ИжГТУ, 2009.- 8 с.

. ГОСТ 19.504-79 (СТ СЭВ 2095-80). Руководство программиста. Требования к содержанию и оформлению.

. ГОСТ 19.701-90 (ИСО 5807-85). Схемы алгоритмов, программ, данных и систем.

ПРИЛОЖЕНИЕ А

Текст программы

программа технический состояние станок

Текст программы определения технического состояния станка с ЧПУ по выходным параметрам.

#include "stdafx.h"

#include "KurszpT.h"

#include "KurszpTDlg.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endifCAboutDlg : public CDialog

{:();{IDD = IDD_ABOUTBOX};:void DoDataExchange(CDataExchange* pDX); // DDX/DDV support:_MESSAGE_MAP()

};::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

}CAboutDlg::DoDataExchange(CDataExchange* pDX)

{::DoDataExchange(pDX);

}_MESSAGE_MAP(CAboutDlg, CDialog)_MESSAGE_MAP()::CKurszpTDlg(CWnd* pParent /*=NULL*/)

: CDialog(CKurszpTDlg::IDD, pParent)

, res1(0)

, res2(0)

, res3(0)

, res4(0)

, res5(0)

, r11(0.9)

, r12(0.1)

, r13(0.1)

, r14(0)

, r15(0.1)

, r16(0.3)

, r21(0.4)

, r22(0.3)

, r23(0.3)

, r24(0.1)

, r25(0.2)

, r26(0.7)

, r31(0.1)

, r32(0.3)

, r33(0.8)

, r34(0.5)

, r35(0.1)

, r36(0.4)

, r41(0.2)

, r42(0.1)

, r43(0.3)

, r44(0.6)

, r45(0.9)

, r46(0.1)

, r51(0.5)

, r52(0.1)

, r53(0.1)

, r54(0.8)

, r55(0.2)

, r56(0.6)

{_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}CKurszpTDlg::DoDataExchange(CDataExchange* pDX)

{::DoDataExchange(pDX);_Text(pDX, IDC_EDIT31, res1);_Text(pDX, IDC_EDIT32, res2);_Text(pDX, IDC_EDIT33, res3);_Text(pDX, IDC_EDIT34, res4);_Text(pDX, IDC_EDIT35, res5);_Text(pDX, IDC_EDIT1, r11);_Text(pDX, IDC_EDIT2, r12);_Text(pDX, IDC_EDIT3, r13);_Text(pDX, IDC_EDIT4, r14);_Text(pDX, IDC_EDIT5, r15);_Text(pDX, IDC_EDIT6, r16);_Text(pDX, IDC_EDIT7, r21);_Text(pDX, IDC_EDIT8, r22);_Text(pDX, IDC_EDIT9, r23);_Text(pDX, IDC_EDIT10, r24);_Text(pDX, IDC_EDIT11, r25);_Text(pDX, IDC_EDIT12, r26);_Text(pDX, IDC_EDIT13, r31);_Text(pDX, IDC_EDIT14, r32);_Text(pDX, IDC_EDIT15, r33);_Text(pDX, IDC_EDIT16, r34);_Text(pDX, IDC_EDIT17, r35);_Text(pDX, IDC_EDIT18, r36);_Text(pDX, IDC_EDIT19, r41);_Text(pDX, IDC_EDIT20, r42);_Text(pDX, IDC_EDIT21, r43);_Text(pDX, IDC_EDIT22, r44);_Text(pDX, IDC_EDIT23, r45);_Text(pDX, IDC_EDIT24, r46);_Text(pDX, IDC_EDIT25, r51);_Text(pDX, IDC_EDIT26, r52);_Text(pDX, IDC_EDIT27, r53);_Text(pDX, IDC_EDIT28, r54);_Text(pDX, IDC_EDIT29, r55);_Text(pDX, IDC_EDIT30, r56);

}_MESSAGE_MAP(CKurszpTDlg, CDialog)_WM_SYSCOMMAND()_WM_PAINT()_WM_QUERYDRAGICON()

//}}AFX_MSG_MAP_BN_CLICKED(IDOK, &CKurszpTDlg::OnBnClickedOk)_BN_CLICKED(IDC_BUTTON1, &CKurszpTDlg::OnBnClickedButton1)

Рисунок А1 - Продолжение_MESSAGE_MAP()CKurszpTDlg::OnInitDialog()

{::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);(IDM_ABOUTBOX < 0xF000);* pSysMenu = GetSystemMenu(FALSE);(pSysMenu != NULL)

{strAboutMenu;.LoadString(IDS_ABOUTBOX);(!strAboutMenu.IsEmpty())

{>AppendMenu(MF_SEPARATOR);>AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

// Set the icon for this dialog. The framework does this automatically

// when the application's main window is not a dialog(m_hIcon, TRUE);// Set big icon(m_hIcon, FALSE);// Set small icon

// TODO: Add extra initialization hereTRUE; // return TRUE unless you set the focus to a control

}CKurszpTDlg::OnSysCommand(UINT nID, LPARAM lParam)

{((nID & 0xFFF0) == IDM_ABOUTBOX)

{dlgAbout;.DoModal();

}

{::OnSysCommand(nID, lParam);

}

}CKurszpTDlg::OnPaint()

{(IsIconic())

{dc(this); // device context for painting(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

// Center icon in client rectanglecxIcon = GetSystemMetrics(SM_CXICON);cyIcon = GetSystemMetrics(SM_CYICON);rect;(&rect);x = (rect.Width() - cxIcon + 1) / 2;y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

Рисунок А1 - Продолжение.DrawIcon(x, y, m_hIcon);

}

{::OnPaint();

}

}CKurszpTDlg::OnQueryDragIcon()

{static_cast<HCURSOR>(m_hIcon);

}CKurszpTDlg::OnBnClickedOk()

{

// TODO: Add your control notification handler code here(true);

mas[5],maxim,ee,v[5],max[5];a,b,c,d,e,f,i,j;

//Первое состояние(IsDlgButtonChecked(IDC_RADIO1))

{[0]=r11;mas[1]=r21;mas[2]=r31;mas[3]=r41;mas[4]=r51;

//Находим а1[0]=r11;max[1]=r21;max[2]=r31;max[3]=r41;max[4]=r51;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[0]==maxim)

{(IDC_EDIT36,_T("a1>="));=maxim;

}(mas[0]<maxim)

{(IDC_EDIT36,_T("a1<="));=mas[0];

}(mas[0]>maxim)

{(IDC_EDIT36,_T("a1="));=mas[0];

}

//Находим а2[0]=r12;max[1]=r22;max[2]=r32;max[3]=r42;max[4]=r52;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[1]==maxim)

{(IDC_EDIT37,_T("a2>="));=maxim;

}(mas[1]<maxim)

{(IDC_EDIT37,_T("a2<="));=mas[1];

}(mas[1]>maxim)

{(IDC_EDIT37,_T("a2="));=mas[1];

}

//Находим а3[0]=r13;max[1]=r23;max[2]=r33;max[3]=r43;max[4]=r53;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[2]==maxim)

{(IDC_EDIT38,_T("a3>="));=maxim;

}(mas[2]<maxim)

{(IDC_EDIT38,_T("a3<="));=mas[2];

}(mas[2]>maxim)

{(IDC_EDIT38,_T("a3="));=mas[2];

}

//Находим а4[0]=r14;max[1]=r24;max[2]=r34;max[3]=r44;max[4]=r54;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[3]==maxim)

{(IDC_EDIT39,_T("a4>="));=maxim;

}(mas[3]<maxim)

{(IDC_EDIT39,_T("a4<="));=mas[3];

}(mas[3]>maxim)

{(IDC_EDIT39,_T("a4="));=mas[3];

}

//Находим а5[0]=r15;max[1]=r25;max[2]=r35;max[3]=r45;max[4]=r55;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[4]==maxim)

{(IDC_EDIT40,_T("a5>="));=maxim;

}(mas[4]<maxim)

{(IDC_EDIT40,_T("a5<="));=mas[4];

}(mas[4]>maxim)

{(IDC_EDIT40,_T("a5="));=mas[4];

}

}

/////////Complete///////////

//Второе состояние(IsDlgButtonChecked(IDC_RADIO2))

{[0]=r12;mas[1]=r22;mas[2]=r32;mas[3]=r42;mas[4]=r52;

//Находим а1[0]=r11;max[1]=r21;max[2]=r31;max[3]=r41;max[4]=r51;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[0]==maxim)

{(IDC_EDIT36,_T("a1>="));=maxim;

}(mas[0]<maxim)

{(IDC_EDIT36,_T("a1<="));=mas[0];

}(mas[0]>maxim)

{(IDC_EDIT36,_T("a1="));=mas[0];

}

//Находим а2[0]=r12;max[1]=r22;max[2]=r32;max[3]=r42;max[4]=r52;

Рисунок А1 - Продолжение=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[1]==maxim)

{(IDC_EDIT37,_T("a2>="));=maxim;

}(mas[1]<maxim)

{(IDC_EDIT37,_T("a2<="));=mas[1];

}(mas[1]>maxim)

{(IDC_EDIT37,_T("a2="));=mas[1];

}

//Находим а3[0]=r13;max[1]=r23;max[2]=r33;max[3]=r43;max[4]=r53;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[2]==maxim)

{(IDC_EDIT38,_T("a3>="));=maxim;

}(mas[2]<maxim)

{(IDC_EDIT38,_T("a3<="));=mas[2];

}(mas[2]>maxim)

{(IDC_EDIT38,_T("a3="));=mas[2];

}

//Находим а4[0]=r14;max[1]=r24;max[2]=r34;max[3]=r44;max[4]=r54;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[3]==maxim)

{(IDC_EDIT39,_T("a4>="));=maxim;

}(mas[3]<maxim)

{(IDC_EDIT39,_T("a4<="));=mas[3];

}(mas[3]>maxim)

{(IDC_EDIT39,_T("a4="));=mas[3];

}

//Находим а5[0]=r15;max[1]=r25;max[2]=r35;max[3]=r45;max[4]=r55;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[4]==maxim)

{(IDC_EDIT40,_T("a5>="));=maxim;

}(mas[4]<maxim)

{(IDC_EDIT40,_T("a5<="));=mas[4];

}(mas[4]>maxim)

{(IDC_EDIT40,_T("a5="));=mas[4];

}

}

//Третье состояние(IsDlgButtonChecked(IDC_RADIO3))

{[0]=r13;mas[1]=r23;mas[2]=r33;mas[3]=r43;mas[4]=r53;

//Находим а1[0]=r11;max[1]=r21;max[2]=r31;max[3]=r41;max[4]=r51;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[0]==maxim)

{(IDC_EDIT36,_T("a1>="));=maxim;

}(mas[0]<maxim)

{(IDC_EDIT36,_T("a1<="));=mas[0];

}(mas[0]>maxim)

{(IDC_EDIT36,_T("a1="));=mas[0];

}

//Находим а2[0]=r12;max[1]=r22;max[2]=r32;max[3]=r42;max[4]=r52;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[1]==maxim)

{(IDC_EDIT37,_T("a2>="));=maxim;

}(mas[1]<maxim)

{(IDC_EDIT37,_T("a2<="));=mas[1];

}(mas[1]>maxim)

{(IDC_EDIT37,_T("a2="));=mas[1];

}

//Находим а3[0]=r13;max[1]=r23;max[2]=r33;max[3]=r43;max[4]=r53;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[2]==maxim)

{(IDC_EDIT38,_T("a3>="));=maxim;

}(mas[2]<maxim)

{(IDC_EDIT38,_T("a3<="));=mas[2];

}(mas[2]>maxim)

{(IDC_EDIT38,_T("a3="));=mas[2];

}

//Находим а4[0]=r14;max[1]=r24;max[2]=r34;max[3]=r44;max[4]=r54;=max[0];(i=0;i<5;i++)

Рисунок А1 - Продолжение

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[3]==maxim)

{(IDC_EDIT39,_T("a4>="));=maxim;

}(mas[3]<maxim)

{(IDC_EDIT39,_T("a4<="));=mas[3];

}(mas[3]>maxim)

{(IDC_EDIT39,_T("a4="));=mas[3];

}

//Находим а5[0]=r15;max[1]=r25;max[2]=r35;max[3]=r45;max[4]=r55;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[4]==maxim)

{(IDC_EDIT40,_T("a5>="));=maxim;

{(IDC_EDIT40,_T("a5<="));=mas[4];

}(mas[4]>maxim)

{(IDC_EDIT40,_T("a5="));=mas[4];

}

}

//Четвертое состояние(IsDlgButtonChecked(IDC_RADIO4))

{[0]=r14;mas[1]=r24;mas[2]=r34;mas[3]=r44;mas[4]=r54;

//Находим а1[0]=r11;max[1]=r21;max[2]=r31;max[3]=r41;max[4]=r51;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[0]==maxim)

{(IDC_EDIT36,_T("a1>="));=maxim;

}(mas[0]<maxim)

{(IDC_EDIT36,_T("a1<="));=mas[0];

}(mas[0]>maxim)

{(IDC_EDIT36,_T("a1="));=mas[0];

}

//Находим а2[0]=r12;max[1]=r22;max[2]=r32;max[3]=r42;max[4]=r52;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[1]==maxim)

{(IDC_EDIT37,_T("a2>="));=maxim;

}(mas[1]<maxim)

{(IDC_EDIT37,_T("a2<="));=mas[1];

}(mas[1]>maxim)

{(IDC_EDIT37,_T("a2="));=mas[1];

}

//Находим а3[0]=r13;max[1]=r23;max[2]=r33;max[3]=r43;max[4]=r53;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[2]==maxim)

{(IDC_EDIT38,_T("a3>="));=maxim;

}(mas[2]<maxim)

{(IDC_EDIT38,_T("a3<="));=mas[2];

}(mas[2]>maxim)

{(IDC_EDIT38,_T("a3="));=mas[2];

}

//Находим а4[0]=r14;max[1]=r24;max[2]=r34;max[3]=r44;max[4]=r54;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[3]==maxim)

{(IDC_EDIT39,_T("a4>="));=maxim;

}(mas[3]<maxim)

{(IDC_EDIT39,_T("a4<="));=mas[3];

}(mas[3]>maxim)

{(IDC_EDIT39,_T("a4="));=mas[3];

}

//Находим а5[0]=r15;max[1]=r25;max[2]=r35;max[3]=r45;max[4]=r55;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[4]==maxim)

{(IDC_EDIT40,_T("a5>="));=maxim;

}(mas[4]<maxim)

{(IDC_EDIT40,_T("a5<="));=mas[4];

}(mas[4]>maxim)

{(IDC_EDIT40,_T("a5="));=mas[4];

}

}

//Пятое состояние(IsDlgButtonChecked(IDC_RADIO5))

{[0]=r15;mas[1]=r25;mas[2]=r35;mas[3]=r45;mas[4]=r55;

//Находим а1[0]=r11;max[1]=r21;max[2]=r31;max[3]=r41;max[4]=r51;

Рисунок А1 - Продолжение=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[0]==maxim)

{(IDC_EDIT36,_T("a1>="));=maxim;

}(mas[0]<maxim)

{(IDC_EDIT36,_T("a1<="));=mas[0];

}(mas[0]>maxim)

{(IDC_EDIT36,_T("a1="));=mas[0];

}

//Находим а2[0]=r12;max[1]=r22;max[2]=r32;max[3]=r42;max[4]=r52;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[1]==maxim)

{(IDC_EDIT37,_T("a2>="));=maxim;

}(mas[1]<maxim)

{(IDC_EDIT37,_T("a2<="));=mas[1];

}(mas[1]>maxim)

{(IDC_EDIT37,_T("a2="));=mas[1];

}

//Находим а3[0]=r13;max[1]=r23;max[2]=r33;max[3]=r43;max[4]=r53;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[2]==maxim)

{(IDC_EDIT38,_T("a3>="));

Рисунок А1 - Продолжение=maxim;

}(mas[2]<maxim)

{(IDC_EDIT38,_T("a3<="));=mas[2];

}(mas[2]>maxim)

{(IDC_EDIT38,_T("a3="));=mas[2];

}

//Находим а4[0]=r14;max[1]=r24;max[2]=r34;max[3]=r44;max[4]=r54;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[3]==maxim)

{(IDC_EDIT39,_T("a4>="));=maxim;

}(mas[3]<maxim)

{(IDC_EDIT39,_T("a4<="));=mas[3];

}(mas[3]>maxim)

{(IDC_EDIT39,_T("a4="));=mas[3];

}

//Находим а5[0]=r15;max[1]=r25;max[2]=r35;max[3]=r45;max[4]=r55;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[4]==maxim)

{(IDC_EDIT40,_T("a5>="));=maxim;

}(mas[4]<maxim)

{(IDC_EDIT40,_T("a5<="));=mas[4];

}(mas[4]>maxim)

{(IDC_EDIT40,_T("a5="));=mas[4];

}

}

//Шестое состояние(IsDlgButtonChecked(IDC_RADIO6))

{[0]=r16;mas[1]=r26;mas[2]=r36;mas[3]=r46;mas[4]=r56;

//Находим а1[0]=r11;max[1]=r21;max[2]=r31;max[3]=r41;max[4]=r51;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[0]==maxim)

{(IDC_EDIT36,_T("a1>="));=maxim;

}(mas[0]<maxim)

{(IDC_EDIT36,_T("a1<="));=mas[0];

}(mas[0]>maxim)

{(IDC_EDIT36,_T("a1="));=mas[0];

}

//Находим а2[0]=r12;max[1]=r22;max[2]=r32;max[3]=r42;max[4]=r52;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[1]==maxim)

{(IDC_EDIT37,_T("a2>="));=maxim;

}(mas[1]<maxim)

{(IDC_EDIT37,_T("a2<="));=mas[1];

}(mas[1]>maxim)

{(IDC_EDIT37,_T("a2="));=mas[1];

}

//Находим а3[0]=r13;max[1]=r23;max[2]=r33;max[3]=r43;max[4]=r53;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

Рисунок А1 - Продолжение

{=max[i];

}

}

///////поиск интервала(mas[2]==maxim)

{(IDC_EDIT38,_T("a3>="));=maxim;

}(mas[2]<maxim)

{(IDC_EDIT38,_T("a3<="));=mas[2];

}(mas[2]>maxim)

{(IDC_EDIT38,_T("a3="));=mas[2];

}

//Находим а4[0]=r14;max[1]=r24;max[2]=r34;max[3]=r44;max[4]=r54;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[3]==maxim)

{(IDC_EDIT39,_T("a4>="));=maxim;

}(mas[3]<maxim)

{(IDC_EDIT39,_T("a4<="));=mas[3];

}(mas[3]>maxim)

{(IDC_EDIT39,_T("a4="));=mas[3];

}

//Находим а5[0]=r15;max[1]=r25;max[2]=r35;max[3]=r45;max[4]=r55;=max[0];(i=0;i<5;i++)

{(max[i]>maxim)

{=max[i];

}

}

///////поиск интервала(mas[4]==maxim)

{(IDC_EDIT40,_T("a5>="));=maxim;

}(mas[4]<maxim)

{(IDC_EDIT40,_T("a5<="));=mas[4];

}(mas[4]>maxim)

{(IDC_EDIT40,_T("a5="));=mas[4];

}

}(false);

}

CKurszpTDlg::OnBnClickedButton1()

{

// TODO: Add your control notification handler code here(_T("Программа определения технического состоятиня станка с ЧПУ по его выходным параметрам разработана студентом гр.7-05-3 Дорогим Владимиром Олеговичем"));

}

ПРИЛОЖЕНИЕ Б

Руководство пользователя

Программа представляет собой приложение, позволяющее анализировать техническое состояние станка с ЧПУ по выходным параметрам, и определять вероятности возможных неполадок. Исполняемый файл называется «Kurszpt.exe». При запуске программы вы наблюдаете диалоговое окно. Окна представлены на рисунках 2,3.

) Для запуска программы нужно запустить файл Kurszpt.exe.

) Данные вводятся в поле экспертной матрицы.

) Далее выбирается один из исследуемых факторов, для этого нужно отметить какой-либо из помеченных слева.

) Для проведения расчета нужно нажать на кнопку «Raschet».

) Если все сделано верно, на экране отобразятся результаты.

) Чтобы узнать информацию о разработчике программы, необходимо нажать на кнопку помощью „Help“.

) Для завершения работы следует нажать кнопку “Cancel”.

ПРИЛОЖЕНИЕ В

Руководство программиста

Данная программа предназначена для расчета балок определенно типа. Программа разработана в Microsoft Visual Studio 2008 в среде программирования MFC (Microsoft Foundation Classes), и предназначена для операционной системы Microsoft Windows 98/XP/Vista/ 7, с предустановленной Microsoft .NET Framework 3.0. Программа имеет диалоговый интерфейс.

Описание функций: ();

Создание хендела окна.

Входные параметры: нет

Выходные параметры: нет.

Связи: функции API.

Результат: создание области рисования.();

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

Входные параметры: экспертная матрица.

Выходные параметры: данные о вероятности проявления симптомов.

Связи: нет.

Результат: получение по выходным параметрам входных.

Похожие работы на - Разработка модели, алгоритма и программы для определения технического состояния объекта по его признакам

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!