Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Сравнение результатов счета с использованием пакета MathCadСодержание книги
Поиск на нашем сайте Для расчета заданной электрической цепи были использованы стандартные средства пакета MathCad. Для этого была составлена программа на входном языке пакета MathCad, с помощью которой были получены значения токов ветвей для заданной электрической цепи. Эти значения совпадают со значениями токов, полученных с помощью разработанной программы для контрольного примера. Текст программы для пакта MathCad приведен ниже.
Заключение и выводы В данной курсовой работе были разработаны алгоритм и программа на языке Turbo Pascal для расчета электрической цепи методом узловых потенциалов. Проведена отладка программы на контрольном примере. Полученные с помощью разработанной программы результаты для исходных данных контрольного примера совпали с результатами, приведенными литературе. Это говорит о правильности работы программы. Проведен расчет заданной электрической цепи при других исходных данных. Проведено сравнение полученных с помощью разработанной программы для контрольного примера результатов с результатами расчетов, проведенных в пакете MathCAD 2000. Из результатов сравнений видно, что полученные значения токов совпадают. Время выполнения 1 расчета электрической цепи составило десятые доли сек. Объем файла Usel1 с кодом головной программы на языке Turbo Pascal составляет 2 килобайт, файла с модулем Uselfun, в котором находятся описания всех используемых процедур на языке Turbo Pascal составляет 4 килобайт.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 1. Советов Б.Я., Яковлев С.А. Моделирование систем. Курсовое проектирование (учебное пособие для ВУЗов). - М.:Высшая школа. - 1988. -135 с. 2. Каранчук В.П., Сваровский И.Н., Суздальницкий И.Д. Основы применения ЭВМ: Учебное пособие для ВУЗов. - М.:Радио и связь. - 1988. - 288 с. 3. Милехин Л.Н., Потапов А.А. Руководство по составлению программного документа к курсовому или дипломному проекту. - Казань:КАИ. - 1989. - 20 с. 4. Толстов Ю.Г. Теория линейных электрических цепей. - М.:Высшая школа. - 1978.
Приложение 1 Текст программы на языке Turbo-Pascal для расчета электрической цепи методом узловых напряжений {Программа для расчета электрической цепи методом узловых напряжений} Program uzel; uses uselun; const nv=5;nu=3; var a,at,g,gu,v,jv,ev,uv,iv,r,x,y,z:mas;i,j,k,n:integer; begin {Ввод исходных данных} inpm (nu,nv,a,' a '); {матрица соединений} inpm (nv,1,r,' r '); {вектор сопротивлений ветвей} inpm (nv,1,ev,' ev '); {вектор эдс источников} inpm (nv,1,jv,' jv '); {вектор источников токов} {Расчет матрицы проводимостей ветвей} for i:=1 to nv do begin for j:=1 to nv do g[i,j]:=0.0; g[i,i]:=1/r[i,1]; end; writeln (' Результаты расчета электрической цепи '); umn(nv,nv,1,g,ev,x); {G*Ev->x} subm(nv,1,jv,x,y); {Jv-G*Ev->y} umn(nu,nv,1,a,y,z); {a*(Jv-G*Ev)->z} outm (nu,1,z,' Вектор узловых токов Iu '); transp(nv,nu,a,at); {транспонирование матрицы ->at} umn(nu,nv,nv,a,g,x); {a*g->x} umn(nu,nv,nu,x,at,gu); {a*g*at->gu} outm (nu,nu,gu,' матрица Gu узловых проводимостей '); obmatr(nu,gu,x); {вычисление обратной матрицы (a*g*at)^-1->x} umn(nu,nv,1,x,z,v); {Расчет узловых напряжений v=(a*g*at)^-1*a*(Jv-G*Ev)} outm (nu,1,v,' Вектор узловых напряжений v '); umn(nv,nu,1,at,v,uv); {Вектор падения напряжения ветвей Uv=at*v} summ(nv,1,uv,ev,x); {Uv+Ev->x} umn(nv,nv,1,g,x,iv); {Расчет токов ветвей Iv=g*(Uv+Ev)} outm (nv,1,iv,'Вектор токов ветвей iv '); {вывод вектора токов ветвей} end. unit uselun; {модуль с используемыми процедурами} interface const nn=5; type mas=array [1..nn,1..nn] of real; procedure subm (n,m:integer; var a,b,c:mas); procedure inpm (n,m:integer; var a:mas; st:string); procedure transp (n,m:integer; var a, at:mas); procedure summ (n,m:integer; var a,b,c:mas); procedure outm (n,m:integer; var a:mas; st:string); procedure umn (n,k,m:integer; var a,b,c:mas); procedure obmatr(n:integer;var a,b:mas); implementation procedure transp (n,m:integer; var a,at:mas); var i,j:integer; begin for i:=1 to n do for j:=1 to m do at[i,j]:= a[j,i]; end; function norm (n,m:integer; r1,r2:mas):real; var t:mas; s:real;i,j:integer; begin subm (n,m,r1,r2,t); s:=0; for i:=1 to n do for j:=1 to n do s:=s+t[i,j]; norm:=s; end; procedure inpm (n,m:integer; var a:mas; st:string); var i,j:integer; begin writeln ('введите матрицу',st,'по строкам'); for i:=1 to n do for j:=1 to m do read(a[i,j]); end; procedure outm (n,m:integer; var a:mas; st:string); var i,j:integer; begin writeln (st); for i:=1 to n do begin for j:=1 to m do write(a[i,j]:8:2); writeln; end; end; procedure subm (n,m:integer; var a,b,c:mas); var i,j:integer; begin for i:=1 to n do for j:=1 to m do c[i,j]:=a[i,j]-b[i,j]; end; procedure summ (n,m:integer; var a,b,c:mas); var i,j:integer; begin for i:=1 to n do for j:=1 to m do c[i,j]:=a[i,j]+b[i,j]; end;
procedure umn (n,k,m:integer; var a,b,c:mas); var i,j,L:integer;s:real; begin for i:=1 to n do for j:=1 to m do begin s:= 0; for L:=1 to k do begin s:= s + a[i, L]*b[L,j]; end; c[i,j]:= s; end; end; procedure obmatr(n:integer;var a,b:mas); {* Вычисление обратной матрицы a^-1->b*} { - входные параметры} {n - размерность матриц } {a - исходная матрица размера n*n} { выходной параметр } {b - обратная n*n-матрица для a} var i,j,k,ij,fl:integer; index: array[1..50] of integer; d,r,w,w1,eps:real; begin eps:=1.e-15; r:=1.0;d:=1.0; for j:=1 to n do for i:=1 to n do b[i,j]:=a[i,j]; for i:=1 to n do begin fl:=0; j:=i; while j<=n do begin if (abs(b[j,i])>eps) then begin fl:=1; for k:=1 to n do begin w1:=b[i,k]; b[i,k]:=b[j,k]; b[j,k]:=w1 end; index[i]:=j; j:=n; end; j:=j+1; end; if(b[i,i]=0) then exit; b[i,i]:=1./b[i,i]; for k:=1 to n do if(k<>i) then b[i,k]:=b[i,k]*b[i,i]; for ij:=1 to n do if(ij<>i) then begin w:=-b[ij,i]; b[ij,i]:=0.; for k:=1 to n do b[ij,k]:=b[ij,k]+w*b[i,k]; end; if(fl=0) then exit; d:=d/b[i,i]; end; { i} for i:=n downto 1 do begin if(index[i]<>i) then begin r:=-r; for k:=1 to n do begin w1:=b[k,i]; b[k,i]:=b[k,index[i]]; b[k,index[i]]:=w1; end; end; end; end; end.
|
||
|
Последнее изменение этой страницы: 2016-12-13; просмотров: 221; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.108 (0.007 с.) |