基于matlab实现考虑泄流效应的光伏并网点电压系统侧无功优化

文章提出了一种针对风电场并网点电压越限的预防控制方法,考虑了无功补偿站的泄流效应。通过定义泄流比,筛选候选补偿站,并设计了启发式及线性规划决策模型来优化调控。算例证明该方法能有效稳定风电场并网点电压。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

风电场常因自身无功容量配置不足而导致并网点电压在某些工况下越限,参与并网点电压增援调控的周边无功补偿站,其增发/减发的无功功率会出现泄流效应.此效应既降低了对风电场电压的支撑力度,又可能引起其他节点电压出现新的越限.为此,针对并网点电压越限的预防控制问题,提出一种考虑泄流效应的风电场系统侧增援调控方法.首先,介绍了无功补偿增量的泄流效应并定义了泄流比;其次,讨论了待调控风电场周边变电站参与增援调控的基本条件,给出了筛选候选无功补偿站的方案;最后,设计了分配增援调控任务的启发式决策方法和考虑调控代价差异的线性规划模型优化决策方法.算例结果表明,所提出的2种增援调控站无功补偿决策方法均能将风电场并网点电压调整并稳定在设定的范围内.

⛄ 部分代码

%keep track of lines to be deleted later

initialchildno = length(get(gca,'children'));

%% Initialise animation

switch nargin

    case 5

        lineObj = animInit();

        animation(phiVec,lVec,mVec,lineObj,pos2,footsep,initialchildno);

    case 6

        lineObj = animInit(corners);

        animation(phiVec,lVec,mVec,lineObj,pos2,footsep,initialchildno,corners);

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Local functions                                                       %%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Animation initialisation

function lineObj = animInit(corners)

    

    

    lWin = 5.0;    %window size

    figure(1)

    hold on

    axis equal

    axis([-5 5 -0.4 6])

    % Ground plot

    plot([-lWin lWin],[0 0],'k','LineWidth',2)

    %Underground lines

    for j = 1:30

        k = -lWin-1+j*2*lWin/20;

        plot([k;k+0.2],[0;-0.2],'k','LineWidth',2)

    end

    

    if nargin == 1

    

    %Grid added

    gridinitialise([-5;5],30,[0;6],30);

    %Obstacle added

    for i = 1:length(corners)/2

        obstenter(corners(:,2*i-1:2*i))

    end

    end

    

    %link line objects

    lineObj.h1 = line(0,0,'color','k','LineWidth',3);

    lineObj.h2 = line(0,0,'color','k','LineWidth',3);

    lineObj.h3 = line(0,0,'color','k','LineWidth',3);

    lineObj.h4 = line(0,0,'color','k','LineWidth',3);

    

    %foot line objects

    lineObj.f1 = line(0,0,'color','k','LineWidth',3);

    lineObj.f2 = line(0,0,'color','k','LineWidth',3);

    %joint line objects

    lineObj.d1 = line(0,0,'color','k','LineWidth',5,'Marker','o');

    lineObj.d2 = line(0,0,'color','k','LineWidth',5,'Marker','o');

    lineObj.d3 = line(0,0,'color','k','LineWidth',5,'Marker','o');

    

    %centre of mass line object

    lineObj.com = line(0,0,'color','r','LineWidth',3,'Marker','o');

end

%% Animation

function animation(phiVec,lVec,mVec,lineObj,pos2,footsep,initialchildno,corners)

    

    rMat = rmat2calc(phiVec,lVec,pos2);

    r00 = rMat(:,1);

    r11 = rMat(:,2);

    r22 = rMat(:,3);

    r33 = rMat(:,4);

    r44 = rMat(:,5);

    rf1 = rMat(:,6);

    rf2 = rMat(:,7);

    

    [ground, ~] = throughground(rMat);

    scollide = selfcollide(rMat,footsep);

    com = centreofmass(mVec,rMat);

    unstable = stability(com,pos2,0,lVec,2);

    ocoll = 0;

    if nargin == 8

        for i = 1:length(corners)/2

           if obstaclecollide(rMat,corners(:,2*i-1:2*i))

               ocoll = 1;

           end

        end

    end

    

    %set position

     set(lineObj.h1,'xdata',[r00(1) r11(1)],'ydata',[r00(2) r11(2)])

     set(lineObj.h2,'xdata',[r11(1) r22(1)],'ydata',[r11(2) r22(2)])

     set(lineObj.h3,'xdata',[r22(1) r33(1)],'ydata',[r22(2) r33(2)])

     set(lineObj.h4,'xdata',[r33(1) pos2(1)],'ydata',[r33(2) pos2(2)])

     

     set(lineObj.f1,'xdata',[r00(1) rf1(1)],'ydata',[r00(2) rf1(2)])

     set(lineObj.f2,'xdata',[pos2(1) rf2(1)],'ydata',[pos2(2) rf2(2)])

     set(lineObj.d1,'xdata',r11(1),'ydata',r11(2))

     set(lineObj.d2,'xdata',r22(1),'ydata',r22(2))

     set(lineObj.d3,'xdata',r33(1),'ydata',r33(2))

     

     set(lineObj.com,'xdata',com(1),'ydata',com(2))

     

     if ground == 1 || scollide == 1 || unstable == 1 || ocoll == 1

         set(gcf,'color','r');

     else

         set(gcf,'color','w');

     end

    drawnow

    

    %delete previous iteration

    children = get(gca, 'children');

    delete(children(end-initialchildno+1:end));

end

end

⛄ 运行结果

⛄ 参考文献

[1]于其宜, 王琦, 汤奕. 考虑泄流效应的风电场并网点电压系统侧增援调控方法[J]. 电力系统自动化, 2021, 45(13):10.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值