节点电压法matlab
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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为地。
结果截图如下: