Построение графиков переходного процесса в электрических цепях

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



КУРСОВАЯ РАБОТА

по дисциплине ИНФОРМАТИКА

на тему

Построение графиков переходного процесса в электрических цепях

План

. Аннотация

. Индивидуальное задание

. Пояснительный текст

. Распечатка текста паскаль программы

. Распечатка файла с исходными данными

. Распечатка файла с результатами iёта

. Графики переходного процесса, построенные паскаль - программой

. Графики переходного процесса, построенные в Microsoft Excel

Список литературы

Выводы

1. Аннотация

Данная курсовая работа написана для построения графиков переходного процесса в электрической цепи, заданной электрической схемой. Она содержит мультимодульную программу раiёта и построения графиков переходного процесса. Для сравнения с графиками, построенными с помощью Borland Pascal 7.0, графики были построены с помощью Microsoft Excel.

2. Индивидуальное задание

.1 Электрическая схема

На схеме изображены:

1)источник питания, электродвижущая сила которого равна Е;

2)ключ, для замыкания цепи;

3)конденсатор, электроемкость которого равна С;

4)катушка индуктивности, индуктивность которой равна L;

5)резистор, сопротивление которого равно r.

2.2 Раiетные соотношения

Основные формулы:

Вспомогательные формулы:

график переходный электрический pascal excel

3. Пояснительный текст

.1 Краткое описание работы программного обеспечения

Мультимодульная программа производит раiёт и строит графики переходного процесса в электрической цепи.

Принцип работы. Программа имеет помимо головной программы несколько процедур и функций. Сначала функция Init выполняет инициализацию графического режима. Затем с помощью функции OpenForRead открывается файл для чтения, здесь же выбирается один из двух способов ввода данных: с клавиатуры или с файла. Если файл не был открыт, то программа завершает работу; если же был открыт, то с помощью процедуры ReadFile вводятся данные (напряжение (U), электроемкость (C), индуктивность (L) и сопротивление (r)). Далее производится вычисление i(t) и uc(t) в процедуре Vychislenie. Потом программа открывает файл для записи, это выполняется с помощью функции OpenForWrite. В этой функции выбирается один из двух способов для записи данных: экран, файл, либо вообще не записывать данные. В случае если файл был открыт, производится вывод раiетных значений в файл. В противном случае следует запрос на построение графиков. Если выбрали построение графиков, то процедура Risuem_Graphic начнёт строить графики. После этого процедура CloseFile закрывает файл с данными. Конец программы.

3.2 Укрупнённая блок-схема

4. Распечатка текста паскаль программы

Program KURSOVAYA;

uses graph, crt;= 1000; strok = 3;= array[1..strok, 1..kolvo] of real;= array[1..strok] of string[5];: char;, L, C, E: real;: znach;_: text;: boolean;: integer;, ym, Ox, Oy: integer;, mashtab, j: integer;: TNadpis;

init: byte;a, mgr, error: integer;: = detect;(a, mgr, 'D:\bgi');: = graphresult;error <> grok then begin('Ошибка ');: = 1;init: = 0;;

risuem_osi (kletka,y1,x1,maxx,maxy:integer);x, y: integer;;(15);(3,0,0);(magenta);x:=0 to round(maxx/ kletka) do(kletka*x+x1,maxy,kletka*x+x1,0);(x1-kletka*x,maxy,x1-kletka*x,0);;y: = 0 to round(maxy/ kletka) do(0,y1-y*kletka,maxx,y1-y*kletka);(0,y1+y*kletka,maxx,y1+y*kletka);;(0,0,1);(1);

{Ось X} {Ось Y}(0,y1,maxx,y1); line (x1,0,x1,maxy);(maxx,y1,maxx-5,y1-4); line (x1,0,x1-4,5);(maxx,y1,maxx-5,y1+4); line (x1,0,x1+4,5);(maxx-10,y1-10,'t');(x1-10,y1+4,'0') ;;

risuem_grafic (var fmas:znach;y0,x0,xmax,m,k,kolvo:integer;fNadpis:TNadpis);xt1,yt1,yt:integer; v, q, nom: integer;,st: string; kletka_y: real;, chislox,t1:real; max, min: real;:= -maxint; min:= maxint; nom:=0;nom:=2 to kolvo doq:=1 to k dofmas[nom,q] > max then max: = fmas[nom,q];fmas[nom,q] abs(round(max-fmas[nom,1]))max: = abs(round(fmas[nom,1]-min))max: = abs((max-fmas[nom,1]));: = max + abs(fmas[nom,1]);(0,0,3);: = -1; v: = 1;: = 0;

: = '';(nom+1);(v);:=xt1+1;

: = ((y0)-20)/max;: = (xmax-x0-2*m)/k;

: = round(chisloy*(fmas[nom,v-1]));: = round(chisloy*(fmas[nom,v]));(x0+round(xt1*chislox),round(y0-yt),x0+round(xt1*chislox+chislox),round(y0-yt1));

_y: = m/chisloy;(kletka_y:5:3,st); str(nom,st1);:='setka_no_y_'+st1+'='+st+fNadpis[nom];(x0+250,20*nom, st);(1);:=m/(chislox*10);(t1:3:0,st); st: = 'setka_no_Ox = '+st+fnadpis[1];(x0+450,20,st);fmas[nom,1] = k;;;

vychislenie (var mas_: znach; E_, C_, L_, r_: real; var NadpisNaOs: TNadpis);u1,i1,t,t0,i0,u0,step: real; k1: integer;, W1, gamma, B: real;: = 0;: = 0;: = 0;: = 0;: = 0; : =1/ (2*r_*C_); W0: = 1/ (sqrt (L_*C_)); W1: = sqrt(sqr(W0)-sqr(B));: = arctan (B/W1); step: = 0.0001;[1]: = '-t,mC';[2]: = '-I,A';[3]: = '-U,B';(k1);_[1,k1]: = t;

{Значения тока}

mas_ [2, k1]:=E/ (W1*L)*exp(-B*t)*sin(W1*t);:=E/ (W1*L)*exp (-B*t)*sin (W1*t);

{Значения напряжения}_ [3, k1]:= E+E*(W0/W1)*exp(-B*t)*sin(W1*t-lambda);:= E+E*(W0/W1)*exp(-B*t)*sin(W1*t-lambda);: = t + step;:= t;:= i1;:= u1;t >= 0.07;: = k1;;

openforread (var f:text;coment:string; var flagcons: boolean): boolean;vu: char; filename: string;('Укажите ВУ для чтения ',coment);('1 - клавиатура ');('2 - файл ');('3 - выход ');(vu); flagcons: = false; openforread: = false;vu of

'1': begin: = true;: = true;(f,'con');(f);;

'2': begin('Укажите имя файла для чтения ', coment);

readln (filename);

assign (f, filename);

{$I-}(f);

{$I+}IOresult<>0 writeln ('Ошибка открытия файла ')

else openforread: = true;;

'3': openforread: = false; writeln ('Нет такого пункта ');

end;vu in ['1'..'3'];;

readfile (var f1:text; flagcons1:boolean;var _E, _C, _L, _r: real);flagcons1('Введите в столбик E, C, L, R')(f1);(f1,_E);(f1,_C);(f1,_L);(f1,_r);not flagcons1('Введено: ');('E= ',_E:1:5,' V');('C= ',_C:1:6,' F');('L= ',_L:1:5,' Kl');('r= ',_r:1:5,' Om');(f1);;

openforwrite (var t:text;var fcons: boolean; com: string): boolean;name: string;vu_: word;

writeln ('Укажите ВУ для записи ',com);

writeln ('1 - экран ');('2 - файл '); ('3 - не записывать ');

readln (vu_); openforwrite: = false; fcons: = false;vu_ of

: begin: = true; fcons: = true;;

: begin

writeln ('Введите имя файла для записи ',com);

readln (name);(t, name);

{$I-}(t);

{$I+}IOresult <> 0 then writeln ('Ошибка открытия файла для записи ',com)openforwrite: = true;;<