找了个潮流计算的程序,按照程序里的例子输入却说串联的矩阵的维度不一致。错误在最后,可以拉到最后看。

能不能帮忙看看是什么地方出错,谢谢啦!

>> %简单潮流计算的牛顿拉夫逊程序,相关的原始数据数据数据输入格式如下:

%B1是支路参数矩阵,第一列和第二列是节点编号。节点编号由小到大编写

%对于含有变压器的支路,第一列为低压侧节点编号,第二列为高压侧节点

%编号,将变压器的串联阻抗置于低压侧处理。

%第三列为支路的串列阻抗参数。

%第四列为支路的对地导纳参数。

%第五列为含变压器支路的变压器的变比

%第六列为变压器是否含有变压器的参数,其中“        1”为含有变压器,

%“0”为不含有变压器。

%B2为节点参数矩阵,其中第一列为节点注入发电功率参数;第二列为节点负荷 功率参数;第三列为节点电压参数;第六列为节点类型参数,其中“        1”为平衡 节点,“ 2”为 PQ节点,“ 3”为 PV节点参数。

%X为节点号和对地参数矩阵。其中第一列为节点编号,第二列为节点对地

%参数。

n=input('        请输入节点数 :n='); n1=input('                请输入支路数 :n1=');

isb=input('                        请输入平衡节点号 :isb='); pr=input('                请输入误差精度 :pr='); B1=input('                请输入支路参数 :B1='); B2=input('                请输入节点参数 :B2='); X=input('        节点号和对地参数        :X=');

Y=zeros(n);

Times=1;        %        置迭代次数为初始值

%创建节点导纳矩阵 for i=1:n1

if B1(i,6)==0        %        不含变压器的支路

p=B1(i,1);

q=B1(i,2); Y(p,q)=Y(p,q)-1/B1(i,3); Y(q,p)=Y(p,q);

Y(p,p)=Y(p,p)+1/B1(i,3)+0.5*B1(i,4);

Y(q,q)=Y(q,q)+1/B1(i,3)+0.5*B1(i,4);

else        %        含有变压器的支路

p=B1(i,1);

q=B1(i,2);

Y(p,q)=Y(p,q)-1/(B1(i,3)*B1(i,5)); Y(q,p)=Y(p,q); Y(p,p)=Y(p,p)+1/B1(i,3); Y(q,q)=Y(q,q)+1/(B1(i,5)^2*B1(i,3));

end

OrgS=zeros(2*n-2,1);

DetaS=zeros(2*n-2,1);        %        将 OrgS、DetaS 初始化

%创建 OrgS,用于存储初始功率参数 h=0;

j=0;

for i=1:n        %        对 PQ节点的处理 if i~=isb&B2(i,6)==2

h=h+1; for j=1:n

OrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*r

eal(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))* imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));

OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real( B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag (B2(j,3))+imag(Y(i,j))*real(B2(j,3)));

end end

end

for i=1:n        %        对 PV节点的处理,注意这时不可再将        h 初始化为 0 if i~=isb&B2(i,6)==3

h=h+1; for j=1:n

OrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*r eal(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))* imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));

OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real( B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag (B2(j,3))+imag(Y(i,j))*real(B2(j,3)));

end end

end OrgS

%创建 PVU 用于存储 PV节点的初始电压 PVU=zeros(n-h-1,1);

t=0;

for i=1:n

if B2(i,6)==3

t=t+1; PVU(t,1)=B2(i,3);

end

%创建 DetaS,用于存储有功功率、无功功率和电压幅值的不平衡量

h=0;

for i=1:n        %        对 PQ节点的处理 if i~=isb&B2(i,6)==2

h=h+1;

DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);

DetaS(2*h,1)=imag(B2(i,2))-OrgS(2*h,1); end

end t=0;

for i=1:n        %        对 PV节点的处理,注意这时不可再将        h 初始化为 0

if i~=isb&B2(i,6)==3 h=h+1;

t=t+1;

DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);

DetaS(2*h,1)=real(PVU(t,1))^2+imag(PVU(t,1))^2-real(B2(i,3))^ 2-imag(B2(i,3))^2;

end end DetaS

%创建 I ,用于存储节点电流参数

i=zeros(n-1,1); h=0;

for i=1:n

if i~=isb

h=h+1;

I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,3)); end

end

I

%创建 Jacbi( 雅可比矩阵 ) Jacbi=zeros(2*n-2);

h=0; k=0;

for i=1:n        %        对 PQ节点的处理

if B2(i,6)==2

h=h+1; for j=1:n

if j~=isb

k=k+1;

if i==j        %        对角元素的处理

Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+re

al(Y(i,j))*imag(B2(i,3))+imag(I(h,1));

Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(

Y(i,j))*imag(B2(i,3))+real(I(h,1));

Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1)); Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));

else        %        非对角元素的处理

Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+re al(Y(i,j))*imag(B2(i,3));

Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(

Y(i,j))*imag(B2(i,3));

Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k); Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);

end

if k==(n-1) %        将用于内循环的指针置于初始值,以确保雅可 比矩阵换行

k=0;

end end

end

end end k=0;

for i=1:n        %        对 PV节点的处理

if B2(i,6)==3

h=h+1; for j=1:n

if j~=isb

k=k+1;

if i==j        %        对角元素的处理

Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+re

al(Y(i,j))*imag(B2(i,3))+imag(I(h,1));

Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(

Y(i,j))*imag(B2(i,3))+real(I(h,1));

Jacbi(2*h,2*k-1)=2*imag(B2(i,3)); Jacbi(2*h,2*k)=2*real(B2(i,3));

else        %        非对角元素的处理

Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+re al(Y(i,j))*imag(B2(i,3));

Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(

Y(i,j))*imag(B2(i,3));

Jacbi(2*h,2*k-1)=0; Jacbi(2*h,2*k)=0;

end

if k==(n-1)        %        将用于内循环的指针置于初始值,以确保

雅可比矩阵换行

k=0;

end end

end end

end Jacbi

%求解修正方程,获取节点电压的不平衡量 DetaU=zeros(2*n-2,1); DetaU=inv(Jacbi)*DetaS;

DetaU

%修正节点电压 j=0;

for i=1:n        %        对 PQ节点处理

if B2(i,6)==2

j=j+1;

B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1); end

end

for i=1:n        %        对 PV节点的处理 if B2(i,6)==3

j=j+1;

B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1); end

end B2

%开始循环

*********************************************************************

*

while abs(max(DetaU))>pr

OrgS=zeros(2*n-2,1);        %!!!        初始功率参数在迭代过程中是不累加的,        所

以在这里必须将其初始化为零矩阵

h=0; j=0;

for i=1:n

if i~=isb&B2(i,6)==2 h=h+1;

for j=1:n

OrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*r

eal(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))* imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));

OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real( B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag (B2(j,3))+imag(Y(i,j))*real(B2(j,3)));

end end

end

for i=1:n

if i~=isb&B2(i,6)==3 h=h+1;

for j=1:n

OrgS(2*h-1,1)=OrgS(2*h-1,1)+real(B2(i,3))*(real(Y(i,j))*r eal(B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))+imag(B2(i,3))*(real(Y(i,j))* imag(B2(j,3))+imag(Y(i,j))*real(B2(j,3)));

OrgS(2*h,1)=OrgS(2*h,1)+imag(B2(i,3))*(real(Y(i,j))*real( B2(j,3))-imag(Y(i,j))*imag(B2(j,3)))-real(B2(i,3))*(real(Y(i,j))*imag (B2(j,3))+imag(Y(i,j))*real(B2(j,3)));

end end

end

OrgS

%创建 DetaS h=0;

for i=1:n

if i~=isb&B2(i,6)==2 h=h+1;

DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);

DetaS(2*h,1)=imag(B2(i,2))-OrgS(2*h,1); end

end

t=0;

for i=1:n

if i~=isb&B2(i,6)==3 h=h+1;

t=t+1;

DetaS(2*h-1,1)=real(B2(i,2))-OrgS(2*h-1,1);

DetaS(2*h,1)=real(PVU(t,1))^2+imag(PVU(t,1))^2-real(B2(i,3))^ 2-imag(B2(i,3))^2;

end end DetaS

%创建 I

i=zeros(n-1,1);

h=0;

for i=1:n

if i~=isb

h=h+1;

I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,3)); end

end I

%创建 Jacbi

Jacbi=zeros(2*n-2); h=0;

k=0;

for i=1:n

if B2(i,6)==2

h=h+1; for j=1:n

if j~=isb

k=k+1; if i==j

Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+re

al(Y(i,j))*imag(B2(i,3))+imag(I(h,1));

Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(

Y(i,j))*imag(B2(i,3))+real(I(h,1));

Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1)); Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));

else

Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+re al(Y(i,j))*imag(B2(i,3));

Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(

Y(i,j))*imag(B2(i,3));

Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k); Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);

end

if k==(n-1) k=0;

end end

end

end end k=0;

for i=1:n

if B2(i,6)==3

h=h+1;

for j=1:n

if j~=isb

k=k+1; if i==j

Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+re

al(Y(i,j))*imag(B2(i,3))+imag(I(h,1));

Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(

Y(i,j))*imag(B2(i,3))+real(I(h,1));

Jacbi(2*h,2*k-1)=2*imag(B2(i,3)); Jacbi(2*h,2*k)=2*real(B2(i,3));

else

Jacbi(2*h-1,2*k-1)=-imag(Y(i,j))*real(B2(i,3))+re al(Y(i,j))*imag(B2(i,3));

Jacbi(2*h-1,2*k)=real(Y(i,j))*real(B2(i,3))+imag(

Y(i,j))*imag(B2(i,3));

Jacbi(2*h,2*k-1)=0; Jacbi(2*h,2*k)=0;

end

if k==(n-1) k=0;

end

end end

end end Jacbi

DetaU=zeros(2*n-2,1); DetaU=inv(Jacbi)*DetaS; DetaU

%修正节点电压

j=0;

for i=1:n

if B2(i,6)==2

j=j+1;

B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1); end

end

for i=1:n

if B2(i,6)==3

j=j+1;

B2(i,3)=B2(i,3)+DetaU(2*j,1)+DetaU(2*j-1,1)*sqrt(-1); end

end B2

Times=Times+1;        %        迭代次数加        1 end

Times

一个原始数据的例子 节点数 5

支路数 5

平衡节点编号        5

精度 pr 0.000001

B1(支路参数矩阵 )

[1 2 0.04+0.25i 0.5i 1 0;1 3 0.1+0.35i 0 1 0;2 3 0.08+0.30i 0.5i 1 0;4

2 0.015i 0 1.05 1;5 3 0.03i 0 1.05 1]

B2(节点参数矩阵 )

[0 -1.6-0.8i 1 0 0 2;0 -2-1i 1 0 0 2;0 -3.7-1.3i 1 0 0 2;0 5+0i 1.05 1.05

0 3;0 0 1.05 1.05 0 1]

X( 节点号和对地参数 ) [1 0;2 0;3 0;4 0;5 0]

请输入节点数 :n=5

请输入支路数 :n1=5

请输入平衡节点号 :isb=5

请输入误差精度 :pr=0.000001

请输入支路参数 :B1=[1 2 0.04+0.25i 0.5i 1 0;1 3 0.1+0.35i 0 1 0;2 3 0.08+0.30i 0.5i 1 0;4

2 0.015i 0 1.05 1;5 3 0.03i 0 1.05 1]

串联的矩阵的维度不一致。

matlab显示串联矩阵的维度不一致,串联的矩阵的维度不一致。相关推荐

  1. matlab串联的矩阵的维度不一致,MATLAB错误记录:错误使用 cat 串联的矩阵的维度不一致...

    MATLAB错误记录:错误使用 cat 串联的矩阵的维度不一致 今天想用matlab读取一个数据文件.用importdata读入后照例储存成了cell类型.但当我想用cell2mat将其转化为矩阵时却 ...

  2. matlab cell2mat 函数将元胞转换成数值矩阵出错

    matlab cell2mat 函数将元胞转换成数值矩阵出错 matlab 中经常涉及到各种数据类型的转换.在将元胞型转换成数值矩阵的过程中我遇到了一个非常有趣的问题,代码如下: % 元胞型转换为数值 ...

  3. 【MATLAB】稀疏矩阵(含有大量0元素的矩阵)

    1.稀疏矩阵的储存方式 对于稀疏矩阵,MATLAB仅储存矩阵所有非零元素的值及其位置(行号和列号). 2.稀疏矩阵的生成 1)利用sparse函数从满矩阵转换得到稀疏矩阵 函数名称 表示意义 spar ...

  4. Matlab 矩阵论 矩阵分解的计算实现(六)矩阵的正交三角分解

    Matlab 矩阵论 矩阵分解的计算实现(六)矩阵的正交三角分解 本来matlab中自带了做正交三角分解的函数,[U,R]=qr(A),U R为分解结果.但是这样使用只会有结果没有中间过程,所以写了一 ...

  5. 串联谐振电路原理?串联谐振电路怎么工作?案例公式,几分钟搞定

    在之前已经有讲过各种振荡电路,Colpitts振荡电路.皮尔斯振荡电路.哈特利振荡电路.RC振荡电路.LC振荡电路. 还搞不懂LC振荡电路原理?看这一文就够了,图文结合,立马带你搞定 还不懂RC振荡器 ...

  6. matlab如何将三维转为二维_matlab 三维矩阵转二维矩阵(转)

    matlab中三维数组顺序是:行.列.页.二维数组只有行.列.如果两只之间赋值,有一个维数缩减问题需要注意. 例如: A3是三维数组,A3(:,:,1)=[1,2,3;4,5,6]; A3(:,:,2 ...

  7. matlab 图像基本矩阵,MATLAB基本的使用方法归纳(图像,矩阵及函数)

    读取图像:用imread函数读取图像文件,文件格式可以是TIFF.JPEG.GIF.BMP.PNG等.比如 >> f = imread('chestxray.jpg'); 读进来的图像数据 ...

  8. matlab显示的图片,手动保存时四周有白边

    matlab显示的图片,或者用matlab画出来的图片,手动保存时四周有白边. girl = imread('girl.jpg'); imshow(girl); 用File-Save或者Save As ...

  9. matlab 十六进制数组,【MATLAB】MATLAB中读取二进制数据文件并加入到矩阵中

    MATLAB中读取二进制数据文件并加入到矩阵中的应用如下: 如果对c语言十分熟悉的话,应该对fopen,fclose,ftell,fseek,fread,fwrite,feof 这些函数非常熟悉了,在 ...

  10. Java黑皮书课后题第8章:**8.6(代数:两个矩阵相乘)编写两个矩阵相乘的方法。编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的乘积

    **8.6(代数:两个矩阵相乘)编写两个矩阵相乘的方法.编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的乘积 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 **8.6( ...

最新文章

  1. c语言编程加密和解密,请问有学长做过这个程序设计的吗?C语言写加密解密问题,跪求代码!...
  2. 如何用python画数据图-python怎么对动态数据在同一张图上画出来
  3. 开灯问题 简单模拟法
  4. 东北能源大数据中心正式成立,一期将建设2.4万平方米数据中心
  5. [机器学习-概念篇]彻底搞懂信息量,熵、相对熵、交叉熵
  6. shell命令一览表
  7. 90度旋转 flip opencv_基于Hu距的图像旋转矫正之OpenCV实现
  8. Eclipse Qt开发环境的建立【转】
  9. NYOJ39-水仙花数
  10. CBDict:一个专门为Linux环境下的学术党设计的文献取词翻译器
  11. 博弈论分析题_博弈论习题及参考答案
  12. wallhaven怎么下原图_Wallhaven Top高清壁纸抓取工具
  13. 正项级数敛散性的判别
  14. 如果你热爱编码,就应该少写代码
  15. Mac 配置多个ssh-key
  16. 解决VMbox中软连接创建错误的问题
  17. EDA程序设计--数字日历电路
  18. 项目一之绘制小王八爬行
  19. 语篇分析之连接词分析
  20. netstat输出内容详解

热门文章

  1. 服务器地图自动刷新,怀旧服新版黑莲花全地图刷新点一览 插件数据已更新
  2. 电脑安全证书错误怎么处理比较好
  3. Scala中名词的解释
  4. HTML 显示梯形图片
  5. postgresql之integerset
  6. 转自登峰之群:晓军教材(一)
  7. [Power--IC]电源管理IC-STNS01
  8. 解决Proteus中的[SPICE] * stepping time与[SPICE] TRAN Timestep too small错误
  9. 盘点 6 个开源的音乐播放器!
  10. c语言tc游戏代码大全,wintcC语言小游戏画图代码.doc