Математическое моделирование физических задач на ЭВМ
p> Для составления уравнений соединений по законам Кирхгофа необходимо на всех ветвях графа стрелками указать положительные направления токов. В результате получается граф с ориентированными ветвями, называемый направленным графом токов цепи (рис. 3.1, б), ветви которого являются токами. Положительные полярности напряжений ветвей удобно принимать согласованными с положительными направлениями токов. Тогда в цепях, составленных из двухполюсных элементов, направленный граф напряжений, ребра которого являются напряжениями ветвей, будет совпадать с графом токов.
Переход к направленному графу позволяет производить аналитическую запись структуры графа и подграфов в виде таблиц – матриц, называемых топологическими матрицами. Аналитическое представление графа необходимо для формирования уравнений сложной цепи с помощью ЭВМ.

Полное описание структуры направленного графа дает nуxnв - матрица соединений, nу строк которой являются порядковыми номерами узлов, nв столбцов – номерами ветвей. Элементами аi,j этой матрицы являются символы наличия или отсутствия ветви k, присоединенной к узлу i, которые принимаются равными +1 (—1) для выходящей из узла (входящей) ветви и 0, если ветвь не связана с узлом.

Для того чтобы записать матрицу соединений, достаточно для каждой ветви определить номера обоих соединяемых узлов i, j и заполнить клеточки на пересечениях строк i, j и столбца с номером ветви k значениями +1, — 1; в остальных клеточках должны быть проставлены нули. Для графа рис. 3.1,б получим полную матрицу соединений:

[pic]

(3.1)

Так как каждая ветвь соединяет два узла—выходит из одного узла и входит в другой, то столбец матрицы состоит из двух ненулевых элементов +1,
—1 (их сумма равна нулю), так что достаточно заполнить таблицу для ny-1 узлов, которая является редуцированной матрицей соединений А. Эту независимую матрицу можно получить из полной матрицы Аa вычеркиванием строки, соответствующей выбранному базисному узлу.

Приняв в качестве базисного узел 4 и соответственно вычеркивая четвертую строку в (3.1), получим редуцированную матрицу соединений:

[pic]

(3.2)

Строка матрицы А показывает, какие ветви выходят из каждого независимого узла графа цепи (и входят в него), а столбец – к каким узлам присоединена ветвь.

В отличие от полной матрицы Аа у редуцированной матрицы соединений связного графа множество всех строк линейно независимо. Отсюда можно сделать вывод о том, что система уравнений равновесия токов в ny-1 узлах цепи линейно независима. Если ввести вектор токов пв, ветвей:

i=[i1, i2, … inв]Т, (3.3)

то систему независимых уравнений в nу-1 узлах по ЗТК в соответствии со смыслом матрицы А можно записать в виде:

Ai=0, (3.4)

где 0=[0 0 … 0]T - нулевой вектор размерности nу-1.

Для графа цепи рис. 3.1, б с матрицей соединений (3.2) имеем:

[pic]

Транспонированная матрица соединений имеет вид:

[pic]

(3.5)

Строка этой матрицы показывает, между какими узлами присоединена каждая ветвь.

Если задана матрица соединений, то всегда можно построить соответствующий граф. Для этого, расположив точки, обозначающие узлы, следует соединить их попарно ветвями. Номера и направление ветвей определяются ненулевыми элементами столбцов матрицы соединения.

2. Уравнения контурных токов

Метод контурных токов применим к цепям с планарным графом (рис. 3.3, а). В качестве переменных принимают замкнутые контурные токи, проходящие по ветвям, образующим все внутренние ячейки графа.

Если намечать контуры – периметры ячеек – по порядку, начиная с одного края цепи, то легко убедиться, что в каждый последующий контур вносится новая ветвь, не вошедшая в предыдущие контуры. Отсюда следует, что уравнения равновесия напряжений в таких контурах будут линейно независимы.
Число внутренних ячеек равно nx=nв-ny+1.

[pic]

Каждой ячейке приписывается один контурный ток, замыкающийся по ветвям, образующим ячейку. Общее число переменных – контурных токов – равно числу ячеек. Направления всех контурных токов принимают одинаковыми – по часовой стрелке. Как видно из рис. 3.3, a, по каждой ветви цепи, за исключением периферийных ветвей, замыкаются два контурных тока, направленные в противоположные стороны. Запишем уравнения соединений.

1. Приравнивая нулю суммы напряжений ветвей всех независимых контуров

(ячеек), имеем nх уравнений по ЗНК [pic].

2. Выражая ток каждой ветви через разность двух (в общем случае) замыкающихся по смежным контурам контурных токов, получим nв уравнений по ЗТК:

[pic].

Как видно, токи всех ветвей, т. е. поведение всей цепи, полностью определяются nх контурными токами, число которых меньше числа ветвей.

Запишем уравнения ветвей. Положим для удобства, что выполнено преобразование всех источников тока и цепь содержит только источники напряжения. Примем для общности каждую ветвь состоящей из последовательного соединения резистивного элемента и источника напряжения (рис. 3.3,6).
Уравнение такой составной ветви имеет вид:

[pic].

Для получения уравнений относительно выбранных переменных необходимо:
1) с помощью уравнений ветвей [pic] в уравнениях равновесия напряжений заменить напряжения всех ветвей токами;
2) токи ветвей в получившейся системе заменить, согласно [pic], контурными токами.

Получим уравнения для одной из ячеек, например первой (рис. 3.3, в), образованной тремя ветвями. Основным уравнением равновесия напряжений в первом контуре будет: u1+u2+u3=0 (*)

Токи ветвей ячейки:

[pic].(**)

Уравнения ветвей:

[pic] (***)

Из трех систем уравнений (*), (**), (***) необходимо получить уравнение, содержащее только искомые контурные токи. В соответствии со сказанным с помощью (***) заменяем в основном уравнении (*) напряжения на токи ветвей, которые затем выражаем через контурные токи согласно (**):

[pic],

После группировки имеем:

[pic]

Первое слагаемое здесь представляет сумму напряжений всех резистивных ветвей контура только от собственного контурного тока в отсутствие токов других контуров (при их разрыве), а остальные слагаемые—напряжения ветвей контура от токов других контуров в отсутствие собственного контурного тока.
В правую часть перенесены напряжения всех источников, входящих в контур.

Аналогичные уравнения получим для остальных контуров. Если число контуров равно п, то предположив для общности число ветвей каждой ячейки также равным п, можно записать систему уравнений контурных токов:

[pic]

Коэффициент Rkk—собственное сопротивление контура, равное сумме сопротивлений всех ветвей ячейки, а коэффициент Rik=Rki (ik) – взаимное сопротивление контуров, равное сопротивлению общей для контуров i и k ветви, взятому с отрицательным знаком, которым учитываются встречные направления контурных токов в рассматриваемой ветви.

Каждое уравнение системы выражает условие равновесия напряжений ветвей контура – резистивных и источников напряжения (в правой части). Слагаемое на главной диагонали [pic] дает напряжение всех резистивных ветвей только от собственного контурного тока, а слагаемое Рkjij=ukj - напряжение на взаимном сопротивлении контуров только от тока в j-м контуре.

Составление уравнений сводится к записи симметричной матрицы параметров контурных токов:

[pic]

Вектора контурных напряжений источников, составляющие которых равны суммам напряжений источников в контурах:

[pic]

При введении вектора искомых контурных токов уравнения (3.10) в матричной форме можно записать в виде:

[pic].

3. Алгоритм формирования узловых уравнений

Для ввода графа или соединений цепи производят последовательную нумерацию:

1) всех узлов от 1 до п=пy-1 (опорному узлу присваивают нулевой номер);

2) всех ветвей от 1 до nв. Как указывалось, всю информацию о структуре графа содержит матрица соединений. Но вводить в память эту матрицу в виде двумерного массива нерационально из-за большого числа нулевых элементов. Поэтому структуру графа вводят с помощью таблицы соединений – одномерного массива троек целых чисел (k, i, j), где k—номер ветви; i—номер узла, откуда ветвь выходит; j—номер узла, куда ветвь входит. Тройки чисел дают ненулевые элементы aik=1 и аjk=-1 матрицы А. По заданной таблице соединений можно получить все необходимые для формирования уравнений матрицы.

Формировать узловые уравнения на ЭВМ можно перемножив произведение первых двух матриц па транспонированную матрицу соединений, получим матрицу узловых проводимостей; перемножение транспонированной матрицы АТ на вектор токов источников дает вектор узловых токов. Действия над матрицами
(транспонирование, суммирование, перемножение) легко программируется.
Упомянутые матрицы являются разреженными, т. е. содержат много нулевых элементов. Поэтому приведенный алгоритм, включающий много действий умножения на нулевой элемент, применять невыгодно.

Более рационально формировать матрицу Gy и вектор iy непосредственно - по мере поступления данных составных ветвей, исходя из смысла собственной и взаимной проводимостей. Вначале матрицу узловых проводимостей и вектор узловых токов принимают равными нулю: Gy=0 и iy=0, затем к ним добавляют элементы, вносимые каждой составной ветвью. Данные ветви (k, i, j) с проводимостью Gk и током источника тока iok войдут в собственные проводимости Gii, Gjj, узлов i, j как добавки Gk, во взаимные проводимости
Gij, Gji как добавки Gk и в элементы вектора узловых токов iyi, iyi - как добавки ±i0k. Добавки ветви в матрицу проводимости Gy и вектор тока iy можно представить в виде:

[pic]

Если ветвь присоединена к базисному узлу (j=0) то она внесет добавку Gk, только в собственную проводимость Gii и добавку i0k в составляющую iiy вектора узловых токов. Учет данных последней ветви завершает формирование узловых проводимостей и вектора узловых токов.

Заключение

Таким образом в настоящей дипломной работе:

проведен литературный обзор по моделированию процессов в радиотехнических цепях, методов и средств расчетов токов и направлений в них;

построена математическая модель разветвленной цепи постоянного тока;

. на языке программирования Турбо Паскаль версии 7.0. в удобном графическом интерфейсе разработана программа построения и анализа электрической схемы цепи постоянного тока;

. приведены методические пояснения при работе с разработанной программой, а также расчетов и анализа электрических цепей;

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

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

В заключение хочу выразить благодарность своим научным руководителям:
Цыпишка Дмитрию Ивановичу, Брагарь Луке Федеровичу и заведующиему кафедрой кафедрой общей физики и методики преподавания физики Стамову Ивану
Григорьевичу, за методическую помощь, оказанную при написании дипломной работы.

Использованная литература


1. К.С. Демирчан, П.А. Бутырин. Моделирование и машинный расчет электрических цепей. М., «Высшая школа», 1988г.
2. В. Нерретер. Расчет электрических цепей на ПЭВМ. М., «Энергоатомиздат»,

1991г.
3. Пантюшин В.С. Сборник задач по электротехнике и основам электронники.

М., «Высшая школа», 1979г.
4. П.Н. Махтанов. Основы анализа электрических цепей. Линейные цепи. М.,

«Высшая школа», 1990г.
5. «Электротехника». Под редакцией проф. В.С. Пантюшина. М., «Высшая школа», 1976г.
6. В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова. «Введение в язык Паскаль».

М., «Наука», 1988г.
7. Ж.Джонс, К. Харроу. «Решение задач в системе Турбо Паскаль». М.,

«Финансы и статистика», 1991г.
8. К. Боон. «Паскаль для всех». М., «Энергоиздат», 1988г.
9. Д. Прайс. «Программирование на языке Паскаль». Практическое руководство.

М., «Мир», 1987г.

Приложение

I. Рисунки с видами экрана при работе с программой 20

Рисунок №1. Общий вид экрана. 20
Рисунок №2. Меню – Файл. 21
Рисунок №3. Открытие файла, сохраненного на диске. 22
Рисунок №4. Вид экрана с изображением схемы. 23
Рисунок №5. Вывод результата вычисления токов в ветвях схемы. 24
Рисунок №6. Просмотр направления токов в ветвях схемы. 25
Рисунок №7. Вид экрана при сохранении схемы в файл. 26
Рисунок №8. Меню – Окно. 27
Рисунок №9. Окно помощи выводимое на экран при нажатии клавиши F1. 29

II. Листинг программы на языке Паскаль. 30

1. Основная программа 30
2. Модуль с библиотекой элементов 36
3. Модуль вычисления токов ветвей 48

I. Рисунки с видами экрана при работе с программой


Рисунок №1. Общий вид экрана.


Меню

Меню элементов

Рабочее поле

Указатель мыши

[pic]

Строка статуса

Индекатор свободной памяти

Рисунок №2. Меню – Файл.


Меню – Файл

[pic]

Рисунок №3. Открытие файла, сохраненного на диске.

Открытие файла со схемой

[pic]

Рисунок №4. Вид экрана с изображением схемы.

Изображение схемы

[pic]

Расчет схемы

Рисунок №5. Вывод результата вычисления токов в ветвях схемы.

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

[pic]

Токи

Резисторы

Рисунок №6. Просмотр направления токов в ветвях схемы.

Значения токов

Направления токов

[pic]


Рисунок №7. Вид экрана при сохранении схемы в файл.

Сохранение схемы

[pic]

Рисунок №8. Меню – Окно.

Работа с окнами

[pic]

Рисунок №9. Вид экрана при закрытии всех окон.

Указатель мыши

Меню

[pic]

Строка статуса

Информация о свободной памяти

Рисунок №10. Окно помощи выводимое на экран при нажатии клавиши F1.

Закрытие окна

Окно с помощью программы

[pic]

Горизонтальный скролинг

Вертикальный скролинг

II. Листинг программы на языке Паскаль.

1. Основная программа


Program UzPotenc; {Метод узловых потенциалов}
{$F+,O+,X+,V-,R-,I-,S-}
Uses

Crt, Applic1, Objects, Drivers, Dialogs, Views, Menus, App, StdDlg,

Fonts, HelpFile, MsgBox, TxtRead, WInDows, PalObj, Grv16, DemoHlp,

Types2;
Type TNewApp=Object(TMyApp)

Procedure ReCounte; Virtual;

End;
Var MyApp:TNewApp;
Type

PMyCollection=^TMyCollection;

TMyCollection=Object(TCollection)

Procedure FreeItem(Item:poInter); Virtual;

End;

Procedure CurView; {Просмотр значений токов}
Var R,R1:TRect;

D:PDialog;

L:PListBox;

C:PMyCollection;

Sb:PScrollBar; i:Integer; s:String;
Begin
Sb:=Nil;
MyApp.ShemeWInDow^.GeTextentWIn(R);
R.B.X:=R.A.X+(R.B.X-R.A.X) Div 4;
D:=New(PDialog,Init(R,'Значения токов'));
D^.GeTextentWIn(R);
Inc(R.A.Y,CurrentFont^.Height*2);
R1.Copy(R);
R1.A.X:=R1.B.X-CurrentFont^.Width*2;
If RCount>(R.B.Y-R.A.Y) Div CurrentFont^.Height

Then

Begin

Sb:=D^.StAndardScrollBar(sbVertical+sbHAndleKeyBoard);

End;
C:=New(PMyCollection,Init(RCount,1));
For i:=1 To RCount Do

Begin

Str(abs(Currents[i]):9:6,s);

If i Div 10>0

Then C^.Insert(NewStr('I'+IntToStr(i)+'='+s+'A'))

Else C^.Insert(NewStr(' I'+IntToStr(i)+'='+s+'A'))

End;
L:=New(PListBox,Init(R,1,Sb));
L^.NewList(C);
D^.Insert(L);
R.B.Y:=R.A.Y;
Dec(R.A.Y,CurrentFont^.Height*2);
D^.Insert(New(PLabel,Init(R,' Токи в ветвях',L)));
DeskTop^.Insert(D);
End;

Procedure TNewApp.ReCounte;{Обсчет}
Var i,j,k,l,m,Ii,Sizex,Index:Integer;

A:TElAr; f1,f2:Boolean;

Ratio:Real;

Function Vetv1(Ai,Aj,Ad:Integer):Boolean;
{Функция сохраняет в A ветвь от элемента (Ai,Aj) в направлении Ad (0-Up,1-
Down,2-Left,3-Right и возвращает TRUE, если она содержит элементы}
Var i,j,k,l:Integer;
Flag1,Flag2:Boolean;
Begin

Flag1:=True;

Flag2:=False;

With A[Index] Do

Begin

Str:=Ai; Col:=Aj;

Num:=Sheme[Ai,Aj,2];

Typ:=Sheme[Ai,Aj,1];

End;

Inc(Index);

Case Ad Of

0: Begin i:=Ai+1; j:=Aj-1; End;

1: Begin i:=Ai-1; j:=Aj+1; End;

2: Begin i:=Ai-1; j:=Aj+1; End;

3: Begin i:=Ai+1; j:=Aj-1; End;

End;

While Flag1 And (i>0) And (j>0) And (i


Страницы: 1, 2, 3



Реклама
В соцсетях
рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать