谐波平衡 matlab,增量谐波平衡法程序
时间: 2023-07-24 14:42:34 浏览: 215
以下是基于增量谐波平衡法的Matlab程序,可以用于谐波平衡:
```matlab
clear all; close all; clc;
% 输入谐波电流和初始电网电压
Ih=[0.4+0.3i 0.2-0.1i 0.3+0.2i]';
V0=[1 0.95+0.31i 0.91+0.53i]';
% 进行增量谐波平衡
maxIter=50;
tol=1e-6;
iter=0;
while iter<maxIter
iter=iter+1;
Y=Ybus(V0); % 计算当前电网的导纳矩阵
I=Y*V0+Ih; % 计算当前的节点电流
S=V0.*conj(I); % 计算当前的节点功率
% 计算修正量
dV=-inv(Y)*conj(S./V0);
V0=V0+dV;
% 判断是否收敛
if max(abs(dV))<tol
break;
end
end
% 输出平衡后的电压
disp('平衡后的电压:');
disp(V0);
```
其中,`Ybus`函数用于计算电网的导纳矩阵,具体实现如下:
```matlab
function Y=Ybus(V)
% 输入电网电压向量,输出电网导纳矩阵
n=length(V); % 节点数
Y=zeros(n,n); % 初始化导纳矩阵
for i=1:n
for j=1:n
if i==j
% 对角线元素
for k=1:n
Y(i,j)=Y(i,j)+1/(V(i)-V(k));
end
else
% 非对角线元素
Y(i,j)=-1/(V(i)-V(j));
end
end
end
```
可以将上述两个程序保存为两个.m文件,分别命名为`harmonic_balance.m`和`Ybus.m`,然后在Matlab中运行`harmonic_balance`即可进行谐波平衡计算。需要注意的是,输入的谐波电流和电网电压向量的维度应当相同。
阅读全文