ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

飞轮储能系统建模与Simulink仿真:永磁同步电机控制全解析

飞轮储能系统建模与Simulink仿真:永磁同步电机控制全解析 飞轮储能这名字听起来有点硬核但说白了就是把电能变成“转起来的动能”存起来等需要的时候再变回电。这中间承担能量转换重任的就是一台永磁同步电机PMSM它在充电时当电动机用放电时当发电机用。今天这篇文章我就围绕飞轮储能系统的建模与Simulink仿真把从原理到实操再到调试踩坑的完整过程讲透。不管你是刚接触储能方向的在校学生还是准备做飞轮储能预研的工程师这篇文章都能给你一条可以照着走的路线。先交代一下背景。飞轮储能系统Flywheel Energy Storage System FESS的原理很直观给飞轮一个力矩让它越转越快能量就以动能形式存起来需要放电时让飞轮反过来拖着电机转动能又变回电能。整个过程不涉及化学反应循环寿命长、功率密度高、响应速度快在电网调频、UPS瞬间支撑、轨道交通再生制动回收这些场景里很有优势。而永磁同步电机因为效率高、功率密度大、控制精度高是目前飞轮储能驱动系统的主流选择。这篇文章的主要内容分六块能量逻辑与选型、控制原理、Simulink建模实操、参数整定与结果分析、常见问题排查、以及工程扩展方向。我会尽量把“为什么这么做”讲清楚而不是光给你一堆模块截图。1. 飞轮储能系统的能量逻辑与选型依据1.1 飞轮储能的工作原理与能量计算飞轮的储能公式是高中物理就学过的转动动能公式但工程上真正用起来还是有不少门道。飞轮储存的动能 E 0.5 × J × ω²其中 J 是飞轮转动惯量kg·m²ω 是旋转角速度rad/s。从公式能看出两个重要结论一是能量跟转动惯量成正比二是能量跟转速的平方成正比这意味着提升转速比增加质量带来的收益大得多。所以现代飞轮储能都在拼命往高速化走从几千转做到几万转甚至十万转以上。但飞轮不可能从零转速一直放到零转速实际可用能量是E_usable 0.5 × J × (ω_max² - ω_min²)其中 ω_min 是系统允许的最低工作转速。这个下限怎么定取决于电机控制器的工作范围、变流器的电压约束以及系统的效率要求。通常飞轮的放电深度DoD在60%到80%之间也就是最低转速约是最高转速的60%左右。举个例子说明假设飞轮最高转速是12000 r/min对应角速度约1256 rad/s如果最低转速取7200 r/min对应约754 rad/s那可用能量就只有总储能的1-0.3664%左右剩下36%的能量是“取不出来”的设计时必须提前算好。转怠惯量 J 怎么定它由飞轮的几何形状和材料密度决定。实心圆柱体的转动惯量公式是 J 0.5 × m × r²m 是质量r 是半径。如果目标是储能量可以先根据 E_usable 要求和转速范围反推出需要的 J 值再反过来设计飞轮形状和材料。注意高速飞轮的设计特别要考虑材料强度。转速越高飞轮边缘的拉应力越大。碳纤维复合材料强度高、密度低是目前高速飞轮的主流材料但成本高、制造工艺复杂高强度钢虽然便宜但能承受的线速度有限。仿真阶段可以先用一个简单的 J 值代替但心里要清楚真实飞轮的强度约束。1.2 系统整体架构与关键部件飞轮储能系统不是“一个电机一个铁轮子”那么简单。完整的系统指标包含以下部分飞轮转子储能介质决定系统储能上限。电机实现电能和机械能的双向转换。这里用永磁同步电机。双向变流器一般由AC/DC电机侧逆变器和DC/DC网侧变换器组成或者直接用背靠背结构。轴承系统普通机械轴承摩擦损耗大高速飞轮多采用磁悬浮轴承备用机械轴承方案。真空腔体降低空气阻力损耗。高速飞轮如果不抽真空风阻损耗会大到无法接受。控制系统包括转速环、电流环、SVPWM调制、以及充放电模式切换逻辑。在仿真阶段我们重点关注的是电机本体、逆变器、控制器、飞轮转动惯量。轴承采用一个阻尼系数 B 来等效摩擦损耗真空环境在仿真里可以简化成忽略风阻或者也折算到阻尼系数里。1.3 为什么用永磁同步电机而非异步电机这是很多初学者问的问题。飞轮储能对电机的要求核心有三条效率高、功率密度高、调速范围宽。永磁同步电机用永磁体代替励磁绕组没有转子铜耗效率通常能到95%以上这点非常关键。飞轮储能充放电本身就有效率损失如果电机再损失一块整个系统的往返效率会很难看。再说功率密度。飞轮要做到高转速电机转子必须承受巨大的离心力。永磁体转子可以做成细长型配合高强度的护套碳纤维绑扎能支撑很高的线速度。异步电机转子是绕组加硅钢片机械强度受限同样的体积和重量做不出那么高的转速和功率。最后是控制性。永磁同步电机采用矢量控制之后转矩响应非常快电流环带宽可以做到几百赫兹到上千赫兹这对飞轮储能要求的毫秒级功率响应非常契合。异步电机磁场定向控制也可以做到不错但在低速大转矩和效率优化上PMSM优势更明显。实际操作中有些项目还会用开关磁阻电机或者感应电机做飞轮驱动但绝大多数商用高速飞轮系统用的都是永磁同步电机。这块没太大悬念选择PMSM是对的。2. PMSM控制系统仿真建模的核心思路2.1 永磁同步电机在dq坐标系下的数学模型要做仿真第一步是建立电机的数学模型。三相静止坐标系下的PMSM方程是时变的处理麻烦工程上通常转化到dq旋转坐标系让正弦量变成直流量控制起来就像控制直流电机一样。PMSM在dq坐标系下的电压方程u_d R_s × i_d L_d × (di_d/dt) - ω_e × L_q × i_qu_q R_s × i_q L_q × (di_q/dt) ω_e × (L_d × i_d ψ_f)电磁转矩方程T_e 1.5 × p × [ψ_f × i_q (L_d - L_q) × i_d × i_q]机械运动方程J × (dω_m/dt) T_e - T_L - B × ω_m其中 R_s 是定子电阻L_d、L_q 是dq轴电感ψ_f 是永磁体磁链p 是极对数ω_e 是电角速度ω_e p×ω_mB 是阻尼系数T_L 是负载转矩。对于表贴式永磁同步电机SPMSML_d ≈ L_q转矩方程简化成T_e 1.5 × p × ψ_f × i_q这意味着转矩和 i_q 严格成正比控制思路非常清晰直轴电流 i_d 维持为0交轴电流 i_q 直接控制转矩。内置式PMSMIPMSM有磁阻转矩成分控制策略通常配合最大转矩电流比MTPA和弱磁控制复杂度更高。仿真建模的第一步就是把上述方程在Simulink里搭出来或者直接用MATLAB自带的PMSM模块在Simscape Electrical的Machines库中后者能省不少事还能直接连着三相桥一起仿真。我实际做项目时前期快速验证控制算法用自带模块后面做电机本体特性专项研究时才会自己搭d-q模型。2.2 矢量控制FOC的整体框架飞轮储能PMSM的控制策略绝大多数采用id0的转子磁场定向矢量控制。整体框架是典型的“转速外环、电流内环”双闭环结构。转速外环给定转速 n_ref 与实际转速 n_fb 做差经过转速PI控制器输出 q 轴电流给定 i_q_ref。充电时i_q_ref为正值产生加速转矩放电时i_q_ref为负值产生制动转矩能量回馈到直流母线。电流内环按照电机电压方程设计。q轴电流PI输出得到 u_q_refd轴电流PI输出得到 u_d_ref。经过反Park变换得到 αβ 轴电压再送进SVPWM调制输出六路PWM波控制三相逆变器。为什么用转速外环而不是直接给功率指令因为飞轮储能的本质就是控制飞轮的转速来存储或释放能量。转速和储能状态直接对应所以把转速作为被控量最直观。当然实际工程中电网调频等应用需要的是功率控制那时会在转速环外面再加功率环或者在内部做功率折算这里先不发散。双闭环PI参数整定逻辑电流环响应最快带宽一般取1-2kHz比例增益由电机电感和采样周期决定转速环带宽相对较慢通常取电流环带宽的1/10到1/5避免两个环互相干扰。2.3 SVPWM调制与坐标变换细节SVPWM空间矢量脉宽调制是PMSM矢量控制的标准PWM方案。相比SPWMSVPWM的直流母线电压利用率更高可提高约15.5%谐波畸变率也更低。SVPWM的原理稍微复杂但关键步骤就那么几个判断参考电压矢量所在扇区、计算相邻基本矢量的作用时间、计算各相占空比、生成PWM。仿真实现可以用MATLAB/Simulink的SVPWM库函数也可以自己搭逻辑。我的建议是如果你想搞清楚底层的调制细节至少手搭一次SVPWM模块。搭的过程中重点检查扇区判断注意角度换算后要在 0-2π 或者 -π 到 π 之间正确映射作用时间计算注意公式里反三角函数和除法操作在边界条件比如某些分量为零下会不会出NaN过调制限制当合成矢量超过六边形内切圆时需要对作用时间做归一化限幅否则输出电压会出现畸变。我见过不少新手在SVPWM上踩坑最常见的问题就是扇区判断的边界条件写错导致电流波形出现周期性畸变。建议在仿真里先给定一个固定电压矢量对比SVPWM输出和理论值确认无误后再接入闭环。3. Simulink仿真平台搭建实操3.1 仿真平台搭建前的准备工作做飞轮储能系统仿真首先确认MATLAB版本。我用的R2022bSimulink和Simscape Electrical的模块库比较全能直接找到PMSM、三相桥、SVPWM等模块。如果版本太旧有些模块名称和位置会有差异需要手动查找。建议单独建一个工程文件夹把以下东西理清楚主仿真模型.slx初始化参数脚本.m数据记录与绘图脚本.m不同工况的仿真配置写入脚本里用变量控制为什么要单独用脚本初始化参数因为飞轮储能系统的参数太多了电机参数、控制器参数、飞轮参数、母线电压、指令值全部堆在模型里难以维护。项目做大了之后改成脚本管理参数能让你快速切换不同工况做批量仿真。3.2 电机与逆变器主电路建模主电路采用如下拓扑直流母线电压 V_dc→ 三相两电平逆变器 → PMSM。如果你后面要加双向DC/DC可以在母线前端接Buck/Boost电路。具体操作步骤打开Simulink新建空白模型。从 Simscape Electrical Specialized Power Systems 库中拖入“Permanent Magnet Synchronous Machine”模块。双击模块填入电机参数定子电阻 R_s、d/q轴电感 L_d/L_q、永磁磁链 ψ_f、极对数 p、转动惯量 J这里填电机转子的实际系统还要再加上飞轮的J或者把飞轮J值加到模块里。从 Specialized Power Systems Power Electronics 中拖入“Universal Bridge”选择“Three-phase”power electronic device选“IGBT/Diodes”导通电阻和缓冲电路按默认即可。用“DC Voltage Source”接在Universal Bridge直流侧电压值根据实际系统设定比如500V。Universal Bridge的PWM信号输入端接到SVPWM模块的输出。这里有个容易犯的错误PMSM模块的机械端口需要接一个负载或者传感器来测量转速和转矩别让机械端口悬空。一般接一个“Machines Measurement Demux”用来输出转速、电磁转矩、转子角度等信号同时在这个端口上可以并联一个转动惯量模型用常数模块加积分器模拟飞轮或者直接用电机模块内部参数设定。3.3 飞轮机械系统建模飞轮机械系统的建模有两种方式方式一直接把飞轮转动惯量合并到电机模块的J参数里。这种方式最简单适合前期验证控制算法。电机转动惯量加上飞轮惯量就是总惯量阻尼系数也可以直接填进模块。方式二单独建模。用“Mechanical Reference”加质量块“Inertia”模拟飞轮用“Rotational Damper”模拟轴承损耗。这种方式的优势是以后可以加入轴的扭转弹性、磁轴承的刚度特性等做更深层的机械动态研究。我在做课题时前期用的是方式一简单直接。后面要分析轴系振荡和磁轴承控制时再拆开建模。仿真阶段给出具体参数示例飞轮惯量 J_flywheel 0.5 kg·m²电机转子惯量 J_motor 0.005 kg·m²总惯量 J_total 0.505 kg·m²阻尼系数 B 0.001 N·m·s对应机械轴承的等效摩擦把这些参数填到PMSM模块的轴参数里或者单独建模模块里机械部分的建模就完成了。3.4 控制系统建模与双闭环搭建控制系统是整个飞轮储能仿真最核心也最容易出错的部分。下面按模块序列说明。转速外环从PMSM模块输出测量出机械转速rad/s或r/min和转速参考值做差误差送入PI控制器。PI输出作为q轴电流给定注意加饱和限幅防止电流过大。限幅值由电机额定电流决定比如额定电流20A限幅设为±25A。电流内环d轴d轴电流参考值设为0实际i_d由测量模块输出做差后进PI控制器输出u_d_ref。注意要加上解耦项-ω_e × L_q × i_q否则高速时d/q轴电流会互相干扰。电流内环q轴q轴电流参考来自转速环输出实际i_q做差后进PI控制器输出u_q_ref。同样要加解耦项ω_e × (L_d × i_d ψ_f)。解耦项非常重要。很多新手搭完FOC发现转速高了之后电流环响应变差实际就是没做解耦。高速时反电动势很大不解耦的话q轴的扰动会直接影响到d轴电流控制效果会很差。仿真阶段把解耦项加上后面做实验就少踩一个大坑。坐标变换从PMSM测量模块取得三相电流 i_a、i_b、i_c可以只测两相第三相由基尔霍夫定律算出经过Clark变换得到 i_α、i_β再经过Park变换需要转子角度 θ_e得到 i_d、i_q。SVPWM模块输入是 u_α_ref、u_β_ref由u_d_ref、u_q_ref反Park得到和直流母线电压 V_dc输出六路PWM信号连接到Universal Bridge的Pulse端口。充放电模式切换用一个简单的逻辑模块实现。给定一个转速目标序列在0~2s充电升速2~4s保持4~6s放电降速。转速参考值由Signal Builder或者阶跃信号组合生成这样就能在同一个模型里观察到充、放、保持三种工况。4. 仿真参数整定与结果分析4.1 电机与控制器关键参数设定这里给一组可以直接用在仿真里的参数示例表贴式PMSM参数符号数值额定功率P_n10 kW额定转速n_n12000 r/min极对数p2定子电阻R_s0.05 Ωd轴电感L_d0.35 mHq轴电感L_q0.35 mH永磁磁链ψ_f0.12 Wb电机转子惯量J_m0.005 kg·m²飞轮惯量J_fw0.5 kg·m²直流母线电压V_dc500 V额定电流I_n20 A根据这些参数反电动势系数 K_e ψ_f × ω_e在12000 r/min时电角速度 ω_e 2×π×200×2 ≈ 2513 rad/s反电动势峰值约 ψ_f×ω_e 0.12×2513 ≈ 301.6 V。注意这里算的是相峰值直流母线500V考虑SVPWM电压利用率后足够驱动电机到额定转速说明参数合理。PI参数整定建议先用公式算初值再在仿真中微调电流环PI比例增益 Kp_i ≈ (L_d_or_q) × BW_iBW_i取电流环带宽rad/s积分增益 Ki_i ≈ R_s × BW_i。例如取电流环带宽 2000 rad/s约318 Hz则 Kp_i ≈ 0.00035×2000 0.7Ki_i ≈ 0.05×2000 100。转速环PI转速环带宽取电流环的1/10即200 rad/sKp_n ≈ J_total × BW_n / (1.5×p×ψ_f)这里算出来约为 (0.505×200)/(1.5×2×0.12) ≈ 280.6Ki_n ≈ BW_n/10 左右做初值再观察转速阶跃响应微调。4.2 充电工况仿真结果解读充电过程的参考转速给一个斜坡或者阶跃信号比如从0加速到12000 r/min。观察以下结果电流波形启动阶段 i_q 会迅速上升到限幅值附近电机以最大转矩加速这叫恒转矩加速区。随着转速升高反电动势增加电流环的电压输出接近饱和此时如果继续升速就需要弱磁控制绕开这个就是只在额定转速以内做恒转矩控制。转速波形理想情况下转速线性上升斜率由 J_total 和电磁转矩决定。转速上升斜率 dω/dt T_e/J_total。如果 i_q限幅25A最大电磁转矩 T_e_max 1.5×2×0.12×25 9 N·m则加速度约 17.8 rad/s²也就是从0到12000 r/min约1256 rad/s需要约70秒。这个数很有意思如果你在仿真里看到飞轮转速上升特别慢不要觉得是模型错了而是大惯量系统本来加速时间就长。实际项目中飞轮储能充放电通常按分钟计算和电池的充电速度完全不是一个量级。母线电流充电时母线电流为正能量从直流侧流入电机。注意观察母线电压的波动如果母线电压跌落过大说明直流侧等效阻抗太高或者电压源容量不足需要加大母线电容。4.3 放电工况仿真结果解读放电过程就是转速参考值从高转速降到低转速转速环输出负的 i_q_ref电机产生制动转矩能量回馈到直流母线。关键观察点母线电压会不会泵升。正常情况下放电时电机把动能转成电能回馈到母线如果直流侧没有吸收能量的负载母线电压就会上升。仿真里如果看到 V_dc 明显升高说明没有给回馈能量安排去处。解决方法是加一个电阻负载并联在母线上或者再接一个DC/DC把能量送给电网/负载。这里有个仿真细节Universal Bridge 里面的开关管是IGBT加反并联二极管。放电时能量通过二极管回馈到母线这是正常路径。但如果你的母线电压源是理想电压源回馈的能量会被电压源吸收母线电压不会升高这其实掩盖了真实系统的母线电压泵升问题。建议在仿真里加一个等效的母线电容和负载电阻才能看到真实的电压动态。4.4 充放电切换过程分析用Signal Builder设置一个完整周期0-70秒充电升速到12000 r/min保持20秒然后90-160秒放电降到7200 r/min。重点观察切换瞬间振荡问题切换瞬间转速误差方向突变电流环和转速环会经历一个过渡过程。如果PI参数整定不好可能出现转速过冲、电流振荡。常见处理办法是给转速环输出加变化率限制rate limiter让电流给定变化更平滑。恢复时间从充电切到放电理想情况下电流方向在几个毫秒内反向转速拐点平滑。如果恢复时间太长说明转速环带宽太低或者积分饱和了。检查PI控制器的积分是否设置了抗饱和anti-windup。5. 常见问题与排查技巧实录做仿真这几个月我把遇到过的典型问题整理成了这个表格照着检查能省很多时间。问题现象可能原因排查与解决办法仿真报错“步长不稳定”或出现NaN电流环PI参数太大数值发散减小Kp先让电流环单独仿真稳定后再接转速环转速爬升缓慢电流限幅设置太小或J设定过大检查i_q_ref是否到达限幅值复核J_total是否正确三相电流波形不对称Park/Clark变换方向、角度符号不对检查转子角度反馈极性确认θ_e是否按电角度计算乘极对数母线电压在放电时飙升直流侧没有能量吸收通路加母线电容或在母线上加负载电阻/DC/DC负载SVPWM输出没有波形PWM载波频率设置过低或死区时间过大载波频率建议10kHz-20kHz死区1-5微秒转速过冲严重转速环P过大或积分饱和加转速环输出限幅和变化率限幅启用抗饱和启动瞬间电流尖峰初始角度不对或初始电流反馈未归零确保Park变换初始角度与转子位置一致启动阶段电流环输出从零开始放电时完全没回馈能量转速参考值不下降或i_q_ref被限幅为正检查充放电逻辑确保转速误差能产生负的i_q_ref特别要说的一个坑是主电路和控制系统间的离散/连续混合问题。Simulink里PMSM模块和Universal Bridge属于Simscape电气域PWM信号是Simulink域两者之间需要用电信号转换接口PS-Simulink Converter 和 Simulink-PS Converter。很多新手在这个接口上遇到报错“Cannot connect Simulink signal to physical signal”就是没用转换模块。仿真步长的选择也很关键。建议最大步长设为载波周期的1/10以下。如果PWM载波是10kHz周期100微秒最大步长建议不超过10微秒否则PWM波形会很粗糙电流纹波也看不准。仿真时长到几百秒时步长小会导致仿真时间非常长这是正常的可以按需把Simulink solver切换到固定步长并适当调大但结果精度要打折扣。另一个值得说的是饱和限幅。电流环输出直接接电压指令如果PI输出超过逆变器能输出的最大电压受限于母线电压就会出现控制器饱和。仿真里要加饱和模块并确保饱和之后的信号是平滑的否则可能会出现极限环振荡。6. 从仿真到工程可扩展方向6.1 弱磁控制在飞轮储能中的必要性前面提到恒转矩加速只能到额定转速。飞轮储能为了提高储能密度工作转速往往要超过额定转速进入弱磁区。弱磁的本质是通过负的 i_d 来削弱气隙磁场从而在电压受限的情况下继续提升转速。如果要在仿真中加入弱磁做法是根据当前转速估算反电动势当反电动势接近电压极限时自动调节 i_d_ref 从0往负方向变化。常见的弱磁策略包括查表法、公式法、以及基于电压反馈的自动弱磁。对飞轮储能这种需要频繁充放电循环的系统弱磁策略的切换必须平滑否则切换瞬间的转矩波动会让飞轮轴系承受很大的冲击应力。6.2 损耗模型与温升估算仿真模型里把电机效率当成100%是够用的吗这取决于你研究什么。如果关心系统的往返效率就必须加入铜损、铁损、机械损耗模型。铜损好算I²R铁损可以用磁滞和涡流损耗模型近似机械损耗包括轴承损耗和风阻损耗。把这些损耗加进仿真后你就能准确评估飞轮储能系统从“电网取电→电机加速→保持→回馈”这个完整循环的来回效率。我实际跑下来典型的高速飞轮储能系统循环效率一般在85%-92%之间取决于待机时间长短如果仿真里发现效率超过95%那八成是损耗模型没加全。6.3 与电网互联的整系统扩展再往前走一步就是飞轮储能作为一个储能单元并入微电网或者配电网做调频。这时PMSM控制只是内环外环要加功率控制器网侧要加AC/DC变流器仿真范围从电机本体扩展到整个变流系统。Simulink里有很好的microgrid库用例你可以拿它做起点把飞轮储能模型封装成一个子系统挂上去研究飞轮参与调频时对电网频率的动态支撑效果。这是我给后续研究生的建议方向不要停留在“飞轮本体控制好”这一层要多想想飞轮储能在整个电力系统里扮演什么角色。6.4 S-Function与代码生成如果你在公司做产品预研最后肯定要把仿真模型跑成C代码部署到DSP或者FPGA上。Simulink模型本身可以做C代码生成但有一些限制PMSM模块这类Simscape电气域模块不支持原生代码生成需要换成自己写的电机方程S-Function或者基于方程搭建的纯Simulink模型。这块建议提前规划如果目标是代码生成从一开始就用纯Simulink域建模避免后面推倒重来。最后谈几点实操体会仿真做久了就会发现飞轮储能系统建模最难的不是某一个模块而是把机械、电气、控制三个领域耦合在一起的能力。你既要懂飞轮的力学特性又要懂电机的电磁关系还要懂控制器的动态响应。真正跑通一个模型不难难的是每个环节你都心里有数知道哪个参数的改动会带来什么连锁反应。做这个课题这段时间我最大的体会是先从整体框架入手再逐个击破难点别一开始就陷进某个细节里。把双闭环FOC再加上飞轮的大惯量特性跑通你已经超越了90%的初学者。后续如果要做实验先用仿真把PI参数和极限工况跑熟能减少大量现场调试时间这也是仿真的核心价值所在。
返回列表