Заключение
Результатом выполненной работы являются программа для расчета тока в цепи по методу комплексных амплитуд, а так же схема, собранная в ППП 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;
}