ARTICLE DETAIL

资讯详情

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

直流微电网Matlab仿真模型构建与母线电压控制策略详解

直流微电网Matlab仿真模型构建与母线电压控制策略详解 写这篇东西的起因是我自己在做直流微电网仿真时翻遍了各种平台要么是模型残缺不全要么是版本太高打不开要么是控制策略讲得云里雾里。后来我把一套基于Matlab 2016及以上版本搭建的直流微电网模型跑通之后发现很多细节其实没有想象中那么玄乎但确实有几个坑不踩不知道。这篇文章就把我实际搭建、调参、处理功率波动和直流母线电压控制的完整经验梳理出来给正在做相关课题、毕设或者横向项目的人一个可以直接上手的参考。模型本身仅限交流学习用核心思路和控制逻辑才是真正值钱的东西。1. 直流微电网整体架构与设计思路1.1 为什么选直流微电网这个拓扑微电网这个概念提了很多年交流微电网的研究相对成熟但直流微电网这两年明显更受关注原因很实在现在的分布式电源光伏、储能电池、燃料电池本质上都是直流输出。电动汽车充电桩也是直流负载数据中心服务器更是直流供电。如果走交流路线每一级都要经历DC-DC、DC-AC、AC-DC的反复变换能量损失就摆在明面上。直流微电网省掉了这些换流环节效率提升是实打实的。另外直流系统没有频率同步问题不存在交流并网时需要关注的相位裕度、无功功率这些东西。控制上只需要盯住一个核心物理量——直流母线电压。母线电压稳了系统的功率平衡基本就稳了。这个特性让直流微电网的控制模型在Matlab/Simulink里面实现起来比交流系统要清爽不少也特别适合用来研究功率波动场景下的电压稳定问题。我建的这套模型主体框架就是典型的直流微电网结构光伏单元通过Boost变换器接入直流母线储能单元通过双向Buck-Boost变换器接到母线再带上一个直流负载。母线电压额定值设定在400V这个电压等级比较主流模拟数据中心或者工业直流配电都说得过去。整个模型可以用一句话概括光伏发出来的功率随风速和光照波动储能负责平抑这些波动并维持母线电压稳定负载则作为系统的功率消耗端。1.2 模型的模块化拆分与职责边界在做仿真模型的时候我特别强调模块化。一个完整的直流微电网模型拆开来看无非就是这几块第一个是发电单元。这个模型里用的是光伏阵列我用的是工程常用的单二极管模型通过光照强度和温度来调整输出I-V特性。光伏阵列的最大功率点会随环境变化跑动这就需要MPPT算法去追踪。这里我用的是经典的扰动观察法简单直接收敛速度也能接受。第二个是储能单元。全钒液流电池或者锂电池实际上都有现成的仿真模型关键在双向变换器怎么设计。我采用的是双向半桥Buck-Boost拓扑通过控制占空比的方向和大小来实现充电和放电。这一块是整个母线电压控制的核心执行机构。第三个是负载。直流负载可以是恒阻抗负载也可以模拟恒功率负载。恒功率负载在直流系统里有负阻抗特性会给母线电压稳定带来麻烦我为了突出功率波动对电压的影响把负载的一部分设定成恒功率形式。这也更贴近实际毕竟现在的直流用电设备大多是带恒功率变换器的。第四个是控制层。这一层我分了两个层级底层是各变换器的本地控制器负责电流内环和电压外环上层是母线电压协调控制策略。在Matlab里面用Stateflow或者普通的S-Function都可以实现但更容易上手的方式是直接用Simulink的PID Controller模块配合逻辑判断来搭建。模块拆开之后每个部分都可以单独调试。这也是我强烈建议的调试顺序先保证光伏Boost在开环下工作正常再给储能双向变换器加上闭环控制最后才把MPPT和协调控制逻辑整体合到一起。直接上来就整体仿真出了问题根本没法定位。1.3 控制策略选型主从控制和下垂控制的权衡直流微电网里最常讨论的控制策略就两种主从控制和下垂控制。主从控制的思想比较直接选一个有功容量充足的储能单元作为主控单元承担维持母线电压的责任其他单元光伏、负载按功率指令运行。这种方式控制逻辑简单电压质量好但主控单元一旦失效整套系统就危险了。下垂控制则是所有可调单元都参与母线电压调节通过模拟传统发电机组的频率-有功下垂特性在直流系统里就是电压-功率下垂特性。每个单元根据本地测量的母线电压来调整自己的功率输出。这种方式的可靠性高但静态会有电压偏差需要二次控制来补偿。在我的模型里我做了两种策略的对比版本。单储能单元用主从控制多储能单元并联时用下垂控制。主从控制的实现非常简单就是电压外环加电流内环的双闭环PI。下垂控制则是在双闭环的基础上增加一个下垂系数K让电流参考值和母线电压偏差挂钩。参数上下垂系数K的选择有一个关键原则不能太大太大母线电压偏差超出允许范围也不能太小太小储能之间的功率分配就不均衡。常规的选取方法是按照储能单元容量比例来确定K的比值容量大的单元下垂系数小承担更多的功率调节任务。2. 核心控制策略与功率波动抑制原理2.1 直流母线电压控制的双闭环设计直流母线电压控制的本质其实是功率平衡控制。母线电容上的功率平衡关系可以用下面这个式子表示C * d(Vdc)/dt P_source - P_load看这个式子就明白了母线电压的波动本质上来自源端功率和负载功率的失配。如果能把输入母线电容的净功率控制住电压自然就稳住了。基于这个原理储能双向变换器的控制器按典型的电压电流双闭环来设计。外环是电压环采样母线电压Vdc和参考值Vdc_ref做比较误差信号经过PI控制器后输出电流参考值I_ref。这个I_ref就是储能变换器需要提供的电流指令。内环是电流环采样电感电流跟踪I_ref输出PWM占空比。PI参数的整定上我遵循的是先内环后外环的顺序。电流环的响应速度要快一般整定到带宽是开关频率的1/10到1/5。电压环要慢一些通常带宽设定在电流环的1/5到1/10。这个时间尺度分离的原则非常重要两个环的响应速度如果太接近很容易出现相互作用甚至震荡。在模型里我把电压环PI参数设定为Kp10Ki200电流环Kp2Ki100采样时间1e-6秒开关频率10kHz。这几个参数经过实际仿真验证在负荷突变和光伏功率波动场景下能保持母线电压偏差在±5%以内。这里必须提醒一句别指望抄一套PI参数就能通吃所有工况。PI参数和系统参数是强耦合的直流侧电容大小、线路电感、变压器寄生参数都会影响最佳PI值。正确的做法是在模型里先扫一遍参数看看系统开环和闭环的伯德图找到相位裕度在45度到60度范围内的参数组合再进行微调。2.2 光伏MPPT与功率波动特性分析光伏阵列的输出功率受光照和温度影响极大。我模型里用的光伏阵列在标准测试条件1000W/m²25℃下的最大功率是10kW工作电压约300V工作电流约33A。光照从1000W/m²骤降到400W/m²的时候最大功率点会从10kW掉到不到4kW这个功率落差如果不做平抑母线电压会产生非常明显的波动。MPPT采用扰动观察法每0.01秒对光伏输出电压施加一个小的步进扰动比较扰动前后的功率大小来决定下一步扰动的方向。这个算法实现起来只有十几行代码我直接写在S-Function里。扰动步长要选得合适步长太大稳态时在最大功率点附近来回震荡功率损失大步长太小动态响应慢光照突变时会长时间偏离最大功率点。我在模型里用了变步长策略初期大步长快速逼近后期小步长精细追踪。功率波动的场景我在模型里做了三类典型工况第一类是渐变工况光照强度按斜坡规律变化比如从1000W/m²在5秒内线性降到300W/m²再升回来。这模拟的是早晚天气变化或云层缓慢移动的场景。第二类是阶跃工况光照在某一时刻瞬间跳变比如第3秒从800W/m²直接跳到1200W/m²。这模拟的是云层急剧变化或者光伏阵列被突然遮挡的情况。第三类是负载突变工况负载功率在短时间内变化比如从5kW跳到10kW。这在直流微电网里也很常见相当于接入大功率充电桩或者大电机启动。每种工况下我都记录了母线电压的波形用来分析储能系统平抑功率波动的效果。仿真结果显示在储能系统正常工作的情况下母线电压的最大偏差能控制在额定值的±2%以内而如果没有储能介入这个偏差在严重工况下能到20%以上。2.3 储能系统功率补偿的核心算法储能的功率补偿逻辑是这套模型最核心的部分。简单来说就是要让储能输出功率去填补光伏功率和负载功率之间的缺口。储能系统需要的参考功率可以表示为P_bat_ref P_load - P_pv当负载功率大于光伏功率时P_bat_ref为正储能放电当负载功率小于光伏功率时P_bat_ref为负储能充电。把这个功率参考值转换成储能变换器的电流参考值需要除以母线电压。这个过程中要注意母线电压本身在波动直接用实时采样值计算会造成电流指令的抖动。我在模型里做了低通滤波处理对母线电压采样值进行平滑让电流参考值的过渡更平稳。储能电池的状态约束也要考虑进去。如果电池SOCState of Charge已经接近下限即使系统需要放电也不能再继续放如果SOC接近上限则不能继续充电。我在模型里加入了SOC限幅保护模块当SOC低于20%时强制储能停止放电当SOC高于90%时强制停止充电。这是工程上必须考虑的现实问题仿真模型如果不加这个约束运行时间拉长了就会出现电池反复过充过放的问题。双向变换器的控制核心是互补PWM控制方式。同一桥臂的上下两个开关管用互补的信号驱动死区时间设为2微秒。放电模式下上管常关下管调制电感电流正向流动充电模式下下管常关上管调制电感电流反向流动。整个切换逻辑用Simulink里的逻辑比较模块就能实现不需要额外的状态机。在Simulink中双向变换器用Universal Bridge模块来实现比较方便桥臂数设为1开关管选择IGBT或者MOSFET都可以只需要把对应的驱动信号端口接上PWM发生器的输出。3. Matlab模型搭建的完整实操过程3.1 运行环境与版本兼容性说明我这里用的是Matlab 2016b版本为什么强调2016及以上因为模型里用到的一些模块库特别是Simscape Electrical原SimPowerSystems的组件在2016版本以后才有比较完整的封装和更新的求解器支持。如果还在用2014之前的旧版本很多模块的接口名称都不一样直接打开模型会报错。需要的工具箱包括MATLAB基础环境SimulinkSimscapeSimscape Electrical建议安装Control System Toolbox画伯德图、整定PID用得上具体模型文件方面我建议建立几个独立的子文件来管理功能模块分别存放光伏阵列与Boost、储能双向变换器与控制逻辑、负载模型以及主回路电气连接。这样即使某个模块出了问题也不影响其他模块的运行。3.2 光伏Boost变换器建模步骤搭建光伏Boost变换器核心任务是完成电气主回路和MPPT控制信号的连接。第一步拖入DC Voltage Source的替代方案。光伏阵列在Simscape Electrical里其实有专门的PV Array模块位于Simscape Electrical Specialized Power Systems Sources下。双击模块可以设置并联串联的电池片数量、标准测试条件下的参数。这里我设置了72个串联电池片5并联标准最大功率10kW。第二步搭建Boost电路。用IGBT或MOSFET、二极管、电感、电容和电阻构成标准Boost拓扑。Boost的输出侧接直流母线。母线电容的选择比较关键我用的方法是按照母线电容纹波电压的允许范围来估算。电容越大电压纹波越小但动态响应会变慢。我这里母线电容用了2000μF实际问题是起步时充电时间长但稳态波形干净。第三步MPPT算法实现。我用Matlab Function模块来写扰动观察法的代码。代码逻辑很简单上一时刻的电压和功率值保存下来当前时刻算出新功率和上一时刻比较如果功率增加继续朝原方向扰动电压如果减少就反向扰动。输出电压参考值送给PWM发生器和三角载波比较产生Boost开关管的驱动信号。MPPT启动阶段有个细节刚开始光伏输出电压为零此时如果直接进入MPPT迭代容易陷入局部最优或者震荡。我设计了初始化逻辑强制光伏输出电压从开路电压的90%起步再从那里开始追踪。这样能明显加快最大功率点的收敛速度。3.3 储能双向Buck-Boost变换器的连接储能侧的双向变换器在Simulink里实现方式有很多种。我使用的是两个IGBT反并联二极管组成的半桥结构中间接电感电感另一侧接电池。电池模块用Simscape自带的Battery模块选择锂离子电池模型额定电压320V额定容量50AhSOC初值设为80%。这里注意电池电压和母线电压的匹配Buck-Boost拓扑允许双向电压变换但如果电池电压和母线电压差距过大占空比会非常偏离0.5控制效果会下降。我用320V电池对应400V母线这个压差范围比较合适。变换器的控制部分在Simulink里搭双闭环回路。电压外环采样母线电压经过PI输出电流参考值。电流内环采样电感电流和参考值比较经过另一个PI输出调制波。调制波和三角载波比较生成PWM信号然后经过程度逻辑后分配给上下两个开关管。接口处理上要特别注意Simscape Electrical的电气模块和Simulink的一般信号模块不能直接连。需要用电压传感器和电流传感器把电气信号转成Simulink信号用受控电压源或者PWM发生器把控制信号转回电气信号。这个坑在很多新手那里都会踩我在最初搭建时也在这个接口问题上卡了一段时间。3.4 负载模型与波动工况设置负载模型我做了两种可以自由切换。第一种是恒阻抗负载直接用RLC串联支路设置成纯阻性简单可靠适合基础功能验证。第二种是恒功率负载用受控电流源模拟控制算法是让电流等于指定功率除以母线电压。恒功率负载的闭环特性有别于恒阻抗要做异步仿真时容易产生数值计算问题所以用了Solver配置来保障运行正常。为了方便模拟负载突变我给恒功率负载的功率参考值增加了Step模块和信号发生器模块。通过Signal Editor预设三段式负载曲线便于一键切换场景。3.5 主回路整体连接与求解器选择主回路就是把光伏Boost输出、储能变换器输出、负载三者并联在直流母线电容的两端。连线完成后重点检查各个接地参考点的位置。在Specialized Power Systems库下必须有电力系统的接地参考。不同子系统之间的电气连接必须通过电气线路不能通过信号线否则Simulink会报错。求解器的选择是个经验问题。我刚开始用默认的ode45跑发现仿真速度很慢而且偶尔出现数值发散。后来检查了报错信息发现问题出在电力电子开关的模型上。电力电子开关本质上是分段线性系统状态变量会在开关时刻跳变。用ode45这种变步长连续求解器每个开关周期都要进行多次迭代计算效率非常低。正确的做法是用Simscape Electrical推荐的离散求解器。我最终选定了discreteFixed-Step Discretized Continuous求解器步长设置为1e-6秒与10kHz的开关频率匹配。开关周期是100微秒仿真步长是1微秒一个周期内100个采样点完全能满足PWM信号的分辨率需求。仿真时间设置为20秒这样包含了光伏功率波动的完整周期也足够让控制系统稳定下来。Simulation中还需要配置一个关键选项在Configuration Parameters的Solver面板中把Simscape Electrical的离散时间步长和整个模型的固定步长保持一致否则电气部分和信号控制部分使用不同的时间基准结果会出现严重失真。4. 三种典型功率波动工况的仿真结果与波形分析4.1 光照渐变工况下的电压稳定表现光照渐变工况下光伏功率从10kW缓慢下降到3kW再回升。这个过程中储能系统的作用特别明显当光伏功率下降时储能开始放电输出功率逐渐升高当光伏功率回升时储能切换到充电模式吸收多余的光伏功率。从波形图可以看到母线电压在整个渐变过程中都稳定在400V附近最大偏差不超过8V。电压波形有轻微的高频纹波幅值大约在1到2V之间这主要是开关频率引起的属于正常现象。曲线整体上没有出现大的尖峰或毛刺说明双闭环控制器的跟随特性良好。如果把这个工况放在没有储能的情况下跑母线电压会随着光伏功率的下降从400V一路跌到340V左右。两个结果一对比储能平抑功率波动的作用就非常直观了。4.2 光照阶跃工况下的动态响应分析阶跃工况更考验控制系统的动态响应能力。我在第3秒时把光照强度从800W/m²瞬时提高到1200W/m²光伏功率瞬间增加了约4kW。这时候如果不做控制干预多余的电量会充进母线电容导致电压上升。储能在检测到母线电压超过参考值后迅速进入充电模式把多余功率吸收掉母线电压在约0.1秒内恢复稳定。这个动态过程中有几个细节值得关注第一电压超调量大约在15V也就是3.75%这个水平在可接受范围内。如果把电压环PI的Kp值调大超调量可以进一步缩小但代价是系统更容易震荡极点可能移动到右半平面。第二储能电流的动态响应非常快从零变化到额定充电电流大约只用了2到3个开关周期这和电流环的高带宽设定直接相关。第三注意到SOC在充电过程中从80%缓慢上升这说明功率差额确实被电池吸收了能量守恒关系成立。反过来看第5秒时光照从1200W/m²瞬间跌回400W/m²光伏功率猛降母线电压瞬间下跌。储能立刻切换为放电模式顶住了这个功率缺口。放电瞬间的电压跌落幅度比充电时稍大这是因为放电模式下母线电压和电流的耦合效应更强。4.3 负载突变工况下的母线电压恢复负载突变的工况我设置的是恒功率负载从5kW阶跃到10kW。如果光伏功率已经接近满载太阳能发电无法覆盖突增的负载需求缺口就得由储能来补。从仿真结果看负载突变的瞬间母线电压出现一个快速的跌落最低值大约到385V在电压环的作用下约0.15秒后恢复到400V。恢复过程中电流环和电压环配合良好电感电流平稳上升没有出现明显的过冲。这里有一个实际工程上的经验恒功率负载具有负阻抗特性和恒阻抗负载相比它会让系统阻尼变小。在某些参数组合下恒功率负载比例过大会导致母线电压低频振荡。我在做批量工况测试时把恒功率负载比例从10%逐级加到80%发现比例超过60%以后电压波形开始出现持续的等幅振荡频率大约在5Hz左右。这提示控制系统需要增加阻尼环节比如在电压外环前馈一个负载电流分量或者增大母线电容容量。针对这个问题我把母线电容从2000μF提升到3000μF振荡得到了明显抑制。如果不想增加电容容量也可以在控制层面做文章在电流内环参考值上叠加一个与母线电压变化率成正比的阻尼项相当于在系统里人为增加了一个虚拟电阻。这个思路在实际工程中已经应用得很成熟。4.4 多工况连续运行的稳定性验证把这三种工况串联起来组成一个20秒的连续运行脚本前5秒光照渐变第5到10秒光照阶跃第10到15秒负载突变第15到20秒全部恢复初始状态。整个过程中母线电压始终在390V到410V之间运行没有出现发散、失稳或者控制器饱和的现象。控制器饱和的问题我特别检查过。在光伏功率最低而负载最大的区间储能放电电流达到最大值PI输出接近饱和限幅。如果限幅设置不当积分项会继续累积造成积分饱和windup表现为电流指令已经超出变换器能力但PI仍在积分导致系统恢复时出现过冲。我的做法是在PI控制器模块里勾选了Anti-windup选项同时设置了输出限幅为±80A。多工况连续运行在数值稳定上也验证了系统的整体性。仿真跑了20秒用了约40万步计算没有出现步长重置或数值异常。这说明离散求解器的参数设定和模型本身的刚性程度是匹配的。5. 常见问题与排查技巧实录5.1 模型初始化报错和电气接口问题我在这套模型上投入的时间至少有一半花在排查各种低级错误上。最基本的错误就是Simscape电气信号和Simulink一般信号混连。报错信息会提示端口类型不匹配例如某个模块的输出端口是Electrical端子却接到了普通信号的输入端口上。排查这类问题最简单的方法是看端口图标。Specialized Power Systems库里电气端口的图标是圆形的Simulink普通信号端口的图标是三角形的。如果发现三角形端口接到圆形端口上就是接口不匹配。解决方案是在电气侧接电压传感器或电流传感器利用Sensor模块输出Simulink信号在信号侧则需要用受控电压源或受控电流源把信号转换成电气量。另外一个常见的启动报错是alert global data type mismatch。这个通常是Configuration Parameters里默认的数据类型和模块里设置的数据类型不一致。解决方法是把所有模块的Output data type统一设置为inherit via internal rule让Simulink自动推导。5.2 PI控制器参数不合理导致的震荡问题PI参数整定是仿真调参里最令人头大的环节。我遇到过非常典型的震荡场景电压环PI的Kp从10改到30之后母线电压出现持续等幅振荡周期大约是20毫秒。查看波形发现电压指令和实际电压交替超调系统处于临界稳定状态。排查思路是这样的先确认振荡是控制层面引起的而不是电力电子开关模态引起的。用一个简单的方法区分——把PWM载波频率从10kHz提升到50kHz如果振荡频率不变说明振荡主要来自控制器参数不是开关噪声。接下来用Control System Toolbox画出电流闭环和电压闭环的bode图。针对振荡频率对应的相位裕度进行分析发现相位裕度只有20度左右明显偏低。正确的处理是降低电压环Kp到15同时增加Ki把低频增益提上去这样既能保证稳态精度又获得足够的相位裕度。5.3 仿真速度过慢和数值发散的处理跑一次20秒的仿真如果耗时几分钟还可以忍受但如果要跑几十组参数批次优化效率问题就会很突出。我采用的优化手段包括把Simscape Electrical的开关器件模型由Detailed改为Average平均值模型在精度容许范围内能显著加快仿真速度其次是降低不必要的波形采样频率只在关键节点接入Scope模块否则Simulink会记录每个节点的数据内存和计算开销成倍增长。数值发散的问题是另一种常见故障。表现是仿真进行到某一步曲线突然变成NaN或者出现巨大尖峰。原因通常是步长太大或者求解器在开关切换瞬间无法收敛。处理方式有两个一是把固定步长从2e-6缩小到1e-6二是把开关器件的缓冲电阻Buffer Resistance设为合理值我通常设为1e6欧姆太低会造成非物理的漏电流太高则可能造成数值刚性问题。5.4 电池SOC保护逻辑的调试要点SOC保护逻辑调试时最容易出现的问题是在边界条件下反复切换。比如SOC降到20%时强制放电关闭光伏功率恢复后给电池充电SOC上升到20.1%时放电又打开如此反复系统进入振荡。解决方案是引入滞环控制当SOC低于20%时关闭放电只有当SOC回升到25%时才重新允许放电。这个5%的滞环带能有效避免边界抖动。同样的逻辑也应用于SOC上限保护充电关闭阈值90%重新允许充电阈值85%。5.5 和实际参数不对应的问题仿真模型的一个通病是把所有器件当作理想模型来处理。实际中直流母线的线路电阻、电感的等效串联电阻ESR、开关管的导通压降都会影响电压电流波形。如果你做完仿真拿实际硬件来对照会发现一些微小的偏差这是正常的。在我这个模型里线路电阻设为0.1欧姆电感ESR设为0.05欧姆这些寄生参数在模型里都是可见、可调的。建议在模型参数面板里写清楚这些寄生参数的位置和默认值方便以后做硬件在环仿真时直接对标。6. 模型扩展方向与实用建议6.1 从单储能向多储能并联扩展现在这个模型用的是单储能单元主从控制。如果你要研究多储能并联的功率分配问题可以把储能模块复制成两路或三路在协调控制层把下垂控制算法加进去。这里要重点处理的问题是多个储能之间的环流。只要电压参考值之间存在偏差储能之间就会有环流电流影响电池寿命和系统效率。我的建议是先用理想电压源并联模型跑通下垂算法再加入线路阻抗最后才把电池动态模型接上去。一步步来问题定位会容易很多。6.2 增加并网接口和AC负载目前的模型是一个纯离网型直流微电网。如果要做并网友好型设计可以在直流母线上通过DC-AC逆变器接入交流电网。这样系统可以在并网模式和离网模式之间切换并网时由电网支撑母线电压储能可以腾出来做更多的削峰填谷策略。DC-AC逆变器用Simscape Electrical里的Universal Bridge模块搭配PWM发生器就能实现。控制目标一般是恒功率并网或者参与交流电网的频率调节。这部分和直流母线电压控制是嵌套关系需要在架构上先理清主从关系。6.3 引入智能优化算法做能量管理如果对能量管理策略感兴趣可以把模型里的固定逻辑如SOC滞环控制替换成基于规则的能量管理策略或智能优化算法。Matlab里可以直接跑粒子群算法、遗传算法来做日前调度也可以接Deep Reinforcement Learning Toolbox做基于强化学习的在线能量管理。市面上的DQN、PPO算法Matlab实现很多都可以直接嵌入到这套模型中。关键是把仿真环境封装成强化学习的交互接口即每个时间步输出状态量接收动作量计算奖励。我建议先用简化的平均值模型跑通强化学习流程再切换回详细开关模型验证结果。直接让强化学习算法去控制详细开关模型训练速度会让你崩溃。6.4 硬件在环仿真方向如果你的课题涉及硬件在环这个模型同样可以扩展。Matlab支持通过Simulink Real-Time和Speedgoat主机连接也可以直接用Support Package for Arduino或树莓派做快速原型验证。把控制算法编译成C代码下载到控制器里用实时仿真器代替真实主电路这就是硬件在环的基本配置。直流微电网的控制器通常在毫秒级动态响应这种实时验证方式非常有价值。平台边界提醒一下无论怎么扩展都要保留原始模型的核心标签——Matlab 2016及以上功率波动直流母线电压控制。这三个要素就是我搭建这套模型的出发点和归宿。7. 我在实际操作中的几点体会第一点是调参的顺序问题。很多人上来就同时调整电压环和电流环参数结果出了问题根本不知道是哪一层引入的。我自己摸索出来的顺序是先把电流环闭合标定好电流跟踪性能再闭合电压环。每一个环节都要用Bode图验证稳定性不要盲调。第二点是保存版本的习惯。Matlab的模型文件在不同版本之间互不兼容哪怕只是从2016b升级到2018a打开模型时也很可能会提示模块缺失或参数被替换。我做仿真时会按版本号保存备份比如model_2016b.mdl和model_2018a.mdl。这看起来麻烦但能省去后面很多莫名其妙的调试时间。第三点是关于仿真的结果不要过度相信。仿真模型的价值在于解释控制逻辑和验证趋势但和实际情况总有偏差。光伏电池的实际效率会受温度分布不均匀、局部遮挡等因素影响这种微秒级的物理过程在仿真里是模拟不出来的。做工程要时刻清楚哪些结论可以依靠仿真哪些必须回到实验去验证。如果你现在手里也有一套类似模型的雏形建议先不要在控制策略层面做太多花活优先把双闭环PI跑稳定再加上MPPT然后才是各种高级控制算法。基础不稳上层的一切都是空中楼阁。这套直流微电网模型包含的整个思路和代码我都已经整理过归档。有需要的话可以把模块结构图和控制流程梳理成另一篇文章专门聊MPPT和下垂控制数值实现上的细节。这篇先到这希望对正在折腾直流微电网仿真的朋友有点实际帮助。
返回列表