close

Вход

Забыли?

вход по аккаунту

?

Курсовой mal

код для вставкиСкачать

Содержание
Введение4
1. Описание метода5
2. Описание алгоритма8
3. Описание работы программы10
4. Решение контрольной задачи.11
5. Листинг программы.13
6. Моделирование электронных устройств17
Заключение.18
Списсок используемой литературы19
Введение
До начала шестидесятых годов вычислительные методы использовались при анализе и проектировании цепей крайне незначительно.
Квалифицированный инженер мог синтезировать просты цепи, пользуясь минимумом вычислений. Он создавал макет схемы, производил изменения и различные модификации и в результате получал конечный вариант цепи. Но со временем под действием научно технического прогресса электронные схемы стали усложняться. Сначала на помощь инженеру пришли вычислительные методы. Этот мощный аппарат указал направление решения проблем, вставших перед расчётчиком. Расчёт оказался возможным, при условии того, что инженеру придется пойти на некоторые значительные упрощения. В случае необходимости произвести более точные вычисления, вставала проблема ограниченности возможностей в области вычислений низкого уровня. Но решение нашлось само собой. Во-первых, появились интегральные схемы, а во-вторых, стали доступными ЭВМ. Оба эти обстоятельства в комплексе изменили сам подход к решению проблемы. Интегральные схемы сделали возможным производство более совершенных и дешевых ЭВМ, а те в свою очередь облегчили проектирование новых интегральных схем и постепенно устранили проблему большого количества манипуляций с цифрами, так как взяли эту функцию на себя. Относительно дешевые мини и микро ЭВМ недавно стали широко доступными и у нас в стране. Так, что любой пользователь может привлечь "электронный мозг" к решению своих индивидуальных сложных вычислительных задач.
Кроме прогресса в развитии ЭВМ на все аспекты машинного анализа цепей и их проектирования сильное воздействие оказали четыре главных новшества в области численных методов:
- операции с разрешёнными матрицами - линейные многошаговые методы решения систем алгебраических и дифференциальных уравнений - метод присоединённой схемы при вычислении чувствительности
- использование последовательного квадратичного программирования в задачах оптимизации
К сказанному выше можно добавить, что упомянутый вначале этап развития электроники не является заключительным. Развитие численных методов и методов моделирования открыли новые пути развития для науки. 1. Описание метода
Обратимся к направленным графам и введем понятие "ориентированный контур".
Контур называется ориентированным, если ему приписана одна из двух возможных ориентаций.
При графическом изображении ориентации обозначают стрелками.
Приведем пример графа с ориентированными контурами:
Рис. 1. Пример графа с неориентированными контурами.
Вначале определим матрицу контуров, соответствующую всем контурам графа; будем называть её полной матрицей контуров Вп.
Для направленного графа с l ветвями и m ориентированными контурами полной матрицей контуров называется матрица, имеющая l строк и m столбцов, каждый элемент bij которой определяется следующим образом:
bij = +1, если j-я ветвь входит в i-й контур и ориентация ветви совпадает с ориентацией контура; bij = -1, если j-я ветвь входит в i-й контур и ориентация ветви не совпадает с ориентацией контура; bij = 0 в остальных случаях.
Приведем пример полной матрицы контуров для вышеприведенного графа.
1 2 3 4 5 6
Строки полной матрицы контуров обычно линейно зависимы при количестве контуров, большем 1. На практике используют так называемые базовые матрицы контуров.
Базовой матрицей контуров называется каждая подматрица матрицы Вп, состоящая из максимального числа независимых строк.
Из различных базовых матриц при практическом моделировании обычно используют матрицу главных контуров.
Матрица главных контуров
Матрица главных контуров формируется на основе дерева графов. Легко заметить, что и для приведенного графа, и для всякого другого графа добавление к дереву каждой из хорд приводит к образованию единственного контура.
На рис. 5 жирные линии образуют дерево.
Рис. 2. Граф и его дерево
Так, добавление хорды 1 образует контур 1,3,6,5; хорды 4 - 4, 2, 3, 6, 5; хорды 7 - 7, 3, 2.
Каждый контур, определяемый хордой, называется главным. Ориентация каждого главного контура считается определенной стрелкой, устанавливающей ориентацию соответствующей хорды.
Число главных контуров равно числу хорд и равно l-(k-1). Будем присваивать номера контурам с 1 до l-(k-1). Дадим определение матрицы главных контуров, которую будем обозначать через В.
Для направленного графа с k узлами и l ветвями матрицей главных контуров называется матрица, имеющая l-k+1 строк и l столбцов, каждый элемент bij которой определен следующим образом:
bij = +1, если j-ая ветвь входит в i-й главный контур и их ориентации совпадают;
bij = -1, если j-ая ветвь входит в i-й главный контур и их ориентации не совпадают (противоположны); bij = 0 в остальных случаях.
Пример. Изобразим для изображенного на рис. 5 графа матрицу главных контуров. l-(k-1) = 7-(5-1)=3; l=7;
Ниже матрицу главных контуров будем называть матрицей контуров.
Использование матриц контуров для записи 2-го закона Кирхгофа
Пусть столбец напряжений ветвей схемы. Предполагаем, что элементы этого столбца располагаются в том же порядке, что и столбцы матрицы контуров.
Легко заметить, что в соответствии со 2-м законом Кирхгофа Каждая строка матрицы контуров после умножения на U дает алгебраическую сумму напряжений ветвей контура. С учетом изложенного, система ВпU = 0 не всегда содержит независимые уравнения.
Легко заметить, что путем перестановки столбцов матрицы B можно выделить единичную ее подматрицу.
Разделение матрицы главных контуров на подматрицы
Матрицу контуров, как и матрицу инциденций, часто разделяют на подматрицы Вд (которая соответствует дереву) и Вдоп (которая соответствует дополнению дерева).
k - 1 l - k + 1
Легко заметить, что путем перестановки столбцов подматрицы В легко добиться равенства Вдоп =Е. Изобразим соответствующую матрицу для рассматриваемой схемы.
2 3 5 6 1 4 7 - номера ветвей
\
номера главных контуров
Из наличия единичной подматрицы следует, что все строки матрицы В линейно независимые. Таким образом, система ВU=0 содержит линейно независимые уравнения.
2. Описание алгоритма
Формально для определения топологических матриц можно воспользоваться выражением .
После получения подматрицы остальные необходимые подматрицы могут быть получены на основе соотношений , , .
На практике используют более экономичный алгоритм, основанный на соотношении . Для понимания этого алгоритма обратимся к вспомогательной задаче.
АХ = В;
А - квадратная невырожденная матрица;
В - матрица правых частей;
Х - матрица неизвестных. Формально матрицу Х можно определить следующим образом: . Но матрицу Х можно также определить, используя метод Жордана и преобразовать расширенную матрицу вида [A | B]. Легко заметить, что после преобразования матрицы А в единичную на месте матрицы В возникнет матрица Х (т.е. ): [E | A-1B]. Важно отметить, что даже если в процессе преобразования осуществлялся выбор ведущего элемента матрицы А по столбцу, то и в этом случае на месте матрицы В окажется матрица = X.
Формирование матрицы сечений
Из полученного соотношения следует, что . Это выражение позволяет сформулировать следующий алгоритм получения матрицы главных сечений D.
1. Матрица А записывается в исходном виде в форме подматриц
.
Здесь предполагаем, что дерево графа уже определенно. 2. Выполняются преобразования всей матрицы А по методу Жордана с выбором ведущего элемента по столбцу. Так как матрица Ад всегда невырожденная, то это преобразование всегда возможно. В результате на месте матрицы Ад возникает единичная матрица, на месте Адоп возникает Ад-1Адоп, а это означает, что на месте всей матрицы А возникает главная матрица сечений. Легко заметить, что определение дерева и получение матрицы сечений D может быть совмещено при использовании метода Жордана. Если же нужно определить только дерево, то экономичнее использовать метод Гаусса.
Пример. Для рассмотренной схемы выполним преобразование по описанному алгоритму. 2 3 1 5 4 ------------ -------
Ад Адоп
2 3 1 5 4 2 3 1 5 4 2 3 1 5 4 2 3 1 5 4 Обратимся к графу схемы.
Рис. 3. Граф и его сечения
Формирование матрицы контуров
Bд = -Dдопт;
B= [Bд | E]
Пример
Пример приводим для рассматриваемой схемы.
.
Рис. 4.
3. Описание работы программы
Программа позволяет находить матрицу инциденции, матрицу главных сечений и матрицу главных контуров электронных схемы с количеством узлов и ветвей не более 20.
Ввод информации о схеме выглядит следующим образом:
Сначала необходимо ввести количество узлов и ветвей схемы. После ввода этой информации появляется сообщение о том какой узел является опорным (опорным будет последний узел). Затем выводится предложение для ввода информации о ветвях, а именно требуется ввести из какого узла выходит данная ветвь и в какой узел она входит, а также какой элемент она содержит.
На этом ввод информации о схеме завершён, и можно приступать к расчёту. Для этого выбираем в меню пункт "Автоматический расчёт - 2" или "Пошаговый расчёт - 3". После окончания расчёта можно изменить некоторые данные о схеме и произвести расчёт заново выбрав в меню "Ввод информации о схеме - 1".
Пошаговый расчёт позволяет получить матрицу главных контуров
схемы с получением промежуточных матрицы инциденции, матрицы инциденции сформированной по приоритету элементов содержащихся в ветвях и матрицы главных сечений.
Автоматический расчёт позволяет сразу получить матрицу главных контуров схемы.
4. Решение контрольной задачи.
В качестве контрольной рассмотрим следующую схему: Количество узлов в схеме - 4
Количество ветвей в схеме - 5
Сформируем матрицу инциденции:
1 2 3 4 5
1 1 -1 1 0 0
А = 2 -1 0 0 -1 0 3 0 1 0 0 1 Решим полученную систему уравнений методом Жордана:
2 3 5 1 4 2 3 5 1 4
1 -1 1 0 1 0 1 1 -1 0 -1 0
2 0 0 0 -1 -1 2 0 0 0 -1 -1
3 1 0 1 0 0 3 0 1 1 1 0
2 3 5 1 4 2 3 4 5 1
1 1 0 1 0 0 1 1 0 0 1 0
3 0 1 1 1 0 3 0 1 0 1 1
2 0 0 0 -1 -1 2 0 0 -1 0 -1
2 3 4 5 1 1 1 0 0 1 0
3 0 1 0 1 1
2 0 0 1 0 1
2 3 4 5 1
5 -1 -1 0 1 0
В= 4 0 -1 -1 0 1
При помощи программы были получены следующие результаты:
1 2 3 4 5
1 1 -1 1 0 0
2 -1 0 0 -1 0 3 0 1 0 0 1 Матрица инциденции
2 3 5 1 4
1 -1 1 0 1 0
2 0 0 0 -1 -1
3 1 0 1 0 0
Матрица инциденции с учётом приоритета
2 3 4 5 1
1 1 0 0 1 0
3 0 1 0 1 1
2 0 0 1 0 1
Матрица сечений.
2 3 4 5 1
5 -1 -1 0 1 0
4 0 -1 -1 0 1
Матрица контуров. Как мы видим, программа выдала решение полностью сопадающее с решением, полученным вручную решением системы линейных алгеб-раических уравнений методом Жордана.
5. Листинг программы.
Программа написана на языке Borland Pascal 7.0.
Program Tema_12;
uses crt;
type matrix = array [0..20,0..20] of integer;
var i,j,p:integer;
mi,mp,ms,mk:matrix;
st:array [0..20] of integer;
elem:char;
n:string;
{------------------ Процедура вывода матриц на экран-----------------------}
Procedure Out(var mass:matrix; var x,y:integer; var name:string);
var k,l:integer;
begin
ClrScr;
writeln;
writeln(name);
writeln;
for k:=0 to x-1 do
begin
for l:=0 to y do
begin
TextColor(10);
if l>=i then TextColor(10);
if (k=0)or(l=0) then TextColor(9);
if (k=0)and(l=0) then write('/':3) else write(mass[k,l]:3);
TextColor(10)
end;
writeln;
end;
writeln;
end;
{---Процедура ввода информации о схеме и формирование матрицы инциденции---}
Procedure Input;
var k,l:integer;
begin
ClrScr;
for k:=0 to 20 do for l:=0 to 20 do mi[k,l]:=0;
TextColor(10);
writeln('Введите информацию о схеме:');
writeln;writeln;
write('Количество узлов схемы - '); readln(i);
write('Количество ветвей схемы - '); readln(j);
writeln;
write('Опорным является узел № '); writeln(i);
for k:=1 to j do
begin
writeln;
write(' Ветвь № ');write(k);
write(' выходит из узла № ');
read(p);mi[p,k]:=1;
write(' входит в узел № ');
readln(p);
mi[p,k]:=-1;
write(' Она содержит: U-независимый источник, R-резистор, C-конденсатор ');
readln(elem);
case elem of
'u','U':st[k]:=1;
'c','C':st[k]:=2;
'r','R':st[k]:=3;
end;
end;
for k:=0 to 20 do mi[0,k]:=k;
for k:=0 to 20 do mi[k,0]:=k;
end;
{----------------Процедура сортировки по приоритету----------------}
Procedure Prioritet;
var l,m,q:integer;
begin
q:=1;
{-------------------------1-й приоритет: U---------------------------------}
for l:=1 to j do
if st[l]=1 then
begin
for m:=0 to i-1 do mp[m,q]:=mi[m,l];
inc(q);
end;
{------------------------2-й приоритет: С---------------------------------}
for l:=1 to j do
if st[l]=2 then
begin
for m:=0 to i-1 do mp[m,q]:=mi[m,l];
inc(q);
end;
{-------------------------3-й приоритет: R--------------------------------}
for l:=1 to j do
if st[l]=3 then
begin
for m:=0 to i-1 do mp[m,q]:=mi[m,l];
inc(q);
end;
{-------------------------------------------------------------------------}
for l:=0 to 20 do mp[l,0]:=l;
end;
{--------------Процедура формирования матрицы сечений---------------------}
Procedure Sechenie;
var k,l,a,w,d:integer;
begin
for k:=0 to 20 do
for l:=0 to 20 do ms[k,l]:=mp[k,l];
for k:=1 to i-1 do
begin
{----------------выбор ведущего элемента по столбцу-----------------------}
if ms[k,k]=0 then
for a:=k to i-1 do
if ms[a,k]<>0 then
for w:=0 to j do
begin
st[w]:=ms[k,w];
ms[k,w]:=ms[a,w];
ms[a,w]:=st[w];
end;
{-----------------выбор ведущего элемента по строке----------------------}
if ms[k,k]=0 then
for a:=k to j do
if ms[k,a]<>0 then
for w:=0 to i-1 do
begin
st[w]:=ms[w,k];
ms[w,k]:=ms[w,a];
ms[w,a]:=st[w];
end;
{------------------получение 1 на диагональном элементе-------------------}
if ms[k,k]=-1 then for w:=1 to j do ms[k,w]:=-ms[k,w]; { делю на -1 }
{-----------получение 0 над и под диагональным элементом------------------}
for a:=1 to i-1 do
begin
d:=ms[a,k];
if a<>k then
for w:=1 to j do ms[a,w]:=ms[a,w]-d*ms[k,w];
end;
end;
end;
{-------------Процедура формирования матрицы контуров---------------------}
procedure Kontur;
var k,l,y : integer;
begin
for y:=0 to j do mk[0,y]:=ms[0,y];
for y:=i to j do mk[y-i+1,0]:=ms[0,y];
for k:= i to j do
for l:= 1 to i-1 do
mk[k-i+1,l]:=-ms[l,k];
for k:= 1 to i do mk[k,k+i-1]:=1;
end;
{-------------Процедура формирования меню----------------------}
Procedure Menu;
var ch:char;
begin
ClrScr;
TextColor(10);
writeln;
write(' Выберите одно из следующих действий ');
writeln;writeln;writeln;writeln;writeln;writeln;writeln;
writeln(' Ввод информации о схеме - 1 ');
writeln(' Автоматический расчёт - 2 ');
writeln(' Пошаговый расчёт - 3 ');
write(' Выход - 4 ');
gotoxy(15,24);
write('Курсовая работа студента ФИТУ IV-1а Малова Р.А.');
gotoxy(30,25);
write('Новочеркасск 2001');
gotoxy(80,25);
ch:=readkey;
case ch of
#49:begin
Input;
Prioritet;
Sechenie;
Kontur;
menu;
end;
#50:begin
p:=j-i+2;
n:='Матрица (главных) контуров';
Out(mk,p,j,n);
write('Нажмите ');
write('Enter');
write(' для возврата в меню');
readln;
menu;
end;
#51:begin
n:='Матрица инциденции';
Out(mi,i,j,n);
write('Нажмите ');
write('Enter');
write(' для выполнения следующего шага');
readln;
n:='Матрица инциденции с учётом приоритета';
Out(mp,i,j,n);
write('Нажмите ');
write('Enter');
write(' для выполнения следующего шага');
readln;
n:='Матрица (главных) сечений';
Out(ms,i,j,n);
write('Нажмите ');
write('Enter');
write(' для выполнения следующего шага');
readln;
p:=j-i+2;
n:='Матрица (главных) контуров';
Out(mk,p,j,n);
write('Нажмите ');
write('Enter');
write(' для возврата в меню');
readln;
menu;
end;
#52:
else menu;
end;
end;
{----------------------Основная программа---------------------------}
BEGIN
menu;
END.
6. Моделирование электронных устройств
Пример решения задачи:
Ввод информации о схеме: Количество узлов 8
Количество ветвей 12
Опорный узел №8
Ветвь №1 выходит из узла №2, входит в узел №1 и содержит R Ветвь №2 выходит из узла №3 , входит в узел №8 и содержит R
Ветвь №3 выходит из узла №4 , входит в узел №1 и содержит C
Ветвь №4 выходит из узла №1 , входит в узел №5 и содержит R
Ветвь №5 выходит из узла №6 , входит в узел №2 и содержит U
Ветвь №6 выходит из узла №8 , входит в узел №7 и содержит R
Ветвь №7 выходит из узла № 3, входит в узел №4 и содержит R
Ветвь №8 выходит из узла №5 , входит в узел №6 и содержит C
Ветвь №9 выходит из узла №7 , входит в узел №6 и содержит C
Ветвь №10 выходит из узла №2 , входит в узел №3 и содержит C
Ветвь №11 выходит из узла №6 , входит в узел №8 и содержит R
Ветвь №12 выходит из узла №7 , входит в узел №8 и содержит C
Полученное решение: D = Заключение.
Моделирование электронных схем на ЭВМ на сегодняшний день является одним из наиболее простых методов решения задач электроники. Как мы видим моделирование схем на ЭВМ позволяет значительно сократить затраты времени на произведение расчётов вручную, избежать ошибок при расчёте схем с большим количеством элементов ( которое может достигать миллионов и более ), и избавить инженера от рутинного труда, и значительно повысить точность расчётов. Расчёт схем при помощи ЭВМ открывает перед человеком безграничные возможности для проектирования различных устройств в области электроники, позволяя собрать, наладить, испытать в различных режимах, схему существующую только на бумаге или в памяти ЭВМ.
Списсок используемой литературы
1. Влах Н., Сингхал К. Машинные методы анализа и проектирования электронных схем.М.: Радио и связь, 1988 - 560 стр.
2. Демирчан К. С., Бутырин П. А. Моделирование и машинный расчет
электронных цепей. М.: Высшая школа, 1988 - 335 стр.
3. Савелов Н. С. МЕТОДЫ АНАЛИЗА И РАСЧЕТА ЭЛЕКТРОННЫХ СХЕМ (крс лекций).
1
Документ
Категория
Рефераты
Просмотров
12
Размер файла
612 Кб
Теги
mal, курсовой
1/--страниц
Пожаловаться на содержимое документа