节点电压法matlab

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

%利用matlab编写的节点电压法解电路电压NUM=5; %the number of the nodes

R=ones(NUM,NUM);%存储电阻的矩阵

I=zeros(NUM,1);%存储电流源的矩阵

for a=1:NUM

for b=1:NUM

R(a,b)=realmax;%令矩阵中的值等于浮点数最大值end

end

para=1;

while para==1%选择输入

type=menu('要输入的选项','电阻','电流源','结束'); switch type

case 1

node1=input('元件的第一个节点: ');

node2=input('元件的第二个节点: ');

parameter=input('输入电阻/欧姆: ');

R(node1,node2)=parameter;

R(node2,node1)=parameter;

case 2

node1=input('元件的第一个节点: ');

node2=input('元件的第二个节点: ');

parameter=input('电流源/毫安: ');

I(node1,1)=parameter;

I(node2,1)=-parameter;

case 3

para=0; %退出

end

end

A=zeros(NUM,NUM); %电导矩阵

B=zeros(NUM,1); %电流源矩阵

tracer=1;

for a=1:NUM

for b=1:NUM

if a~=b

A(a,a)=A(a,a)+1/R(a,b); %节点的总跨导

end

if b~=a

A(a,b)=-1/R(a,b); %互导

end

end

end

for a=1:NUM

if I(a,1)~=0

B(a,1)=I(a,1);

end

end

A(:,1)=0;%第一个节点为0

combine=[A,B];

answer=rref(combine);

for a=1:NUM-1 %display the node voltage screen=strcat('Voltage at node',num2str(a+1)); disp(screen);

disp(answer(a,NUM+1));

end

选择节点1为地。

结果截图如下:

相关文档
最新文档