Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет_по_РГР_ЭлТех_Чернов.docx
Скачиваний:
3
Добавлен:
15.11.2019
Размер:
221.68 Кб
Скачать

Заключение

Результатом выполненной работы являются программа для расчета тока в цепи по методу комплексных амплитуд, а так же схема, собранная в ППП MicroCAP 9.0.5.0. Были подробно изучены метод комплексных амплитуд, законы Кирхгофа и законы Ома. Были найдены амплитуда и начальная фаза искомого тока. Для проверки результатов амплитуда и начальная фаза так же были найдены в MicroCAP. Относительная погрешность в нахождении амплитуды составила 0,15 %, в нахождении начальной фазы – 1,9 %.

Изученный метод может быть применен к широкому классу разветвленных цепей при смешанном соединении элементов в режиме гармонических воздействий. Так же метод комплексных амплитуд предполагает использование совместно с ним других методов расчета, метод узловых потенциалов, контурных токов и др.

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

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

2 Разевиг В.Д. Система схемотехнического моделирования Micro-CAP 6 – М.: Горячая линия-Телеком, 2001. – 344с.

Приложение а

(обязательное)

Исполняемый код кнопки “Расчет”

По нажатии на кнопку “Расчет” программы выполняется код, приведенный ниже. Данный код реализует поэтапное нахождение амплитуды и фазы по выведенным формулам.

private void buFindI3_Click(object sender, EventArgs e)

{

R1 = Convert.ToDouble(tbResistance1.Text);

R2 = Convert.ToDouble(tbResistance2.Text);

L = Convert.ToDouble(tbInductance.Text);

C = Convert.ToDouble(tbCapacity.Text);

Omega = Convert.ToDouble(tbOmega.Text);

i0startPhase = Convert.ToDouble(tbI0startPhase.Text);

I0max = Convert.ToDouble(tbI0Amplitude.Text);

double Z1_Real = (R2 * Omega * Omega * L * L)/(R2*R2+Omega*Omega*L*L); // Просчет комплексного

double Z1_Imaginary = (R2 * R2 * Omega * L) / (R2 * R2 + Omega * Omega * L * L);

// сопротивления Z.1

/* Z_total = Z(общ)*/

double Z_total_Imaginary = (-1) / (Omega * C) + Z1_Imaginary; // k

double Z_total_Real = Z1_Real; // m

double I0_Real = I0max * Math.Cos((i0startPhase * Math.PI) / 180);

double I0_Imaginary = I0max * Math.Sin((i0startPhase * Math.PI) / 180);

double Xc_Imaginary = -1 / (Omega * C); //Расчет мнимой части емкостного сопротивления

double Xl_Imaginary = Omega * L; // Расчет мнимой части индуктивного сопротивления

double Alpha = (-1) * I0_Imaginary * R1 * Omega * L;

double Beta = I0_Real * Omega * R1 * L;

double Gamma = R1 * R2 + R2 * Z_total_Real - Z_total_Imaginary * Omega * L;

double Delta = R2 * Z_total_Imaginary + (R1 + Z_total_Real) * Omega * L;

IR2_modul = Math.Sqrt(Math.Pow(Alpha*Gamma+ Beta*Delta,2)+Math.Pow(Beta*Gamma-Alpha*Delta,2))/(Gamma*Gamma+Delta*Delta);

tbIR2max.Text = String.Format("{0:F2}", IR2_modul); ;

//вывод амплитуды в текстовое окно

IR2_startPhase = Math.Atan((Beta * Gamma - Alpha * Delta) / (Alpha * Gamma + Beta * Delta));

//вывод начальной фазы в текстовое окно

tbPhiR2start.Text = String.Format("{0:F2}", 180*(IR2_startPhase/Math.PI));

buCurrent.Visible = true;

tbInputTime.Visible = true;

label18.Visible = true;

buReset.Visible = true;

}