在对系统进行小信号稳定性分析时,参与因子是分析特征值相互影响程度重要的参考之一,本文章并非侧重于对参与因子的作用和意义进行说明,而是梳理参与因子的具体计算方式。

在大量的论文中,参与因子的计算都被一带而过,比较详细的会说明参与因子的具体计算方式,比如:

又如:

按照诸如此类的推导可以编写计算程序,程序往往先分别求状态空间矩阵的右特征向量组V和左特征向量组U,再根据UV=I对矩阵进行归一化,最后将其元素相乘。

但是在实际分析中,状态空间矩阵的特征值很可能存在复数的情况,此时VU均为复数矩阵,UV=I就不再成立,相乘会使斜对角线出现非0元素,而主对角线元素为0。使得上述的计算过程根本无法进行,求得同一个模态的参与因子竟完全不同,显然其中存在问题。

作者对目前的文献进行不断溯源,最终在Kundur P. Power system stability[J]. Power system stability and control, 2007, 10: 7-1.中找到了具体的计算方式,如下:

完成归一化和左特征向量组均由求取右特征向量组的逆完成,最后求得参与因子矩阵只需要根据复数的模进行参与度评估即可。

后记

上述书中对于参与因子的求法似乎可以用matlab中先对U求转置在.*实现,即:

P=U'.*V;

但算出和书中的结果不一样,存在振荡的模态参与因子完全不一样,自己编写了矩阵元素乘法后才最后一致,原因暂时未知。

不得不说小小的参与因子计算方法都有这么多坑,从开始对文献的调研到最后完整解决用了尽两天时间。暴露了目前科研文献多而不精的现状,其中某些论文究竟是否是按照上述做法进行还是个未知数。。。

2024.7.15更新:

大佬weixin_48048545指出,针对于复数矩阵U,转置U'的运算会变为求矩阵的共轭,导致结果不一致,U.'才是正确的编程方式。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐