Міністерство освіти і науки України
Український Державній Університет Водного господарства і природо
користування
Кафедра електротехніки і автоматики
Курсова робота
з дисципліни “Програмування і алгоритмічні мови”
на тему:
“ Розробка програми для графічного відображення схеми регулювання рівня
води в каналі за нижнім б’єфом.”
Виконав:
студент 1-го курсу
ФПМ і КІС
АУТП 12
Христюк О.В.
Перевірив:
Пастушенко В.Й.
Рівне 2002
Завдання
Розробити програму для графічного відображення додавання двох
синусоїдних електрорушійних силЗміст
Вступ………………………………………………………….
…………………………………………………………3
Задача і опис
схеми………………………………………………………….
……………………4
Текст
програми……………………………………………………….
…………………………………6
Приклад………………………………………………………..
…………………………………………………..13
Висновок……………………………………………………….
………………………………………………… 14
Література……………………………………………………..
………………………………………………..15
Вступ
Для закріплення здобутих теоретичних знань, застосування їх при
вирішенні питань виробничого характеру, а також з метою набуття навиків
по створенню програмного забезпечення , виконується курсова робота з
дисципліни “Програмування та алгоритмічні мови” . В курсовій роботі
необхідно розробити програму на мові програмування C++,яка б графічно
відображала схему регулювання рівня води в каналі за нижнім б’єфом.
Важливо також щоб програма мала системне меню, вводилися дані.
Задача і опис схеми
Регулювання по нижньому б’єфі використовують для забезпечення
користувачів водою по запиту. При цьому способі регулятори 1 по сигналам
датчиків 2 піддержують постійними рівні води в нижніх б’єфах Hнб=const
(Рис.1). Вільна поверхність потоку при максимальній витраті Qмакс (лінія
3) і витраті (лінія 4) утворюють граничний трикутник , який показує
границі зміни рівнів вздовж б’єфа при витратах 0 ( Q ( Qмакс . Об’єм
води , обмежений вільною поверхністю при витраті (лінія 5) і поверхністю
при Qмакс , утворюють резервний об’єм , який називають об’ємом
регулювання . Цей об’єм витрачається відразу при збільшенні водозабору
із б’єфа і поповнюється у випадку зменшення потреби води .
При збільшенні водозабору (наприклад, водовипуском 6 на dQ проти
існуючого місця витрати Q1) спочатку витратиться резервний об’єм , який
знаходиться між лініями 3 і 5 . Після того як він спрацьовує , рівень
води в нижньому б’єфі починає знижуватися і , щоб не допустити зниження
, регулятор відкриває перегородку . Це приводить до спрацювання
резервного об’єму вище розташованого б’єфа і відкриттю потім перегородки
. В результаті послідовно робиться перестройка всіх вище розташованих
перегородок і головної споруди . В систему подається додаткова витрата
dQ .
При зниженні потреби у воді в якому не будь б’єфі на dQ спочатку
послідовно поповнюються резервні об’єми , потім начинають послідовно
прикриватися перегородки знизу вверх до тих пір ,поки в систему не
поступить зменшена на dQ витрата .
Таким чином , перестройка роботи перегородок при зміні витрати в
якому не будь б’єфі робиться в напрямку , протилежному напрямку руху
потоку . Такий зв’язок між б’єфами називається оборотнім гідравлічним
зв’язком , який при витратах Q ( Qмакс утворює ланцюг (каскад)
послідовно розташованих резервних об’ємів . Тому регулювання по нижньому
б’єфі називають також каскадним регулюванням .
Резервні об’єми досягають максимуму при витраті Q=0 і повністю
спрацьовують при Q = Qмакс . Наповнення або спрацювання резервних
проходить на протязі часу , необхідного для перестройки системи на новий
режим роботи . Цей час прийнято називати часом регулювання . Він
найбільший , якщо зміна витрати проходить в найбільш віддаленому б’єфі .
Рис.1. Схема регулювання води за нижнім б’єфом.
При збільшенні витрати на dQi в i – му б’єфі час регулювання :
(1)
– сума резервних об’ємів вище розташованих б’єфів ;
– сумарний час перестройки вище розташованих регуляторів .
При розподілу води регулюванням по нижньому б’єфі присутні наступні
недоліки :
у випадку недостачі води користувачі , розташовані в верхній частині
каналу , можуть не отримати необхідну кількість води , а інколи може
опустошитися головна частина каналу ;
при витраті Q=0 вільна поверхністю води у б’єфах розташовується
горизонтально , тому гребені бровок каналів і дамб повинні бути також
горизонтальними в кожному б’єфі , що збільшує об’єм будівельних робіт ;
в б’єфах необхідно мати автоматичну водоскидну споруду , яка не
допустить переповнення , яке може виникнути при аварії на головній
споруді .
Головною задачею курсової роботи стоїть те , що потрібно розробити
програму , яка б відображала цю схему і процес роботи , програма повинна
працювати з різними витратами .
Текст програми.
#include
#include
#include
#include
#include
#define ESC 27
#define B 98
#define PIXEL_COUNT 10000
#define DELAY_TIME 0
//—————Функцiя виведення титульноi сторiнки————–
int titulka(void)
{
int asd,i, x, y, color, maxx, maxy,maxcolor, seed;
setcolor (15);
settextstyle(4,0,9);
outtextxy(20,100,”Kursova robota”);
setcolor (5);
settextstyle(2,0,7);
outtextxy(100,180,”на тему:”);
setcolor (10);
settextstyle(2,0,7);
outtextxy(100,190,”Графiчне вiдображення схеми регулювання”);
outtextxy(110,200,”рiвня води в каналi за нижнiм б’ефом”);
setcolor(4);
outtextxy(300,216,”Варiант №16″);
setcolor(8);
outtextxy(440,300,” Виконав:”);
setcolor(6);
outtextxy(440,320,” Христюк О.В.”);
setcolor(11);
outtextxy(240,400,”PRESS ANY KEY”);
maxx = getmaxx() + 1;
maxy = getmaxy() + 1;
maxcolor = getmaxcolor() + 1;
while (!kbhit())
{
seed = random(32767);
srand(seed);
for (i=0; i
{
setcolor(2);
leva(x1,y1,y2);
tricky(y1);
delay(100);
setcolor(0);
line(450,y1+1,460,y1+1);
line(450,y2+1,460,y2+1);
setcolor(1);
line(450,y2+1,460,y2+1);
}
setlinestyle(0,0,0);
setcolor(0);
for(e=13;e>8;e–) //12
{line(501,306-e,619,306-e);
delay(200);}
setcolor(1);
setlinestyle(0,0,1);
for(i=k;i2
{line(201,273-e,449,273-e);
delay(200);}
iiii=0;
do
{
setcolor(15);
line(155,125,190,125);
line(190,125,190,248);
line(155,125,155,146);
delay(200);
setcolor(2);
line(155,125,190,125);
line(190,125,190,248);
line(155,125,155,146);
delay(200);iiii=iiii+1;}
while(iiii170;y12–,y23–)
{
setcolor(2);
leva1(x12,y12,y23);
tricky1(y12);
delay(100);
setcolor(0);
line(150,y12+1,160,y12+1);
line(150,y23+1,160,y23+1);
setcolor(1);
вода 3
setcolor(1);
for(x12,y12,y23;y122
{line(11,233-e,149,233-e);
delay(200);}
setcolor(1);
for(e=8;e2
{line(501,306-e,619,306-e);
delay(200);}
setcolor(0);
for(e=13;e>8;e–) //12
{line(11,233-e,149,233-e);
delay(0);}
}
//——————————————————————
if (k>=25 && k27){
setcolor(1);
setlinestyle(0,0,1);
for(i=0;i170;y12–,y23–)
{
setcolor(2);
leva1(x12,y12,y23);
tricky1(y12);
delay(100);
setcolor(0);
line(150,y12+1,160,y12+1);
line(150,y23+1,160,y23+1);
setcolor(1);
line(150,y23+1,160,y23+1);
}
setlinestyle(0,0,0);
for(i=30;i>24;i–)
{setcolor(0);
line(201,282-i,449,282-i);
delay(200);}
setcolor(1);
setlinestyle(0,0,1);
for(i=3;i8;e–)
{line(11,233-e,149,233-e);
delay(0);}
}}
getch();
return(0);
}
int main(void)
{int gdriver=DETECT,gmode,errorcode,i;
initgraph(&gdriver,&gmode,”c:\\bcpp\\bgi”);
errorcode=graphresult();
if(errorcode!=grOk)
Системне меню —————————————-
r_key:
int key;
initgraph(&gdriver,&gmode,”c:\\bcpp\\bgi”);
errorcode=graphresult();
if(errorcode!=grOk)
{printf(“Graphics error:%s\n”,grapherrormsg(errorcode));
printf(“Press any key to halt:”);
getch();exit(1);}
setcolor(10);
rectangle(15,420,350,470);
setfillstyle(9,6);floodfill(16,421,10);
settextstyle(0,0,1);
setcolor(14);
outtextxy(20,426,”B – Демонстрацiя роботи схеми регулювання”);
outtextxy(20,436,”рiвня води в каналi за нижнiм б’эфом”);
outtextxy(20,456,”ESC – ВИХIД”);
rr_key:
key=getch();
if(key==B)
{ main1();
clrscr();
goto r_key;
}
else if(key==ESC) exit(0);
else goto rr_key;
return(0);
}
Приклад
Введемо Q=26 – нормальна витрата (Рис.2) ;
Введемо Q=12 – мала витрата (Рис.3) ;
Рис.2
Рис.3
Висновок
Завдяки цій курсовій роботі я закріпив здобуті теоретичні знання з
курсу “Програмування та алгоритмічні мови”, навчився застосувати їх при
вирішенні питань виробничого характеру. Склав програму, яка графічно
відображає схему регулювання рівня води в каналі за нижнім б’єфом,
програма працює з різним даними.
Література
1.Баховец Б.А, Ткачук Я.В. Основи автоматики и автоматизация
производственных процессов в гидромелиорации. Львов, “Вища школа”, 1989
р., 334 с.
2.Крис Паппас, Уїльям Мюррей, Програмирование на С и С++,
“Ирина”, BHV,Киев,2000.
Ця курсова робота люб’язно надана HYPERLINK
“http://rivneclub.narod.ru/kontakt.html” Олександром Подранецьким
PAGE
PAGE 16
Нашли опечатку? Выделите и нажмите CTRL+Enter