weixin_48521653
2022-04-22 19:55
采纳率: 100%
浏览 59

请问MATLAB中报错:未定义函数或变量 'k'。该怎么样解决?

问题遇到的现象和发生背景

计算三相短路的短路电流、各节点电压、各支路的电流

问题相关代码,请勿粘贴截图 NF=input('请输入短路点的数目:NF=');

n=input('请输入独立节点数:n=');
nl=input('请输入支路数:nl=');
B=input('请输入由线路参数形成的矩阵:B=');
V0=input('请输入由各节点的初电压标幺值形成的列矩阵:V0=');
D=input('请输入由短路号,短路点阻抗组成的矩阵:D=');
m=0;Z=zeros(n);V=zeros(n);I=zeros(nl);
for k1=1:nl
p=B(k1,1);q=B(k1,2);
if B(k1,6)==0
i=1./B(k1,5);
else i=B(k1,5);
end
if p==0
if q>m
Z(q,q)=B(k1,3);m=m+1;
else
for i=1:m
Z(i,m+1)=-Z(i,q);Z(m+1,i)=-Z(q,i);
end
Z(m+1,m+1)=Z(q,q)+B(k1,3);
for i=1:m
for j=1:m
Z(i,j)=Z(i,j)-Z(i,m+1)Z(m+1,j)./Z(m+1,m+1);
end
Z(i,m+1)=0;
end
for i=1:m+1
Z(m+1,i)=0;
end
end
else if q>m
for i=1:m
Z(i,q)=Z(i,p)k;
Z(q,i)=Z(p,i)k;
end
Z(q,q)=k^2
Z(p,p)+k^2
B(k1,3);
m=m+1;
else
for i=1:m
Z(i,m+1)=k
Z(i,p)-Z(i,q);
Z(m+1,i)=kZ(p,i)-Z(q,i);
end
Z(m+1,m+1)=k^2
Z(p,p)+Z(q,q)-2kZ(p,q)+k^2*B(k1,3);
for i=1:m
for j=1:m
Z(i,j)=Z(i,j)-Z(i,m+1)*Z(m+1,j)./Z(m+1,m+1);
end
Z(i,m+1)=0;
end
for i=1:m+1
Z(m+1,i)=0;
end
end
end
end
for i=1:NF
I(D(i,1),D(i,1))=V0(D(i,1),1)./(Z(D(i,1),D(i,1))+D(i,2));
ft=num2str(D(i,1));
tsl=('点短路时');
ts2=('电流的标幺值If=');
dn=strcat(ft,ts1,ts2);
disp(dn);
disp(I(D(i,1),D(i,1)));
for i=1:n
V(i,i)=V0(i,1)-I(D(i,1),D(i,1))*Z(i,D(i,1));
end
end

运行结果及报错内容

未定义函数或变量 'k'。

出错 sanxiang (line 34)
Z(i,q)=Z(i,p)*k;

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

相关推荐 更多相似问题