matlab 在仿真感性电路时,变压器接纯阻型负载,表内读数无功一直为负值
不知道你这个问题是否已经解决, 如果还没有解决的话:f=[-1;-2;-1]; %样例中求最大值,取反转化为最小值
A=[2,-3,2;1/3,1,5]; %与标准不等式一致,不用转化符号
b=[15;20];
%不存在等式,用[]代替
%zeros(3,1)就是(0;0;0)
%ub不存在,可以不用写,也可以用[]代替
%[x,y] = linprog(f,A,b,[],[],zeros(3,1),[]);
[x,y] = linprog(f,A,b,[],[],zeros(3,1));
结果展示
Optimal solution found.
x =
25.0000
11.6667
0
y =
-48.3333
x1 = 25, x2 = 11.667. x3 = 0
所以最大值为-y = 48.3333,因为上面转成最小值加上符号 => -z = -x1 - 2* x2 - x3 ;
结果y = -z; ==> z = -y;
最大值就为48.3333
例2:
max z = 5 * x1 + 6 * x2;
x1 - 2 * x2 >= 2;
-2 * x1 + 3 * x2 >= 2;
对于变压器接纯阻型负载时,表内读数无功一直为负值的问题,可能的原因是感性电路中存在着电感元件,其无功功率是和电感元件的电流相位关联,而纯阻性负载的电流相位为零。这样,在感性电路中,电感元件和纯阻行负载构成的虚拟电流将延迟电压变化,使得电流相位滞后于电压相位。因此,感性电路中的电流相位会比电压相位滞后$\theta_x$度,其无功功率为$P_x = U^2 I \sin(\theta_x)$,当观测时间足够长时,无功功率积分后将会有一个负值。
解决方法可以采取以下两步策略:
1.调整仿真参数,改变纯阻型负载的电流相位,使得其与电感元件的电流相位相同或相差不大。这样可以避免电流滞后问题,使得观察到的无功功率为正值。具体实现可以采取在感性电路中加入与纯阻行负载串联的电感元件,通过调节电感元件的参数,以达到电流相位相同或相差不大的目的。
2.在计算无功功率时,在原始计算结果基础上加上一个修正系数,以弥补电流相位滞后带来的误差。具体实现过程可以使用Matlab自带的计算函数,例如sum、trapz等,通过对感性电路中不同时间分段进行计算,并将各分段结果之和作为最终结果,从而避免滞后误差的影响。
需要注意的是,在分析感性电路中电流相位问题时,可以采取利用相量的方法进行计算,有效降低复杂度,便于快速求解。具体实现过程需要结合Matlab的电路仿真工具进行计算。