✅作者简介:热爱科研的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电子书和数学建模资料