?????????????? ?????? ? ????????? ?????????? ??????? ?????
?????????????? ?????? ? ????????? ?????????? ??????? ?????
?????????????? ?????? ? ????????? ?????????? ??????? ?????
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