13.08.2013 Views

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.3.6. Алгоритм формирования и расчета уравнений резистивной<br />

схемы.<br />

Далее приводится алгоритм, позволяющий автоматически сформировать<br />

необходимые векторы и матрицы по методу контурных токов и<br />

рассчитать токи, напряжения и мощность ветвей резистивной схемы.<br />

Исходными данными является список с информацией о каждой ветви.<br />

Каждая ветвь должна быть представлена в виде обобщенной ветви с последовательно<br />

включенным источником напряжения и параллельно<br />

включенным источником тока. Список оформляется оператором list по<br />

правилам пакета SciLab. В состав списка входит имя ветви, номер начального<br />

и номер конечного узла ветви, номинал ветви, значение источника<br />

напряжения ветви, значение источника тока ветви. Имя в данном<br />

алгоритме не обрабатывается и вводится для удобства ввода. Фактически<br />

ветви идентифицируются номерами, соответствующими порядку их<br />

ввода. Узлы должны быть пронумерованы последовательно, начиная с<br />

единицы. В алгоритме наибольший номер узла принимается за общий<br />

узел.<br />

Алгоритм переформировывает исходные данные, представленные<br />

списком соединений в массивы векторов источников тока и напряжения<br />

ветвей и матрицы сопротивлений ветвей. Далее формируются матрицы<br />

соединений и затем матрицы, необходимые для расчета токов и напряжений<br />

ветвей (в соответствии с формулами (2.3.5)-(2.3.8) ).<br />

В алгоритме применены следующие встроенные функции SciLab:<br />

size — определение размера списка или массива, zeros — обнуление<br />

массива, max — определение максимального числа из списка чисел,<br />

make_graph — создание графа, node_number — определение числа узлов<br />

графа , show _graph — отображение графа на экране, graph_2_mat — формирование<br />

упакованной матрицы инциденций графа, full — преобразование<br />

упакованной матрицы в полную матрицу, min _weight _tree — формирование<br />

дерева графа, setdiff — вычитание множеств.<br />

clear ( ); //очистка данных.<br />

// Ввод списка соединений:<br />

// имя нач. кон. парам. e J<br />

newshema= list ('r1', [2 3], 2, 0, 0,... //многоточие означает перенос строки<br />

'r2', [3 2], 3, 0, 0.33333,... //в столбце парам. задаются номиналы<br />

'r3', [1 2], 4, 0, 0,... // ветвей<br />

'r4', [3 4], 5, 0, 0,...<br />

'r5', [4 1], 6, 0, 0,...<br />

'r6', [4 1], 7, 0, 0);<br />

//определение числа ветвей - arc, объявление массива сопротивлений - Z<br />

arc=size(newshema)/5; Z=zeros(arc,arc);<br />

//Извлечение информации из списка соединений и формирование новой информации:<br />

//ta-массив начальных узлов, he-массив конечных узлов, Z-матрица сопротивлений,<br />

// e-вектор источников напряжений ветвей, J-вектор источников тока ветвей<br />

k=2;<br />

for i=1:arc<br />

ta(i)=newshema(k)(1); he(i)=newshema(k)(2);<br />

76

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!