ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

飞轮储能系统永磁同步电机Simulink仿真建模与调试

飞轮储能系统永磁同步电机Simulink仿真建模与调试

做飞轮储能项目的Simulink仿真,是个能让人一上午抽掉半包烟的事。我最早接触这个方向,是在某储能公司的预研项目里。任务很明确:用永磁同步电机(PMSM)作为飞轮驱动电机,搭建完整的飞轮储能系统仿真模型,先把充电、待机、放电这套工况在电脑上跑通。为什么选PMSM?因为飞轮需要的就是高转速、高功率密度、低损耗。为什么非要在Simulink里搭?因为样机贵、调试周期长,仿真先行,能少烧几个变流器,也能把控制参数提前调个八九不离十。这篇文章适合三类人:给飞轮储能做预研的工程师、正在做PMSM矢量控制课程项目或者毕业设计的学生、以及想了解储能变换器系统级建模的同行。我会把整个建模思路、电机数学模型、Simulink搭建要点和调试踩过的坑都摊开讲,尽量让新手也能跟得上。

1. 先把系统架构想清楚

1.1 飞轮储能到底存的是什么能量

飞轮储能本质上是把电能转化为高速旋转飞轮的机械能,需要时再转化回电能。核心公式就一个:

E = 0.5·J·ω²

J是飞轮转子系统的转动惯量,单位kg·m²,ω是机械角速度,单位rad/s。注意是平方关系,转速提升带来的储能收益非常可观。举个具体数字:假设飞轮转动惯量J=0.2 kg·m²,如果系统的运行区间是15000rpm到30000rpm,高转速对应能量是0.5×0.2×(30000×2π/60)²,算下来大约986kJ;而15000rpm时只有约246kJ,可用能量差约740kJ。换成常用单位差不多0.2kWh。这个量级对应的是几十kW功率、几十秒到几分钟量级的应用场景。

很多人容易忽略的是“转速区间”这个概念。飞轮不能从零转速直接对外输出额定功率的能量,因为在低速段电机反电动势太低,功率变换能力有限。所以实际系统会设计“最低运行转速”和“最高运行转速”,储能容量按两个转速下的动能之差来计算,而不是按最高转速总动能计算。这一段直接决定了放电深度、控制策略和电机转速范围的选择,规划模型之前必须先定下来。

1.2 为什么飞轮驱动电机要选PMSM

把几种电机放在一起比较就清楚了:

电机类型效率功率密度高速性能控制复杂度飞轮适用性
永磁同步电机高高好中等推荐
异步电机中等中等需弱磁中等一般
开关磁阻电机中高中好较复杂常见
电励磁同步电机中等低转子损耗大复杂少

PMSM转子没有绕组,没有转子铜耗,也没有换向器和电刷,运行时损耗主要来自定子铜耗和铁耗;高转速下机械结构简单,适合用磁悬浮轴承或空气轴承配合。控制方面,矢量控制成熟度极高,几乎所有现代变流器都支持。缺点是永磁体成本高、高温可能退磁,高速时反电动势太高,有时需要弱磁控制扩展转速范围。这些缺点在飞轮储能场景里基本可以接受——飞轮系统本来就是封闭、受控的运行环境,温度场和转速区间都是设计时就定好的。

1.3 系统级能量流与仿真拓扑

飞轮储能系统的能量流是双向的。充电时,电网或直流母线通过变流器把电能送入PMSM,电机工作在电动状态,拖着飞轮加速;放电时,飞轮拖着PMSM旋转,电机工作在发电状态,动能回馈到直流母线,再通过逆变器输出给负载或回馈电网。

在Simulink里搭建时,我建议分成四个模块:飞轮与电机本体、三相逆变器、矢量控制单元、直流母线及负载。不把储能电池加进来,先把这四块跑通。变流器可以用理想开关模型,也可以用平均值模型。做控制策略研究用平均值模型更快;做波形级分析、死区分析、谐波分析才需要详细开关模型。初学建议先用平均值模型把系统工作点搞清楚,再逐步换详细模型,这样定位问题的时候不会一会儿是调制问题、一会儿是控制问题。

2. PMSM数学模型与坐标变换详解

2.1 为什么要从三相坐标变换到dq轴

PMSM定子有三相绕组,三相电压、电流都是交流量,而且相互耦合。直接在abc坐标系下写方程,系数随时间变化,控制系统设计非常麻烦。转子旋转坐标系(dq坐标系)下,三相交流量变成直流量,电机方程变成常数系数的微分方程组,PI控制器才能直接去跟踪直流参考值。

坐标变换分两步走:从abc静止坐标到αβ静止坐标(Clark变换),再从αβ到dq旋转坐标(Park变换)。

Clark变换的等幅值形式:

iα = (2/3)(ia − 0.5·ib − 0.5·ic)
iβ = (2/3)(0.866·ib − 0.866·ic)

Park变换:

id = iα·cosθ + iβ·sinθ
iq = −iα·sinθ + iβ·cosθ

这里的θ是转子电角度,不是机械角度。电角度与机械角度之间是:θe = pn·θm,pn是极对数。这个关系是仿真里最容易搞错的地方,后文我会专门讲这个坑。

2.2 dq轴下的电压方程与转矩方程

在dq旋转坐标系下,PMSM的电压方程是:

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轴电感,ψf是永磁体磁链,ωe是电角速度,等于机械角速度乘以极对数。

电磁转矩方程:

Te = 1.5·pn·[ψf·iq + (Ld − Lq)·id·iq]

对于表贴式PMSM,Ld≈Lq,转矩简化为Te = 1.5·pn·ψf·iq。这是矢量控制中“id=0”策略的物理基础:iq单独控制转矩,控制律线性,转矩和电流之间没有磁阻分量干扰。对这个化简过程心里要有数,后面调参数、看波形时才能判断异常是来自电机参数还是控制参数。

2.3 id=0控制的取舍

id=0控制的核心思想是让定子电流矢量只有q轴分量,定子磁场和转子永磁磁场完全正交,转矩只由iq决定。这种策略实现简单、转矩线性好、没有退磁风险,很多表贴式PMSM调速系统都用它。

代价呢?电压利用率较低,在高速区需要更多电压支撑,转速上限受限,弱磁能力弱。如果飞轮最高转速很高,电机反电动势大,运行时可能要考虑MTPA(最大转矩电流比)或者弱磁控制。不过对建模与仿真入门来说,id=0完全够用,先把这条链路吃透,再扩展其他策略,避免一开始就让控制算法复杂度干扰对系统行为的理解。

2.4 机械运动方程与能量平衡

飞轮电机系统的机械侧方程也必须写进模型:

Te − T_load = J·(dωm/dt)

Te是电磁转矩,T_load是飞轮上的阻力矩(轴承摩擦、风阻等),ωm是机械角速度,J是总转动惯量。这个方程体现的就是能量平衡:电磁转矩做的功一部分转化为动能,一部分克服损耗。仿真中通常把T_load设得很小甚至为0来观察理想特性,但做效率分析时必须加回来。

我曾经犯过一个错误:只搭了电机的dq方程,忘了把机械转动惯量放进去,结果转速对转矩的响应几乎瞬时完成,怎么看怎么假。机械惯量是飞轮储能的灵魂,仿真中它决定了系统的时间尺度,一定要放在模型的核心位置。

2.5 仿真用电机与飞轮参数怎么定

我给一组可以直接复制进模型做参数定义的例子,量级按中等功率飞轮储能设计:

参数符号参考值
额定功率Pn30 kW
极对数pn2
定子电阻Rs0.05 Ω
d轴电感Ld0.2 mH
q轴电感Lq0.2 mH
永磁磁链ψf0.15 Wb
总转动惯量J0.2 kg·m²
额定转速nN15000 rpm
最高转速nmax30000 rpm
直流母线电压Vdc700 V

这组参数下,电机在30000rpm时的反电动势需要考虑。最大反电动势幅值约等于ωe·ψf。ωe=2π×30000/60×2=6283rad/s,ψf=0.15Wb,乘积约942V,已经超过700V直流母线能支撑的相电压峰值。这意味着单靠id=0无法在最高转速维持额定功率,需要弱磁。仿真时如果把最高转速设低一些,比如20000rpm,这个问题就不存在。这种估算在仿真前非常值得做一次,能提前判断控制策略适用范围。

3. Simulink仿真模型搭建

3.1 整体框架与模块划分

在Simulink里新建模型后,我习惯把模型按颜色分区:灰色放电源和直流母线,绿色放逆变器,黄色放PMSM和飞轮,蓝色放控制器。层次结构上,顶层是一个包含内外环控制的完整系统;双击进去,能细看坐标变换、PI调节器、SVPWM等子模块。分层的好处是调试时能快速定位问题,也方便后续做参数扫描。

控制部分的标准结构是“转速外环+电流内环”。外环给定转速参考值,输出作为q轴电流的参考值;内环分别控制id和iq,输出dq轴电压参考值,再经Park逆变换和SVPWM调制生成逆变器开关信号。d轴电流参考值在id=0策略下直接设0。

3.2 飞轮负载模型怎么搭

飞轮对PMSM来说就是一个大转动惯量负载,在Simulink里用一条方程就能表达:Te − T_load = J·(dωm/dt)。搭建方式不复杂:用加法器做转矩差,乘以1/J,再经过积分器得到机械角速度,积分器初始条件设成初始转速对应的角速度。如果用的是Simscape电气库里的PMSM模块,机械端口接一个常数等于J也可以,两者效果一致。

但我建议自己搭一次机械方程,哪怕只搭一次。这样你会对“转矩差→角加速度→转速→位置角度”这条链上有真正的直觉,后面遇到转速积分器初值、角度反馈方向的问题时,一眼就能看出原因在哪。

3.3 逆变器模型怎么选

两类常见方案:

  1. 理想开关模型。用三个桥臂或Simscape自带的Universal Bridge搭建六管桥,输入开关脉冲,输出三相电压。这个模型最贴近实际,能看到电流纹波、谐波和死区效应,但仿真速度慢,开关毛刺也容易引起数值问题。

  2. 平均值模型。用一个受控电压源或者直接由SVPWM参考电压乘以直流母线电压作为电机端电压,没有开关过程,仿真速度快,适合控制策略验证。

我的建议是:整个飞轮储能系统先跑通、整定控制器参数时用平均值模型;等控制行为符合预期,再切换到理想开关模型,重点验证调制波波形和电流谐波。一下子上详细模型,PI参数没整定好,波形又乱又难判断是控制器问题还是开关模型问题,你会陷入无休止的试错。

3.4 坐标变换模块的搭建细节

自己搭Clark和Park变换模块,没有特殊技巧,但有几个细节值得记录一下。

Clark变换部分的输入是电机三相电流ia、ib、ic。三相合成电流通常为零,所以理论上只用两相也够,但建议三输入都保留,方便以后做不对称故障仿真。增益系数用等幅值变换系数2/3。注意等功率变换的系数是√(2/3),和等幅值不同。在控制模型里,转矩公式如果用1.5·pn·ψf·iq算,那就对应等幅值变换;如果用了等功率变换系数,转矩公式又要调整。混用会出现转矩计算和控制增益差一个倍数的诡异现象。统一用等幅值变换,转矩系数写成1.5,这是最不容易出错的一套搭配。

Park变换的θ输入必须由机械角度乘以极对数得到。拿转速信号直接乘以时间也可以等效,但不推荐——真实电机位置由转子物理位移决定,用积分器还能方便设定初始角度。具体做法:机械角速度经积分器得到机械角度,再用Gain模块乘极对数得到电角度,接入Park变换。这样初始条件设置方便,模型也符合物理直觉。

角度符号方向也要注意。转子旋转方向决定θ是递增还是递减,如果方向接反,id和iq会反转,表现为直流母线电压上不去、电流乱跳。最稳妥的办法是先做一个小测试模型:输入一组已知三相正弦电流,经过变换后检查id和iq是否恒定。转换无误后,几个微小的正余弦符号问题都能在这个环节暴露出来,比整个系统搭好后再去大海捞针强太多。

3.5 电流环与转速环的整定顺序

PI参数整定是新手最容易卡住的地方。我的顺序法如下:

第一步,先把电流环单独验证。直流母线电压固定,给定iq参考值阶跃,观察iq动态响应。电流环PI初始值可以做工程估算:期望穿越频率ωc取电气时间常数倒数附近,或取数千rad/s。简单估计可用Kp ≈ ωc·L,Ki ≈ ωc·Rs。带入前面参数,若取ωc=2000rad/s,则Kp≈2000×0.0002=0.4,Ki≈2000×0.05=100。这个值不一定准,但作为起点足够,之后在线微调。

第二步,电流环稳定后,再加转速环。转速环带宽一般取电流环带宽的1/5到1/10,内环必须比外环快得多,否则内外环耦合,系统容易振荡。

第三步,把整个飞轮系统从静止加速到目标转速,试验充电工况;再给负的负载转矩或转速下降指令,试验放电工况。

参数整定最好在Simulink中配合动态调参,一边跑仿真一边观察阶跃响应。试凑时不要同时改多个参数,每次只改一个,记录波形变化,这样你能清楚知道是哪个参数带来的影响。

3.6 求解器与离散化设置建议

PMSM电频率在20000rpm、极对数2时,电频率约667Hz。使用定步长连续求解器时,步长建议1e-6到1e-5秒;使用变步长求解器时,同样要设置最大步长上限,防止在开关瞬间自动步长过大导致数值尖峰。有经验的人会告诉你,仿真发散很大比例是求解器步长设置问题,而不是模型本身错了。

我一般这样配置:平均值模型用变步长ode45,最大步长限制在1e-5;详细开关模型用定步长ode4或ode15s,步长1e-6或更小。另外,PWM载波频率若取10kHz,一个开关周期是1e-4秒,至少要在每个开关周期里采样几十个点,否则波形是严重失真的。

4. 典型工况仿真与结果解读

4.1 充电加速工况

给一个完整流程:系统从0rpm开始,给定转速参考值20000rpm;控制器输出正向电磁转矩,PMSM加速,飞轮转速上升,飞轮动能增大。这时电机吸收电能,属于“充电”。

观察哪些量?转速曲线、id/iq电流曲线、直流母线功率曲线。正常情况下:iq在启动时受电流限幅限制,接近恒转矩加速;id稳定在0附近小幅波动;转速线性或指数上升。也可以用S函数或To Workspace记录电磁转矩瞬时值,积分得到加速过程中的能量增量,再和动能公式计算值对比,验证模型正确性。

4.2 恒转速维持工况

达到目标转速后,给定转速不变,输出转矩应为0(忽略损耗)。但理想情况不存在,飞轮在真空中仍有风阻、轴承摩擦,仿真中常给一个小的固定阻力矩,此时电机仍输出一个小转矩维持转速。这个工况对应储能系统的“待机/自放电”过程,也对应电网调频备用状态。它决定了系统在长时间待机时自放电速率,对控制策略研究来说很有参考价值。

4.3 放电回馈工况

放电时,把转速给定值突然降低到最低运行转速,比如从20000rpm降到10000rpm。控制器为了让转速跟踪下降指令,会输出负的q轴电流,电机进入发电状态,动能转化为电功率回馈直流母线。直流母线电压会有抬高趋势,若接有负载或制动单元,电压被消耗。

这个工况是飞轮储能的核心价值所在——功率双向流动。结果分析重点看三点:负向转矩是否平滑、母线电压波动幅度、从“给定转速降到最低转速”过程中释放的能量计算。如果母线电压尖峰过高,说明母线电容偏小或者放电功率请求过快,需要调整限幅或加大电容。

4.4 数据处理与效率估算

用Simulink的To Workspace模块把转速、转矩、电压电流以时间序列形式导出到MATLAB工作区,然后用脚本对时间序列做数值积分,可以得到充电功、放电功、效率等指标。

效率 = 放电功 / 充电功

由于模型里用理想开关和理想电机时损耗接近于0,效率会接近100%,这并不奇怪。真实系统效率通常70%~90%,损耗主要来自电机铜耗、铁耗、变流器导通损耗和开关损耗、轴承摩擦和风阻。仿真中可以在电机模型里人为加上铁耗电阻或阻力矩,让效率数字贴近实际。这个环节能帮你理解系统损耗分布,也能给项目汇报提供更可信的数字。

4.5 一组示例结果波形描述

以我做过的一组仿真为例:转速给定从0加速到20000rpm,电流环带宽约2000rad/s,转速环带宽约200rad/s。启动阶段iq立刻顶到限幅50A,id保持在接近0的微小波动,转速在0.5秒内近似线性爬升;到达给定转速后,iq收敛到0附近,系统进入维持状态;第1.0秒给出下降指令到10000rpm,iq反向到约−30A,转速下降,直流母线电压在700V基础上出现约15V的抬升然后回落。整个过程中,直流母线电压波动约2%,说明电容设计和工作点控制都算是合理的。类似这样的结果其实每一步都能从波形中找到对应物理含义,这就是仿真模型的妙处——所有“为什么”都有波形可查。

5. 常见问题与避坑清单(实战记录)

5.1 最容易翻车的“电角度极对数”问题

这是我第一次跑这个模型时踩过最大的坑。现象:电机能启动但转速上不去,或者电流非常大、控制器输出饱和。起因是把机械转速积分出的机械角度直接当成电角度用了。极对数为2时,电角速度是机械角速度的两倍,控制器的角度偏差直接翻倍,电流解耦完全错误。

处理办法:在积分器后用Gain模块乘极对数,再接入Park变换。同时检查角度初始速度:如果飞轮初始转速不为0(比如仿真模拟带速放电),转速积分器初始条件要设为对应机械转速换算来的初始角速度,否则初始时刻电角度突变,仿真会剧烈波动。

5.2 仿真发散和数值异常

最常见三类原因:

  • 步长太大:PMSM电频率在20000rpm、极对数2时,电频率约667Hz。定步长连续求解器步长建议1e-6到1e-5。步长过大,开关换相瞬间容易出现数值尖峰,进而NaN。
  • PI参数异常大:Kp一加大,控制输出超出母线电压限幅,系统饱和后非线性特性容易被数值积分短暂放大。
  • 初始条件不匹配:所有积分器初值不统一,第一个仿真步就产生大瞬态。

排查顺序:先把仿真器改成定步长、步长调小放在最优先;把PI参数临时缩小到理论值的十分之一,看是否稳定;最后检查积分器初值。

5.3 常见问题速查表

现象可能原因处理办法
仿真立即发散或NaN步长过大或PI参数过大步长降到1e-5以下;PI参数缩到1/10试运行
转速上升很慢电流环带宽太低提高电流环穿越频率;检查iq参考值是否饱和
id波动大不为0角度反馈错误、变换系数错误用三相对称电流测试Clark/Park;核对极对数关系
直流母线电压放电时跌落严重母线电容偏小或放电功率过大加大母线电容;降低放电功率需求
充电未完成就进入弱磁区反电动势超过母线电压支撑能力降低最高转速;改弱磁或MTPA策略
效率看起来异常高简化模型未含损耗人为添加阻力矩和铁耗元件

5.4 调试时的“先开环、后闭环”策略

一个很有效的调试技巧:先把整个控制器旁路,电机用恒频恒压三相交流源直接驱动,让它“硬启动”。看看电机能否转起来、三相电流是否正常、位置角是否正确反馈。开环能转,才能相信闭环里PI调节器输出的指令方向正确。

做完开环再看闭环:先只通电电流环,给定一个小iq值,验证电流跟踪能力;然后慢慢加大iq和转速外环。这个分层调试习惯,比一次堆叠整套系统后大海捞针排查快得多。

我在项目里还习惯在Simulink模型里加“调试开关”子系统,比如一键断开转速环、一键限幅输出。用Switch模块就能做。把这类开关常驻模型,后续做参数扫描、控制器切换就能节约大量时间。

5.5 参数敏感性的一点体会

调PI参数时你会发现,电流环参数对电感值很敏感,转速环参数对转动惯量很敏感。实际电机电感和磁链并非恒定,尤其是高转速下磁链会因温度变化和饱和效应而偏移。仿真里可以把Ld、Lq、ψf设成转速或者电流的函数,看看系统在参数偏移时是否还能稳定。这个步骤虽然简单,但对判断控制策略鲁棒性很有帮助,推荐在基本工况跑通后做一次。

就我个人实际体会,飞轮储能系统的Simulink仿真,真正的难点其实不在电机方程,也不在积分器搭法,而在把“系统”两个字想清楚——从能量流、控制带宽、电压约束到仿真数值稳定性,每一层都会有隐藏的耦合关系。PMSM与飞轮这个组合,恰好是所有环节中最直观、也最能体现“机电一体”的部分。如果这篇文章能帮你少走一点弯路,比如不再把机械角度和电角度搞混,或者知道先跑平均值模型再换开关模型,那就算我这份经验没白写。后续如果要继续深入,建议往磁悬浮轴承建模、弱磁控制策略、多机并联调频这几个方向扩展,原理和工具都是相通的。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进