Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Сравнение результатов счета с использованием пакета MathCad↑ ⇐ ПредыдущаяСтр 6 из 6 Содержание книги
Поиск на нашем сайте
Для расчета заданной электрической цепи были использованы стандартные средства пакета 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; просмотров: 151; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.82.60 (0.007 с.) |