13.08.2013 Views

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

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

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

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Z(i,i)=newshema(k+1); e(i)=newshema(k+2);<br />

J(i)=newshema(k+3); k=k+5;<br />

end;<br />

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

//наибольший номер узла принимается за общий узел<br />

yzlov1=max (ta);yzlov2=max (he);yzlov=max (yzlov1,yzlov2);<br />

//создание направленного графа g по введенной информации<br />

g = make_graph ('cep1', 1, yzlov, ta', he');<br />

//создание ненаправленного графа g0 по введенной информации<br />

g0 = make_graph ('cep1', 0, yzlov, ta', he');<br />

g('node_x')=[200 100 150 250 ]; //ввод х-координат узлов<br />

g('node_y')=[200 200 100 100 ]; //ввод у-координат узлов<br />

// show _ graph (g);<br />

yzlov = node_number (g); //определение числа узлов введенного графа<br />

//формирование матрицы инциденций "узел-ветвь" для введенного графа g<br />

A=full (graph_2_mat (g,'node-arc'));<br />

//формирование дерева графа<br />

derevo= min _ weight _ tree(yzlov,g0);<br />

//формирование расширенной узловой матрицы<br />

at=zeros(arc,arc); //объявление матрицы At;<br />

at(1:yzlov-1, 1:arc)=A(1:yzlov-1, 1:arc); //заполнение узловой части At;<br />

hord=setdiff (1:arc,derevo); //формирование массива хорд;<br />

size_hord=size(hord); //определения числа хорд;<br />

for ii=1:size_hord(2) //заполнение контурной<br />

at(yzlov-1+ii, hord(ii))=1; //части расширенной узловой<br />

end; //матрицы;<br />

c=at^(- 1); //вычисление контурной матрицы;<br />

er=c'*e; Jr=at*J; //вычисление векторов источников схемы;<br />

Zr=c'*Z*c; //вычисление матрицы сопротивлений схемы;<br />

Yk=Zr(yzlov:arc, yzlov:arc)^(- 1); //вычисление матрицы контурных проводимостей<br />

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

zok=Zr(1:yzlov-1,yzlov:arc); zko=Zr(yzlov:arc,1:yzlov-1);<br />

//вычисление узловых матриц сопротивлений<br />

zo =Zr(1:yzlov-1,1:yzlov-1); zor=zo-zok*Yk*zko;<br />

//вычисление контурных и узловых источников напряжений<br />

ek=er(yzlov:arc); eo=er(1:yzlov-1);<br />

//вычисление контурных и узловых источников тока<br />

Jk=Jr(yzlov:arc); Jo=Jr(1:yzlov-1);<br />

//вычисление контурных токов и узловых потенциалов<br />

ik=Yk*ek−Yk*zko*Jo-Jk; Uo=zor*Jo+zok*Yk*ek−eo;<br />

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

iv= c(1:arc,yzlov:arc)* ik; Uv= at(1:yzlov−1,1:arc)'* Uo;<br />

//вычисление суммарной мощности источников схемы<br />

P= J'* Uv // P= e'* iv<br />

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

достаточно заменить в конце соответствующего выражения точку<br />

с запятой на запятую.<br />

В приведенном алгоритме можно выделить следующие части:<br />

(1) Ввод данных;<br />

(2) Перевод введенных данных во внутреннюю форму;<br />

(3) Вычисления;<br />

77

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

Saved successfully!

Ooh no, something went wrong!