1. 为什么偏偏是永磁同步电机:飞轮储能驱动电机的选型逻辑
飞轮储能这两年算是储能圈里的高频词,无论是微电网调频、数据中心UPS,还是高校课题组的预研方向,都会拿“飞轮储能系统的建模与Simulink仿真”作为切入点。我接触这类任务时有一个很明显的感触:大部分人会把精力放在Simulink里怎么摆模块、怎么连线上,反而对“为什么用永磁同步电机当飞轮驱动电机”这个根本问题一带而过。结果就是模型照着别人的截图搭出来了,波形却怎么调都不对。这篇文章我想换个顺序,先从选型逻辑讲起,再把飞轮本体、电机、母线的三套数学方程捋清楚,最后落到Simulink建模和充放电控制的实操细节上,顺便把我踩过的坑一块儿说了。
飞轮储能的工作原理并不复杂:电能和动能互相转换。充电时电机把电网或母线上的电能变成旋转动能,带动一个高速飞轮转起来;放电时飞轮反过来拖电机发电,把动能变回电能回馈出去。这里的电机身兼两职,既是电动机又是发电机,这决定了它不会像普通伺服电机那样只考虑单向驱动性能,而是要兼顾电动、发电两种工况下的效率和可靠性。
先说结论:目前商用和科研用的飞轮储能系统,绝大多数都会选永磁同步电机(PMSM),而不是异步电机或开关磁阻电机。原因可以拆成四点来看。
第一,效率。飞轮储能本身能量密度不占优势,一台几百公斤的钢制飞轮,高速旋转下储存的能量也只有几十到几百千焦,因此整条能量链上的每一环损耗都必须尽量压低。PMSM的转子是永磁体,没有励磁绕组,不存在转子铜耗,高速区效率能稳定在96%以上。异步电机虽然结构便宜,但转子有绕组和转差损耗,高速工况下发热明显,效率通常只能做到90%~94%。对一台连续运行、频繁充放电的设备来说,4个百分点的效率差距会直接反映到系统收益上。
第二,功率密度和转子强度。飞轮储能的能量与转速的平方成正比,转速越高,同样体积重量下能存的能量越多。PMSM的转子结构紧凑,永磁体直接贴在转子铁芯表面或嵌入其中,没有笼条和端环,机械上更容易做成高速转子。配合碳纤维绑扎和磁悬浮轴承,商用飞轮的转速可以做到每分钟几万转。异步电机转子带绕组和铁芯,高速时的离心应力问题更突出,发热也更大,高速化难度明显偏高。
第三,控制性能。PMSM采用转子磁场定向控制(矢量控制)后,电磁转矩和定子电流可以实现近似线性解耦,转矩响应做到毫秒级很容易。飞轮储能参与调频时,要求在极短时间内响应功率指令,这种“即插即用”的动态特性正是PMSM的优势。异步电机的磁场定向控制需要实时观测转子磁链,低速和弱磁区间的控制精度不如PMSM来得直接。开关磁阻电机虽然结构简单、转子坚固,但转矩脉动和噪声在储能这种频繁双向运行的场景里比较吃亏,控制复杂度也不低。
第四,系统成本中的隐性收益。PMSM的成本主要贵在永磁体上,但它的控制器成本并不比异步电机高多少,而且因为效率高、散热负担小,系统里散热器、风机、电缆的规格都能往下压。对于飞轮储能这种需要“长时间在线待机、短时间大功率吞吐”的应用,综合账算下来并不吃亏。
下面这张表是我在做选型对比时常用的对照,基本信息可以先拿去做方案论证:
| 对比维度 | 永磁同步电机 | 异步电机 | 开关磁阻电机 |
|---|---|---|---|
| 高速区效率 | 最高 | 中 | 中高 |
| 转子结构 | 永磁体,无绕组 | 鼠笼绕组 | 纯铁芯凸极,无磁无绕组 |
| 功率密度 | 最高 | 中 | 较高 |
| 控制复杂度 | 需转子位置,矢量控制成熟 | 需磁链观测,稍复杂 | 需位置与电流斩波,复杂度高 |
| 高速化能力 | 强,弱磁可扩展转速 | 中,转子损耗限制 | 强,结构坚固 |
| 主要风险 | 永磁高温退磁 | 转子发热明显 | 转矩脉动与噪声 |
所以我带学生或同事做类似项目时,第一步就是让他们把选型逻辑写清楚。不是“别人都用PMSM所以我也用”,而是“飞轮储能要求高效率、高功率密度、快速双向响应,PMSM恰好在这三条主赛道上都领先”。这段思考不是废话,后面建模时的每一个参数、每一个控制环路的设计依据,都能从这里面倒推出来。
2. 建模前必须吃透的三套方程:飞轮本体、PMSM与直流母线
仿真模型搭到Simulink里之前,先把物理过程用数学语言写清楚。这一步偷不了懒,因为Simulink里的每个模块都是在解某个微分方程,你如果不理解方程本身,出了问题就只能对着波形瞎猜。飞轮储能涉及的三套方程,分别是飞轮本体的旋转运动方程、PMSM在dq坐标系下的电压和转矩方程、以及直流母线侧的功率平衡方程。
2.1 飞轮本体:动能和转动惯量怎么算
飞轮储存的是旋转动能,基本公式是:
E = ½ × J × ω²
其中J是飞轮的转动惯量,单位kg·m²,ω是机械角速度,单位rad/s。从这个公式能看出两个关键结论:一是能量与转速的平方成正比,所以提高转速比增加质量划算得多,这也是飞轮储能往高速方向卷的根本原因;二是转动惯量J是储能容量的“地基”,计算时必须准确。
对于最简单的实心圆柱飞轮,转动惯量是J = ½ × M × R²,M是质量,R是半径。举个例子:一个直径0.3m、厚度0.05m的钢制飞轮,钢密度按7800kg/m³算,体积大约是0.00353m³,质量约27.6kg。它的转动惯量J = 0.5 × 27.6 × 0.15² ≈ 0.31kg·m²。
假设最高转速6000rpm,换算成角速度是ω = 6000 × 2π / 60 ≈ 628rad/s。此时储存的能量就是:
E = 0.5 × 0.31 × 628² ≈ 61100J ≈ 61kJ
如果放电允许转速降到3000rpm(即最高转速的一半),释放的能量是最高能量减去最低能量:
ΔE = ½ × J × (ω_max² − ω_min²) = 0.5 × 0.31 × (628² − 314²) ≈ 45900J ≈ 46kJ
这个4.6万焦耳的能量,在2.2kW的电机额定功率下,足够维持约20秒的满载放电。这组数字对整个仿真很有用:你可以预先知道模型里的飞轮容量大概是什么量级,转速给多少合适,放电功率应该控制在多少范围,而不是盲目地把转速参考值从0直接拉到6000rpm然后指望系统能稳定。
旋转运动方程也简单:
J × dω/dt = Te − T_loss − T_load
Te是电机的电磁转矩,T_loss是飞轮自身的机械损耗(轴承摩擦、风阻),T_load是外接负载转矩。充电时Te为正,飞轮加速;放电时Te为负,飞轮减速。T_loss通常建模成一个与转速相关的阻尼项,最简单就是T_loss = B × ω,B是阻尼系数。在Simulink里,飞轮本体可以直接用一个积分器加增益搭出来,也可以用Simscape里的旋转惯性模块,后面细说。
2.2 PMSM的dq方程:为什么控制都要转到旋转坐标系
PMSM的三相定子电流是正弦交流量,abc三相坐标下方程特别麻烦,因为电流、电压全是时变的,控制器没法直接用PI去跟踪正弦目标。所以标准做法是通过Park变换,把三相量转换到随转子一起旋转的dq坐标系。在这个坐标系下,d轴对齐转子永磁体磁链方向,q轴超前d轴90度,原来时变的交流量就变成了直流量,PI控制才好用。
dq坐标系下的电压方程写出来是:
ud = Rs × id + Ld × did/dt − ωe × Lq × iq
uq = Rs × iq + Lq × diq/dt + ωe × Ld × id + ωe × ψf
这里Rs是定子电阻,Ld、Lq是d轴和q轴电感,ωe是电角速度(等于机械角速度乘以极对数p),ψf是永磁磁链。式子中ωe×ψf那一项就是反电动势,转速越高它越大,这也是为什么高速飞轮在母线电压受限时必须考虑弱磁控制的原因。
电磁转矩方程是:
Te = 1.5 × p × [ψf × iq + (Ld − Lq) × id × iq]
对于表贴式PMSM,Ld≈Lq,括号里第二项为零,转矩简化为:
Te = 1.5 × p × ψf × iq
这意味着只要维持id=0,电磁转矩就只和iq成正比,成为一个线性环节,控制一下子变得非常直观。所以飞轮储能这种中高速应用,最常见的就是id=0矢量控制:转速外环给出iq指令,电流内环分别控制id=0和iq跟随指令,整个双闭环就这么定下来了。
2.3 直流母线侧:能量从哪里来、回哪里去
飞轮储能系统的电气接口是直流母线。充电时,外部电源给母线供电,逆变器把直流电变成交流驱动电机;放电时,电机发电,逆变器把交流电变回直流回馈到母线,母线再给负载或电网供电。母线电压不是恒定的,它由母线电容支撑:
C × dVdc/dt = I_source − I_inverter
式中C是母线电容,I_source是外部输入电流,I_inverter是流向逆变器的电流。电机吸收功率越大,I_inverter越大,母线电压就会往下掉;发电回馈时I_inverter变负,母线电压会往上冲。这个方程在仿真里非常重要,我经常看到有人仿真放电工况时母线电压一路飙升到七八百伏,电机都停不下来了还继续升,就是因为母线电容取得太小,或者负载模型只挂了一个固定电阻,没有形成有效的能量出口。
把这三套方程放在一起看,整个系统的因果链就清楚了:母线电压和电容决定电能供应能力,PMSM方程把电能变成转矩,旋转运动方程把转矩变成飞轮转速,而转速又决定了储能容量。Simulink模型本质上是把这一串因果关系变成模块连线和微分方程求解的过程。
3. Simulink环境下的模型搭建:从物理拓扑到控制环路的落地步骤
模型搭建有两种路线,先搞清楚路线差异再动手,比从网上抄一个模型更容易改成自己的东西。
3.1 路线选型:Simscape物理域模块还是纯数学方程建模
很多教程默认推荐Simscape Electrical里的专业模块,比如Permanent Magnet Synchronous Machine、Universal Bridge、Three-Phase V-I Measurement,理由是主电路拓扑直观,电机、逆变器、传感器都是现成的图形化模型。这种做法的好处是省事,电气元件的行为特性已经内置,适合快速搭出系统级仿真、验证控制策略在真实拓扑下能不能跑通。缺点是内部细节对用户不透明,一旦遇到不收敛、数值振荡这类问题,排查起来会比较难受。
另一条路线是完全用Simulink基础模块搭方程:把上面的dq电压方程、转矩方程、运动方程一个一个用增益、积分器、加法器实现,PWM调制也可以自己搭载波比较。这种模型的速度更快、完全透明,改一个参数就知道改的是哪里,特别适合做控制算法研究,但主电路里的开关纹波、死区效应、器件导通压降都看不见。
我的习惯是分两步走:先在纯方程模型里把控制思路调通,让转速、电流、母线电压这些核心变量都满足预期;然后再把主电路替换成Simscape专业模块,验证包括了开关细节之后系统仍然稳定。这样做的好处是,当Simscape模型出问题时,你能判断问题出在控制环还是硬件效应,而不是糊成一团。下面按Simscape路线给出搭建步骤,纯方程模型可以照着同样的控制结构平行实现。
3.2 主电路与机械部分的模块布局
搭建流程我一般分成主电路、电机本体、控制回路三块。
主电路拓扑选经典的三相两电平电压源型逆变器,Simscape里用“Universal Bridge”配置成IGBT加反并联二极管的三相桥臂即可。直流侧接一个电压源串一个电容,电压源用来模拟充电电源,电容模拟母线电容。要注意的是,Simscape物理域的“电气参考地”必须接好,否则仿真会报“未接地”错误,这一点新手最容易漏。
电机部分,从Simscape Electrical库中拖出永磁同步电机模块,把极对数设为4、定子电阻Rs设为0.95Ω、Ld设为1.3mH、Lq设为2.1mH、永磁磁链设为0.175Wb。电机模块的机械端口连接到旋转机械元件链上:先接一个“Rotational Inertia”模拟飞轮转动惯量J=0.31kg·m²,再接一个“Rotational Damper”模拟1000rpm转速附近的风阻和轴承损耗。阻尼系数可以先取0.001N·m·s/rad,后面实际调试中再根据转速衰减速度调整。这个阻尼项绝不能省,否则飞轮空载时几乎没有阻力,转速会长时间悬在高位,能量浪费和系统响应慢的问题都暴露不出来。
控制回路部分,电机模块自带或外接“Ideal Angular Velocity Sensor”测量转子机械角和转速,三相电流用“Three-Phase V-I Measurement”采集。将机械角乘以极对数得到电角度,进入Park变换得到id和iq。转速误差进入转速环PI,输出iq_ref;iq误差和id误差分别进入两个电流环PI,输出ud_ref和uq_ref;再经过反Park变换得到调制用的参考电压,最后进PWM发生器产生六路触发脉冲送给三相桥。这里的PI控制器推荐用带输出限幅的版本,电流环输出限幅设在母线电压的约0.9倍左右,转速环输出限幅则对应电机允许的最大电流,比如30A,防止启动瞬间电流冲上天。
3.3 仿真参数与双闭环初始配置
我常用的飞轮储能仿真算例参数汇总如下,方便直接抄作业:
| 参数 | 数值 | 说明 |
|---|---|---|
| 直流母线额定电压 | 311V | 模拟220V交流整流后的母线 |
| 母线电容 | 2200μF | 容量不能太小,否则母线波动剧烈 |
| 电机额定功率 | 2.2kW | 小功率飞轮验证平台量级 |
| 极对数 | 4 | PMSM常见极数配置 |
| 定子电阻Rs | 0.95Ω | 中型小功率电机的典型值 |
| d轴电感Ld | 1.3mH | 表贴式结构,Ld≈Lq |
| q轴电感Lq | 2.1mH | 略大于Ld,带一定凸极效应 |
| 永磁磁链ψf | 0.175Wb | 对应约2000rpm基速 |
| 飞轮转动惯量J | 0.31kg·m² | 对应直径0.3m厚50mm钢盘 |
| 最高机械转速 | 6000rpm | 储能容量约61kJ |
| PWM开关频率 | 10kHz | 兼顾损耗与波形质量 |
双闭环PI初始值先用工程经验公式估算,再在仿真里微调。电流环期望带宽设800rad/s左右,按Kp = α × L、Ki = α × Rs来算,L取1.3mH,Rs取0.95Ω,则Kp≈1.04,Ki≈760。转速环期望带宽设电流环的十分之一,也就是80rad/s左右,按转矩环节增益和转动惯量折算,Kp我会从0.5开始,Ki从0.02开始,看波形逐步调整。这个初始值不一定完美,但至少能让系统稳定起转,比随手填10、20这种数字靠谱得多。
4. 充放电工况的切换逻辑与仿真波形判读
模型搭好之后的重点是研究工况。飞轮储能仿真的核心场景无非两个:充电加速和放电回馈。关键问题是怎么让同一个模型在这两种模式间平滑切换。
4.1 充放电模式是怎么切换的
本质上,PMSM工作在电动还是发电状态,取决于电磁转矩和转速的方向关系。转矩与转速同向,就是电动,电机加速;转矩与转速反向,就是发电,电机减速。所以在id=0双闭环结构下,切换的核心不在主电路,而在控制回路给出来的iq指令方向。
仿真中常用转速参考值来做模式切换:充电时,转速参考给一个当前实际转速上方的目标值,转速环输出正的iq,电机电动加速;放电时,转速参考降到实际转速下方,转速环输出负的iq,电机进入发电状态,动能转化成电能回馈母线。
有人会问,放电时转速参考下降,转速环会不会直接把电机“拽下来”?单靠转速闭环确实可以释放飞轮动能,但这种方式没有直接控制“放电功率”,更工程化的做法是增加一个母线电压外环:把母线电压参考值和实际值做差,经过PI生成转速参考值。当母线电压低于参考,说明外部有负载在用电,系统会降低转速指令,让飞轮释放能量把母线顶回参考值。这样放电功率就间接受控于母线电压波动,更贴近储能系统的实际运行方式。
我在模型里的实现方式很简单:用Simulink自带的选择器按外部模式信号切换转速参考源。模式为充电时,转速参考来自一段斜坡函数,比如从0线性升到5000rpm,持续10秒;模式为放电时,转速参考来自母线电压环输出,母线电压目标设为311V。这套逻辑用一个“Manual Switch”加两个控制分支就能完成,不需要写复杂的Stateflow状态机。
4.2 充电工况:转速斜坡上升时的波形特征
充电仿真的结果是典型的双闭环启动过程。把转速参考设为0到5000rpm的斜坡,启动瞬间由于参考与实际转速误差为零,电流不会有阶跃冲击。随着转速参考徐徐上升,转速环输出iq逐渐增大,电机加速。你会在波形里看到:id维持在0附近,iq为正的几十安培量级,转速曲线基本贴着斜坡走,母线电压在加速期间有一个轻微下降,但被电容和外电源顶住,大概掉5V左右就能恢复。
这里有个特征需要重点观察:iq本来应该随转速升高基本保持平稳,但如果你的机械损耗模型阻尼B取太小,飞轮加速后期所需的转矩接近零,iq会回落到很小。这不代表系统坏了,而是飞轮在无负载时只需要克服轴承摩擦就能维持速度。充电实验结束时把转速保在5000rpm,电机只出很少的电流维持空转损耗,这个状态就是储能系统的“待机悬停”状态。
4.3 放电工况:母线电压先升后稳的过程
切换到放电模式后,转速参考突然降低,转速环给出负的iq,电机进入发电状态。波形上最明显的特征是:直流母线电压会有一个短暂上升,因为回馈能量优先涌向母线电容,电容电压被顶高。如果母线端没有负载,这部分能量没有出口,电压会一直走高,直到电容电压击穿或者仿真发散。所以放电仿真必须给母线挂一个稳定的负载或者控制出口功率的电阻负载,比如在直流母线上加一个固定电阻(功率按几十欧姆量级选),当电容电压抬升时,多余能量通过电阻消耗掉,电压稳定在某个高于311V的新平衡点。
放电工况里观察转速曲线的斜率也很有用。转速从5000rpm下滑,曲线越陡,代表放电功率越大。反过来,如果转速下降很平缓,说明能量释放速度慢,负载较轻。转速的下降速率和母线电压的涨幅、iq的负值大小是联动的关系,这套联动关系直接从旋转运动方程和母线功率平衡方程推导出来。
4.4 仿真结果如何和真实容量对应起来
拿到一组仿真波形后,可以和理论计算对照一下,防止模型里的参数不合理。还拿上面那个飞轮算例,从5000rpm放到3000rpm,理论释放能量是:
ΔE = 0.5 × 0.31 × (523² − 314²) ≈ 0.5 × 0.31 × (273529 − 98596) ≈ 27140J
假设2.2kW放电,理论放电时间约为27140/2200 ≈ 12.3秒。仿真结果如果明显偏离这个值,并不是模型错了,而是说明阻尼损耗占比太大,或者放电功率没有真正达到额定值。这时候去查电机的电磁转矩和转速乘积,就能把“能量跑哪去了”追清楚。
5. 仿真中绕不开的坑:PI整定、初始转子位置与离散步长
模型搭完、工况切换做完,剩下的工作就是反复调试和排错。这个环节是最耗时间的,我把自己在类似项目里遇到过的问题列出来,希望能帮你少走几圈弯路。
5.1 PI参数整定顺序:先电流环,后转速环,绝不反过来
很多人一开始就把两个PI控制器都填了同一个数字,比如都设成50,结果启动电流爆表、转速超调20%、母线电压剧烈震荡。问题出在整定顺序上。电流环是内环,必须先整定,让电流响应又快又稳,外环才能建立在可靠的基础上。
整定电流环时,可以把转速环的PI临时旁路,直接给固定的iq_ref阶跃,观察iq的跟踪速度。带宽设得越高,跟踪越快,但抗噪和抗离散误差能力会变差,一般取到开关频率的1/10左右。按10kHz的载波,电流环带宽800~1000rad/s是合理范围。Kp、Ki的初值按α×L和α×Rs估算后,微调方向是:超调偏大就加Kp或者减Ki,电流迟迟不追上就加Ki。电流环调稳之后,再去调转速环。转速环的带宽只能是电流环的十分之一左右,否则两个环会互相激励出振荡。记住一个原则:内环带宽永远是外环带宽的5到10倍。
5.2 初始转子位置:仿真的坑和实机一模一样
PMSM的矢量控制完全依赖转子位置,初始位置错了,整个控制就全错了。在仿真里,如果你没有设置初始转子角,模块会用默认值,这个默认值和你的Park变换初始角度必须保持一致。否则启动瞬间,你以为id=0,实际上合成的电流不在d轴,转矩会出现低频脉动,转速爬升时带着明显的抖动。
解决办法分两步。第一步,把编码器或角度测量模块的初始角度和PMSM模块的初始机械角设成一致,最简单是全部置0。第二步,启动给转速斜坡而不是阶跃,让电流有足够时间建立磁场。我遇到过把初始角度偏差了180度的情况,电机直接反转一小段再拉回来,看起来就像启动失败,一度怀疑模型有问题,查了一圈才发现只是角度标定错了。这个经验在仿真里也同样适用:先检查角度,再查参数,不要一上来就怀疑算法。
5.3 离散步长与求解器:步长不是越小越好
Simulink里带PWM和开关器件的模型推荐用定步长离散求解器,否则步长会自动变化,每一步的CPU开销差异很大,仿真时间没法预估。而且带电力电子开关的模型如果只用变步长ode45,很容易在开关切换点出现数值振荡。我在飞轮储能仿真里用的是ode3(即三阶龙格库塔),固定步长1微秒。
10kHz载波对应载波周期100微秒,步长取1微秒就是每个载波周期100步,足够看清PWM脉冲和电流纹波。如果步长放大到20微秒,PWM模块生成的门极信号会失真,脉宽小于一步长的窄脉冲直接消失,电流波形变得毛糙。步长如果缩小到0.1微秒,精度其实没有质的提升,但仿真时间会拉得很长,完全不划算。所以我的建议是:步长取开关周期的百分之一到十分之一之间,先用1微秒跑通,再视精度需要调整。
5.4 低速启动时的电流畸变和零速振荡
永磁同步电机零速附近的启动是最考验控制的一个环节,仿真虽然没有实机的齿槽转矩和采样噪声,但同样会遇到问题。因为零速时反电动势为零,电流环要完全靠PI控制器建立电流,PI参数不合适或转速斜坡给得太陡,就会看到iq出现大幅度来回摆,转速在零附近抖动。
处理方法我一般有三种。第一种最简单:斜坡时间拉长,让转速参考从0缓慢上升,电流环有足够时间跟随。第二种:电流环带宽适当收窄,不要一开始就追求极致响应。第三种:实在不行,在转速低于某个阈值(比如100rpm)时采用恒压频比开环启动,等转速爬起来再切到矢量控制,这种启动方式虽然简单粗暴,但在重惯量飞轮这种负载下反而更稳定。仿真里不建议一上来就搞复杂状态机,先把斜坡时间调长,90%的情况都能解决。
我做完这几轮调试后的个人体会是:飞轮储能仿真这件事,模型本身只占三成功夫,剩下七成都在“让控制环路和各种参数打架时别打得太难看”。前面这些坑,每一个都是我亲测过的。你照着上面的参数和步骤把模型完整跑通一遍,再回头看标题里的“建模与Simulink仿真”,你会发现真正值钱的不是那张连线图,而是你知道每个模块为什么要那样搭、每个数值为什么落在那个范围、每个波形异常背后大概是什么原因。这套思路换到别的电机驱动或者储能系统上,一样能复用。