Octave运行电力潮流计算代码出现向量维度不匹配错误求助
Octave维度不匹配报错解决
报错原始信息
error: operator *: nonconformant arguments (op1 is 1x101, op2 is 1x956)
error: called from
whateverson at line 11 column 5
具体问题根源
- 第一处错误:V2初始化存在笔误
原代码V2 = 0.95*23:0.001*230:1.05*230;%kV中起始值错误写为0.95*23,应为0.95*230。错误的起始值导致V2生成的向量长度为956,和长度为101的V1维度完全不匹配,是触发报错的直接原因。 - 第二处错误:逐元素运算符号缺失
潮流计算公式中所有V1 * V2的写法使用的是矩阵乘法规则,两个同维度行向量无法执行矩阵乘法,需要修改为逐元素乘法V1 .* V2。
修正后可运行代码
% Power flow clear all; clc; V1 = 0.95*238:0.001*238:1.05*238; %kV V2 = 0.95*230:0.001*230:1.05*230; %kV 修正起始值笔误 D_angle = 15 * (pi / 180); % Radians R = 230 * 0.099; %Ohm X = 230 * 0.518; %Ohm % 所有V1*V2改为V1.*V2,使用逐元素乘法 P12 = (1 / (R^2 + X^2)) * (R .* V1.^2 - R .* V1 .* V2 .* cos (D_angle) + X .* V1 .* V2 .* sin(D_angle)); Q12 = (1 / (R^2 + X^2)) * (X .* V1.^2 - X .* V1 .* V2 .* cos (D_angle) - R .* V1 .* V2 .* sin(D_angle)); P21 = (1 / (R^2 + X^2)) * (R .* V2.^2 - R .* V1 .* V2 .* cos (D_angle) - X .* V1 .* V2 .* sin(D_angle)); Q21 = (1 / (R^2 + X^2)) * (X .* V2.^2 - X .* V1 .* V2 .* cos (D_angle) + R .* V1 .* V2 .* sin(D_angle)); Ploss = P12 + P21; Qloss = Q12 + Q21; clf (figure (1)); figure(1); plot (V1,P12, 'b'); xlabel('V1(kV)'); ylabel('P12 (MW)'); box on; grid on;
内容的提问来源于stack exchange,提问作者João Homero Camilo
相关产品推荐
相关产品推荐

