《节点电压法matlab.doc》由会员分享,可在线阅读,更多相关《节点电压法matlab.doc(2页珍藏版)》请在三一办公上搜索。
1、%利用matlab编写的节点电压法解电路电压NUM=5; %the number of the nodesR=ones(NUM,NUM);%存储电阻的矩阵I=zeros(NUM,1);%存储电流源的矩阵for a=1:NUMfor b=1:NUMR(a,b)=realmax;%令矩阵中的值等于浮点数最大值endendpara=1;while para=1%选择输入type=menu(要输入的选项,电阻,电流源,结束);switch typecase 1node1=input(元件的第一个节点: );node2=input(元件的第二个节点: );parameter=input(输入电阻/欧姆:
2、 );R(node1,node2)=parameter;R(node2,node1)=parameter;case 2node1=input(元件的第一个节点: );node2=input(元件的第二个节点: );parameter=input(电流源/毫安: );I(node1,1)=parameter;I(node2,1)=-parameter;case 3para=0; %退出endendA=zeros(NUM,NUM); %电导矩阵B=zeros(NUM,1); %电流源矩阵tracer=1;for a=1:NUMfor b=1:NUMif a=bA(a,a)=A(a,a)+1/R(a,b); %节点的总跨导endif b=aA(a,b)=-1/R(a,b); %互导endendendfor a=1:NUM if I(a,1)=0 B(a,1)=I(a,1); end end A(:,1)=0;%第一个节点为0combine=A,B;answer=rref(combine);for a=1:NUM-1 %display the node voltagescreen=strcat(Voltage at node,num2str(a+1);disp(screen);disp(answer(a,NUM+1);end选择节点1为地。结果截图如下: