核心内容摘要
枪随心动,舞破苍穹——云缨:那束刺破黑暗的光
光伏mppt仿真Buck变换器/Boost变换器最大功率点追踪控制模型 闭环控制仿真 扰动观察法和电导增量法都有 plecs模型/matlab/simulink模型 ~光伏系统里最大功率点追踪MPPT就像给太阳能板装了个智能导航得随时跟着光照、温度的变化找最佳发电位置。
这次拿Buck和Boost两种变换器开刀用扰动观察法和电导增量法做个双算法对决顺便聊聊怎么在Simulink里搭闭环控制模型。
先看Buck变换器这边关键在占空比调节。
咱在Simulink里搭了个带滞回比较器的PWM模块配合电压电流双环控制。
核心代码就藏在MATLAB Function块里function duty_cycle POB_MPPT(V_pv, I_pv, prev_duty, step_size) delta_P V_pv * I_pv - prev_P; if delta_P 0 duty_cycle prev_duty step_size; else duty_cycle prev_duty - step_size; end prev_P V_pv * I_pv; % 记住这个状态得用persistent变量存 end这扰动观察法代码看着简单但step_size参数是个玄学——设大了系统振荡像蹦迪设小了响应速度堪比树懒。
实测中
02的步长配合
1秒的扰动周期在突变的云层遮挡下还能稳住阵脚。
光伏mppt仿真Buck变换器/Boost变换器最大功率点追踪控制模型 闭环控制仿真 扰动观察法和电导增量法都有 plecs模型/matlab/simulink模型 ~Boost变换器那边玩的是升压戏法重点在电感参数选择。
用PLECS搭模型时发现了件趣事电感的饱和电流设低了会导致MPPT算法抽风明明该升压的时候突然摆烂。
这里给出电导增量法的实现要点function duty_cycle INC_MPPT(V_pv, I_pv, prev_V, prev_I) delta_V V_pv - prev_V; delta_I I_pv - prev_I; if delta_V 0 if delta_I 0 duty_cycle prev_duty; else duty_cycle prev_duty sign(delta_I)*step_size; end else G I_pv/V_pv delta_I/delta_V; duty_cycle prev_duty (G 0 ? step_size : -step_size); end end这算法对电压采样的噪声特别敏感得在AD转换前加个移动平均滤波。
仿真时发现个反直觉现象在光照快速增强时Boost结构的追踪速度反而比Buck慢
3秒左右因为升压过程需要先给电感充能。
闭环控制里最坑的是采样周期与PWM频率的配合有个仿真案例因为把电流采样放在PWM上升沿导致控制环路直接崩溃。
后来改成在PWM周期中点采样系统立马老实了。
仿真模型里记得加这个细节否则可能调参调到怀疑人生。
最后实测数据说话在梯形光照变化下扰动观察法的平均效率
9
7%电导增量法
9
5%但前者计算量只有后者的1/3。
所以别盲目追求算法复杂度关键看应用场景——要是用在便宜的光伏控制器上扰动观察法反而更香。