Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГРка.docx
Скачиваний:
2
Добавлен:
19.07.2019
Размер:
1.98 Mб
Скачать

2 Численное решение

Для получения точного решения системы (3), (4) была написана программа на языке высокого уровня С#. Код программы представлен в приложении А. После того, как пользователь ввёл значения сопротивлений и напряжения , либо рассчитал схему с уже данными значениями, программа выдаст промежуточные результаты: эквивалентное сопротивление Rэ и напряжение холостого хода Uxx, затем искомое значения тока I3. Интерфейс изображен на рисунке 7.

Рисунок 7 - Интерфейс программы

На выходе программа выдает следующее значение тока:

I3=111,587 мкА.

3 Моделирование

Проверка решения схемы, изображенной на рисунке 1, проведена с помощью ППП моделирования аналоговых схем МСАР с оценкой погрешности. Исходная схема моделирования на рисунке 8.

Рисунок 8 – Схема для моделирования в Мicro-Cap

На рисунке 9 представлена схема с результатами после моделирования в Мicro-Cap:

Рисунок 9 – Схема после моделирования

На этой схеме видно значение тока I3:

I3=111.587 мкА;

Далее рассчитываем погрешность по формуле (20):

. (20)

Результат вычисления погрешности приведён в таблице 1.

Таблица 1 – Вычисление погрешности

Ток

Результат вычисления

Результат моделирования

Погрешность

I3

111.59 мкА

111.587 мкА

0,003 %

Заключение

В процессе работы провели аналитический расчёт тока на участке цепи методом эквивалентного генератора напряжения, численный расчёт на высокоуровневом языке программирования С#, что облегчило решение поставленной задачи, затем проверили решение с помощью ППП моделирования аналоговых схем МСАР с оценкой погрешности. Численный расчет совпадает с проверкой. Погрешность оказалась достаточно малой, что означает правильность вывода формул в аналитическом расчёте.

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

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

2 Разевиг В.Д. Система схемотехнического моделирования Micro-CAP V. – М.: ТОО ”СОЛОН”, 1997. – 273 c.

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

Приложение а

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

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

Исходный код программы приведён ниже.

namespace РГР

{

public partial class Form1 : Form

{

double R1, R2, R3, R4, R5, R6, U1, Rэ, I3, Uxx; //объявление переменных

double A, B, C, Ik2, Ik1;

double R25, R26, R56, R426, R156, R426156;

public Form1()

{

InitializeComponent();

}

private void exitToolStripMenuItem_Click(object sender, EventArgs e)

{

Application.Exit();//выход из программы

}

//сообщения о заданных значениях, об авторе и о программе

private void заполнитьДаннымиЗначениямиToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show("R1=560k, R2=100k, R3=1,1M, R4=3,3M, R5=240k, R6=9,1M, U1=240B");

}

private void обАвтореToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show("Расчитать ток в сопротивлении R3 методом эквивалентного генератора напряжений. Даданные значения хранятся в пункте <Опции> -> <Данные значения>");

}

private void обАвтореToolStripMenuItem1_Click(object sender, EventArgs e)

{

MessageBox.Show("Выполнила: Николаева Жанна Владимировна, студентка ОмГТУ, АСОИУ, гр.ИВТ-240");

}

//сброс значений

private void очиститьЗначенияToolStripMenuItem_Click(object sender, EventArgs e)

{

textBox1.Text = "";

textBox2.Text = "";

textBox3.Text = "";

textBox4.Text = "";

textBox5.Text = "";

textBox6.Text = "";

textBox7.Text = "";

textBox8.Text = "";

textBox9.Text = "";

textBox10.Text = "";

}

//расчёт с заранее заданными параметрами

private void расчитатьСДаннымиЗначениямиToolStripMenuItem_Click(object sender, EventArgs e)

{

double r1 = 560000, r2=100000, r3=1100000, r4=3300000, r5=240000, r6=9100000, u1=240;

R1 = r1;

R2 = r2;

R3 = r3;

R4 = r4;

R5 = r5;

R6 = r6;

U1 = u1;

A = R1 + R2 + R4 + R5;//значение коэфициентов А,В и С при токах

B = R2 + R5;

C = R2 + R5 + R6;

Ik2 = U1 / (B - C * A / B);

Ik1 = C * Ik2 / B;

Uxx = -Ik1 * R4 -Ik1 * R2 + Ik2 * R2;//формула для расчёт Uxx после последовательных преобразований

textBox8.Text = Uxx.ToString();//вывод Uxx

R25 = R2 * R5 / (R2 + R5 + R6);

R26 = R2 * R6 / (R2 + R5 + R6);

R56 = R6 * R5 / (R2 + R5 + R6);

R426 = R4 + R26;

R156 = R1 + R56;

R426156 = R426 * R156 / (R426 + R156);

Rэ = R426156 + R25; //расчёт Rэ после упрощения цепи

textBox9.Text = Rэ.ToString();//вывод Rэ

I3 = Uxx / (R3 + Rэ); //получение искомого тока

textBox10.Text = I3.ToString();//вывод на экран искомого значения

}

private void button1_Click(object sender, EventArgs e)

{

//тот же расчёт что и в методе "расчитатьСДаннымиЗначениями" путём ввода данных с клавиатуры

try //проверка коректности ввода данных

{

R1 = Convert.ToDouble(textBox1.Text); //cчитываем значения R и U

R2 = Convert.ToDouble(textBox2.Text);

R3 = Convert.ToDouble(textBox3.Text);

R4 = Convert.ToDouble(textBox4.Text);

R5 = Convert.ToDouble(textBox5.Text);

R6 = Convert.ToDouble(textBox6.Text);

U1 = Convert.ToDouble(textBox7.Text);

}

catch

{

MessageBox.Show("Ошибка ввода");

f = false;

}

if (f)

{

A = R1 + R2 + R4 + R5;

B = R2 + R5;

C = R2 + R5 + R6;

Ik2 = U1 / (B - C * A / B);

Ik1 = C * Ik2 / B;

Uxx = -Ik1 * R4 - Ik1 * R2 + Ik2 * R2;

textBox8.Text = Uxx.ToString();

R25 = R2 * R5 / (R2 + R5 + R6);

R26 = R2 * R6 / (R2 + R5 + R6);

R56 = R6 * R5 / (R2 + R5 + R6);

R426 = R4 + R26;

R156 = R1 + R56;

R426156 = R426 * R156 / (R426 + R156);

Rэ = R426156 + R25;

textBox9.Text = Rэ.ToString();

I3 = Uxx / (R3 + Rэ);

textBox10.Text = I3.ToString();

}}}}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]