电压型pwm直接功率控制仿真

无功功率一直很高,波形图跳动很大,
交流侧电流滞后电压,直流侧电压到不了参考值,原因出在哪里

我不太确定你遇到的问题的具体原因。但是根据你提供的参考资料,以下是一些可能有帮助的建议:

  1. 检查控制算法是否正确,包括是否正确调节电压电流和功率因数控制回路。你可以通过注释掉控制回路的部分以及手动控制部分来测试系统的响应。
  2. 确保仿真中使用的电路元件参数和实际使用的参数相匹配,包括电感、电容、电阻等。这一点尤其需要注意,因为在现实中这些元件的参数可能会变化,导致在仿真中得出的模型不准确。
  3. 如果你使用了SVPWM调制,尝试使用SPWM调制来检查系统的响应。因为SVPWM调制需要更复杂的电路和控制算法,容易出现问题。
  4. 考虑优化你的滤波器设计。在直流侧添加电容或者在交流侧添加电感可能会有所帮助。
  5. 最后,你可以在仿真中调整控制算法的参数,如增益和时间常数等,来优化系统性能。

以下是一些可能有帮助的示例代码,包括SVPWM调制和控制回路的实现:

% SVPWM调制

Ts = 1/fs; % 采样时间
Tsw = 1/fsw; % 开关周期
Vdc = 220; % 直流电压

% 计算电压矢量和相角
theta = atan(Vy/Vx);
Vm = sqrt(Vx^2+Vy^2);
m = Vm/Vdc;

% 计算占空比
Ta = Tsw*m*sin(theta+(pi/6));
Tb = Tsw*m*sin(pi/3-theta);
Tc = Tsw - Ta - Tb;
D1 = Ta/Tsw;
D2 = Tb/Tsw;
D3 = Tc/Tsw;

% 生成PWM信号
if (Va>Vdc/2)
    Sa = 1;
else
    Sa = 0;
end
if (Vb>Vdc/2)
    Sb = 1;
else
    Sb = 0;
end
if (Vc>Vdc/2)
    Sc = 1;
else
    Sc = 0;
end

% 控制回路
i_ref = 10; % 电流参考值
Kp = 0.1; % 比例增益
Ki = 0.01; % 积分增益
i_err = i_ref - i; % 电流误差
i_int = i_int + i_err*Ts; % 积分项
u = u + Kp*i_err + Ki*i_int; % 计算控制回路输出