Зворотний зв'язок

Розробка програми для відображення динаміки параметрів технологічного процесу чи пристрою автоматики

Завдання

Розробити програму для відображення схеми електричного кола з послідовним з’єднанням активного опору, індуктивності та ємності, перехідного процесу зміни струму та аналізу впливу параметрів елементів кола на перехідний процес.

(найменування вищого учбового закладу)

Кафедра

Дисципліна

Спеціальність

Курс _____________Група _____________Семестр

ЗАВДАННЯ

на курсову роботу студента

(прізвище, ім’я, по батькові)

1. Тема роботи

2. Термін здачі студентом закінченої роботи

3. Вихідні дані до роботи

4. Зміст розрахунково-пояснювальної записки (перелік питань, які належать розробці)

5. Перерахунок допоміжного матеріалу

6. Дата видачі завдання

КАЛЕНДАРНИЙ ПЛАН

№ п/пНайменування етапів курсової роботиТермін виконання етапів роботиПримітки

Студент

(підпис)

Керівник

(підпис) (прізвище, ім’я, по батькові)

“______” ___________________ 20 ___ р.

Зміст

Бланк завдання2

Зміст4

Вступ5

Опис процесів, що відбуваються в електричному колі.6

Лістинг програми.9

Приклади роботи програми.12

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

13

Вступ.

Велике значення, в природі в цілому і в електротехніці зокрема, мають коливальні явища. На основі цих процесів побудовано ряд складних електронних механізмів, складовими яких є різноманітні генератори необхідних коливань.

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

Для наочної ілюстрації даного процесу я склав програму на мові програмування “С”, яка будує графіки зміни струму та напруги з часом. Програма має досить зручне меню за допомогою якого ЕОМ веде діалог з користувачем. Всі дані введені під час цьго діалогу записуються в файл історії (history.dat), який можна переглянути за допомогою будь-якого текстового редактора або за допомогою однієї з команд DOS (наприклад, “more history.dat”).

Опис процесів, що відбуваються в електричному колі.

Велике практичне значення мають явища коливального розряду ємності на індуктивність та опір.

Рис. 1 Схема кола

Нехай конденсатор С (рис. 1) спочатку заряджається від деякого джерела електроенергії до напруги U. Потім перемикачем К конденсатор перемикається на індуктивність L, яка з'єднана послідовно з опором r. Конденсатор починає розряджатися, його заряд q і напруга UC зменшуються, а в контурі виникає розрядний струм

(1)

Але в даному розрядному контурі струм повинен зростати поступово, оскільки на нього впливає ЕРС самоіндукції

(2)

Таким чином, струм в колі формується під впливом напруг конденсатора і ЕРС самоіндукції:

Підставивши в останню рівність вирази (1) і (2), отримаємо диференціальне рівняння другого порядку для процесу розряду:

(3)

Розв'язок даного рівняння будемо шукати в вигляді

і оскільки характеристичне рівняння має два корені

,

то звідси отримаємо

(4)

Як відомо, в контурі L, C власна кутова частота незатухаючих коливань

позначимо величину

вона називається коефіцієнтом затухання.

Використовуючи дані позначення, отримуємо:

(5)

Якщо  < 0, то розряд конденсатора є коливальним, а при 0 – аперіодичним процесом. На практиці великий інтерес являє перший випадок, який розглянемо нижче. При , тобто коли або , , де . Позначимо .

Таким чином,

в відповідності з чим на основі (4) напруга конденсатора, що розряджається

(5)

Щоб визначити дві сталі А1 та А2, необхідна ще одна рівність. Для цього використаємо рівняння розрядного струму:

.

Звернімося до початкових умов; при t=0 згідно з другим законом комутації напруга на конденсаторі

,

а згідно з першим законом комутації при

.

На основі цих початкових умов сталі будуть рівні:

та

Підставивши отримані значення в (5) та одночасно замінивши отримаємо:

(6)

Можемо отримати відношення , тобто будемо вважати, що та відображають катети прямокутного трикутника; гіпотенуза цього трикутника

Розділивши та помноживши (6) на , отримаємо:

(7)

після чого легко отримаємо рівняння розрядного струму:

(8)

Як показують (7) та (8), напруга конденсатора та його розрядну силу струму можна розглядати як таку, що змінюється синусоїдально з часом, причому їх амплітуди зменшуються по експоненціальному закону; сталою затухання цих коливань служить величина

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

та

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

При ввімкненні коливального контуру (при ) під постійну напругу U процес можна розглядати як поєднання примусового та вільного:

;

Вимушена напруга

а вимушений струмДиференціальне рівняння (3) буде тепер справедливе для вільної складової . В початковий момент t=0 згідно законам комутації

та

На основі цього

та

Таким чином, для вільної напруги конденсатора буде справедливим вираз (7), лише в ньому слід замінити U на –U, що дозволить скласти рівняння напруги конденсатора, що заряджається:

та рівняння зарядного струму:

.

Лістинг програми.

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

//Функцiя, яка описує змiну струму

float I (float c, float l, float r,float t,float u)

{float wo,w2,b,i,e=M_E;

b=r/2*l;

wo=sqrt(1/l*c);

w2=sqrt(fabs(wo-b*b));

i=-u*wo*c*wo*pow(e,-b*t)*sin(w2*t-M_PI)/w2;

return i;}

//Функцiя, яка описує змiну напруги

float U (float c, float l, float r,float t,float u)

{float w2,wo,b,uf,e=M_E;

b=r/2*l;

wo=sqrt(1/l*c);

w2=sqrt(fabs(wo-b*b));

uf=u-pow(e,-b*t)*u*(w2*cos(w2*t)+sin(w2*t))/w2;

return uf;}

main()

{int kodkey;

//Вiзитка

clrscr();

printf ("Курсова робота з курсу ""Програмування та алгоритмiчнi мови"".\nВиконав: студент АУТП-11\nТАРАС Б.I.\nРIВНЕ 2002");

delay (4000);

//Головне меню

menu:

clrscr();

printf ("1. ESC=вихiд \n2. ENTER=продовжити\n");

kodkey=getch();

if (kodkey==27) goto end;

if (kodkey==13) goto start;

else {printf ("ПОМИЛКА: Невiрно натиснута клавiша.");

sound (1000);

delay (500);

nosound ();

delay (700);

goto menu;}

//Меню вводу

start:

clrscr ();

printf ("1.ESC=повернутися в основне меню");

printf ("\n2.ENTER=продовжити\n");

kodkey=getch ();

if (kodkey==27) goto menu;

//Ввiд значень L,C,R

if (kodkey==13)

{float l,c,r,u,k;

printf ("Введiть значення ємностi:\nC=");

scanf ("%f",&c);

printf ("Введiть значення iндуктивностi:\nL=");

scanf ("%f",&l);

printf ("Введiть значення опору:\nR=");

scanf ("%f",&r);

printf ("Введiть значення початкової напруги:\nU=");

scanf ("%f",&u);

printf ("Введiть масштаб:");

scanf ("%f",&k);

//Вибiр виду грфiка: I(t) або U(t)

m:

printf ("\nЯку залежнiсть будувати: I(t) чи U(t)?");

printf ("\nНатиснiть вiдповдну клавiшу: I(t)=i; U(t)=u\n");

kodkey=getch();

if (kodkey!=105 && kodkey!=117)

{printf ("ПОМИЛКА: Невiрно натиснута клавiша.");

sound (1000);

delay (500);

nosound ();

delay (700);

goto m;}

//Запис значень в файл

FILE*fp;

if((fp=fopen("history.dat","a"))==NULL)

{perror("history.dat");

return 1;}

{time_t t;

time(&t);

fprintf(fp,"\n\n%sC=%f, L=%f, R=%f, U=%f, Масштаб=%f,",ctime(&t),c,l,r,u,k);

if (kodkey==105) fprintf (fp," Графiк I(t)");

if (kodkey==117) fprintf (fp," Графiк U(t)");

fclose (fp);}

//Iнiцiалiзацiя графiчного режиму

int gdriver = DETECT, gmode;

initgraph(&gdriver, &gmode, "c:\\bcpp\\bgi");

//Побудова вiсь координат i сiтки

setcolor(6);

int dx;

for (dx=0; dx<=640; dx+=10)

{line (0,dx,640,dx);

line (dx,640,dx,0);}

setcolor(10);

rectangle(0,0,639,479);

line(0,240,640,240);

line(20,0,20,640);

setcolor (15);

outtextxy (10,250,"O");

if (kodkey==105) outtextxy (10,10,"I");

if (kodkey==117) outtextxy (10,10,"U");

outtextxy (620,250,"t");

//Побудова графiка

{float t,i,uf;

moveto(20,240);

if (kodkey==105)

{for (t=0; k*t*10<=600; t+=0.0009)

{i=-I(c,l,r,t,u);

lineto(k*10*t+20,k*10*i+240);}}

if (kodkey==117)

{for (t=0; k*t*10<=600; t+=0.0009)

{uf=-U(c,l,r,t,u);

lineto(k*10*t+20,k*10*uf+240);}}

getch();

closegraph ();}

goto menu;}

//Вiзитка

end:

clrscr ();

printf ("Курсова робота з курсу ""Програмування та алгоритмiчнi мови"".\nВиконав: студент АУТП-11\nТАРАС Б.I.\nРIВНЕ 2002");

delay (4000);

}

Приклади роботи програми.

Вхідні дані:

C=4

L=0.4

R=3

U=2

масштаб=2

Графіки, що побудувала програма:

Рис. 2 Графік I(t)

Рис. 3 Графік U(t)

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

Для забезпечення зручності встановлення програми та компонентів необхідних для її роботи, всі необхідні файли були поміщені в саморозпаковуючийся архів INSTALL.EXE. Сюди ввійшли:

Ім’я файлуРозмір в байтахОпис

En-drv.com7463Розширений кирилічний драйвер української мови для ОС MS-DOS

Install.txt1784Описовий файл встановлених файлів

History.dat-Файл історії введених значень

Kr.bat23Виконуваний файл, який перед запуском програми завантажує розширений кирилічний драйвер української мови для ОС MS-DOS автоматично

Kr.docФайл звіту по курсовій роботі

Kursova.cpp3329Файл програми на мові програмування “С”

Kursova.exe64960“exe”-файл програми

Shema.bmp4214Схема електричного кола


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат