li=shuju.branch(:,1); lj=shuju.branch(:,2); b=size(shuju.branch,1); %线路数 G11=zeros(b,nb); %线路有功对角度的倒数 G12=zeros(b,nb); %线路有功对电压的导数 G21=zeros(b,nb); G22=zeros(b,nb); for i=1:b G11(i,li(i))=-H(li(i),lj(i)); G11(i,lj(i))=H(li(i),lj(i)); G12(i,li(i))=0.01*2*branch(i,14)/bus(li(i),8)-N(li(i),lj(i)); %%化为标幺值 G12(i,lj(i))=N(li(i),lj(i)); G21(i,li(i))=-M(li(i),lj(i)); G21(i,lj(i))=M(li(i),lj(i)); G22(i,li(i))=0.01*2*branch(i,15)/bus(li(i),8)-H(li(i),lj(i)); %%化为标幺值 G22(i,lj(i))=H(li(i),lj(i)); end G=[G11 G12;G21 G22]; t1=G*s1;
时间: 2023-10-26 11:06:05 浏览: 137
这段代码是在计算概率潮流时,对线路的敏感度进行计算。其中,li和lj分别是线路的起点和终点的节点编号,b是线路数。首先,初始化四个大小为b×nb的矩阵G11、G12、G21和G22,用于存储线路有功对节点电压相角和电压幅值的敏感度。然后,对于每一条线路,根据电力系统潮流关系计算出其对应的敏感度矩阵,并将其填充到G11、G12、G21和G22矩阵中。最后,将四个矩阵合并成大小为2b×2nb的敏感度矩阵G,并乘以节点电压半不变量矩阵s1,得到线路有功对节点电压相角和电压幅值的敏感度t1。
相关问题
shuju=data_ieee30; pv=find(shuju.bus(:,2)==2); pq=find(shuju.bus(:,2)==1); isb=find(shuju.bus(:,2)==3); %平衡节点 npv=length(pv); npq=length(pq); nb=size(shuju.bus,1); %节点数 mu_P_G=zeros(nb,1); %%节点发电机有功功率 mu_P_G(shuju.gen(:,1))=shuju.gen(:,2)/100; mu_Q_G=zeros(nb,1); %%节点发电机无功功率 mu_Q_G(shuju.gen(:,1))=shuju.gen(:,3)/100; mu_P_L=shuju.bus(:,3)/100; %%节点负荷有功功率 mu_Q_L=shuju.bus(:,4)/100; %%节点负荷无功功率 sigma_P_L=mu_P_L*0.3; sigma_Q_L=mu_Q_L*0.3; mu_P=mu_P_G-mu_P_L; %%节点注入有功 mu_Q=mu_Q_G-mu_Q_L; %%节点注入无功
这段代码是在对IEEE30电力系统进行概率潮流计算前进行数据预处理。其中,shuju是电力系统的数据,pv、pq和isb分别表示平衡节点、PQ节点和PV节点的编号。npv、npq和nb分别表示PV、PQ节点数和总节点数。mu_P_G和mu_Q_G是节点发电机的有功功率和无功功率,分别由shuju.gen的第2列和第3列除以100得到。mu_P_L和mu_Q_L是节点负荷的有功功率和无功功率,分别由shuju.bus的第3列和第4列除以100得到。sigma_P_L和sigma_Q_L分别是节点负荷的有功功率和无功功率的标准差,分别为期望值的30%。mu_P和mu_Q分别是节点的注入有功功率和无功功率,由节点发电机和节点负荷相减得到。
shuju=data_ieee30; index_load=shuju.bus(:,3)>0; n_load=sum(index_load); %%负荷节点数 load=shuju.bus(index_load,[1,3,4]); mu_load_p=shuju.bus(index_load,3); sigma_load_p=0.3*mu_load_p; %%负荷标准差为期望值30% mu_load_q=shuju.bus(index_load,4); sigma_load_q=0.3*mu_load_q; m=500; %%抽样数 p_load=zeros(n_load,m); p_loss=zeros(m,1); v_mc=zeros(30,m); %%%%%%%抽样得到负荷样本 for i=1:n_load p_load(i,:)=normrnd(mu_load_p(i),sigma_load_p(i),1,m); q_load(i,:)=normrnd(mu_load_q(i),sigma_load_q(i),1,m); end for i=1:m shuju.bus(index_load,3)=p_load(:,i); shuju.bus(index_load,4)=q_load(:,i); [basemva,bus,gen,branch]=runpf(shuju); p_loss(i)=sum(branch(:,14)+branch(:,16)); v_mc(:,i)=bus(:,8); xianlu_p_mc(:,i)=branch(:,14)/100; xianlu_q_mc(:,i)=branch(:,15)/100; end
这段代码实现了基于蒙特卡洛方法的概率潮流计算,其主要步骤如下:
1. 从给定的IEEE30数据中获取负荷节点数和负荷数据,其中负荷功率和无功功率分别服从期望值为原始数据的30%的正态分布。
2. 设置抽样参数,包括抽样数m和每个负荷节点的功率抽样值p_load和q_load。
3. 对于每个抽样值,将其代入潮流计算模型中,得到电力系统的状态量,例如节点电压、线路功率等。
4. 对于每个抽样值,统计电力系统的损耗功率p_loss,作为电力系统的性能指标之一。
5. 重复步骤3和4,进行多次抽样和计算,得到电力系统的概率分布。
6. 将每次抽样得到的电压和线路功率等状态量记录下来,用于后续的分析和评估。
需要注意的是,这段代码中使用了MATLAB自带的runpf函数进行潮流计算,其底层实现使用的是牛顿-拉夫森迭代法。同时,这段代码中只考虑了负荷功率和无功功率的随机性,其他因素如发电机出力、线路故障等因素并未考虑。因此,在实际的电力系统分析中,需要根据具体情况进行模型的建立和分析。
阅读全文