两个飞轮储能仿真,飞轮的驱动电机采用永磁同步电机,通过svpwm和矢量控制对网侧和机侧分别进行仿真。 附赠飞轮储能系统建模文档。
飞轮储能的灵魂在于那个疯狂旋转的金属疙瘩,但要让这玩意儿听话可不容易。咱们今天扒开永磁同步电机的控制黑箱,看看网侧和机侧两个变流器怎么玩转能量流动。
网侧变流器的稳流秘籍:电网端最怕电流畸变,这里用的是电压定向矢量控制。坐标变换是基本功,但实际写代码时容易栽在Clarke变换的系数上。看看这个坐标变换的MATLAB函数片段:
matlab
function [Id,Iq] = Clarke_Park(Ia,Ib,Ic,theta)
% 克拉克变换
Ialpha = (2*Ia - Ib - Ic)/3;
Ibeta = (Ib - Ic)/sqrt(3);
% 帕克变换
Id = Ialpha*cos(theta) + Ibeta*sin(theta);
Iq = -Ialpha*sin(theta) + Ibeta*cos(theta);
end
注意这里没采用常见的2/3系数而是1/3,这是为了在反变换时避免功率计算错误。很多仿真模型在这里埋了坑,导致实际电流比理论值小一半。

机侧变流器的速度魔法:电机控制需要精确的转矩控制,SVPWM算法是核心。但教科书里的七段式算法在实际仿真中会遇到开关损耗问题。这里用Simulink的S-Function实现优化后的五段式调制:
c
void svpwm_calc(float Ualpha, float Ubeta) {
// 扇区判断
int sector = (Ubeta > 0) ? 1 : 2;
if(fabs(Ualpha) > fabs(Ubeta*0.57735)) sector += 2;
// 五段式时间计算
T0 = (Ts - T1 - T2)/2;
// 插入零矢量的位置影响谐波分布
if(sector%2) {
cmpr[0] = T0 + T1;
cmpr[1] = T0;
} else {
cmpr[0] = T0;
cmpr[1] = T0 + T1;
}
}
这段代码的关键在于零矢量插入策略,实测能降低15%的电流纹波。但要注意载波频率设置,超过10kHz时仿真步长必须小于1e-5秒,否则会出现诡异的波形畸变。
两个飞轮储能仿真,飞轮的驱动电机采用永磁同步电机,通过svpwm和矢量控制对网侧和机侧分别进行仿真。 附赠飞轮储能系统建模文档。
双闭环的相爱相杀:速度环和电流环的配合就像跳舞,外环带宽必须是内环的1/5~1/10。调试时遇到过经典翻车现场------速度环PI参数过大导致电机超调撞到机械限位。后来用自动整定工具发现,系统惯性时间常数被低估了40%。

仿真模型里藏着的彩蛋:在机侧控制模块里有个不起眼的饱和限制模块,把电流限幅值从默认的2pu改成1.5pu后,飞轮加速时的振动噪声明显降低。这涉及到永磁体退磁风险的隐性约束,很多论文压根不提这茬。
最后扔个建模小技巧:飞轮转动惯量J的参数别直接填理论值,实测发现轴承摩擦会让有效惯量减少8%-12%。在仿真里加个时变摩擦系数模块,结果和现场实测数据误差能控制在3%以内。
(附:建模文档已打包,内含机侧网侧联合仿真案例,注意解压路径别带中文)
