Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ргр1

.doc
Скачиваний:
22
Добавлен:
15.06.2014
Размер:
122.88 Кб
Скачать

Министерство образования РФ

ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ (ОМГТУ)

Кафедра

«Автоматизированные системы обработки информации и управления»

Расчетно-графическая работа

по курсу

«Электротехника и электроника»

Преподаватель

Никонова Г. В.

Разработал студент гр. Ас-212

Дударев А. В.

Омск 2003

Аналитическое решение

Для последующего решения методом уравнений Кирхгофа расставим токи и зададим контуры тока на схеме, данной в задании, и отобразим это на рисунке 1.

R4

R6

I4

Рисунок 1 - Задание контуров обхода и токов в цепи

На основании схемы, показанной на рисунке 2, пользуясь Законом токов Кирхгофа и Законом напряжений Кирхгофа, принимая узел №4 за базовый, составим систему уравнений (1).

i1= i3+ i4;

(1)

i5= i2+ i3;

i4= i6+ i2;

i3R3+i5R5+i1R1-Uг1=0;

i2R2-i3R3+i3R4+Uг1=0;

i6R6-i5R5-i2R2-Uг2=0.

Метод Гаусса основывается на методе замены переменных. Преобразуем полученную систему (1) в систему, пригодную для вычисления методом Гаусса (2).

i1+0i2+i3+i4+0i5+0i6 =0;

(2)

0i1+i2+i3+0i4-i5+0i6 =0;

0i1+i2+0i3-i4+0i5+i6 =0;

R1i1+0i2+R3i3+0i4+R5i5+0i6=U1;

0i1+R2i2-R3i3+R4i4+0i5+0i6=-U2;

0i1-R2i2+0i3+0i4-R5i5+R6i6=U2.

Составим матрицу (3) на основании системы уравнений (2).

-1

0

1

1

0

0

0

(3)

0

1

1

0

-1

0

0

0

1

0

-1

0

1

0

R1

0

R3

0

R5

0

U1

0

R2

-R3

R4

0

0

-U2

0

-R2

0

0

-R5

R6

U2

Подставим условия задания в матрицу (3).

R1=15 Ом; R2=100 Ом; R3=1000 Ом; R4=120 Ом R5=51 Ом; R6=2000 Ом; U1=1 В; U2=10 В, получим матрицу (4).

- i1

0

1

1

0

0

0

(4)

0

1

1

0

-1

0

0

0

1

0

-1

0

1

0

15

0

1000

0

51

0

1

0

100

-1000

120

0

0

-10

0

-100

0

0

-51

2000

10

Для получения решения матрицы (4) была написаны программа на языке Delphi. Текст программы см. в приложении A.

В результате решения матрицы (4) методом Гаусса получаем ответы (5-10):

i1=-0,027836 А;

i2=-0,033360 А;

i3=0,002968 А;

i4=-0,030803 А;

i5=-0,030393 А;

i6=0,002557 А.

(5)

(6)

(7)

(8)

(9)

(10)

Знак «-» в ответах означает что я неправильно выбрал направление тока в схеме, показанной на рисунке 2. На основании этого утверждения можно сказать, что значения токов i1…i6 данной схемы равны токам (5-10) взятым по модулю.

Проверка решения

Проверку выполненного решения проведем, согласно заданию, с помощью ППП для моделирования схем MCAP.

Воспроизведя начальную схему, данную в задании, в MCAP 7.0 и произведя расчет токов в цепи, принимая узел № 4 за базовый, получим следующие данные (рисунок 2).

Рисунок 2 - Расчет токов в цепи, выполненный программой MCAP 7.0

Данная схема с помощью пакетом моделирования MCAP 7.0, и, как видно из рисунка 2, токи, полученные нами с помощью решения матрицы (4) примерно соответствуют численно токам, полученным в результате расчета программой MCAP: i1mcap=27,8358 мА; i2mcap =33,3603 мА; i3mcap =2,9676 мА; i4mcap =30,8034 мА; i5mcap =30,3928 мА; i6mcap =2,5570 мА.

Рассчитаем погрешность вычислений:

i1=i1-i1mcap=27,836-27,8358=0,0002

i2=i2-i2mcap=33,36-33,3603=-0,0003

i3=i3-i3mcap=2,968-2,9676=0,0004

i4=i4-i4mcap=30,803-30,8034=-0,0004

i5=i5-i5mcap=30,393-30,3928=0,0002

i6=i6-i6mcap=2,557-2,5570=0,0

Составим итоговую таблицу сравнения результатов.

Таблица 1 - Сравнение значений силы тока полученных разными методами расчета и расчет погрешностей

Ток

Результат, полученный при расчете систем уравнений методом Гаусса (мА)

Результат, полученный при расчете токов схемы в программе MCAP 7.0 (мА)

Погрешность

(i=Ii-Iimcap*100%)

i1

27,836

27,8358

0,02

i2

33,36

33,3603

0,03

i3

2,968

2,9676

0,04

i4

30,803

30,8034

0,04

i5

30,393

30,3928

0,02

i6

2,557

2,5570

0,0

Столь малая погрешность обусловлена вычислением системы уравнений с помощью компьютера с точностью 10-3 для единицы измерения миллиампер.

Таким образом, решение, полученное мною, совпадает с решением пакета MCAP, и расчет токов в цепи выполнен правильно.

Приложение A

«Текст программы вычисления систем уравнений методом Гаусса»

{---ввод данных---}

procedure TForm1.Button4Click(Sender: TObject);

begin

SG1.Cells[0,0]:='-1'; // заполнение матрицы данными

SG1.Cells[1,0]:='0';

SG1.Cells[2,0]:='1';

SG1.Cells[3,0]:='1';

SG1.Cells[4,0]:='0';

SG1.Cells[5,0]:='0';

SG1.Cells[6,0]:='0';

SG1.Cells[0,1]:='0';

SG1.Cells[1,1]:='1';

SG1.Cells[2,1]:='1';

SG1.Cells[3,1]:='0';

SG1.Cells[4,1]:='-1';

SG1.Cells[5,1]:='0';

SG1.Cells[6,1]:='0';

SG1.Cells[0,2]:='0';

SG1.Cells[1,2]:='1';

SG1.Cells[2,2]:='0';

SG1.Cells[3,2]:='-1';

SG1.Cells[4,2]:='0';

SG1.Cells[5,2]:='1';

SG1.Cells[6,2]:='0';

SG1.Cells[0,3]:='15';

SG1.Cells[1,3]:='0';

SG1.Cells[2,3]:='1000';

SG1.Cells[3,3]:='0';

SG1.Cells[4,3]:='51';

SG1.Cells[5,3]:='0';

SG1.Cells[6,3]:='1';

SG1.Cells[0,4]:='0';

SG1.Cells[1,4]:='100';

SG1.Cells[2,4]:='-1000';

SG1.Cells[3,4]:='120';

SG1.Cells[4,4]:='0';

SG1.Cells[5,4]:='0';

SG1.Cells[6,4]:='-10';

SG1.Cells[0,5]:='0';

SG1.Cells[1,5]:='-100';

SG1.Cells[2,5]:='0';

SG1.Cells[3,5]:='0';

SG1.Cells[4,5]:='-51';

SG1.Cells[5,5]:='2000';

SG1.Cells[6,5]:='10';

end;

{---Метод Гаусса---}

procedure TForm1.Button2Click(Sender: TObject); // визуальное отображение матрицы на экране

var

max,x,free:Extended;

ii:Integer;

begin

Memo1.Lines.Clear;

Form2:=Tform2.create(self);

form2.SG2.Visible:=true;

form2.Button1.Visible:=false;

form2.Memo1.Visible:=false;

form2.SG2.RowCount:=SE1.Value;

form2.SG2.ColCount:=SE1.Value+1;

form2.SG2.Height:=30*SE1.Value;

form2.SG2.Width:=68*(1+SE1.Value);

for i:=1 to SE1.Value do // сортировка элементов матрицы, создание диагонали нулей.

for j:=1 to SE1.Value do

Matrix[i,j]:=strtofloat(SG1.Cells[j-1,i-1]);

for i:=1 to SE1.Value do

b[i]:=strtofloat(SG1.Cells[SE1.value,i-1]);

for j:=1 to SE1.Value-1 do

begin

k:=j;

max:=abs(Matrix[j,j]);

for i:=j to SE1.Value do

If abs(Matrix[i,j])>max then

begin

max:=abs(Matrix[i,j]);

k:=i;

end;

for i:=1 to SE1.Value do

begin

max:=Matrix[k,i];

Matrix[k,i]:=Matrix[j,i];

Matrix[j,i]:=max;

end;

free:=b[k];

b[k]:=b[j];

b[j]:=free;

for ii:=j+1 to SE1.Value do

begin

x:=-Matrix[ii,j]/Matrix[j,j];

b[ii]:=b[ii]+b[j]*x;

for i:=1 to SE1.Value do

begin

Matrix[ii,i]:=Matrix[ii,i]+Matrix[j,i]*x;

If abs(Matrix[ii,i])<1e-15 then Matrix[ii,i]:=0;

end;

end;

end;

for i:=1 to SE1.Value do

for j:=1 to SE1.Value do

begin // подстановка значений, расчет ответов

form2.SG2.Cells[j-1,i-1]:=floattostr(Matrix[i,j]);

form2.SG2.Cells[SE1.Value,i-1]:=floattostr(b[i]);

end;

for i:=1 to SE1.Value do answer[i]:=0;

for i:=SE1.Value downto 1 do

begin

for j:=1 to SE1.Value do

b[i]:=b[i]-Matrix[i,j]*answer[j];

answer[i]:=b[i]/Matrix[i,i];

end;

For j:=1 to SE1.Value do

begin

for i:=1 to SE2.Value+1 do

answer[j]:=answer[j]*10;

answer[j]:=round(answer[j]);

for i:=1 to SE2.Value+1 do

answer[j]:=answer[j]/10;

end;

for i:=1 to SE1.Value do

memo1.Lines.Add(floattostrf(answer[i],ffFixed,18,SE2.Value));

end;

end.

9

Соседние файлы в предмете Электротехника