ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

基于VSC的UPFC研究(Simulink):建模、控制与排错指南

基于VSC的UPFC研究(Simulink):建模、控制与排错指南 做电力系统仿真这几年UPFC统一潮流控制器一直是个绕不开的硬骨头。尤其当控制侧用上VSC电压源换流器之后整套系统在Simulink里既要解决电力电子开关级的电磁暂态问题又要处理控制器层面的PI整定难度直接翻倍。这篇文章我想把基于VSC的UPFC研究Simulink从模型搭建、控制策略到调试排错完整串一遍尤其适合刚接触柔性交流输电FACTS方向的研究生或者正准备做UPFC毕业设计、课题开题的同行。内容不绕弯子重点放在能落地的参数和步骤上能让你少走几次弯路。1. UPFC到底在解决什么问题为什么非要用VSC1.1 一条线路的潮流不是你想怎么送就怎么送先补一下背景。输电线路上的功率流动取决于两端电压幅值、相角和线路阻抗公式可以写成 P(Us*Ur/X)*sin(δ)其中Us、Ur是送端和受端电压幅值X是线路电抗δ是两端功角。一旦电网结构和发电出力确定潮流的分布基本是“天然形成”的很多时候会集中在某几条线上造成局部过载而另一些线路却闲在那里。传统手段是调整变压器抽头、投切电容器、改变发电机出力响应慢而且在重载或系统扰动时往往不够灵活。UPFC出现就是要解决这个“潮流不能随意调”的问题。我自己的理解是UPFC相当于在线路中间串入了一个“幅值和相角都可以随意控制”的电压源线路潮流就从自然分布变成了受控分布。你能通过控制注入电压的幅值和相角把有功功率“推”到你想让它走的那条路上同时还能顺手吸收或者发出无功。这种能力在电网规划受限、需要充分利用现有输电走廊的场景下特别值钱。研究阶段的Simulink模型本质上就是在验证这套“推功率”的控制逻辑到底能不能达到预期。1.2 VSC让UPFC的真正优势落地UPFC的两个换流器都需要功率器件能够自己关断这就是VSC电压源换流器而非传统晶闸管的地方。传统晶闸管依赖交流电压自然过零关断只能控制导通时刻做无功补偿还可以但要实现四象限运行的独立有功/无功控制就非常吃力。VSC基于IGBT等可关断器件配合PWM调制能够产生幅值和频率都可控的交流侧电压两个VSC背靠背共用一个直流电容一侧和系统并联一侧通过变压器串联到线路中这就构成了UPFC的核心拓扑。用VSC还有一层好处是它可以独立控制有功和无功。并联侧换流器既能从系统吸收有功供给直流侧又能独立发出无功做电压支撑串联侧则主要负责向线路注入电压来改写潮流。整个系统就像在两段路之间架了一座带水泵的桥有功功率可以从桥的一侧抽到另一侧无功则各自就地补偿不额外占用线路容量。理解了这一层后面看控制系统就不会觉得每个环是孤立的。1.3 为什么用Simulink而不是其他工具做UPFC仿真可以选PSCAD、MATLAB/Simulink甚至自己写程序。我选择Simulink的主要原因是它把电力电子主电路、控制算法、信号处理放在同一个环境里修改参数方便而且Simscape Electrical老版本叫SimPowerSystems里已经有变压器、IGBT、三相可控电压源这些基础元件不需要自己从零推导电磁暂态方程。另一个原因是控制部分可以非常灵活地用Simulink模块、MATLAB Function或者S-Function实现仿真完之后想生成C代码做硬件在环也比PSCAD顺手。缺点是Simulink的详细开关模型计算量大复杂模型仿真很慢这一点后面会专门说怎么规避。另外网上能搜到大量UPFC相关仿真案例和IEEE39节点模型这些资源虽然水平参差不齐但至少能帮你快速搭建一个可运行的基线踩坑时也有地方对照。2. 主电路拓扑与关键元件建模先别急着点鼠标2.1 换流器拓扑怎么选两电平、三电平还是MMC网上搜“VSC UPFC Simulink”很多模型直接给两电平VSC因为结构简单控制也容易讲清楚。两电平VSC一个桥臂两个IGBT输出相电压只有两种电平谐波靠交流侧滤波电抗和电容压一压用在实验室、小容量场景完全没问题。但如果你要研究MMC模块化多电平换流器这种更贴近工程的拓扑单桥臂几十上百个子模块在Simulink里用详细开关模型仿真一次潮流调整可能要跑几十分钟极不划算。我一般这样处理做控制策略验证时先用平均值模型代替详细开关模型。平均值模型的核心思想是认为换流器能完美复现调制波输出一个受控电压源不计开关纹波。这样仿真速度快数值稳定性也好适合整天调PI参数。等控制策略成熟了再换回带IGBT的详细模型看开关动态和谐波。两电平和MMC的选择同理先两电平验证控制思想再在需要时升级到MMC而不是一上来就堆复杂度。换流器类型建模难度仿真速度谐波表现适用场景两电平VSC低较快较差需要滤波控制算法验证三电平NPC中中等较好中压配电MMC高很慢最好高压大容量工程研究表格里体现的是我的经验判断具体还是看你的选题侧重。如果论文重点在控制策略平均值模型两电平拓扑足够如果论文重点在谐波特性或子模块均压再上MMC不迟。2.2 串联变压器和并联变压器的选型串联变压器是UPFC建模时特别容易出错的地方。串联侧换流器输出的电压通过变压器二次侧叠加到线路中变压器一次侧串联在线路上线路电流会穿过变压器带来压降。在Simulink里可以使用三相双绕组变压器模块或者用理想变压器加漏抗组合。关键参数是额定电压、容量和漏抗。漏抗太大会导致注入电压的一部分耗在漏抗上控制效率变低太小又会让故障冲击电流急剧上升数值仿真容易震荡。并联变压器相对简单主要是把换流器接入母线时做电压匹配和隔离。容量按UPFC整体额定容量来定实际工程中并联侧换流器还要承担一部分无功补偿所以容量通常按最大补偿需求选。我在初始模型里习惯把所有变压器参数都填成标幺值这样方便在不同等级电网之间切换不用每换一个系统就重新算一次阻抗。标幺值填错也是很多仿真跑飞的重要原因建议用Powergui工具里的阻抗测量功能辅助校验参数。2.3 直流电容和交流滤波电感怎么给初值直流侧电容的作用是稳定直流电压并为两个换流器提供能量缓冲。电容太小直流电压在功率波动时像过山车控制器很难稳住电容太大直流电压响应迟钝仿真启动时充电过程也很漫长。工程上可以按照能量守恒粗略估算C ≈ (ST)/(2Udc²*ΔU%)其中S是UPFC容量T是要求的动态响应时间常数Udc是额定直流电压ΔU%是允许的电压波动百分比。比如10 MVA的UPFC直流电压20kV要求0.05秒内电压波动不超过5%估算下来电容就在几十毫法量级。这个公式不算精确但能给出合理的数量级之后再根据仿真曲线微调。交流侧滤波电抗的选择影响电流纹波和控制器响应速度。电抗大纹波小但电流环带宽被限制电抗小动态快但谐波电流大。我的习惯是先按换流器额定电流下阻抗5%到15%的范围给初值然后看THD和动态响应取舍。Simulink里开关模型通常带RC吸收电路snubber默认值虽然能防止数值突变但会引入额外损耗和漏电流如果模型里有大量开关元件记得检查这些snubber参数不要一直用默认值。3. 控制策略核心双闭环dq解耦3.1 先把P和Q的公式摆到坐标系里UPFC控制绕不开dq旋转坐标系。把三相电压电流从abc坐标变换到与电网电压同步旋转的dq坐标后有功无功功率可以写成 PudiduqiqQuqid-udiq。如果让d轴和电网电压矢量对齐即uq0公式就简化成PudidQ-udiq。这就是为什么你能单独控制d轴电流来调有功q轴电流来调无功。大家常说的“解耦控制”本质就是把三相交流量变成两个直流量用两个独立的PI环分别盯住d轴和q轴。我见过不少刚开始做UPFC的人一上来就调PI调得晕头转向就是因为没有先在坐标系下理清物理量关系。要记住外环给定的是功率或电压参考内环给定的是id、iq参考。外环和内环之间通过测量、误差放大、限幅连接起来一层套一层。Locking PLL的相位也很关键PLL不准dq变换出来的量就是歪的控制效果自然不对。3.2 并联侧换流器先稳住直流母线并联侧换流器的第一任务是维持直流电压稳定。直流电压如果掉了串联侧就失去了注入电压的支撑整个UPFC就失控了。控制结构是直流电压外环、d轴电流内环无功外环、q轴电流内环。直流电压外环输出作为d轴电流参考无功外环输出作为q轴电流参考。这样并联侧可以同时做到有功上以直流电压为目标自动调节无功上按电网需求独立补偿。PI参数整定我的经验是先内环后外环。电流内环带宽取开关频率的十分之一到五分之一用工程法计算比例放大和积分时间外环带宽再比内环低三到五倍留出足够的相位裕度。很多人喜欢用试凑法但我建议至少在初始值上用公式估算不然试凑的范围太盲目。Simulink里可以通过Powergui里的线性分析工具看开环伯德图不过手算也可以接受。参数整定这个环节没有捷径只能多跑几组对比曲线。3.3 串联侧换流器改变线路潮流的执行机构串联侧换流器的作用是向线路注入幅值和相角可调的电压。控制目标可以直接选线路有功和线路无功也可以选线路电流d/q分量。外环是定功率控制或者定电流控制内环依然是电流环输出对应串联侧换流器的调制电压。注意串联侧的电流环参考坐标系和并联侧不同它要以注入点线路电压为基准做dq变换所以锁相环的位置和信号流向要搞对。锁相环一旦稳态角有偏差解耦就不干净控制效果会大打折扣。工程上UPFC还有定电压控制、阻尼控制等附加功能但Simulink研究阶段先把基本定功率控制跑通就已经能覆盖大部分课题。常用的串联侧控制方式可以写成调制电压的d轴和q轴参考值分别由电流误差的PI输出加上电压前馈补偿构成。前馈项可以明显改善动态响应不光是靠PI在事后纠偏。如果省略前馈你会发现功率阶跃时超调会明显变大。3.4 PWM调制与平均值模型的开关如果采用详细开关模型调制波经过三角载波比较生成PWM信号载波频率一般设2kHz到10kHz。Simulink里可以用“PWM Generator”模块也可以自己搭比较器。三相VSC用SVPWM空间矢量调制比SPWM电压利用率高但实现复杂度高。学生阶段用SPWM做验证足够想研究谐波再换SVPWM。热词里提到的单极性SPWM仿真通常在单相逆变器里用得多三相UPFC一般不搞单极性这里不要被名字带偏。如果用平均值模型就不需要生成PWM直接把控制得到的调制电压经过一个一阶惯性环节模拟换流器延时作为受控电压源输出到交流侧。这个方法一开始会让人怀疑“这还是不是电力电子仿真”但它的好处非常明显排除开关噪声后控制器的稳定性和潮流调节能力很容易被验证而且仿真速度快到可以跑整天的参数扫描。我在做参数寻优时几乎都用平均值模型需要看谐波时再临时切回开关模型。4. Simulink实操从建模型到看到潮流被改写的全过程4.1 主电路搭建步骤与模块选择具体在Simulink里操作时我习惯按这个顺序搭新建模型在Simscape Electrical的Specialized Power Systems下找到Three-Phase Source、Three-Phase Transformer、Series RLC Branch、Universal Bridge或IGBT模块等基础元件。先搭一个单机无穷大系统或者双机系统用于测试UPFC效果。常用方案是两台发电机通过一条双回输电线路连接把UPFC串在其中一回路上。放置UPFC主电路并联换流器经过并联变压器接到送端母线串联换流器经过串联变压器串入输电线路两个换流器直流侧通过直流电容连接。给所有电气元件设置初始条件和测量模块比如Three-Phase V-I Measurement用于把电压电流送入控制器。控制器部分单独画一个控制系统子系统里面是PLL、坐标变换、PI控制器、限幅和PWM生成。第2步的双机系统不要随便用两台无穷大电源代替否则功角固定在某个值潮流调节能力和极限都看不出来。建议用带自动调速器或者至少固定内电势的电机模型这样功角变化才真实。Simulink自带的Power System Demos里有一些双机系统可以参考但结构通常比较复杂新手改起来容易乱。4.2 控制算法用Simulink模块、MATLAB Function还是S-Function控制部分我试过三种实现方式。第一种全部用Simulink库里的PI Controller、Fcn等模块搭优点是直观改参数方便前期最适合教学和入门。缺点是模块多了以后连线非常乱而且很多信号没对齐的时候查错很痛苦。第二种是用MATLAB Function写控制算法把dq变换、PI迭代全写进一个函数里。代码可读性好调试时在函数里加断点也可以。缺点是每个仿真步长都要调用如果函数里写了大数组或者复杂循环仿真速度会明显下降。第三种是Level-2 S-Function用C或MATLAB语言实现。这个方式最接近实际嵌入式控制器的代码而且可以复用已有工程代码我在做代码生成和硬件在环验证前都是先把控制逻辑写进S-Function。代价是编译和调试环境配置麻烦比如很多人会搜“simulink如何给sfunction添加代码”就是这个编译配置问题。我的建议是课程设计和课题验证用MATLAB Function就够涉及实时仿真或C代码生成再上S-Function不要一上来就上重型工具。4.3 仿真参数与求解器设置Simulink仿真UPFC这种电力电子模型默认的求解器和步长往往不够用。我一般把仿真算法改成ode23tb或者ode15s因为UPFC开关动作和线路暂态让系统有很强的刚性显式算法步长很小、仿真极慢隐式算法更稳定。最大步长要控制在PWM周期的十分之一到二十分之一左右比如载波20kHz时最大步长取5e-6秒如果只是平均值模型可以放宽到1e-4秒甚至更大。还要注意代数环问题。把测量信号经过坐标变换、PI控制然后立即又反馈回主电路信号路径中如果只有直通模块Simulink会报Algebraic Loop。解决办法是在控制链路中加一个Memory或单位延时打破代数环代价是让控制信号晚一个仿真步长通常影响可忽略。有人喜欢把求解器设置里代数环求解打开但有时会造成迭代不收敛不推荐作为第一选择。简单的延时模块在Simulink里到处都是加一个很快就适应了。4.4 观察潮流变化的核心波形跑起来之后要重点看四类波形直流电压是否稳定在额定值附近并联侧无功输出是否跟随参考值串联侧注入电压的大小和相角是否在限度内以及线路有功和无功是否准确跟踪了设定值。我会用Scope并把数据存到工作区方便后期用MATLAB脚本画图。还有一个常用技巧是把控制参考值设置成阶跃比如0.2秒时让线路有功参考从300MW跳到350MW看20%到80%响应时间是否满足要求这比只看稳态有价值得多。如果你用的是详细开关模型Scope里的瞬时波形会带明显开关纹波看起来非常丑。这时可以在Scope里加一个Mean模块或者自己写均值滤波或者把显示频率降低。不要一看到纹波就以为模型错了开关模型带纹波才是正常现象。5. 常见问题与排查经验别人踩过的坑你直接绕过去5.1 启动报错和数值不收敛“Simulink仿真时出现caused by:lapack加载错误:mllapack.dll”这个报错我遇到过一次。这是因为MATLAB在做矩阵运算时依赖的LAPACK数学库加载失败常见原因有MATLAB安装路径包含中文或空格、系统缺少对应版本的VC运行库、环境变量被其他软件改了。排查顺序是先检查路径是否纯净再重装Microsoft Visual C Redistributable最后用系统管理员身份打开MATLAB。如果还不行可以在MATLAB命令行执行path命令检查是否有异常目录干扰。另一类问题更常见仿真一开始就出现“Powergui”错误。在Simscape Electrical中必须放一个Powergui模块并且在里面设置仿真类型连续/离散。我一般选择离散仿真并把采样时间设成和PWM周期同步计算速度更快数值也更稳定。有人把Powergui删了、忘了放结果Simulink主电路一直报错这是新手最常犯的一个错误。记住电力电子模型没有Powergui等于汽车没有仪表盘可以转但你看不到任何状态。5.2 控制器发散的典型表现控制器发散往往不是数学模型错了而是参数不合理。我调试UPFC时见过的情况有直流电压振荡幅度越来越大、线路功率在参考值附近来回撞击限幅器、桥臂电流瞬间飙到几十倍额定。这些都说明某个PI环的增益太大或者内环和延迟环节的相位裕度不足。判断方法很简单先把积分系数设为0只留比例项调一个能稳定但静态误差稍大的增益再慢慢加积分通常不会跑飞。还有一点不太容易察觉就是功率测量的瞬时值波动。如果直接把瞬时功率的波动信号送进PI外环输出会非常抖。正确做法是把测量值通过低通滤波器或者平均值模块后再进控制器滤波器时间常数取几毫秒到十几毫秒既能滤除谐波又不会太滞后。电压电流互感器的测量噪声也要留意仿真模型里的测量模块本身是理想的但控制器采样离散化后可能引入延迟需要统一处理。5.3 S-Function在仿真中常见的坑不少人问“simulink如何给sfunction添加代码”这个操作本身不复杂但容易在路径和编译器上卡住。在MATLAB命令行输入mex -setup选择编译器确保当前工作目录包含sfunction源文件然后在Simulink的S-Function模块参数里填函数名。如果编译报错先看是不是C编译器版本和MATLAB版本不兼容。另一个坑是S-Function的连续状态和离散状态混用如果控制算法里有离散PI最好统一用离散状态避免在连续域和离散域之间频繁转换否则仿真步长一变结果就不一样。S-Function调试时还有一个技巧在函数里加一些静态变量存储上一步的状态用MATLAB命令行查看中间值。不过这样做会拖慢仿真所以正式跑大批量算例时最好把调试输出注释掉。实时仿真或者外部模式调试时S-Function的执行时间必须很短否则容易顶到仿真步长上限。5.4 在IEEE39节点等大电网中扩展UPFC单纯接在单机无穷大系统里验证控制逻辑没问题但你要做系统级影响研究就要放到IEEE39节点等标准算例里。老版本Simulink没有内置IEEE39节点模型需要自己根据参数搭建或用外部数据导入。转到多机系统时注意三个问题一是UPFC的安装线路选择要合理一般选重载或瓶颈线路二是系统其他发电机的模型会影响潮流分布不能用纯恒压源替代太多三是UPFC容量的标幺值要和系统基准一致否则控制死区单位换算容易出错。在IEEE39节点里做暂态稳定研究时UPFC的响应速度和限幅值非常关键。限幅设太死UPFC在故障期间可能起不到功率支援作用限幅设太宽又可能让换流器过流。建议故障仿真前先做稳态潮流校验确认所有节点的电压幅值和相角都符合预期再投入故障时序。扩展后重点观察重合闸、母线故障等工况下UPFC对暂态稳定的影响这才是UPFC研究区别于普通潮流计算的核心价值。最后说几句调试心得。做基于VSC的UPFC研究Simulink真正花时间的往往不是搭模型而是把控制参数和仿真条件调顺。我习惯先跑平均值模型把PI整定出来再切到详细开关模型看谐波和暂态先在双机系统里把潮流调明白再扩展到IEEE39节点或者跟新能源波动结合起来。这个方向后续还可以往MMC型的UPFC、直流侧储能、多目标优化控制上走每一条都足够做个不错的课题。希望我这套从原理到排错的流程能让你在仿真时少炸几个模型。
返回列表