2012-2013第二学期课程设计
电力系统短路故障的计算机
算法程序设计
姓 名
学 号
班 级
指导教师 张凤鸽
1
目录
一、课程设计说明?????????????????3 二、选择所用计算机语言的理由???????????3 三、程序主框图、子框图及主要数据变量说明?????5 四、三道计算题及网络图?????????????9 五、设计体会???????????????????21 六、参考文献???????????????????22 七、附录(主程序及其注释)????????????23
2
电分课设报告
一、课程设计说明
根据所给的电力系统,编制短路电流计算程序,通过计算机进行调试,最后完成一个切实可行的电力系统计算应用程序。通过自己设计电力系统短路计算的程序,加深对电力系统短路计算的理解,同时培养自己在计算机编程方面的能力,提示自我的综合素质。
短路电流 (short-circuit current)电力系统在运行中 ,相与相之间或相与地(或中性线)之间发生非正常连接(即短路)时流过的电流。其值可远远大于额定电流 ,并 取决于短 路点距电源的电气距离。例如,在发电机端发生短路时,流过发电机的短路电流最大瞬时值可达额定电流的10~15倍。大容量电力系统中,短路电流可达数万安。这会对电力系统的正常运行造成严重影响和后果。
三相系统中发生的短路有 4 种基本类型:三相短路,两相短路,单相对地短路和两相对地短路。其中三相短路虽然发生的机会较少,但情况严重,又是研究其它短路的基础。所以我们先研究最简单的三相短路电流的暂态变化规律。
二、选择所用计算机语言的理由
MATLAB是一套功能强大的工程计算软件,被广泛的应用于自动控制、机械设计、流体力学和数理统计等工程领域。工程技术人员通过使用MATLAB提供的工具箱,可以高效的求解复杂的工程问题,并可以对系统进行动态的仿真,用强大的图形功能对数值计算结果进行显示。MATLAB是必备的计算与分析软件之一,也是研究设计部门解决工程计算问题的重要工具。我这次选用的是MATLAB R2009b计算软件。
MATLAB实现的优势:
MATLAB语言有不同于其他高级语言的特点,被称为第四代计算机语言。正如第三代计算机语言如FORTRAN与C等使人们摆脱了对计算机硬件的操作一样,MATLAB语言使人们从繁琐的程序代码中解放出来。它的丰富的函数是开发者无需重复编程,只要简单地调用和使用即可。MATLAB语言最大的特点是简单和直接。MATLAB语言的主要特点有:
1.编程效率高
3
MATLAB语言是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,且比BASIC、FORTRAN和C等语言更加接近我们书写计算公式的思维方式,用MATLAB编写程序犹如在演算纸上排列公式与求解问题。因此,也可通俗地称MATLAB语言为演算纸式科学算法语言。由于它编程简单,所以编程效率高,易学易懂。
2.高效方便的矩阵和数组运算
MATLAB语言像BASIC、FORTRAN和C语言一样规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,而且这些运算符大部分可以毫无改变的照搬到数组建的运算中。有些如算术运算符只要增加“.”就可以用于数组建间的运算。另外,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解数字图像处理问题时显得大为简洁、高效、方便,这是其他高级语言所不能相比的。
3.用户使用方便
MATLAB语言是一种解释执行的语言(在没有被专门的工具编译之前),它灵活、方便,起跳时程序手段丰富,调试速度快,需要学习时间少。人们用任何一种语言编程和调试一般都要经过四个步骤:编辑、编译、连接,以及执行和调试。各个步骤之间是顺序关系,编程的过程就是在他们之间作瀑布型的循环。MATLAB语言与其它语言相比,较好的解决了上述问题,把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作,快速排除输入程序的书写错误、语法错误甚至语义错误,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言,更不用谈C和C++。
4.扩充性强,交互性好
MATLAB语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,且这些库函数同用户文件在形式上一样,所以用户文件也可以作为MATLAB的库函数来调用。婴儿,用户可以根据自己的需要方便的建立和扩充新的库函数,提高MATLAB使用效率和扩充它的功能。另外,为了充分利用FORTRAN、C等语言的资源,包括用户自己编好的FORTRAN、C语言程序,通过建立M文件的形式,混合编程,方便地调用有关的FORTRAN、C语言子程序,还可以在C语言和FORTRAN语言中方便的使用MATLAB的数值计算功能。良好的交互性增加了代码的重用性。
综上所述,MATLAB最适用的范围是科学计算,对于本文需要处理矩阵运算来实现图像处理算法来说,MATLAB再合适不过了。
MATLAB实现的缺点:
4
然而,较之于C语言MATLAB也有自己的劣势。 1.循环运算效率低
MATLAB中所有的变量均为向量形式,这样一方面在对向量进行整体的计算时,表现出其他语言难以相比的高效率,但是对于向量中的单个元素,或是将向量作为单个的循环变量来处理时,其处理过程相当复杂.解决的办法之一是尽量发掘处理数据中的向量特征。另一种办法是利用MATLAB的扩展特性,将迭代过程和其他的循环过程放在“低级”语言中来实现。
2.封装性不好
一方面,所有的变量均保存在公共工作区中,任何语句都可以调用。另一方面作为一件完备的软件,而不是实现算法的程序,编程人员需要花相对多的时间考虑如何设计用户界面。虽然,MATLAB提供了一定量的交互界面制作途径如GUI等,但是作为一件真正的商品,最终的代码将不可避免的移植到较为“低级”的语言中,例如C、C++。
综合MATLAB的优劣,选择MATLAB作为编程的平台,实际上是编程效率和程序运行效率两者之间的妥协。在现阶段,对图象处理后的运行结果有严格要求,而对运行时间没有特别的限定。因此选择MATLAB来编程便无可厚非了。而更重要的是,由于MATALAB编程简单易行,我们可以很方便的对现有的算法进行改进。作者在编程的过程中充分体会到了这一优势。
三、程序主框图、子框图及主要数据变量说明
算法说明:
利用节点阻抗矩阵计算短路电流如图所示,假定系统中的节点f经过过渡阻抗发生短路。对于正常状态的网络而言,发生短路相当于在故障节点f增加
?。因此,网络中任一节点i的电压可表示为: ?I了一个注入电流 f
??Vi?Zj?Gij??ZI?Ijiff 由式可见,任一节点电压i的电压都由两项叠加而成。第一项是当 时由网络内所有电源在节点i产生的电压,也就是短路前瞬间正常运行状态下(0)? V的节点电压,记为。第二项是当网络中所有电流源都断开,电势源都短接i? 在节点i产生的电压。这两个分量的叠加,就等于发生I时,仅仅由短路电流
f短路后节点i的实际电压,即
(0)???Vi?Vi?ZifIf5