请问用MATLAB编写潮流计算程序时,比如PQ法或者NR法,设置循环次数的意义在哪里呢?

请问用MATLAB编写潮流计算程序时,比如PQ法或者NR法,设置循环次数的意义在哪里呢?,第1张

潮流计算程序中设这迭代次数上限是为了应对潮流发散的情况。

比如一个正确的潮流计算 一般用牛拉法是 迭代6次,PQ分解法是 迭代12次。若潮流出现发散情况,迭代到20次,dP和dQ仍然不能收敛到你要的精度(比如0.0001),此时我们判定潮流发散,若不设一个迭代上限,可想而知,程序会一直迭代下去,此时数值已完全失去意义。

潮流发散意味着计算失败,这可能由两个原因导致:1数据存在问题,初值不在收敛域以内;2程序本身问题,考虑不全面,有bug。

同时也可能产生两个现象,一种是 潮流直接发散,若干次迭代后,数值已经很离谱,此时数值肯定没有意义。还有一种是,雅克比矩阵接近病态,收敛极其缓慢(也可能是初值选取不当),此时适当的放大收敛次数限制,有一定可能得到收敛后的结果。

多编程序,多思考,希望对你有帮助!

1.首先要告诉你,不管是何种程序,在正确之前必须经过调试,因为错误是感觉不到的,必须经过程序逻辑的跟踪才能发现。当然,调试的过程一般比较辛苦,也需要一定的功力,建议可以请教一下比你水平高的人。否则,即便一个细小的错误也可能导致程序的错误,而你却永远无法发现!您所提到的现象,我相信没有人能够立刻回答为什么。 因此,下面提到的几点是给你调试的几点思路,帮助您自己找到问题,纠正错误!

2.首先必须明白的是:潮流计算,牛拉法一般是:6次左右收敛,PQ分解法是12次左右收敛。首先要确定是你读取的数据正确,这个可以找一个正确的潮流程序进行验证,也可以将真值作为初始值在你的潮流程序中进行验证。你提到的迭代次数给人感觉好像是PQ分解法。

3.将每次迭代后的V和相角都输出出来进行观察,你说迭代9次后,失配量反而变大了。到底是哪个节点的失配量变大了?是P还是Q?该节点的V和相角是否已经离谱了? 再然后是确定,B, B,,两个矩阵是否是正确的。总共不就64个元素,一一进行检验。根据你描述的现象,我敢确定的是迭代9次后,你程序的V和 相角 已经发生了离谱的变化,希望你自己观察。

4.检验程序是否有错误的逻辑,V和相角的修正量是+还是-,变压器支路的处理是否正确,等等。

程序急不来,不能眼高手低。不经过深入的分析,不经过痛苦的修炼,永远不能成为高手,潮流计算也只是最最简单的入门。

若是你的心态仅仅是为了应付一次毕业设计之类,一辈子再也不会做与程序有关的事情,我建议你找一位要好的老师或者同学来帮你去应付这个过程。

这是牛顿法原理

把非线性函数f(x)在x = 0处展开成泰勒级数

牛顿法

取其线性部分,作为非线性方程f(x)=0的近似方程,则有

f(0 )+(x-0 ) f′(0 )=0

设f′(0 )≠0?,则其解为x = - xf(1)

再把f(x)在x 处展开为泰勒级数,取其线性部分为f(x)=0的近似方程,若f′(x ) ≠0,则得x = - 如此继续下去,得到牛顿法的迭代公式:x = - ...(n=0,1,2,…) (2)

例1 用牛顿法求方程f(x)=x +4x -10=0在[1,2]内一个实根,取初始近似值x =1.5。 解 ?f′(x)=3x +8x??所以迭代公式为:

x = -... n=0,1, 2,...

列表计算如下:

n

0

1

2

3

1.5

1.3733333

1.36526201

1.36523001


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8044537.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存