飞轮储能这东西,圈内有个很形象的比喻——它就是一个“机械电池”。你给它通电,它把电能变成旋转动能存起来;你需要用电时,它再把动能变回电能送出去。和电化学电池比,它的长处是功率密度高、响应快、寿命几乎不受充放电次数限制,所以电网调频、UPS、轨道交通再生能量回收这些场景里,飞轮储能一直有一席之地。
但真要上手做飞轮储能系统,第一道坎不是机械结构,而是建模和仿真。飞轮储能的核心是“电机+变频器+飞轮转子”三件套,其中电机怎么选、模型怎么建、控制策略怎么设,直接决定了整个系统好不好用。我在实际项目里试过异步电机也试过永磁同步电机,最后稳定的方案还是后者。这篇就以“永磁同步电机作为飞轮驱动电机”为主线,把飞轮储能系统在Simulink里的建模思路、仿真流程、控制策略和调参坑位完整梳理一遍,适合正在做储能方向课题、或者想快速搭一套能跑通毕业设计/预研demo的工程师参考。
1. 飞轮储能系统的构成与仿真建模的最小闭环
先把物理结构捋清楚。一套完整的飞轮储能系统,按能量流从电网到飞轮的路径,大致分为四段:
- 电网/直流母线侧:对于直流母线架构,通常是一个双向AC/DC变换器把交流母线和直流母线连接起来。
- 电机侧变换器:双向DC/AC变换器,驱动永磁同步电机实现电动/发电双向运行。
- 永磁同步电机:作为机电能量转换的核心部件。
- 飞轮转子:储存动能的机械本体,通常和电机同轴或通过齿轮耦合。
在Simulink里建模型时,很多人一上来就堆模块,结果仿真又慢又难收敛。我的建议是先建“最小闭环”,也就是把这四段拆成三层问题:
第一层叫功率接口层,解决“能量从哪进、往哪出”的问题。直流母线电压逻辑、双向变换器的控制信号逻辑都在这一层。
第二层叫电机模型层,解决“定子电流怎么变成电磁转矩”的问题。永磁同步电机的dq轴方程、反电动势、转矩方程全在这层。
第三层叫机械模型层,解决“转矩怎么变成转速”以及“转速怎么变成可释放的电能”的问题。飞轮转动惯量J、摩擦阻尼B、转速闭环都在这一层。
注意,这三层不是独立存在的,它们靠信号线串成一个闭环:直流母线电压→逆变器控制量→电机dq轴电压→电磁转矩→飞轮转速变化→反电动势/母线侧功率反馈。模拟时,必须用这个闭环视角去看模型,否则只做单部件的“孤立仿真”,做出来也是自嗨。
1.1 仿真之前先弄清物理量纲
飞轮储能的本质是旋转动能公式:
[ E = \frac{1}{2} J \omega^2 ]
其中J是飞轮系统的总转动惯量(kg·m²),ω是角速度(rad/s)。这个公式看着简单,但工程上有很多易错点:
- J必须包含电机转子惯量、飞轮本体惯量、如果中间有联轴器还要考虑联轴器折算惯量。
- ω要用弧度每秒,仿真时转速环输出往往是rpm,必须做单位换算。
- 能的存储范围取决于系统最低工作转速和最高工作转速。飞轮不能从零转速起飞,因为低速时电机反电动势太小,利用率和系统效率都低。
举一个我实际用过的参数组:
- 飞轮总惯量J = 4.5 kg·m²
- 最高转速 12000 rpm,最低转速 6000 rpm
- 那么最高角速度 ωmax = 12000 × 2π / 60 ≈ 1256.64 rad/s
- 最低角速度 ωmin = 6000 × 2π / 60 ≈ 628.32 rad/s
- 最大储能量 Emax = 0.5 × 4.5 × 1256.64² ≈ 3.55 MJ
- 最低储能量 Emin = 0.5 × 4.5 × 628.32² ≈ 0.887 MJ
- 可用的有效能量 ΔE ≈ 2.66 MJ,也就是约0.74 kWh
把这几行算完,你才能定义“仿真一个完整的充放电循环”到底是在干什么:从一个初始转速往上升还是从最高转速往下放。否则你连初始条件都设不对。
1.2 永磁同步电机在本系统里的特殊定位
飞轮储能用的电机和通用变频器驱动的电机有个重要区别:它在整个工作区间里**,电动状态和发电状态来回切换**,而且转速范围很宽。
在电动状态,电机从母线取电,输出正电磁转矩给飞轮加速。
在发电状态,飞轮拖着电机转子转,电机反电动势通过逆变器回馈到母线,电磁转矩变成制动转矩,转速下降。
永磁同步电机在这里的优势非常明显:
- 转子没有励磁绕组,没有转子铜耗,效率更高。
- 功率密度大,同样的体积和重量能输出更大的转矩,这对飞轮这种“体积越紧凑越好”的场景很关键。
- 转矩响应快,动态刚度好,容易实现高带宽的转速控制。
- 永磁电机本身的反电动势特性让它天然具备“电压源”属性,在发电状态控制上比异步电机简单。
缺点当然也有:永磁体怕高温、高速下反电动势过高可能需要弱磁控制、成本比异步电机高。但对于飞轮储能这种短时高功率、频繁启停的应用,这些劣势基本都能被容忍或通过设计规避。
2. 永磁同步电机模型搭建:dq轴方程和转矩方程是甩不掉的
Simulink里建永磁同步电机模型,有两种常见路线:
一是直接调库里的Permanent Magnet Synchronous Machine模块,里面带机械端口和电气端口,方便省事。
二是自己按dq轴的电压方程在Simulink里搭数学模块。
两条路线我都用过。对于飞轮储能项目,我建议第一次做的人自己动手搭一遍dq轴模型。不是因为库模块不好,而是因为你只有亲手把方程写出来,才能深刻理解哪些参数会影响后续控制器的设计。
2.1 dq轴数学模型
永磁同步电机在DQ旋转坐标系下的电压方程为:
[ u_d = R_s i_d + L_d \frac{di_d}{dt} - \omega_e L_q i_q ]
[ u_q = R_s i_q + L_q \frac{di_q}{dt} + \omega_e (L_d i_d + \psi_f) ]
其中:
- Rs:定子相电阻(Ω)
- Ld、Lq:dq轴电感(H)
- ψf:永磁体磁链(Wb)
- ωe:电角速度,ωe = p × ωm,p是极对数,ωm是机械角速度
电磁转矩方程为:
[ T_e = \frac{3}{2} p [\psi_f i_q + (L_d - L_q)i_d i_q] ]
对于表面贴式永磁同步电机,Ld ≈ Lq,所以磁阻转矩项可以忽略,转矩就简化成:
[ T_e = \frac{3}{2} p \psi_f i_q ]
这个式子极其重要,它意味着你控制转矩本质就是在控制iq。飞轮的充放电功率控制,到最底层最终都会落到“需要多少iq”这个问题上。
机械运动方程:
[ J \frac{d\omega_m}{dt} = T_e - T_f - B\omega_m ]
Tf是摩擦/风阻损耗转矩,B是阻尼系数。飞轮工作在真空腔或低气压环境时,B和Tf都很小,这也是飞轮储能能长时间维持高转速的原因。
2.2 Simulink里的模块化搭建思路
自己搭模型时,我习惯把模型分成三个子模块:
电压方程子模块:输入ud、uq、ωe,利用积分器求出id、iq。注意积分器初值必须设为0,不然仿真起步阶段会有奇怪的震荡。
转矩计算子模块:根据id、iq、ψf实时计算出Te。如果用内嵌永磁电机,还要把(Ld-Lq)id·iq这一项算进去,别偷懒省略。
机械转子子模块:把Te减去负载阻力矩和阻尼项后,除以J积分得到ωm,再乘以极对数p得到ωe。
用到的关键Simulink模块就这些:积分器(Integrator)、增益(Gain)、求和(Sum)、三角函数(Trigonometric Function)。把这三个子模块封装成子系统,后面做双闭环控制的时候,信号取取就方便了。
我用过一组典型电机参数,数值给大家做个参考表:
| 参数 | 数值 |
|---|---|
| 定子电阻Rs | 0.02 Ω |
| d轴电感Ld | 0.3 mH |
| q轴电感Lq | 0.35 mH |
| 永磁体磁链ψf | 0.12 Wb |
| 极对数p | 2 |
| 额定转速 | 12000 rpm |
| 额定转矩 | 15 N·m |
| 直流母线电压 | 600 V |
这些参数不是万能的,但作为初版仿真足够。真实项目要按实际电机的电感实测值来标定,否则仿真和台架测试会对不上。
3. 控制策略设计:外环转速、内环电流的嵌套逻辑
飞轮储能系统本质是一个“转速可变的电机驱动系统”,但它的特殊之处在于:在充电时,你希望它“升速”,在放电时你希望它“降速”,并且这个升降速过程要能精确控制功率。
因此,常用的控制结构是外环转速环 + 内环电流环的双闭环结构,外加空间矢量调制策略生成逆变器开关信号。
3.1 电流内环:i d 和 i q 的解耦控制
电流环的主要目标是快速跟踪电流指令。以id=0为控制目标,这样可以最大转矩电流比控制,也简化了模型。iq的指令来自转速环的输出。
在实现电流环时,dq轴之间存在交叉耦合项——ud方程里的-ωeLqiq和uq方程里的+ωeLdid,以及uq方程里的反电动势项ωeψf。如果忽略这些耦合项,高速时电流环会明显变差,甚至出现电流超调。
常用的解法是前馈解耦:
[ u_d = u_d' - \omega_e L_q i_q ]
[ u_q = u_q' + \omega_e (L_d i_d + \psi_f) ]
其中ud'、uq'是PI控制器的输出。前两项是“补偿项”,用来抵消耦合的影响。
实际仿真中,有些人偷懒不加前馈解耦,低速时看不出来,但飞轮储能恰恰工作在高转速宽范围,跑到6000rpm以上时,不带解耦的电流环会疯了一样震荡。我强烈建议,仿真模型里一定要带前馈项。
电流环的PI参数可以用工程法先估算:
- 电流环带宽选在电机电气时间常数的1/10到1/5,即带宽角频率 ωci = 2000 rad/s 左右。
- 则 Kp = Ld × ωci,Ki = Rs × ωci。
按上面的参数算出来电流环Kp约0.6,Ki约40。这只是初估值,之后要根据仿真波形微调。
3.2 转速外环:飞轮系统的功率闭环本质
转速环的输出是iq的指令值。额定工况下,转速环的带宽要比电流环低5到10倍,保证两个环不会互相打架。
不过飞轮储能和普通伺服系统的转速环不太一样。普通伺服是“快速到达给定转速并稳住”,而飞轮储能你要的是“按给定的功率/转矩曲线充放能”。所以转速环的给定不是恒定值,而是根据调度指令动态变化的斜坡。
更直观的做法是:把功率指令先转换成转矩指令,再换算成iq指令。
假设你从直流母线侧得到了充电功率指令Pc,忽略损耗,那么:
[ T_e = \frac{P_c}{\omega_m} ]
[ i_q = \frac{T_e}{\frac{3}{2} p \psi_f} ]
把这个“功率转转矩,转矩转电流”的过程放在转速环之前,就实现了恒功率控制。本质上转速环还在,但它只负责保证实际转速跟踪期望转速,功率指令被转换成了转矩/电流前馈直接作用到电流环。
我在实际项目中用过两种架构,对比感受如下:
| 架构方案 | 优点 | 缺点 |
|---|---|---|
| 纯转速环+固定转速斜坡 | 简单,容易收敛 | 功率控制不精确,受惯量影响大 |
| 功率前馈+转速环修正 | 功率控制精准,模式切换平滑 | 模型稍复杂,参数需要配合整定 |
对于飞轮储能应用,我推荐第二种,功率响应好得多。
3.3 充放电模式切换:逻辑别做成生硬开关
飞轮储能最容易出问题的地方,是从充电状态切到放电状态的瞬间。
假设飞轮正在充电,转速从8000往12000升,突然收到放电指令。如果你把iq指令直接从正的100A切到负的100A,也就是一阶跃过去,那么电流环会在瞬间产生巨大的dq轴电压尖峰,母线侧电容电压也会跟着冲高,严重时直接触发保护。
正确的做法是给功率指令或iq指令加斜坡限制器和平滑逻辑。在Simulink里用Rate Limiter模块就能实现,斜坡速率取系统能承受的最大转矩变化率,通常每秒不超过额定转矩的2~3倍。这样模式切换虽然没那么“激进”,但真实系统才能活下来。
还有一点:放电过程中转速会持续下降,如果转速低于最低工作转速,必须把功率指令清零并封锁脉冲,否则飞轮转速会一路掉到零,电机进入失控状态。这个转速下限保护逻辑在仿真里也要做进去,别侥幸偷懒。
4. 飞轮转子模型和损耗建模:仿真数据和台架能不能对上的关键
很多人把飞轮转子简单等效成一个惯性环节就完事了,但到后期你会发现,损耗模型的缺失会让你的仿真结果非常理想化,和台架实测数据对不上。
飞轮转子损耗主要有三块:
- 轴承摩擦损耗:与转速近似成正比。
- 风阻损耗:与转速三次方近似成正比,所以高速飞轮必须放真空腔或低气压环境。
- 电机自身损耗:铜耗(与电流平方成正比)、铁耗(与频率和磁密有关)。
在Simulink里建模时,这三块损耗可以用一个转速相关的可变负载转矩来等效:
[ T_{loss}(\omega) = a_1 \omega + a_2 \omega^3 + T_{const} ]
其中a1是线性摩擦系数,a2是风阻系数,Tconst是恒定摩擦/轴承预紧转矩。
仿真时把这个损耗转矩作为负的负载转矩叠加在机械运动方程里,就能看到转速自然衰减的快慢。比如一个4.5kg·m²的系统,如果带一个小小的a2系数,从12000rpm自然降落到6000rpm可能需要几十分钟甚至几小时,这比不带损耗建模时“转速恒定不动”的结果真实得多。
我是踩过这个坑的:第一版模型把损耗全设为0,仿真出来的循环效率高达99%,看着很开心,结果台架实测只有86%左右。后来把风阻和轴承损耗补进去,仿真循环效率调到89%,虽然还有差距,但至少趋势对了。模型的价值恰恰在于“能预测趋势”,而不是“和实测完全一致”。
这里也单独提一下:如果你做的是真空飞轮,风阻项很小,仿真时a2可以设得很小;如果是非真空环境,a2就得按经验值给得稍大。这个参数直接影响放电过程中转速衰减速度,建议做参数敏感性分析。
5. 逆变器与PWM生成:把理想模型拉回现实的关键一环
前面讲的电机模型、控制策略,基本是基于“理想电压源驱动”的假设,也就是你给ud、uq,电机就按方程响应。但实际系统里,电机是通过逆变器供电的,逆变器的开关过程会带来谐波电流、电压降、直流母线电压波动等一系列问题。
Simulink里搭建逆变器有两个层级:
平均模型:把逆变器看成带宽无限的电压放大器,ud、uq直接作用于电机。这种模型速度快,适合做上层控制策略验证。
开关模型:用实际IGBT/MOSFET开关器件建模,用到SimPowerSystems里的桥臂模块和PWM发生器。这种模型能反映真实谐波、开关损耗和直流母线电压纹波,但仿真速度慢得多。
飞轮储能项目我是这样处理的:控制算法调试阶段用平均模型,跑得快,迭代周期短;到了要验证PWM调制、母线电压波动、谐波指标时,再换成开关模型跑几个关键工况。平均模型跑过的逻辑,换到开关模型后只需微调参数,不用推翻重来。
5.1 直流母线电容的建模不可忽略
飞轮储能的一大特点是功率双向流动且瞬时功率大。电机在发电模式下能量回馈到直流母线,母线电容如果没有足够的容量,电压就会快速抬升,危及变换器安全。
在Simulink里,直流母线可以用一个电容并联一个可调负载源来建模:
[ C \frac{dU_{dc}}{dt} = i_{source} - i_{load} ]
其中isource是前端变换器提供的电流,iload是电机侧回馈或消耗的电流。把电容值设得偏小,就能在仿真里看到充放电切换瞬间的电压尖峰;这时候你会深刻理解“为什么真实系统母线电容要选得那么大”。
之前我做某个模拟项目时,母线电容从2000μF改成500μF,同一套控制参数下,母线电压在模式切换瞬间从600V冲到720V,直接触发过压保护。用仿真验证了电容下限选择的必要性,这个结论放到现场选型一样成立。
5.2 PWM调制和死区的影响
如果你用开关模型,一定会遇到死区问题。死区时间造成电流波形畸变和低次谐波,尤其是轻载或零电流穿越时最明显。仿真里可以设死区时间,比如典型值3μs,然后对比有无死区时的电流THD差异。
需要注意的是:Simulink里的PWM生成模块默认可能没有死区环节,你要在两个互补开关管的驱动信号里手动插入On-Off Delay或者用Deadtime子模块。这个细节不处理,开关模型的谐波结果会偏乐观。
6. 仿真工况设计与结果分析:怎么证明你的模型能干活
模型建好,控制调好,最怕什么?最怕没有什么验证场景,拿一个阶跃就交差。飞轮储能系统的核心能力是“充得进、放得出、切换稳”,所以仿真工况至少要覆盖以下四个:
6.1 恒功率充电工况
给定充电功率指令5kW,仿真起始转速6000rpm,看看转速能否平滑上升,功率是否稳定在5kW附近。关注点:
- 转速上升曲线是否为平滑的抛物线形(因为惯量吸收能量,转速上升率会随转速升高而降低)。
- 充电功率是否稳定,是否有低频振荡。
- 母线电压是否维持在600V允许范围内。
6.2 恒功率放电工况
从12000rpm开始,给定放电功率指令5kW,观察转速下降过程和母线电压。放电时,发电功率和母线电压的维持能力是核心。如果你的转速环和功率前馈不协调,放电瞬间母线电压会先砸下去再拉回来,这就不合格。
6.3 充放电模式切换工况
这是飞轮储能系统的“考试题”。在某一时刻把充电指令切换为放电指令,或者反过来,观察动态响应:
- 切换时间是否在几十毫秒内完成。
- 转速/转矩/母线电压是否存在超调或尖峰。
- 电流是否有畸变,母线电压是否有超出安全范围的瞬间。
我一般会用两个不同斜率的Rate Limiter分别限制功率上升和下降斜率,仿真结果明显平滑很多。
6.4 自损耗待机工况
输入指令为0,让飞轮带着损耗模型空转,看看转速自然衰减曲线是否能保持很久。这直接反映你的损耗参数设置是否合理。一个6000rpm以上的飞轮如果转速衰得快,说明损耗模型建得太暴力;如果完全不衰减,说明你忘了加损耗。
做结果分析时,重点别只盯最后一个稳态值,要把上升时间、超调量、振荡次数、母线电压波动幅度都记录下来,和设计指标对比。这套结果可以拿去做毕业设计论文的曲线图,也可以拿去和上层调度算法联调。
7. 调参实战记录:从模型发散到收敛的全过程
平心而论,第一次完整跑通飞轮储能Simulink模型,我调试了整整三天。中间不乏一些现在看起来很低级的错误,但每一个都有启发,列出来给大家参考。
7.1 积分初值错误导致电机“飞车”
这是最典型的低级错误。我第一版dq轴模型里,把积分器初值随手设成了1,结果一启动,id和iq就有一个巨大的初始值,转矩瞬间冲到几百牛米,转速直接飙到天上。
排查方法:看初始时刻0~0.01s的波形,所有积分环节的初值都必须是物理可实现的初值。dq电流初值是0,机械转速初值按你设定的初始转速换算成标幺值设置。
7.2 转速单位换算漏了2π
电流环参数是按SI单位算的,但转速反馈用的是rpm。我在调转速环参数时偷懒直接用rpm当rad/s来设比例,结果转速环增益完全不对,系统一直低频振荡。排查时对着单位检查了一遍才发现。
建议:在模型里把转速单位统一成rad/s,或者建立rpm和rad/s之间的换算增益模块,一眼就能看到。这种单位问题,纯粹靠人脑记必出错。
7.3 带宽比值没拉开导致电流环和转速环共振
一开始把电流环带宽设成1500rad/s,转速环带宽设成1200rad/s,两者离得太近,仿真里出现明显的双频振荡叠加。后来把转速环带宽降到300rad/s左右,波形立刻干净了。
这个经验值很重要:电流环带宽至少是转速环带宽的5倍以上,最好留到10倍。对于飞轮储能这种大惯量系统,转速环其实不需要太快,反而是电流环要快,因为转矩响应速度决定了功率阶跃性能。
7.4 仿真步长设置直接影响结果能否复现
Simulink求解器用变步长时,默认容差可能过高,导致某些高频分量被忽略,仿真结果和开关模型差异很大。我一般把相对容差设为1e-5,最大步长设为10μs(开关模型)或50μs(平均模型),结果可复现性明显提高。
如果你做的是开关模型,那仿真步长建议设到1μs级别,否则PWM波形和电流纹波都会被严重平滑。做开关模型要有耐心,一次几十秒的工况仿真可能要跑十几分钟甚至更久,这很正常。
8. 往工程化走:模型还能承载哪些扩展
如果你把这套模型当毕业论文的核心,那做到上面这些已经可以交差了。但如果你想把飞轮储能仿真做成一个“长期可迭代”的模型平台,下面几个方向很值得考虑。
8.1 加入SOC(荷电状态)折算逻辑
飞轮储能的“SOC”本质就是当前储能量与最大储能量的比值:
[ SOC = \frac{0.5J\omega^2 - E_{min}}{E_{max} - E_{min}} ]
把这个SOC算出来,你就能像电池一样给上层调度系统提供荷电量指示,方便和其他储能介质做能量管理策略的联合仿真。
8.2 联调上层DC母线电压控制
飞轮储能通常不是单机运行,而是和其他电源、负载挂在同一条直流母线或交流母线上。你可以把模型封装成一个“黑盒储能设备”,外部只暴露Pmax、SOC、温度、故障状态等口子,然后和上层能量管理系统联调。
这样做的价值是:以后换电机参数、飞轮惯量,只需要更新内部模块,上层调度逻辑不用动。
8.3 多机并联仿真
飞轮储能阵列是另一个热点方向。把单机模型复制成多机并联,中间加一层功率均分控制逻辑,可以验证多机环流、均分误差、故障一台后的功率重新分配过程。这种仿真对做储能电站方案预研很有参考意义。
我最后要说的是,模型永远是“够用就好”的。别一上来就想把温度场、结构应力、磁饱和全建进去,那是给产品开发准备的。研究阶段的核心是抓住“机电能量转换和功率双向流动”这条主线,把它做扎实,后面你要扩展什么都有的放矢。