5 Оцінка похибок результатів експериментальних досліджень

Для аналізу похибок необхідно знати точне та наближене значення. Для функції тестування провести аналіз похибки набагато простіше, адже точне значення знаходиться дуже легко.

Похибка при інтерполяції за Лагранжем може бути оцінена таким чином:

 (5.1)

де .

Похибка інтерполяції для першої формули Ньютона можна оцінити відповідно як: (5.2)

де  (5.3)

Похибка інтерполяції для другої формули Ньютона можна оцінити відповідно як:

(5.4)

де  (1.23)


6 Оцінка ефективності комплексу програм для дослідження

 

Комплекс програм дослідження зміни температури термопари розроблено в середовищі Turbo C .

Ефективність програми це багатокритеріальна оцінка, яка формується як на основі об’єктивних так і суб’єктивних оцінок її роботи користувачем. Але основними є:

-    швидкодія;

-    об’єм програмного коду;

-    взаємодія з іншими прикладними програмами та операційними системами.

Дана програма є ефективним варіантом розробки поставленої у курсовій роботі задачі завдяки тому, що були використані основи структурного програмування:

-    окремі частини програмного коду, які багаторазово використовуються розміщенні в окремих функціях ;

-    функції, для обробки самостійних частини знаходяться в окремих модулях;

-    структура програми є чітко структурованою;

-    дана програма складена з урахуванням використання оптимального об’єму пам’яті.

Передбачено зручний інтерфейс користувача, можливість запуску програми паралельно з іншими програмами (тільки в Windows), що прискорює роботу користувача і робить програму більш практичною.

Загальний розмір програми складає 119 Кбайт. Програма не містить архівів, що саморозпаковуються, файлів, що робить можливість її швидкого запуску прямо з незахищеної дискети. Але краще робити запуск із твердого диска, тому що швидкість звертання до нього і швидкість запису на нього вище, ніж у дискети, так само це підвищить надійність збереження інформації.

Програма була написана під MS-DOS, але може працювати і під іншими оболонками, які симулюють роботу MS-DOS - Windows , OS/2, MAC, що підтримують 16-бітний код і кодування MS-DOS.

Дані, які отримані в результаті оцінки ефективності комплексу програм приведені в таблиці , що представлена нижче.

Таблиця 6.1 Дослідження ефективності програми

Файл Розмір до трансляції (Кб) Розмір ЕХЕ-файла (Кб) Час виконання задачі (с)
INTERP.CPP 1 79,9 1,5
MENYS.H 17 - 0,2
EDITS.H 5 - 0,2
CALC.H 2 - 0,2
WIND.H 1 - 0,1
MOUSE.H 2 - 0,1
MINMENY.H 18 - 0,3

7 Розробка пакету документів для супроводження комплексу програм

7.1 Розробка інструкції програмісту

Дана програма написана на мові програмування С в середовищі Turbo C. Вона призначена для дослідження зміни температури термопари за допомогою чисельних методів. Використовується інтерполяція по Лагранжу і по Ньютону. Оцінюється похибка методів інтерполяції.

Програму можна розширити, але міняти алгоритм не рекомендується. Дана програма, хоч і була розроблена на досить потужному комп’ютері, не ставить високих вимог до ПК користувача, тому вона може вільно працювати на кожному підприємстві чи організації де це потрібно.

Таблиця 7.1.1 Потреби до ресурсів ПК

Процесор ОЗУ Монітор HDD FDD
486DX 8Mb 14” 600Mb 3.14 FDD

7.1.1 При написані даної програми використовується метод структурного програмування .

7.1.2 Програма знаходиться на дискеті на якій є всі необхідні файли для роботи з даною програмою.

7.1.3 Програма складається з таких файлів:

Таблиця 7.1.2 Файли програмного продукту.

Назва Призначення
INTERP.CPP Основна програма.
MENYS.H Бібліотека з меню та кнопками
DIALOGS.H Бібліотека з вікнами для вводу тексту
CALC.H Бібліотека з функціями для роботи з обчисленням. Даний файл можна доробляти, редагувати в залежності від потреб користувача.
WIND.H Бібліотека малює вікна, панельки

В робочому каталозі програми повинні бути розташовані файли:

·   INTERP.EXE – файл запуску програми

·   EGAVGA.BGI – драйвер підтримки графічного режиму

·   KEYRUS.COM – драйвер клавіатури, для підтримки українських і російських шрифтів

·   START.BAT – запуск KEYRUS.COM і INTERP.EXE.

Якщо всі ці файли знаходяться в одному каталозі, то програму можна запускати.

 

7.2 Інструкція користувачеві

 

7.2.1 Дана програма може використовуватися для покращення ефективності роботи інженера на підприємстві.

7.2.2 До початку роботи з програмою всі файли, що знаходяться на дискеті потрібно скопіювати в папку на жорсткому диску.


7.2.3 Для запуску програми потрібно відкрити файл INTERP.EXE – це файл запуску програми, після чого з’являється головне меню програми.

Рисунок 7.2.1. Головне меню програми


7.2.4 Перехід по пунктах меню відбувається за допомогою клавіш управління курсором чи за допомогою миші.

7.2.5 Для активізації потрібного пункту меню використовується клавіша <ENTER> чи клацнути лівою клавішею миші.

7.2.6 Програма працює в інтерактивному режимі, тобто реагує на кожну дію користувача.

7.2.7 Для виходу з програми потрібно в головному меню вибрати пункт “Вихід” – „Вихід[Alt+X]” і натиснути <ENTER>.


Висновки

 

У курсовій роботі згідно технічного завдання розроблено комплекс програм для дослідження зміни температури термопари. Програма надає користувачу можливість швидко, якісно і з мінімальними витратами часу і коштів реалізувати процес дослідження матеріалу провідників. Програма наочно, а саме, в графічному та табличному вигляді, дозволяє реалізувати процес дослідження. Програма може стати в нагоді інженеру будь-якого підприємства.

В першій главі було розглянуто варіантний аналіз чисельних методів моделювання зміни температури термопари.

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

В третій главі подано лістинг всієї програми, а саме головної програми та лістинг головних функцій.

В четвертій главі виконано тестування меню та тестування самої програми.

В п’ятій главі зроблено оцінку похибок отриманих результатів.

В шостій главі виконано дослідження на ефективність програми, приведено таблицю ефективності.

В сьомій главі подана інструкція системному програмісту та користувачеві описані мінімальні характеристики комп’ютера для роботи даної програми, зроблено перелік файлів без яких неможлива робота програми. В пункті 7.2 інструкція користувачеві розказано: як установити програму на комп’ютер, як запустити програму з комп’ютера та як користуватися нею.

Отже, розроблена програма допоможе інженерам вести дослідницьку роботу, щоб зменшити затрати робочого часу на трудомісткі розрахунки та надасть змогу збільшити швидкість обробки інформації.

 


Використана література

 

1.  Проценко С.В. Техніка програмування мовою Сі: Навч.посібник.-К.:Либідь, 1993.

2.  Методичні вказівки до лабораторних робіт з курсу “Обчислювальні методи та застосування ЕОМ ” , Частина І, Вінниця ВПІ 1992.

3.  Міщенко С.М., Конспект лекцій з обчислювальних методів та застосування ЕОМ, ВНТУ,2004.

4.  Шуп Т. Розв’язання інженерних задач на ЕОМ.-М.:, 1982.

5.  Бахвалов Н.С. Чисельні методи.Т.І. Аналіз, алгебра, ЗДР.-М: Наука, 1975.

6.  Хеммінг Р.В. Чисельні методи – М.: Наука,1972

7.  Лященко

8.  Турчак Л.І. Основи чисельних методів. – М. Наука,1987.


Додаток А

Міністерство освіти і науки України

Вінницький національний технічний університет

Інститут автоматики електроніки та комп’ютерних систем управління

Кафедра комп’ютерних систем управління

Технічне завдання

на виконання курсової роботи

” Дослідження зміни температури термопари за допомогою чисельних методів на ЕОМ.”

При розробці даної роботи необхідно виконувати слідуючи етапи:

1.1 Найменування та галузь застосування об’єкта розробки: цей комплекс програм може бути застосований на будь-якому підприємстві для полегшення та покращення результатів роботи інженерів

1.2 Підстава для проведення роботи: дослід штучного інтелекту

1.3 Дата початку роботи:8.01.04.

1.4 Дата закінчення роботи: 10.04.04.

1.5 Мета призначення розробки: створити як найкращий комплекс програм для полегшення та покращення роботи інженера підприємства

1.6Вимоги до надійності системи: використання структурного програмування, окреме підключення модулів, єдине меню, тощо – усе це забезпечує надійність системи. Програмне забезпечення та супроводжуюча текстова документація повинна задовільнити таким гостам:

ГОСТ 19.701-90 (МСО 5807-85) ГОСТ 19.101-77 (СТСЄВ 1626-7а)

ГОСТ 19.781-74 ГОСТ 7.1-84 ДСТУ 3008-85

ГОСТ 19.401-78 ГОСТ 19.106-78

1.7 Стадії та етапи розробки:

1 етап: розробка індивідуального та технічного завдання.(до 15.01.04)

2 етап: огляд та аналіз методів моделювання зміни температури термопари на ЕОМ (до 1.02.04).

3 етап: розробка алгоритмів моделювання зміни температури термопари на ЕОМ (до 20.02.04).

4 етап: розробка керуючої програми, яка повинна працювати в режимі багато ієрархічного меню (до 10.03.04).

5 етап: об’єднання всіх програмних модулів та тестування керуючої програми (до 15.03.04).

6 етап: розробка тестів, тестування та демонстрація роботи всього комплексу (до 15.03.04).

7 етап: розробка технічної документації та пояснювальної записки (до 20.03.04).

8 етап: вимоги до безпеки: розроблене програмне забезпечення повинно відповідати вимогам Сніп та ДЕСТів до робочого місця оператора ЕОМ.


Додаток Б

 

Лістинги модулів

 

Лістинг модуля EDITS.H

#include <stdlib.h>

const coloredit=14; // цвет самого поля для ввода

const colordialog=7; //цвет окна диалог

const FEdit1=1;

const FEdit2=0;

const FEdit3=0;

const FEdit4=0;

const FEdit5=0;

const FEdit6=0;

void *arrow;

int size,xy1,xy2,yy1,yy2;

void *arrowp;

int sizep,xy1p,xy2p,yy1p,yy2p;

int FEdit=0;

class TEdit

{

public:

TEdit();

~TEdit(){};


void EditDrow();

void setwidth(int x){width=x;};

void setheight(int x){height=x;};

void settop(int x){top=x;};

void setleft(int x){left=x;};

void setonoff(int x,int k=1){

onoff=x;

if (k) EditDrow();

};

void setcol(int x){color=x;};

void setcapt(char *x){caption=x;};

void settext(char x[20]){strcpy(text,x);};

int getwidth()const {return width;};

int getheight()const {return height;};

int gettop()const {return top;};

int getleft()const {return left;};

int getonoff()const {return onoff;};

int getcol()const {return color;};

const char* getcapt(){return caption;};

const char* gettext(){return text;};

void mousemove(int i);

void onkeypress(int i);

void setpos(int x,int y, char* capt,char* texts,int i=0);

private:

int width;

int height;

int top;

int left;

int onoff;

int color;

char *caption;

char text[20];

};

void TEdit::setpos(int x,int y, char* capt,char* texts,int i)

{

strcpy(text,texts);

left=x;

top=y;

caption=capt;

if (i) EditDrow();

}

TEdit::TEdit()

{

caption='\0';

text[0]='2';

text[1]='3';

text[2]='\0';

width=170;

height=18;

top=0;

left=0;

color=coloredit;

onoff=0;

}

void TEdit::EditDrow()

{

int i;

int x=left;

int y=top;

int xx=width;

int yy=height;

setfillstyle(1,color);

setlinestyle(0,0,0);

mouseoff();

bar(x,y,x+xx,y+yy);

setcolor(8);

line(x-1,y-1,x-1,y+yy+1);

line(x-1,y-1,x+xx+1,y-1);

setcolor(15);

line(x,y+yy+1,x+xx+1,y+yy+1);

line(x+xx+1,y,x+xx+1,y+yy+1);

moveto(6+x,6+y);

setcolor(color+10);

outtext(text);

line(x+strlen(text)*8+6,y+15,x+strlen(text)*8+10,y+15);

moveto(x,y-15);

setcolor(color+13);

outtext(caption);

if (onoff) setcolor(11);

else setcolor(colordialog);

rectangle(x-4,y-4,x+xx+4,y+yy+4);

mouseon();

}

//////////////////////////////////////////////////////////////////

// ОБЪЯВЛЕНИЕ ОБЪЕКТОВ

//////////////////////////////////////////////////////////////////

TEdit *TempEdit, edit1[FEdit1];

// char *strrez[FEdit];

int exittru=1;

void TEdit::mousemove(int i)

{

if (mousein(left,top,left+width,top+height))

{

if (!onoff)

if (getbutton(1))

{

int j;

for ( j=0;j<FEdit;j++)

if ((i!=j)&&(TempEdit[j].getonoff())) TempEdit[j].setonoff(0);

setonoff(1);

}

}

}

void TEdit::onkeypress(int i)

{

if ((onoff)&&(kbhit()))

{

char c=getch();

switch (c)

{

case 8: if (strlen(text))

{

text[strlen(text)-1]='\0';

EditDrow();

}break;

case 9: setonoff(0);

if (i==(FEdit-1)) TempEdit[0].setonoff(1);

else TempEdit[i+1].setonoff(1);break;

case 13:exittru=13;break;

case 27:exittru=27;break;

case 0:

switch (getch())

{

case 72:

setonoff(0);

if (i==0) TempEdit[FEdit-1].setonoff(1);

else TempEdit[i-1].setonoff(1);

break;//up

case 80:

setonoff(0);

if (i==(FEdit-1)) TempEdit[0].setonoff(1);

else TempEdit[i+1].setonoff(1);

break;//down

};break;

}

if (((c>=32)||(c<0))&&(strlen(text)<19))

{

int slen=strlen(text);

text[slen]=c;

text[slen+1]='\0';

EditDrow();

}

}

}

void EditInitall()

{

edit1[0].setpos(200,200,"","");

}

void EditInit()

{

TempEdit[0].setonoff(1,0);

int i;

for (i=1;i<FEdit;i++)

TempEdit[i].setonoff(0,0);

xy1=TempEdit[0].getleft()-10;

yy1=TempEdit[0].gettop()-45;

xy2=TempEdit[FEdit-1].getleft()+TempEdit[FEdit-1].getwidth()+10;

yy2=TempEdit[FEdit-1].gettop()+TempEdit[FEdit-1].getheight()-yy1+10;

size = imagesize(xy1-2, yy1-2, xy2+4, yy1+yy2+2);

arrow = malloc(size);

mouseoff();

getimage(xy1-2, yy1-2, xy2+4, yy1+yy2+2, arrow);

mouseon();

windows(xy1,yy1,xy2-xy1+2,yy2,colordialog,"",0);

windows(xy1+2,yy1+2,xy2-xy1-2,18,1,"Ввiд",1);

for ( i=0;i<FEdit;i++)

{

TempEdit[i].EditDrow();

}

}

void EditEnter(TEdit *edit1, int rrr)

{

int i;

FEdit=rrr;

TempEdit=edit1;

EditInit();

exittru=0;

while (!exittru)

{

for (i=0; i<FEdit; i++)

{

TempEdit[i].onkeypress(i);

TempEdit[i].mousemove(i);

}

}

mouseoff();

putimage(xy1-2, yy1-2,arrow,0);

mouseon();

free(arrow);

}

/////////////////////// END DIALOG ////////////////////////////////

 

Лістинг модуля WIND.H

#include <graphics.h>

#include "mouse.h"

void windows(int x,int y,int xx,int yy,int color,char s[100],int p)

{

int i;

setfillstyle(1,color);

setlinestyle(0,0,0);

mouseoff();

bar(x,y,x+xx,y+yy);

if (p) setcolor(8);

else setcolor(15);

line(x-1,y-1,x-1,y+yy+1);

line(x-1,y-1,x+xx+1,y-1);

if (! p) setcolor(8);

else setcolor(15);

line(x,y+yy+1,x+xx+1,y+yy+1);

line(x+xx+1,y,x+xx+1,y+yy+1);

if (! p) moveto(5+x,5+y);

else moveto(6+x,6+y);

setcolor(color+10);

outtext(s);

mouseon();

}

Лістинг модуля CALC.H

#include <math.h>

#include <stdlib.h>

#include <string.h>

#include <process.h>

const N=6;

float x[N]={0, 20, 40, 60, 80, 100},

y[N]={-0.67, -0.254, 0.171, 0.609, 1.057, 1.517};

//float x[N]={1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7},

// y[N]={1, 0.90909, 0.83333, 0.76923, 0.71329, 0.66667, 0.625, 0.58824};

float

dy0=y[1]-y[0];

int COO=0;

float H=x[1]-x[0];

double stepin(double x1,int f)

{

if (f==0) return 1.0;

double rez=x1;

for (int i=1;i<f;i++)

rez*=x1;

// printf("\nx1=%f ^=%d rez=%f if_0=%d",x1,f,rez, rez==0);

return rez;

}

double faktorial(int k)

{

double rez=1;

for (int i=1;i<=k;i++)

rez*=i;

// printf("\n fact(%d)=%f",k,rez);

return rez;

}

double GetA(int i)

{

// if (i) return (stepin(((y[i]-y[i-1])/H),i)*(1/faktorial(i)));

if (i) return (stepin((dy0),i)/(faktorial(i)*stepin(H,i)));

else

return y[0];

}

double IntNuton1(double X1) //Интерполяц по NUTON 1

{

// return 0;

double D,S;

S=0;

int i,j;

for (i=0;i<N;i++)

{

D=GetA(i);

for (j=0;j<i;j++)

{

D*=(X1-x[j]);

}

S+=D;

// printf("\nS=%10.10f",S);

}

return S;

}

double GetB(int i)

{

if (i) return (stepin(((y[N-i]-y[N-i-1])/H),i)*(1/faktorial(i)));

else

return y[N-1];

}

double IntNuton2(double X1) //Интерполяц по NUTON 2

{

// return 0;

double D,S;

S=0;

int i,j;

for (i=0;i<N;i++)

{

D=GetB(i);

for (j=(N-1);j>=(N-i);j--)

{

D*=(X1-x[j]);

}

S+=D;

}

return S;

}

double IntLang(double X1) //Интерполяц по Лагранджу

{

// return 0;

// printf("\n%d",COO++);

double D,S;

S=0;

int i,j;

for (i=0;i<N;i++)

{

D=1;

for (j=0;j<N;j++)

{

if (i!=j) D*=(X1-x[j])/(x[i]-x[j]);

}

S+=D*y[i];

}

return S;

}


Лістинг модуля MOUSE.H

#include <dos.h>

#include <conio.h>

#include <stdio.h>

#include <process.h>

struct REGPACK reg;

//инициализирует мышу

int mouseinit()

{ reg.r_ax=0;

intr(0x33,&reg);

if (!reg.r_ax) {

textcolor(15+128);

gotoxy(23,10);printf("╔═════════E R R O R═════════╗");

gotoxy(23,11);printf("║ MOUSE IS NOT PRESENT! ║");

gotoxy(23,12);printf("║ Press any key ..... ║");

gotoxy(23,13);printf("╚═══════════════════════════╝");

getch();

textcolor(7);

return 1;

}

return 0;

}

//показывает курсор мыши

void mouseon()

{

reg.r_ax=1;

intr(0x33,&reg);

}

//прячет курсор мыши

void mouseoff()

{

reg.r_ax=2;

intr(0x33,&reg);

}

// возвращает координаты мыши

void getmousexy(int *x,int *y)

{

reg.r_ax=3;

intr(0x33,&reg);

*x=reg.r_cx;

*y=reg.r_dx;

}

//устанавливает координаты

void setmousexy(int x,int y)

{

reg.r_cx=x;

reg.r_dx=y;

reg.r_ax=4;

intr(0x33,&reg);

}

const left=1;

const right=2;

int getbutton(int but)

{

reg.r_ax=5;

reg.r_bx=but;

intr(0x33,&reg);

return (reg.r_ax)==but;

}

int mousein(int x1,int y1,int x2,int y2)

{

int x,y;

getmousexy(&x,&y);

if (x>=x1 & x<=x2 & y>=y1 & y<=y2) return 1; else return 0;

}


Додаток В

 

Структура дискети

 


Информация о работе «Дослідження зміни температури термопари за допомогою чисельних методів на ЕОМ»
Раздел: Информатика, программирование
Количество знаков с пробелами: 57641
Количество таблиц: 6
Количество изображений: 20

Похожие работы

Скачать
19877
2
11

... Interpol. Для запуску програми необхідно запустити файл Interpol. exe. Після запуску програми з’являється меню, реалізоване в текстовому режимі, яке дозволяє вибрати необхідний метод інтерполяції. Для вибору методу розподілених різниць необхідно натиснути клавішу "1", для вибору методу Лагранжа - клавішу "2". Після вибору методу для графічного представлення результатів інтерполяції функції в ...

Скачать
266076
11
92

... Методичні вказівки до лабораторної роботи № З «Тепловіддача горизонтальної труби при вільному русі повітря». Тернопіль 2003 У даних методичних вказівках подані теоретичні основи, опис експернментальної установки і практичні рекомендації лля проведення лабораторної роботи і обробки дослідних даних Мета роботи - засвоїти знання з теорії" конвсктивнот теплообміну при ...

Скачать
468112
34
0

... ї зони та обмеження доступу до неї людей. На підприємстві згідно з вимогами законодавчих та інших нормативно-правових актів з питань захисту населення і територій від надзвичайних ситуацій та охорони праці повинні бути розроблені і затверджені роботодавцем: - план попередження надзвичайних ситуацій, у якому визначаються можливі аварії та інші надзвичайні ситуації техногенного та природного ...

Скачать
50784
6
1

... підвищенням гнучкості технологічних систем, застосуванням машин з числовим програмним керуванням, впровадженням автоматичних багатофункціональних маніпуляторів-роботів. РОЗДІЛ 3. ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ОСНОВНИХ НАПРЯМКІВ РАЦІОНАЛІЗАЦІЇ ТРУДОВИХ ПРОЦЕСІВ НА ВАТ "ЕЛЕКТРОТЕРМОМЕТРIЯ" Провівши аналіз організації трудових процесів на ВАТ "Електротермометрія", слід було б відмітити, що в 2009 ...

0 комментариев


Наверх