ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

ADPSS直驱风电机组单机建模:跟网型与构网型控制仿真指南

ADPSS直驱风电机组单机建模:跟网型与构网型控制仿真指南 1. 建模前的思路梳理为什么要建单机模型以及建到哪里为止直驱风电的仿真建模在ADPSS平台上做单机模型看似是个“小任务”但牵扯到的问题一点都不少。我见过太多人一上来就直接拖元件结果模型库版本不匹配、封装接口对接不上、控制器参数跟不上下发步长最后卡在一个莫名其妙的报错上浪费一整天。所以先说清楚这份指南做的是什么事在ADPSS里搭一个完整的直驱风电机组单机模型包含风轮机、永磁同步发电机、背靠背变流器、跟网型控制策略和构网型控制策略并完成机电暂态与电磁暂态的仿真验证工作。这里有个关键问题需要先想明白单机模型到底建到哪一级粒度ADPSS支持纯机电暂态和机电-电磁混合暂态两条路线单机直驱风机通常会落在两条路线的交叉点。做电网稳定性分析只需把风机等值为一个负阻抗特性的电源模型用机电暂态宏观特性就够了但如果要研究变流器控制器的动态响应、直流母线电压波动、电网电压跌落时的穿越行为就必须上电磁暂态模型把IGBT的通断、滤波电感的电流纹波、直流电容的充放电过程都描出来。所以建模前先确认你的研究目标这会直接决定模型库选型、仿真步长和接口封装的深度。第二个需要明确的是ADPSS的仿真模型和实际物理风机之间始终存在一个“等值边界”的问题。实际一台直驱风机风轮机直径上百米叶轮转动惯量巨大齿轮箱——直驱机组其实没有齿轮箱叶轮直接驱动发电机转子这反而简化了建模过程。机械系统的惯性时间常数和电气系统的控制时间常数相差好几个数量级电磁暂态仿真里如果按真实转动惯量去算仿真步长会被机械动态拖慢完全跑不动。所以单机模型的构建思路通常是机械部分和电气部分解耦处理风轮机用两质量块或者等效单质量块模型描述发电机和变流器用详细电磁模型两者之间只通过转矩和转速交互。平台的配置上ADPSS仿真所需的硬件资源取决于你是单机调试还是多机并行。直驱风机的单机电磁暂态模型节点数一般不会超过几十个一台高性能工作站就能跑但如果后续要扩展成整个风电场的等值模型几十台甚至上百台机组并联那就要考虑划分到多个计算核心并行执行。我的建议是建模阶段先按单机配置把模型跑通验证结果没问题了再考虑扩容不要在建模初期就配置大规模并行环境那样只会增加调试难度。2. ADPSS环境下的模型搭建从基础元件到整体封装2.1 基础工具准备模型库、步长设定与接口方式ADPSS的操作逻辑和PSCAD、MATLAB Simulink不太一样它是一个以母线为骨架的建模环境。你搭建的每一个电气元件都必须连接在母线上元件的输入输出信号通过虚拟连接传递而不是像Simulink那样用信号线直接拖拽。所以第一步不是画图而是先理清母线结构和连接关系。一台直驱风机的典型母线结构并不复杂风机出口母线、机端变压器高压侧母线、汇集线路母线三到四段就够了。元件库方面直驱风机建模需要用到的主要有永磁同步发电机模型、三相两电平电压源型变流器模型、直流电容模型、滤波电感与变压器模型以及风速模型和桨距角控制模型。ADPSS的元件库版本不同封装名称会有差异有些老版本里PMSG模型叫“永磁直驱发电机”新版本则可能归类到“新能源发电-直驱风电”目录下。建议动手前先翻入库手册把元件名称确认一遍免得在库里找半天找不到。仿真步长的设定直接决定了模型能跑到什么精度。ADPSS电磁暂态计算步长一般设为50微秒即20kHz的采样频率这个精度对直驱风机的变流器控制来说已经足够IGBT开关频率通常在2kHz到4kHz50微秒步长能够保证状态量更新和控制指令下发之间至少有几个计算周期间隔。机电暂态的步长则可以放宽到10毫秒甚至20毫秒但要注意如果你的模型里同时存在机电和电磁暂态部分接口交互周期的设定就非常关键典型做法是电磁暂态的仿真结果每200个步长送一次给机电暂态模块作为等效电源参数机电暂态的机械功率同样按这个频率刷新。2.2 永磁同步发电机的等效参数从铭牌到标幺值拿到一台真实风机的技术参数我建议用标幺值系统录入模型。ADPSS内部计算都是以标幺值为基础的如果你用有名值录参数很容易出现量纲错误尤其是转速和转矩的参数出错后极难排查。永磁同步发电机需要录入的参数包括额定容量、额定电压、额定频率、极对数、定子电阻、直轴同步电抗、交轴同步电抗、永磁磁链、转动惯量和阻尼系数。以一台典型的2MW直驱风机为例额定容量2MVA额定电压690V频率50Hz极对数为32对。这些参数里最容易踩坑的是磁链参数模型库里提供的是永磁磁链的标幺值还是有名值不同版本规定不一样。我自己一般会做一次“空载特性校验”给发电机模型一个额定转速不加负载看机端电压是否等于额定电压。这个只花五分钟的校验能避免后面整个控制系统调试时的无效排查。ADPSS里发电机的参数录入格式和PSCAD的PMSG模型几乎一致但要注意转动惯量的单位。有些模型库要求用kg·m²有些要求用秒表示惯性时间常数两者换算关系是惯性时间常数等于转动惯量乘以额定角速度的平方再除以额定容量。2MW的机组转动惯量大约在2000kg·m²量级换算出来惯性时间常数大概在1.2秒左右。录入完成后我习惯先单独跑一个空载转速上升的测试确认机组从静止加速到额定转速的动态过程合理再接入变流器网络。2.3 背靠背变流器建模整流侧与逆变侧的分工直驱风机的背靠背变流器由发电机侧整流器和电网侧逆变器组成中间通过直流母线电容连接。发电机侧变流器的主要任务是控制发电机转速实现最大风能追踪电网侧变流器的主要任务是控制直流母线电压稳定并向电网输出有功无功功率。这两个控制目标在数学模型上是解耦的分别由两个控制器实现但在ADPSS建模时必须注意两侧变流器共用一个直流电容任何一侧的动态波动都会通过直流母线传导到另一侧这就是为什么直流电容的参数必须留足裕量。变流器的电气模型ADPSS元件库里通常提供平均模型和详细开关模型两种选择。平均模型用受控电压源代替变流器不考虑IGBT的具体开关过程计算速度快适合控制策略验证详细开关模型把六个IGBT和反并联二极管全部建模能够精确模拟开关暂态和谐波特性但计算量大得多仿真步长也要缩小到20微秒左右。我个人的经验是跟网型控制策略研究用平均模型就足够了构网型涉及电压源行为模拟用平均模型也能较好反映外特性但如果要写谐波分析相关的论文就必须上详细开关模型。直流电容的取值有一个经验公式电容的储能要满足在半个工频周期内维持直流电压波动不超过额定值的10%。2MW直驱风机的直流母线电压一般在1100V到1200V之间电容值大致取10毫法到15毫法。实际调参过程中我发现电容值取大一些能有效缓冲电网侧扰动对发电机侧的冲击代价是直流电压动态响应变慢构建网型控制时尤其要注意这个矛盾。3. 跟网型控制策略的具体实现锁相环、电流内环和功率外环3.1 控制系统层级划分与ADPSS中的接口封装要求跟网型控制策略是当前并网风电机组的主流控制方式它的本质是让变流器去“跟随”电网电压的幅值和相位通过调节输出电流来控制有功和无功功率。整个控制逻辑分三层功率外环计算给定电流指令电流内环快速跟踪电流指令锁相环为控制系统提供电网电压的实时相位参考。三层控制之间的时间尺度差异很大功率外环的时间常数在几十毫秒量级电流内环在几毫秒量级锁相环的动态响应也在十毫秒左右。在ADPSS中实现时需要把控制算法封装成自定义模块通过ADPSS的接口把电气量测量值送入控制模块再把控制模块输出的调制波信号送回到变流器的开关逻辑中。这里要特别提醒的是ADPSS的接口延迟问题。电磁暂态仿真中控制信号的采集、传递和返回都有固定延迟通常是几个计算步长。如果电流内环的PI参数按理论计算值设置得过快实际仿真中会因为接口延迟产生振荡。我的经验是电流内环的比例系数比理论值折减20%到30%积分系数也相应调慢这样既保证了跟踪速度又避免了离散化振荡。这个细节在纯数学仿真的软件里体会不到只有在ADPSS这种电磁暂态实时仿真平台上才会暴露出来。锁相环的实现方式ADPSS元件库里有现成的三相锁相环模块可以直接调用。但直驱风电场景下电网电压会因故障发生跌落和相位突变标准锁相环在此时动态响应偏慢甚至可能失锁。所以我在单机模型里通常采用带前馈补偿的改进型锁相环把电网电压正序分量的幅值和相位作为前馈量加入锁相环的控制通道显著提升电压不对称工况下的相位跟踪能力。具体修改方式是在锁相环的PI输出后增加一个前馈加法器前馈量来自正序电压提取模块ADPSS里面可以用对称分量法元件实现正序分量的在线计算。3.2 最大风能追踪控制功率外环的输入如何产生直驱风电的功率外环本质上是一个最大风能追踪控制器。不同风速下风轮机的最佳转速不同最佳叶尖速比通常在8到10之间。控制器根据实时风速计算最优转速指令然后通过发电机侧变流器的转矩控制来实现转速跟踪。风速信号在ADPSS里面有两种输入方式一种是用阶跃风速信号做定值测试另一种是用实测风速序列文件做动态响应分析。风速模型本身也是建模的一部分。ADPSS里有风速发生器元件可以模拟基本风、阵风、渐变风和随机风对于控制器设计和参数整定来说我建议先用阶跃风速和阵风测试把控制器的动态响应调到满意再做随机风速扰动下的统计特性分析。阶跃风速测试能直观看到转速跟踪是否存在超调阵风测试能评估转速控制器的抗扰能力。功率外环的输出是发电机转矩指令转矩指令除以永磁磁链就得到q轴电流指令。这里需要注意2MW风机的电磁转矩数值很大如果在ADPSS里用有名值传递信号很容易出现数值溢出我建议控制系统内部统一用标幺值传递。具体操作是在ADPSS接口环节增加标幺值转换模块V/Vbase和I/Ibase这样的除法模块即可设置好基准值后整个控制链路的数值范围都在[-1.2, 1.2]区间内调试起来清晰得多。3.3 电流内环与调制策略双闭环控制的参数整定经验电流内环控制是跟网型控制的核心调节对象是发电机侧变流器的定子电流d轴和q轴分量。直驱永磁同步发电机在d-q旋转坐标系下的电压方程为Ud Rs·Id Ld·dId/dt - ωe·Lq·Iq Uq Rs·Iq Lq·dIq/dt ωe·Ld·Id ωe·ψf其中ωe是电角速度ψf是永磁磁链。电流内环采用PI控制器输出补偿项加上前馈解耦项后形成最终的d轴和q轴电压指令。ADPSS中可以用传递函数元件实现PI控制器也可以用自定义C语言模块实现我更推荐用后一种方式因为可以方便地加入限幅、抗积分饱和等复杂逻辑。电流内环PI参数的整定标准方法是根据电流环的带宽要求来计算带宽设为500Hz时比例系数Kp等于带宽乘以d轴电感积分系数Ki等于Kp除以电流环时间常数。实际调试时我是先只加比例控制不加积分让电流稳态存在小误差但不振荡然后逐步增加积分系数观察电流阶跃响应是否有超调超调量控制在5%以内为合格。整套参数整定过程我在ADPSS里大概需要重复十几次每次修改参数后跑一次0.05秒的阶跃测试用波形对比的方式判断效果。调制策略上如果用了平均模型就不需要真正的PWM调制直接把电压指令作为受控电压源的调制信号输入。换用详细开关模型时就必须把电压指令送入PWM调制模块ADPSS里有基于三角载波的PWM元件载波频率设置为2kHz到4kHz。这里有个细节载波频率和仿真步长的比值至少要在5以上否则PWM的占空比分辨率会严重下降。仿真步长50微秒、载波频率4kHz时一个载波周期里只有5个步长PWM波形就会比较粗糙。需要精细谐波分析时建议把步长缩到20微秒。4. 构网型控制策略的设计与对比从跟网到构网的跨越4.1 为什么需要构网型控制跟网型的局限在哪里跟网型控制的核心依赖是“电网已经存在并保持稳定”。一旦电网变成弱电网也就是短路容量比很低、系统阻抗很大的情况跟网型控制器的性能就会大幅退化。原因在于跟网型控制向电网输出功率时依赖的是锁相环测量到的电网相位而弱电网下电压相位受输出功率影响明显这就形成了正反馈回路——输出功率变化改变相位相位变化又进一步放大功率波动最终引发次同步振荡甚至失稳。构网型控制的思路完全不同它不再去“跟随”电网相位而是自己作为电压源主动建立电压和频率。构网型变流器在电网侧表现为一个理想电压源串联阻抗其外特性近似于同步发电机能主动提供惯性和阻尼支撑。这样一来在弱电网、孤岛供电、黑启动等场景下构网型机组依然能维持电压和频率的稳定。ADPSS中实现构网型控制最主流的方式是虚拟同步机控制策略。核心思路是把同步发电机的转子运动方程引入变流器控制让变流器模拟出同步发电机的惯性和阻尼特性。转子运动方程为J·dω/dt Pm - Pe - D·(ω - ωn)其中J是虚拟转动惯量ω是虚拟角速度Pm是虚拟机械功率指令Pe是电磁功率D是阻尼系数ωn是额定角速度。这个方程加上虚拟励磁调节器就能让变流器具有类似同步电机的外特性。直驱风机的构网型改造还有一个特殊优势风机本身的机械转速和虚拟同步机的虚拟角速度是解耦的发电机侧变流器依然控制叶轮转速做最大风能追踪电网侧变流器则承担虚拟同步机功能两侧的控制互不干扰这在建模上是极大的便利。4.2 虚拟同步机控制的ADPSS实现与参数选择在ADPSS里搭虚拟同步机控制模块我通常把整个控制器分成四个子模块有功-频率控制模块、无功-电压控制模块、虚拟阻抗模块和电流内环模块。有功-频率控制模块输入实测有功功率和虚拟角速度参考值输出虚拟角速度和虚拟相位角无功-电压控制模块输入实测无功功率通过积分和下垂控制生成虚拟电动势幅值虚拟阻抗模块模拟定子阻抗的压降生成最终电压参考值电流内环模块负责对输出电流进行暂态限幅防止过流。虚拟转动惯量的取值是构网型控制参数设计的核心。取值过大虚拟同步机响应太慢功率振荡持续时间长取值过小惯量支撑效果不明显直流母线电压在扰动时跌落幅度大。以2MW直驱风机为例我在试验中使用的虚拟惯性时间常数为2秒虚拟阻尼系数选择0.5倍额定功率对应阻尼转矩这样在电网电压跌落20%的工况下输出功率在200毫秒内可以达到新的稳态且没有明显的超调振荡。这个参数组合在不同容量等级的机组上可能需要按比例调整但整定思路是一样的。构网型变流器的电压幅值控制不能简单地把无功功率偏差全部通过PI积分器调节。我建议采用下垂控制加积分校正的复合控制方式下垂系数按2%到5%的电压调整率来设置积分校正用来消除稳态偏差。这个结构和同步发电机的自动电压调节器非常相似实际应用中的鲁棒性比纯积分控制强得多。4.3 跟网型与构网型的模型切换与对比测试方案单机模型建好以后要同时支持跟网型和构网型两种控制策略这就在模型结构上提出了一个要求控制模块应该是可切换的。我的做法是在电网侧逆变器的控制输入端做一个多路选择开关由外部控制字决定当前投入跟网型控制器还是构网型控制器。两个控制器的输入信号完全相同都是三相电压、三相电流和直流母线电压输出信号也一样都是变流器的电压调制指令。这样整个电气主回路和测量回路不需要做任何改动切换只发生在控制环节。对比测试方案我是这样设计的先建立同一个测试电网环境一个理想电压源带一定阻抗的交流系统模拟不同短路容量比工况。短路容量比分别为5、10和20时分别记录跟网型和构网型两种控制下机组输出功率的动态响应。测试扰动统一为电网电压跌落20%持续100毫秒的对称故障。测试结果显示短路容量比为5的弱电网场景跟网型的功率恢复时间超过300毫秒且伴随振荡构网型的恢复时间在80毫秒左右且没有明显振荡短路容量比为20的强电网场景两者的响应差异则很小。这个对比模型在ADPSS里的搭建和调试周期大约为两周左右主要工作量集中在构网型控制参数的反复测试上。5. 常见问题排查与调试经验从建模到仿真的十一个坑5.1 静态建模报错与初始化失败的原因分析ADPSS建模最让人头疼的问题就是初始化失败模型刚启动仿真就报错弹出来。直驱风电模型初始化失败的案例中九成以上出在变流器直流母线电容的预充电环节上。电磁暂态仿真启动时必须给直流电容设置初始电压初始电压和稳态值偏差过大仿真器在第一个步长就会出现数值溢出。解决办法是在仿真前先手动计算直流母线电压稳态值以2MW机组为例直流电压稳态值在1100V左右那么初始值就设到1100V通过电压源初始化元件直接赋给电容节点这样启动就是平滑过渡。另外一个经常被忽略但极易导致初始化失败的原因是控制器输出的初始值不匹配。PI控制器在仿真开始时输出为零但变流器调制信号在稳态时需要一定的初始占空比如果控制器输出和主电路状态不匹配第一个步长就会产生巨大的电流冲击仿真器判定数值异常后终止仿真。解决办法是在PI控制器的积分器初始值上做文章把积分初值设为额定工况下的稳态输出值这需要你先跑一遍不考虑控制器的开环仿真记录稳态调制电压然后把这个值填到PI参数里。5.2 仿真速度过慢与数据存储空间不足的优化方案模型建好了但仿真速度慢得离谱这是ADPSS使用中最大的痛点之一。直驱风机单机模型如果采用详细开关模型和20微秒步长仿真1秒的物理过程可能需要计算5到10分钟如果只是调控制参数这个效率根本不能满足迭代需求。我的解决方案是在参数整定阶段采用“分阶段仿真”策略先用平均模型加50微秒步长做控制参数整定把功率外环和电流内环的基本参数调通然后切换到开关模型只跑关键工况验证谐波特性和开关暂态。这样把详细模型的使用时间压缩到总调试时间的20%左右效率提升非常明显。数据存储方面ADPSS在电磁暂态仿真中会输出每个节点的电压、电流、功率波形数据量非常大。仿真10秒的物理过程就能产生几个GB的数据文件。建议合理配置输出通道只保存重点关注节点的数据比如直流母线电压、并网点三相电压电流、有功无功功率、转速转矩其余节点的波形一律不录。需要更多数据时可以专门跑一次输出全部通道的详细仿真不必每次默认全部输出。5.3 稳态输出功率偏差与波形畸变的问题处理如果你发现仿真已经稳定运行但输出的有功功率和期望值之间存在偏差实际到功率外环控制器的无功给定不合适。跟网型控制场景中功率外环通常会集成低电压穿越逻辑和功率限制逻辑这些逻辑在稳态时也会影响功率输出。我的建议是先把所有外部逻辑旁路掉单独测试功率闭环的基本特性确认稳态无偏差后再逐一向内加入限制逻辑这样能准确定位哪个环节引入的偏差。波形畸变问题则要区分是控制振荡还是谐波谐振。控制振荡通常表现为基波频率附近的等幅或增幅振荡体现在有功功率波形上非常明显谐波谐振则表现出固定的高频分量通常在数百赫兹以上。控制振荡的排查方向是检查电流内环的PI增益是否过大或者锁相环相位是否滞后谐波谐振则要检查滤波电感和电容的谐振频率以及变流器PWM的死区设置是否合理。在ADPSS里最常见的波形畸变原因是控制接口的数据采集延迟导致PWM调制波滞后此时需要在调制度指令中叠加一个相位补偿量补偿量的大小等于滞后时间乘以基波角频率。5.4 多工况仿真结果的可重复性问题探讨可重复性问题看起来不起眼实际在ADPSS中经常出现。同样的模型同样的参数反复运行三次结果不完全一致尤其在随机风速输入的工况下风速序列的随机种子如果每次不同结果自然不同。解决办法是把风速发生器的随机种子固定ADPSS元件里有随机种子参数的设置项固定值后在相同工况下的多次仿真结果完全一致。另一个可重复性问题出在数值计算上。电磁暂态仿真中如果步长过大而事件触发发生在两个步长之间不同运行时间点可能导致细微的数值插值差异从而影响后续动态。这个问题的根源是仿真精度不足不能靠固定随机种子来解决只能缩小步长。我验证过同样的变压器励磁涌流工况50微秒步长下连续仿真结果的偏差有2%左右缩小到20微秒后偏差降到0.3%以下。如果你的工作要发表论文或者做严格的对标分析我建议所有关键工况都用20微秒步长跑虽然慢一点但结果经得起推敲。6. 从单机到场站的建模扩展思路单机模型跑通了后面大概率还要做风电场级仿真。这时候你就面临一个选择是每台机组都用详细模型还是先做单机验证再用等值模型。全详细模型的计算量呈线性增长几十台机组并行还能承受上百台机组就不现实了。我的建议是采用“单机详细机群等值”的分层建模策略选择一两台代表机组用详细模型重点刻画其动态响应和故障穿越行为其余机组用等值模型表现外特性等值机组的参数根据详细单机的仿真结果聚合。这样既能准确反映场站整体的功率输出特性又不至于让计算量失控。基于ADPSS的单机直驱风电模型无论是跟网型还是构网型控制核心的建模思路和调试方法都是相通的。我在实际项目中最深的一个体会是不要指望模型一次建好就能跑通一定要预留足够的调试时间。控制器参数整定阶段是最耗时也是最有价值的一段过程每调一次参数、跑一次仿真、看一组波形你对这个模型的理解就会深一层。如果你正在做的项目也需要这套单机模型按照上面这个顺序搭模型、整定参数、做对比测试整个过程会顺畅很多。建议建模时把跟网型和构网型的控制选择开关预留出来后续如果要切换控制策略做对比研究或者扩展到场站级等值模型就不用推翻已经调试好的成果重新来一遍了。
RELATED READING

延伸阅读

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