s1=Jacco\eye(size(Jacco)); gama_v=zeros(2*nb,jieshu); %电压相角、幅值 for i=1:jieshu gama_v(:,i)=(s1.^i)*gama_pq(:,i); end gama_vm=gama_v(nb+pq,:); %pq节点电压幅值的半不变量
时间: 2024-03-31 14:37:48 浏览: 53
这是一段 MATLAB 代码,代码中定义了一个名为 s1 的矩阵,使用了 size 函数根据 Jacco 矩阵的大小创建了一个同样大小的单位矩阵。同时定义了一个名为 gama_v 的零矩阵,并使用了 for 循环计算了 gama_v 的值。最后,通过切片操作获取了 gama_vm 矩阵。具体的算法和应用需要结合上下文才能理解。
相关问题
%-修正平衡节点和pv节点对应的系数 Jacco=Jacco2; Jacco(isb,:)=0; Jacco(:,isb)=0; Jacco(isb,isb)=1; Jacco(isb+nb,:)=0; Jacco(:,isb+nb)=0; Jacco(isb+nb,isb+nb)=1; Jacco(pv+nb,:)=0; Jacco(:,pv+nb)=0; Jacco=Jacco+sparse(nb+pv, nb+pv, ones(npv,1), 2*nb, 2*nb);
这段代码主要是修正雅可比矩阵,以便进行牛顿-拉夫逊潮流计算。具体解释如下:
1. Jacco=Jacco2;:将计算得到的雅可比矩阵Jacco2赋值给Jacco。
2. Jacco(isb,:)=0; Jacco(:,isb)=0; Jacco(isb,isb)=1;:将平衡节点对应的行和列全部置为0,同时将平衡节点对应的对角线元素置为1。这是因为平衡节点的电压相角和电压幅值是固定的,不参与计算。
3. Jacco(isb+nb,:)=0; Jacco(:,isb+nb)=0; Jacco(isb+nb,isb+nb)=1;:同理,将平衡节点对应的虚部行和列全部置为0,同时将平衡节点对应的虚部对角线元素置为1。
4. Jacco(pv+nb,:)=0; Jacco(:,pv+nb)=0;:将PV节点对应的行和列全部置为0,因为PV节点的无功功率不参与计算。
5. Jacco(pv+nb,pv+nb)=1;:将PV节点对应的无功功率的对角线元素置为1,因为PV节点的有功功率是由其他节点的电压幅值来调节的。
6. Jacco=Jacco+sparse(nb+pv, nb+pv, ones(npv,1), 2*nb, 2*nb);:将Jacco中的所有元素都加上一个稀疏矩阵,其大小为(nb+pv)×(nb+pv),其中稀疏矩阵的对角线元素全部为1,其余元素全部为0。这相当于向Jacco的对角线元素中添加了一些额外的1,以保证Jacco的行列式不为0,从而避免牛顿-拉夫逊潮流计算中的奇异性问题。
[basemva bus gen branch success et dSbus_dVm dSbus_dVa]=runpf(shuju); H=real(dSbus_dVa); M=imag(dSbus_dVa); N=real(dSbus_dVm); L=imag(dSbus_dVm); Jacco2=[H N M L]; %N=dP/dU L=dQ/dU
这段代码是在运行潮流计算模型runpf后,计算雅可比矩阵。其中,runpf函数的输入参数为shuju,输出参数包括basemva、bus、gen、branch、success、et、dSbus_dVm和dSbus_dVa。其中,dSbus_dVm和dSbus_dVa分别是节点注入功率分别关于节点电压幅值和相角的偏导数,它们的大小均为nb×nb,表示电力系统的潮流关系。通过取实部和虚部,将它们分别表示为dP/dU、dQ/dU、dP/dθ和dQ/dθ四个矩阵。然后将这四个矩阵合并成一个大小为2nb×2nb的雅可比矩阵Jacco2。该矩阵可以用于计算电力系统的灵敏度分析和概率潮流计算。
阅读全文