当前位置: 首页 > news >正文

不平衡电网条件下基于变频器DG操作的多目标优化研究(Matlab代码Simulink实现)

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码&Simulink实现&文章讲解


💥1 概述

文献来源:

最近,利用并网转换器(GCC)克服电网故障并支撑电网电压已成为电网规范中反映的主要要求。本文提出了一种新颖的参考电流产生方案,该方案通过使用四个控制参数注入一组适当的正/负有功/无功电流来支持电网电压。提出了解析表达式以获得这些参数在任何电网电压条件下的最优值。通过实现以下目标,可以获得最佳性能:第一,符合相电压限制,第二,最大化有功和无功功率输出,第三,最小化故障电流,第四,减少有功和无功功率的振荡。这些最佳行为为新兴的GCC带来了显著的优势,例如提高效率,降低直流母线纹波,提高交流系统稳定性以及避免设备跳闸。仿真和实验结果验证了分析结果和所提表达式的有效性。 

可再生能源和分布式发电(DG)机组在电力中的渗透率越来越高 系统造成了严重的稳定性问题。因此,系统规划人员一直在制定严格的 异常电网条件下并网转换器 (GCC) 运行的要求 [1]–[3]。因此,海湾合作委员会 不仅应承受此类干扰并继续为电网供电,还应提供电压/频率支持。 GCC是否符合这些新要求已在文献中进行了广泛的研究,例如, 在[1]–[20]中。在此 关于GCCs的许多控制策略已经在[13]-[20]中提出。

本文使用最先进的参考电流发生器(RCG)策略(在[3]中介绍),可以灵活地包含正/负和有功/无功 电流。该RCG通过两个控制参数提供有价值的电压支持服务,kp和kq ,在相应有源和 无功电流。同样,有功和无功功率(PQ)的参考值可以被视为其他两个参考值。**

  

📚2 运行结果

 

 

 

 

 

 

 

 

  所有模型和讲解见第4部分。

set(0,'DefaultAxesFontSize',24,'DefaultAxesFontName','Helvetica','DefaultAxesFontWeight','bold','DefaultLineLineWidth',2,'DefaultAxesLineWidth',1)
plot(k1,Imax,'--','color',[0 .45 .74],'LineWidth',6)
grid on
hold on
plot(k1,sqrt(Ia),'color',[0.75 0 .75])
plot(k1,sqrt(Ib),'color',[.85 .33 .1])
plot(k1,sqrt(Ic),'color',[0 .5 0])

legend('Imax','Ia','Ib','Ic')
hold on
plot(k1_opt(O),min(Imax_opt),'s','color',[0 .45 .74],'MarkerSize',25,'MarkerFaceColor',[0 .45 .74])

plot(k1(J),min(Imax),'o','color',[.85 .33 .1],'LineWidth',2,'MarkerSize',15)

                    title(['P=', num2str(P(p)), '  pu    Q=', num2str(Q(q)), '  pu    Vp=', num2str(Vp(vp)), '  pu    Vn=', num2str(Vn(vn)), '  pu      k_q=', num2str(k2(k)),'   pu      k_p_,_o_p_t=  ', num2str(k1_opt(O(1))), '         I_m_a_x_,_o_p_t=  ', num2str(min(Imax_opt)), '   pu'])
                    
                    xlabel('k_p');
                    ylabel('I_m_a_x (pu)');
 
%% 
                    A=3*P(p)^2*n; B=-3*P(p)^2*n+sqrt(3)*P(p)*Q(q)*n*(2*k2(k)-1); C=3*n*k2(k)*Q(q)^2*(1-k2(k))-sqrt(3)*P(p)*Q(q)*n*k2(k);
                    delta=B^2-4*A*C;
                    if delta>=0
                        k1_intsec_IaIb=(-B+sqrt(delta))/2/A;
                        o_num=4;
                        k1_opt(o_num)=k1_intsec_IaIb;
                        
                        
                        if k1_intsec_IaIb<1 && k1_intsec_IaIb>0
                           
                        K1_intsec=P(p)/Vn(vn)*((n+1)*k1_intsec_IaIb-1);
                        K2_intsec=Q(q)/Vn(vn)*((n-1)*k2(k)+1);
                        K3_intsec=P(p)/Vn(vn)*((n-1)*k1_intsec_IaIb+1);
                        K4_intsec=Q(q)/Vn(vn)*((n+1)*k2(k)-1);
                        
                        Ia_intsec=K1_intsec^2+K2_intsec^2;
                        Ic_intsec=(-.5*K1_intsec-sqrt(3)/2*K4_intsec)^2+(.5*K2_intsec-sqrt(3)/2*K3_intsec)^2;
                        
                        plot(k1_intsec_IaIb,sqrt(Ia_intsec),'s','color',[0 .45 .74],'MarkerSize',25)

                        Imax_intsec=sqrt(max(Ia_intsec,Ic_intsec));
                        end
                    end
                    
                    
                    
                  %%
                    A=3*P(p)^2*n; B=-3*P(p)^2*n-sqrt(3)*P(p)*Q(q)*n*(2*k2(k)-1); C=3*n*k2(k)*Q(q)^2*(1-k2(k))+sqrt(3)*P(p)*Q(q)*n*k2(k);
                    delta_IaIc=B^2-4*A*C;
                    if delta_IaIc>=0
                        k1_intsec_IaIc=(-B+sqrt(delta_IaIc))/2/A;
                                     
                        if k1_intsec_IaIc<1 && k1_intsec_IaIc>0
                           
                        K1_intsec=P(p)/Vn(vn)*((n+1)*k1_intsec_IaIc-1);
                        K2_intsec=Q(q)/Vn(vn)*((n-1)*k2(k)+1);
                        K3_intsec=P(p)/Vn(vn)*((n-1)*k1_intsec_IaIc+1);
                        K4_intsec=Q(q)/Vn(vn)*((n+1)*k2(k)-1);
                        
                        Ia_intsec=K1_intsec^2+K2_intsec^2;
                        Ib_intsec=(-.5*K1_intsec+sqrt(3)/2*K4_intsec)^2+(.5*K2_intsec+sqrt(3)/2*K3_intsec)^2;

                        plot(k1_intsec_IaIc,sqrt(Ia_intsec),'s','color',[0 .45 .74],'MarkerSize',25)

                        end
                        

                        end
                    end
                    
                        i=i+1;
                    
                end
            end
        end
    end
% end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]M. M. Shabestary and Y. A. -R. I. Mohamed, "Analytical Expressions for Multiobjective Optimization of Converter-Based DG Operation Under Unbalanced Grid Conditions," in IEEE Transactions on Power Electronics, vol. 32, no. 9, pp. 7284-7296, Sept. 2017, doi: 10.1109/TPEL.2016.2628405.

[2]谭畅舒,李艳,田杰,明威宇,李妍,王少荣.计及分布式能源的主动配电网恢复力综合评估[J].电力科学与技术学报,2023,38(01):108-113.DOI:10.19781/j.issn.1673-9140.2023.01.012.

[3]葛钦. 电网故障下电力电子变压器故障穿越机理与控制策略研究[D].湖南大学,2020.DOI:10.27135/d.cnki.ghudu.2020.000151.

[4]庞永恒. 基于故障失配度的含新能源配电网接地故障定位方法研究[D].东北大学,2017.

🌈4 Matlab代码&Simulink实现&文章讲解

http://www.lryc.cn/news/112708.html

相关文章:

  • 【Leetcode】(自食用)简单题||单词数
  • C语言代码的x86-64汇编指令分析过程记录
  • 基于springboot+vue的房屋租赁系统(前后端分离)
  • Python文件读写操作详解:从基础到高级
  • ThreadLocal基本介绍
  • ffmpeg源码编译成功,但是引用生成的静态库(.a)报错,报错位置在xxx_list.c,报错信息为某变量未定义
  • 2023爱分析·信创云市场厂商评估报告:中国电子云
  • 网络安全学习笔记——XFF攻击流程
  • 微信小程序阻止用户返回上一页,并弹窗给用户确定是否要返回上一页
  • LangChain+ChatGLM整合LLaMa模型(二)
  • 【NLP】训练chatglm2的评价指标BLEU,ROUGE
  • java+springboot+mysql员工工资管理系统
  • FL Studio Producer Edition 21 v21.0.3 Build 3517 Windows/mac官方中文版
  • 探索Python数据容器之乐趣:列表与元组的奇妙旅程!
  • Python自动化实战之使用Pytest进行API测试详解
  • TCP的三次握手以及四次断开
  • 目标检测YOLO实战应用案例100讲-基于视觉与激光雷达信息融合的智能车辆目标检测研究
  • Day 22 C++ STL常用容器——string容器
  • 使用Socket实现UDP版的回显服务器
  • 【MCU学习】GD32F427VG开发
  • Acwing.877 扩展欧几里得算法
  • 基于自组织竞争网络的患者癌症发病预测(matlab代码)
  • golang mongodb
  • docker中的jenkins去配置sonarQube
  • 企业如何实现自己的AI垂直大模型
  • Maven可选依赖和排除依赖简单使用
  • “深入探索JVM:Java虚拟机的工作原理解析“
  • Prometheus-各种exporter
  • 小程序的 weiui的使用以及引入
  • git目录初始化,并拉取最新代码