当前位置:编程学习 > Matlab >>

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

我看有些潮流程序设置了循环次数限制,比如K<20,有些则没有。那些设置循环次数的程序,我试着取掉循环次数的限制,结果出现NAN的结果,那请问,设置循环次数的限制有什么意义?设置循环次数之后得到的结果,可以用吗?有意义吗? 谢谢了
追问:
那请问您,设置迭代次数后得出的结果,可以作为正确结果来进行下一步的计算吗?还是当做错误的结果不能使用呢?谢谢您
当你的迭代次数达到设置次数上限,应该认为潮流已经发散,结果肯定是不对的。
答案:在潮流计算程序中设这迭代次数上限是为了应对潮流发散的情况。
比如一个正确的潮流计算 一般用牛拉法是 迭代6次,PQ分解法是 迭代12次。若潮流出现发散情况,迭代到20次,dP和dQ仍然不能收敛到你要的精度(比如0.0001),此时我们判定潮流发散,若不设一个迭代上限,可想而知,程序会一直迭代下去,此时数值已完全失去意义。 
潮流发散意味着计算失败,这可能由两个原因导致:1数据存在问题,初值不在收敛域以内;2程序本身问题,考虑不全面,有bug。
同时也可能产生两个现象,一种是 潮流直接发散,若干次迭代后,数值已经很离谱,此时数值肯定没有意义。还有一种是,雅克比矩阵接近病态,收敛极其缓慢(也可能是初值选取不当),此时适当的放大收敛次数限制,有一定可能得到收敛后的结果。
多编程序,多思考,希望对你有帮助!
其他:上述回答已经很全面了。

上一个:谁能帮我写一段matlab小程序。。。小弟很穷。。。
下一个:必须是MATLAB程序,只要把车牌区域定位出来就行了,不需要识别!!!急着用,望筒子们多帮忙啊!!!

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,