
电力系统状态估计这玩意儿就像给电网做体检,得知道各个节点的电压幅值和相角才能判
断系统健不健康。传统方法用 SCADA 数据搞加权最小二乘法(WLS),但 PMU 这神器出
现后,事情就变得有意思了——毫秒级同步测量直接让状态估计精度飙升。
咱先说说传统 WLS 怎么打基础。在 Matlab 里搭个牛顿迭代框架,雅可比矩阵得实时更新
:
```matlab
function [V, theta] = WLS_estimator(measurements)
max_iter = 10;
tol = 1e-5;
V = ones(n_bus,1);
theta = zeros(n_bus,1);
for iter = 1:max_iter
H = build_jacobian(V, theta); % 动态构建雅可比矩阵
G = H' * W * H; % 增益矩阵
delta = G \ (H' * W * residuals);
theta = theta + delta(1:n_bus-1);
V = V + delta(n_bus:end);
if norm(delta) < tol, break; end
end
end
```
这个老伙计虽然稳定,但遇到坏数据容易翻车。这时候 PMU 就该上场了——电压电流的
实部虚部直接测,比传统量测直白多了。处理 PMU 数据时得注意坐标系转换:
```matlab
function [V_pmu, I_pmu] = process_pmu(raw_data)
V_mag = raw_data(:,1);
V_ang = raw_data(:,2);
V_pmu = V_mag .* exp(1i*V_ang); % 转成复数形式
I_real = raw_data(:,3);
I_imag = raw_data(:,4);
I_pmu = I_real + 1i*I_imag; % 电流直接是直角坐标
end
```
关键在混合使用两类数据时得统一坐标系。传统 WLS 结果用极坐标,PMU 用直角坐标,
这时候得玩个坐标系转换的魔术:
```matlab
function [V_final, theta_final] = hybrid_estimator(WLS_result, PMU_data)