WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → програму для графічного відображення додавання двох синусоїдних електрорушійних сил - Реферат

програму для графічного відображення додавання двох синусоїдних електрорушійних сил - Реферат

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

Український Державній Університет Водного господарства і природо користування

Кафедра електротехніки і автоматики

Курсова робота

з дисципліни "Програмування і алгоритмічні мови"

на тему:

  • " Розробка програми для графічного відображення схеми регулювання рівня води в каналі за нижнім б'єфом."

    Виконав:

    студент 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

    {

    x = random(maxx);

    y = random(maxy);

    color = (0);

    putpixel(x, y, color);

    }

    delay(DELAY_TIME);

    srand(seed);

    for (i=0; i

    {

    x = random(maxx);

    y = random(maxy);

    color = random(maxcolor);

    if (color == getpixel(x, y))

    putpixel(x, y, 0);

    }

    }

    return(0);

    }

    int leva(int x1,int y1,int y2)

    { rectangle(x1,y1,460,y2); //пiдпрограма для 1-контура

    return 0;}

    int tricky(int y1)

    { //для 2-контура

    line(455,205,455,y1);

    return 0;

    }

    int leva1(int x12,int y12,int y23)

    { rectangle(x12,y12,160,y23);

    return 0;}

    int tricky1(int y12)

    {

    line(155,164,155,y12);

    return 0;

    }

    int main1(void)

    {

    float k;

    int i,j,iii,iiii,iiiii;

    clrscr();

    int gdriver = DETECT, gmode, errorcode;

    initgraph(&gdriver, &gmode, "c:bcppbgi");

    errorcode = graphresult();

    if (errorcode != grOk)

    { printf("Graphics error: %sn", grapherrormsg(errorcode));

    printf("Press any key to halt:");

    getch();

    exit(1);}

    clearviewport();

    printf("Введiть Q в межах вiд 0 до 30");

    printf("n Вiд 0 до 25 -min");

    printf("n Вiд 25 до 27 -нормальне");

    printf("n Вiд 27 до 30 -max");

    printf("n Q=",k);

    scanf("%f",&k);

    setgraphmode(getgraphmode());

    int x1=450,e,y1=235,y2=360,x12=150,y12=195,y23=320;

    while (!kbhit())

    {

    setbkcolor(0);

    setcolor(2);

    line(10,335,620,399);

    setcolor(2);

    line(10,225,150,240);

    line(10,220,150,220);

    line(160,253,180,253);

    line(460,295,480,295);

    rectangle(180,248,200,260);//2-датчик

    rectangle(480,288,500,300);//1-датчик

    rectangle(150,320,160,195);//2-дамба

    setcolor(4);

    line(181,254,199,254);

    line(481,294,499,294);

    setcolor(5);

  • Loading...

     
     

    Цікаве