Автор работы: Пользователь скрыл имя, 19 Мая 2013 в 22:20, курсовая работа
Температура як фізична величина є одним з визначальних параметрів стану певного об’єкта, що дозволяють контролювати протікання різних виробничих процесів. Вимірювання температури - найважливіше джерело інформації про хід фізичних явищ і про зміну стану речовини. Оскільки з усіх термодинамічних функцій стану речовини температура найбільш вивчена в метрологічному відношенні, її корисніше вимірювати взамін прямого вимірювання ряду характеристик об'єкта, що залежать від його стану і безпосередньо цікавлять технолога. До таких характеристик відносяться енергія речовини, його хімічна активність, в'язкість, твердість, зміна його хімічної або фазової рівноваги, швидкість зміни структури, теплове розширення, зміна електричних і магнітних властивостей і т.д.
ВСТУП 5
1 ЗАГАЛЬНІ ВІДОМОСТІ 6
1.1 Огляд основних способів вимірювання температури 6
1.2 Безконтактне вимірювання температури 13
1.3 Пірометричні давачі 20
2 РОЗРОБКА МЕТОДИКИ РОЗРАХУНКУ 24
2.1 Розробка функціональної схеми пристрою безконтактного вимірювання температури 24
2.2 Розрахункова модель роботи пристрою 27
2.3 Оптимізація розрахунків. 30
3 ПРИКЛАД РОЗРАХУНКУ ПРИСТРОЮ ДЛЯ БЕЗКОНТАКТНОГО ВИМІРЮВАННЯ ТЕМПЕРАТУРИ 33
4 РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ 37
4.1 Вибір мови програмування. 37
4.2 Розробка схеми програми. 38
4.3 Тестовий приклад 39
ВИСНОВКИ 42
ЛІТЕРАТУРА 44
Комп’ютерна програма складається з чотирьох модулів:
3. Приклад аналітичного розрахунку
Методику розрахунку пристрою для дистанційного вимірювання температури з використанням пірометричного давача розглянемо на прикладі розрахунку з використанням давача фірми Banner Engineerihg M18TUP14Q.
У цьому пристрої фільтр низьких частот виконує функцію фільтрації перешкод. Оскільки в якості піроелектричного датчика використовується датчик фірми Banner Engineerihg M18TUP14Q, то частота зрізу ФНЧ буде:
В якості апроксимуючої передаточної функції візьмемо апроксимацію Чебишева. Тоді порядок фільтра визначається:
де – гарантоване затухання;
– нерівномірність АЧХ фільтра в смузі пропускання;
Знаходимо координати полюсів для значення нерівномірності АЧХ:
Визначаємо нормовані власні частоти полюсів і їх добротності:
,
Здійснюємо перехід до фізично реалізованого фільтру:
Знаходимо номінали опорів резисторів при :
,
Tоді значення R4 визначается:
Таким чином коефіцієнт передачі подільника напруги R4-R5 складає:
Тоді опір R4 визначається:
Оскільки в якості джерела живлення використовується акумулятор, то коефіцієнт передачі подільника напруги R9-R12 складає:
Опір R12 визначається:
Безпосереднім джерелом напруги для
зарядки акумулятора є
Коефіцієнт ослаблення атенюатора визначається:
Тоді опір R10 визначається:
Проведемо оптимізацію залежності виміряної температури об’єкта від напруги на виході АЦП за формулою:
(2.18)
Заповнимо таблицю 3.1, змінюючи Ті на інтервалі від 0 до 50°С. Т1 буде рівним 0°С, Т2 = 50°С. З технічних характеристик датчика відомо, що напруга на виході АЦП при температурі об’єкта 50°С становитиме 2,65 В. Отже U2 = 2.65 В, а U1 = 0 В.
Таблиця 3.1 Напруга на виході АЦП при температурі об’єкта 0-50°С.
Tі (від 0 до 50°С) |
0 |
5 |
10 |
15 |
20 |
25 |
30 |
35 |
40 |
45 |
50 |
Ui (В) |
0 |
0,265 |
0,53 |
0,795 |
1,06 |
1,325 |
1,59 |
1,855 |
2,12 |
2,385 |
2,65 |
Заповнимо таблицю 3.2, змінюючи Ті на інтервалі від 50 до 300°С. Т1 буде рівним 50°С, Т2 = 300°С. З технічних характеристик датчика відомо, що максимальна напруга на виході АЦП при температурі об’єкта 300°С становитиме 10 В. Отже U2 = 10 В, а відповідно U1 = 2,65 В.
Таблиця 3.2 Залежність напруга на виході АЦП від температурі об’єкта (50-300°С).
T (від 50 до 300°С) |
50 |
75 |
100 |
125 |
150 |
175 |
200 |
225 |
250 |
275 |
300 |
Ui (В) |
2,65 |
3,385 |
4,12 |
4,855 |
5,59 |
6,325 |
7,06 |
7,795 |
8,53 |
9,265 |
10 |
4. Тестування розробленого програмного забезпечення
В ході тестування перевірялися наступні складові комп’ютерної системи:
При запуску програми з’являється консольне вікно. Вигляд цього вікна при запуску програми та введені початкові дані наведені на рисунку 4.1.
Рисунок 4.1 – Вигляд консольного вікна та введених початкових даних
Користувач має змогу пересуватися по вікну вниз та вверх, використовуючи повзунок при натисканні на нього комп’ютерною мишею.
Так як дані вводяться в програму статично, перевірка на помилки не потрібна, і при успішному виконання програми, виводяться результати розрахунків, вигляд яких поданий на рисунку 4.2.
Рисунок 4.2 – Вигляд вікна після проведення обрахунку
Проведена оптимізація розрахунків показує залежність вихідної напруги АЦП від температури об’єкта вимірювання, результати її на ведені на рисунку 4.3.
Рисунок 4.3 - Результати оптимізації розрахунків.
Дані отримані за допомогою програми та розраховані аналітично в пункті 3 майже співпали, що свідчить про правильність роботи розробленого програмного забезпечення комп’ютерної програми.
5. Інструкції користувачу і програмісту
5.1 Інструкція для користувача
Запуск програми здійснюється
після запуску файлу
На клавіатурі натисніть кнопку F6. Відбудеться запуск програми і буде виведений результат її роботи знизу вікна середовища NetBeans IDE в консольному вікні.
Вихід з програми здійснюється за допомогою стандартних засобів віконного інтерфейсу ОС сімейства Windows – натисканням хрестика в правому верхньому куті форми.
5.2 Інструкція для програміста.
Код програми на Java міститься в файлі з розширенням *.java, об’єкти в форматі *.class, та головний файл з проектом javaapplication1.java. Програма виконана таким чином, що при бажанні можна внести суттєві зміни в її роботу. Для цього програмісту необхідно мати інстальовану програму NetBeans IDE версії не нижче 6.0.
В залежності від цілей редагування, зміни слід робити в різних формах та модулях.
Методи розв’язання окремих підзадач виконані у вигляді окремих функцій і їх можливо використовувати в будь-яких інших проектах (мається на увазі використання в проектах побудованих в середовищі NetBeans IDE на мові прогрмування Java будь-якої версії).
Код програми
“ Розрахунок пристрою для дистанційного вимірювання температури з використанням пірометричного давача ”
(Фрагмент)
Код програмного модуля задання початкових даних та програмного модуля обрахунку відповідних значень по формулам.
package javaapplication1;
public class JavaApplication1 {
public static void main(String[] args) {
double Tvidg = 0.075;
int fs = 1000;
int as = 40;
int ac = 1;
double c1 = -0.549;
double w1 = 0.895;
double C1_2 = 0.0000033;
double Uop = 1.1;
double Uzpmin = 7.5;
double Udg = 4.5;
double I = 0.2;
double Uvux = 1.25;
double Uacpvx = 5;
double Udvux = 10;
double R = 10000;
System.out.println ("Введення вхідних даних:");
System.out.println (" Час відгуку Tvidg = " + Tvidg + " с");
System.out.println (" Частота гарантованого затухання fs = " + fs + " Гц");
System.out.println (" Гарантоване затухання as = " + as + " дБ");
System.out.println (" Нерівномірна АЧХ фільтра ac = " + ac + " дБ");
System.out.println (" Значення полюсiв з таблиці рівнохвилевої функції:" + "\n" + " c1 = " + c1 + " w1 = "+ w1);
System.out.println (" Ємності конденсаторів C1_2 = " + C1_2 + " ф");
System.out.println (" Опорна напруга Uop = " + Uop + " В");
System.out.println (" Напруга на вході стабілізатора Uzpmin = " + Uzpmin + " B");
System.out.println (" Напруга джерела живлення Udg = " + Udg + " B");
System.out.println (" Струм заряда акумулятора I = " + I + " A");
System.out.println (" Вихідна напруга мікросхеми Uvux = " + Uvux + " B");
System.out.println (" Вхідна напруга АЦП Uacpvx = "+ Uacpvx + " B");
System.out.println (" Вихідна напруга датчика Udvux = " + Udvux + " B");
System.out.println (" Номінали опорів R3, R5, R9, R11 = " + R + " Ом");
System.out.println ("----------------------------
System.out.println (" Розрахунок основних параметрів приладу");
System.out.println (" Розрахунок ФНЧ: ");
double fc = 1/Tvidg;
System.out.println (" Частота зрізу fc = " + fc + " Гц");
double n = (0.301+0.5*Math.log10(Math.
System.out.println (" Порядок фільтру n = " + n);
double Ω = Math.sqrt((Math.pow(c1, 2))+(Math.pow(w1, 2)));
System.out.println (" Нормовані власні частоти полюсів Ω = " + Ω);
double Q = Ω/Math.abs(2*c1);
System.out.println (" Добротності полюсів Q = " + Q);
double fn12 = Ω*fc;
System.out.println (" Частота зрізу ФНЧ fn12 = " + fn12 + " Гц");
double R1_2 = 1/(2*3.14*fn12*C1_2);
System.out.println (" Значення опорів R1,2 = " + R1_2 + " Ом");
double K = 3 - (1/Q);
System.out.println (" Коефіцієнт передачі подільника напруги К = " + K);
double R4 = R/(K-1);
System.out.println (" Значення опору R4 = " + R4 + " Ом");
System.out.println (" Розрахунок
елементів схеми управління
double Ku1 = Uop/Uzpmin;
System.out.println (" Коефіцієнт передачі подільника напруги R4-R5 Ku = " + Ku1);
double R14 = (R/Ku1) - R;
System.out.println (" Значення опору R14 = " + R14 + " Ом");
double Ku2 = Uop/Udg;
System.out.println (" Коефіцієнт передачі подільника напруги R9-R12 Ku2 = " + "Ku2");
double R12 = (R/Ku2)-R;
System.out.println (" Значення опору R12 = " + R12 + " Ом");
double R16 = Uvux/I;
System.out.println (" Значення опору R16 = " + R16 + " Ом");
System.out.println (" Розрахунок атенюатора");
double Kat = Uacpvx / Udvux;
System.out.println (" Коефіцієнт послаблення атенюатора Kat = " + Kat);
double R10 = (R/Kat)-R;
System.out.println (" Значення опору R10 = " + R10 + " Ом");
System.out.println ("----------------------------
System.out.println (" Оптимізація розрахунків");
System.out.println (" Визначення
вихідної напруги АЦП при
double U2=2.65;
double U1=0;
double T2=50;
double T1=0;
double Array [];
Array = new double [55];
for (int i = 0; i<55; i=i+5){
Array[i]=((i-T1)/(T2-T1))*(U2-
System.out.println ("При Тi = " + i + " Ui = " + Array [i]);
}
System.out.println (" Визначення
вихідної напруги АЦП при
double u2=10;
double u1=2.65;
double t2=300;
double t1=50;
double array [];
array = new double [325];
for (int i = 50; i<325; i=i+25){
array[i]=((i-t1)/(t2-t1))*(u2-
System.out.println ("При Тi = " + i + " Ui = " + array [i]);
}
System.out.println (" Розрахунки проведено." + "\n" + "\n");
}
}
Информация о работе Методику розрахунку пірометричного давача температури