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.

case 'R' then //если 'R' то резистор<br />

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

case 'C' then //если 'С' то емкость<br />

kc=kc+1; nomc(kc)=i; //формирование списка емкостей<br />

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

case 'L' then //если 'L' то индуктивность<br />

kL=kL+1; nomL(kL)=i; //формирование списка индуктивностей<br />

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

else //если не распознана ветвь<br />

'Abort!!! There is no model '+sim(i)<br />

abort<br />

end;<br />

// формирование векторов источников ветвей<br />

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

end;<br />

/ / формирование топологических матриц<br />

yz1=max (ta); yz2=max (he); yzlov=max (yz1,yz2) //определение числа узлов схемы<br />

[C,A,g]= formc (ta',he');<br />

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

Zr=C'*Z*C;<br />

Yk=Zr(yzlov:arc,yzlov:arc)^(- 1);<br />

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

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

for n=1:NN+1, / /Расчет в цикле по времени<br />

er=C'*e; Jr=A'*J;<br />

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

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

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

iv=C(1:arc,yzlov:arc)*ik; Uv=A(1:arc,1:yzlov-1)*Uo;<br />

/ / начальные условия для следующего шага<br />

if kL 0 then<br />

for j=1:kL<br />

J(nomL(j))=- iv(nomL(j)); //начальные условия для индуктивностей<br />

end;<br />

end;<br />

if kc0 then<br />

for j=1:kc<br />

e(nomc(j))=- Uv(nomc(j)); //начальные условия для емкостей<br />

end;<br />

end;<br />

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

ivL(n)=iv(4); uvc(n)=Uv(2);<br />

end; / / о кончание цикла по времени<br />

plot2d (t, [uvc,ivL] ) // построение графиков<br />

xgrid(2)<br />

Ниже приводится функция для расчета топологических матриц. Входными<br />

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

и список конечных узлов ветвей he. В результате вычисляются ортогональные<br />

матрицы: контурная С и узловая А, кроме того формируется<br />

информация о топологическом графе схемы g, позволяющая отобразить<br />

граф схемы по введенному списку начальных и конечных узлов схемы.<br />

81

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

Saved successfully!

Ooh no, something went wrong!