Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР - Электротехника.DOC
Скачиваний:
35
Добавлен:
15.06.2014
Размер:
172.54 Кб
Скачать

3 Расчет токов при помощи Micro-Cap 7.0.

При помощи ППП для моделирования аналоговых схем ( Micro-Cap 7.0 ) была построена схема 1.

Далее был проведен анализ схемы.

Программа Micro-Cap 7.0 сама произвела расчеты токов ветвей и выдала результаты:

i1 = 13.666mA

i2 = 3.086mA

i3 = 3.763mA

i4 = 9.904mA

i5 = 0.676mA = 676mkA

i6 = 12.989mA

Схема 2.

4 Оценка погрешности

Абсолютная погрешность ∆ = Iрас - Iмод

Относительная погрешность S = ∆ / Iмод * 100%

Заключение

Целью расчетно-графической работы является расчет токов ветвей методом контурных токов.

В процессе работы проводилось построение схемы, аналитическое решение, последующее написание и отладка программы для расчета токов ветвей методом контурных токов, проверка решения с помощью ППП для моделирования аналоговых схем (Micro-Cap 7.0).

Список использованных источников

  1. Основы теории электрических цепей и электроники / В.П. Бакалов, А.Н.Игнатов, Б.И. Крук – Москва: Изд-во Радио и связь, 1989. – 528 с.

  2. Электротехника и электроника: конспект лекций / А.В. Никонов. – Омск: Изд-во ОмГТУ, 2005. – 84 с.

  3. С++ : учебные курс / Т.А. Павловская. – СПБ: Питер, 2005. – 461 с.

Приложение А

Листинг программы

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

float dellR, delI1, delI2, delI3, R1, R2, R3, R4, R5, R6, V1, V2;

if ( ((Edit1->Text).Length() == 0) || ((Edit2->Text).Length() == 0) ||

((Edit3->Text).Length() == 0) || ((Edit4->Text).Length() == 0) ||

((Edit5->Text).Length() == 0) || ((Edit6->Text).Length() == 0) ||

((Edit7->Text).Length() == 0) || ((Edit8->Text).Length() == 0))

{

ShowMessage("Введены не все значения");

return;

};

R1 = StrToFloat(Edit1->Text);

R2 = StrToFloat(Edit2->Text);

R3 = StrToFloat(Edit3->Text);

R4 = StrToFloat(Edit4->Text);

R5 = StrToFloat(Edit5->Text);

R6 = StrToFloat(Edit6->Text);

V1 = StrToFloat(Edit7->Text);

V2 = StrToFloat(Edit8->Text);

dellR = (R3+R5+R1)*(R2+R3+R4)*(R6+R5+R2)+(-R3)*(-R2)*(-R5)+(-R3)*(-R2)*(-R5)-

((-R5)*(R2+R3+R4)*(-R5)+(-R2)*(-R2)*(R3+R5+R1)+(-R3)*(-R3)*(R6+R5+R2));

delI1 = V1*(R2+R3+R4)*(R6+R5+R2)+(-V2)*(-R2)*(-R5)+(-R3)*(-R2)*V2-

((-R5)*(R2+R3+R4)*V2+(-R2)*(-R2)*V1+(-V2)*(-R3)*(R6+R5+R2));

delI2 = (R3+R5+R1)*(-V2)*(R6+R5+R2)+V1*(-R2)*(-R5)+(-R3)*V2*(-R5)-

((-R5)*(-V2)*(-R5)+(-R2)*V2*(R3+R5+R1)+(-R3)*V1*(R6+R5+R2));

delI3 = (R3+R5+R1)*(R2+R3+R4)*V2+(-R3)*(-R2)*V1+(-R3)*(-V2)*(-R5)-

(V1*(R2+R3+R4)*(-R5)+(-V2)*(-R2)*(R3+R5+R1)+(-R3)*(-R3)*V2);

Edit9->Text = FloatToStr(delI1/dellR); //I1

Edit12->Text = FloatToStr(delI2/dellR); //I4

Edit14->Text = FloatToStr(delI3/dellR); //I6

Edit10->Text = FloatToStr(delI2/dellR-delI3/dellR); //I2

Edit11->Text = FloatToStr(delI1/dellR-delI2/dellR); //I3

Edit13->Text = FloatToStr(delI1/dellR-delI3/dellR); //I5

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N1Click(TObject *Sender)

{

Form1->Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N3Click(TObject *Sender)

{

ShowMessage("Расчет токов ветвей методом контурных токов. Сопротивление указывается в Ом'ах. Источники питания в Вольтах.");

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)

{

if ( ( Key >= '0') && ( Key <= '9' ) )

return;

if ( Key == DecimalSeparator)

{

if ( (Edit1->Text).Pos(DecimalSeparator) != 0 )

Key = 0;

return;

}

if (Key == VK_BACK)

return;

if ( Key == VK_RETURN)

{

Edit2->SetFocus();

return;

};

Key = 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit2KeyPress(TObject *Sender, char &Key)

{

if ( ( Key >= '0') && ( Key <= '9' ) )

return;

if ( Key == DecimalSeparator)

{

if ( (Edit1->Text).Pos(DecimalSeparator) != 0 )

Key = 0;

return;

}

if (Key == VK_BACK)

return;

if ( Key == VK_RETURN)

{

Edit2->SetFocus();

return;

};

Key = 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit3KeyPress(TObject *Sender, char &Key)

{

if ( ( Key >= '0') && ( Key <= '9' ) )

return;

if ( Key == DecimalSeparator)

{

if ( (Edit1->Text).Pos(DecimalSeparator) != 0 )

Key = 0;

return;

}

if (Key == VK_BACK)

return;

if ( Key == VK_RETURN)

{

Edit2->SetFocus();

return;

};

Key = 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit4KeyPress(TObject *Sender, char &Key)

{

if ( ( Key >= '0') && ( Key <= '9' ) )

return;

if ( Key == DecimalSeparator)

{

if ( (Edit1->Text).Pos(DecimalSeparator) != 0 )

Key = 0;

return;

}

if (Key == VK_BACK)

return;

if ( Key == VK_RETURN)

{

Edit2->SetFocus();

return;

};

Key = 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit5KeyPress(TObject *Sender, char &Key)

{

if ( ( Key >= '0') && ( Key <= '9' ) )

return;

if ( Key == DecimalSeparator)

{

if ( (Edit1->Text).Pos(DecimalSeparator) != 0 )

Key = 0;

return;

}

if (Key == VK_BACK)

return;

if ( Key == VK_RETURN)

{

Edit2->SetFocus();

return;

};

Key = 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit6KeyPress(TObject *Sender, char &Key)

{

if ( ( Key >= '0') && ( Key <= '9' ) )

return;

if ( Key == DecimalSeparator)

{

if ( (Edit1->Text).Pos(DecimalSeparator) != 0 )

Key = 0;

return;

}

if (Key == VK_BACK)

return;

if ( Key == VK_RETURN)

{

Edit2->SetFocus();

return;

};

Key = 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit7KeyPress(TObject *Sender, char &Key)

{

if ( ( Key >= '0') && ( Key <= '9' ) )

return;

if ( Key == DecimalSeparator)

{

if ( (Edit1->Text).Pos(DecimalSeparator) != 0 )

Key = 0;

return;

}

if (Key == VK_BACK)

return;

if ( Key == VK_RETURN)

{

Edit2->SetFocus();

return;

};

Key = 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Edit8KeyPress(TObject *Sender, char &Key)

{

if ( ( Key >= '0') && ( Key <= '9' ) )

return;

if ( Key == DecimalSeparator)

{

if ( (Edit1->Text).Pos(DecimalSeparator) != 0 )

Key = 0;

return;

}

if (Key == VK_BACK)

return;

if ( Key == VK_RETURN)

{

Edit2->SetFocus();

return;

};

Key = 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N4Click(TObject *Sender)

{

ShowMessage ("Программа к расчетно-графической работе по ЭТиЭ. Выполнил Игнатов Н.С. ИВТ-264.");

}

//---------------------------------------------------------------------------

16

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