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