ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:483.54KB ,
资源ID:21051376      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21051376.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(华中科技大学电力系统分析课程设计报告 基于matlab的短路电流计算Word格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

华中科技大学电力系统分析课程设计报告 基于matlab的短路电流计算Word格式.docx

1、1编程效率高MATLAB语言是一种面向科学与工程计算的高级语言,允许用数学形式的语言编写程序,且比BASIC、FORTRAN和C等语言更加接近我们书写计算公式的思维方式,用MATLAB编写程序犹如在演算纸上排列公式与求解问题。因此,也可通俗地称MATLAB语言为演算纸式科学算法语言。由于它编程简单,所以编程效率高,易学易懂。2高效方便的矩阵和数组运算MATLAB语言像BASIC、FORTRAN和C语言一样规定了矩阵的算术运算符、关系运算符、逻辑运算符、条件运算符及赋值运算符,而且这些运算符大部分可以毫无改变的照搬到数组建的运算中。有些如算术运算符只要增加“.”就可以用于数组建间的运算。另外,它

2、不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解数字图像处理问题时显得大为简洁、高效、方便,这是其他高级语言所不能相比的。3用户使用方便MATLAB语言是一种解释执行的语言(在没有被专门的工具编译之前),它灵活、方便,起跳时程序手段丰富,调试速度快,需要学习时间少。人们用任何一种语言编程和调试一般都要经过四个步骤:编辑、编译、连接,以及执行和调试。各个步骤之间是顺序关系,编程的过程就是在他们之间作瀑布型的循环。MATLAB语言与其它语言相比,较好的解决了上述问题,把编辑、编译、连接和执行融为一体。它能在同一画面上进行灵活操作,快速排除输入程序的书写错误、语法错误甚至语义错误

3、,从而加快了用户编写、修改和调试程序的速度,可以说在编程和调试过程中它是一种比VB还要简单的语言,更不用谈C和C+。4扩充性强,交互性好MATLAB语言有丰富的库函数,在进行复杂的数学运算时可以直接调用,且这些库函数同用户文件在形式上一样,所以用户文件也可以作为MATLAB的库函数来调用。婴儿,用户可以根据自己的需要方便的建立和扩充新的库函数,提高MATLAB使用效率和扩充它的功能。另外,为了充分利用FORTRAN、C等语言的资源,包括用户自己编好的FORTRAN、C语言程序,通过建立M文件的形式,混合编程,方便地调用有关的FORTRAN、C语言子程序,还可以在C语言和FORTRAN语言中方便

4、的使用MATLAB的数值计算功能。良好的交互性增加了代码的重用性。综上所述,MATLAB最适用的范围是科学计算,对于本文需要处理矩阵运算来实现图像处理算法来说,MATLAB再合适不过了。MATLAB实现的缺点:然而,较之于C语言MATLAB也有自己的劣势。1循环运算效率低MATLAB中所有的变量均为向量形式,这样一方面在对向量进行整体的计算时,表现出其他语言难以相比的高效率,但是对于向量中的单个元素,或是将向量作为单个的循环变量来处理时,其处理过程相当复杂解决的办法之一是尽量发掘处理数据中的向量特征。另一种办法是利用MATLAB的扩展特性,将迭代过程和其他的循环过程放在“低级”语言中来实现。2

5、封装性不好一方面,所有的变量均保存在公共工作区中,任何语句都可以调用。另一方面作为一件完备的软件,而不是实现算法的程序,编程人员需要花相对多的时间考虑如何设计用户界面。虽然,MATLAB提供了一定量的交互界面制作途径如GUI等,但是作为一件真正的商品,最终的代码将不可避免的移植到较为“低级”的语言中,例如C、C+。综合MATLAB的优劣,选择MATLAB作为编程的平台,实际上是编程效率和程序运行效率两者之间的妥协。在现阶段,对图象处理后的运行结果有严格要求,而对运行时间没有特别的限定。因此选择MATLAB来编程便无可厚非了。而更重要的是,由于MATALAB编程简单易行,我们可以很方便的对现有的

6、算法进行改进。作者在编程的过程中充分体会到了这一优势。三、程序主框图、子框图及主要数据变量说明算法说明: 利用节点阻抗矩阵计算短路电流如图所示,假定系统中的节点f经过过渡阻抗发生短路。对于正常状态的网络而言,发生短路相当于在故障节点f增加了一个注入电流 。因此,网络中任一节点i的电压可表示为: 由式可见,任一节点电压i的电压都由两项叠加而成。第一项是当 时由网络内所有电源在节点i产生的电压,也就是短路前瞬间正常运行状态下的节点电压,记为 。第二项是当网络中所有电流源都断开,电势源都短接时,仅仅由短路电流 在节点i产生的电压。这两个分量的叠加,就等于发生短路后节点i的实际电压,即公式二公式二也适

7、用于故障节点f,于是有是故障节点f的自阻抗,也称输入阻抗。方程式含有两个未知量 ,根据故障的边界条件:由以上两个方程式解出:而各节点初始电压 求出后,节点i电压为了得到精确计算结果,本程序计算过程中,使用精确算法。任一支路的电流对于非变压器支路,令k=1即可。 图一 程序主框图图二 程序子流程图主要数据变量说明:程序中:n 节点数f 短路节点序号z 任意节点间阻抗矩阵g_z 发电厂阻抗矩阵g_v 发电厂电压矩阵louy 网络漏抗导纳矩阵Z 网络节点阻抗矩阵Y 网络节点导纳矩阵If 短路点电流V 网络节点电压矩阵I 网络支路电流矩阵A 文件导入时存入的矩阵名称p 发电机阻抗矩阵存放在A中的行序号

8、,所以p-1就是发电机台数Q 漏抗导纳矩阵存放在A中的行序号,所以q-1就是漏抗数四、三道计算题及网络图例题6-3 图三 题63电路图其中3号节点发生三相短路。输入数据及说明:节点总数n=5短路节点序号f=3输入节点间阻抗矩阵Inf0.10500.06500.08000.05000.1840 z= j*发电机阻抗矩阵(第一列是发电厂节点序号,第二列是发电厂阻抗,第三列为发电厂电压)10.150050.2200 g_z=输出数据及说明:短路点电流-5.3767各支路电流矩阵3.2321-3.23212.70460.5275-2.7046-2.6720-0.52752.6720-2.14452.1

9、445 I= j*各节点电压矩阵0.51520.17580.13360.5282 V=-16.19059.5238-37.408415.384612.5000-35.384620-37.93485.4348-9.9802节点导纳矩阵 Y= j*0.11810.09580.09020.08580.04670.16290.15330.14590.07940.18600.16110.08770.17290.09410.1515节点阻抗矩阵 Z= j* 图四 题63软件界面显示 图五 题63输出结果显示习题6-10图六 题610电路图其中节点5发生三相短路短路节点序号f=50.21000.43550.

10、29040.2541输入节点间阻阵0.23001.050020.2800漏导纳矩阵(第一列为漏导纳节点号,第二列为漏导纳数值)0.03090.02310.0293 louy=-3.1246-1.7516-1.34911.7516-0.1705-1.59531.34910.1705-1.53101.59531.53100.64710.67230.46320.3890-13.8716-8.33334.7619-15.23302.29603.4440-10.96473.9361-7.35690.18190.06160.16000.10790.13260.20780.08980.15360.12420

11、.23300.15710.19320.26890.21740.3427 Z= j* 图七 题610软件界面显示 图八 题610输出结果显示习题6-11图九 题611电路图其中节点3发生三相短路。节点总数n=30.20000.100030.5000-1-9.1875-2.07812.0781-2.18752.18750.63440.2187-10-14.500010-17.66670.13940.07890.04460.15770.08930.1071 图十 题611 软件界面显示 图十一 题611 输出结果显示五、设计体会这次电分课设的主题是电力系统短路故障的计算机算法程序设计,我选择了对称短

12、路计算来研究。经过不懈努力与完善,最终形成的可执行文件可以对各种简单电力网络的对称短路故障进行分析计算,取得了较为满意的效果。 我编写了9个回流函数,分别执行不同的功能:1.读取函数select_file:读取.csv文件,读取成功有提示。确定参数矩阵后,在右上侧显示各种已知参数。各种读取结果申公共。2.计算函数calculate_start:精确算法,计算完毕将结果显示在右下侧。各种计算结果申公共。3.导入函数input1:可任意修改短路点序号、小z矩阵,手动导入过程人性化。4.导入函数input2:可任意修改发电厂阻抗矩阵。5.导入函数input3:可以任意修改发电厂电压矩阵。6.导入函数

13、input3:可以任意修改漏抗导纳矩阵。通过以上四个导入函数,还能实现不导入文件,完全手动输入所有参数。7.存储函数save_result_txt:详细地以文本形式,记录网络参数与短路计算结果,汉字说明与数字结果夹杂混排。 电力系统分析课程设计是一项很有挑战性的工作。在选择这个课程设计之前,我就听学长说电力系统分析课程设计的难度,但是为了锻炼自己的能力,我还是迎难而上,选择了电力系统分析的课程设计。在期末考试结束后,我就开始着手准备课程设计。经过了再三比较候,我选择了MATLAB作为编程的语言,以前虽然接触过MATLAB,但接触的不深,只是用MATLAB画一些简单的图形之类的,这次用MATLA

14、B语言开发软件,确实有相当大的难度。从最开始从图书馆借书,上网上查找MATLAB GUI的相关资料,一步步的深入,也开始意识到课程设计的难度所在。一开始完全无从下手,纠结了好几天完全不知所云,后来在网上找到了MATLAB中文论坛和罗华飞老师编写的设计学习手记,才开始对 GUI有一些最初的了解,也许是灵光一闪,就突然对MATLAB GUI设计有了一些感觉,从CSV文档的输入,到手动输入,从将文件读取的计算,在到保存文件为TXT格式,每一步都走得异常苦难,尤其是后期的调试,将各个部分组成一个系统的程序,兼顾各个部分的兼容性,可是说是经历过一次次失败之后才走向成功的。过程是艰辛的,结果是令人满意的,

15、大约花了两个星期的时间,我终于将软件成功的设计了出来,在调试成功的那一刻,我分外高兴,认为自己做了一件特别有意义的事情,回首这段时间,要感谢老师的悉心指导,一同做课程设计同学的悉心帮助,没有你们,我的课程设计就不可能完成,在此,像老师和同学们表示感谢。六、参考文献 (1)、电力系统分析(上册) 何仰赞 温增银 ,华中科技大学出版社,2002(2)、MATLAB 设计学习手记 罗华飞 ,北京航空航天大学, 2011 (3)、MATLAB程序设计与应用 张智星 ,清华大学出版社, 2002 (4)、 MATLAB 电力系统设计与分析 吴天明 ,国防工业出版社, 2004七、附录(主程序及其注释)2

16、.导入函数input1:3.导入函数input2:4.导入函数input3:5.导入函数input3:6.计算函数calculate_start:、文件导入模块:filename,pathname=uigetfile(*.csv,csv-files(*.csv),选择文件); if filename=0 msgbox(您未成功选择 .csv文件!对话框warn return else msgbox(成功载入!请继续操作!help endfilename=pathname,filename; %带有路径的文件名A=csvread(filename); %从文件中读入各种网络参数if A(9,1)

17、=0imagz=zeros(10,10);for w=2:10 %以下步骤为确定节点间阻抗矩阵在A中的最大行数 if A(w,1)=0 %如果某元素为0,则减一得到最终值 w=w-1; break;end imagz=A(1:w,: set(handles.imagz,Data,imagz); handles.imagz=imagz; g_z=zeros(10,10); g_z=A(7:8,1:2); set(handles.g_z,g_z); handles.g_z=g_z; g_v=zeros(10,10); g_v=A(7:8,3:3); set(handles.g_v,g_v); ha

18、ndles.g_v=g_v; loukang=handles.loukang; louy=handles.louy; loukang=zeros(10,10); if A(11,1)=0 loukang=A(9:11,1: else10,1: set(handles.louy,loukang); handles.louy=louy; handles.loukang=loukang;else imagz=zeros(10,10); loukang=zeros(1,1);guidata(hObject,handles);、手动录入模块:又细分为四个模块:(1)、节点间阻抗录入:imagz=hand

19、les.imagz;A=ones(10,10);A=str2num(get(handles.edit2,String);set(handles.imagz,A);z=zeros(10,10);handles.imagz=imagz; %更新参数矩阵z=sqrt(-1)*imagz;handles.z=z;(2)、发电机阻抗录入g_z=handles.g_z;B=ones(10,10);B=str2num(get(handles.fadian,set(handles.g_z,B);handles.g_z=g_z;(3)、发电机电压录入g_v=handles.g_v;C=ones(10,10);C=str2num(get(handles.fadianv,set(handles.g_v,C);handles.g_v=g_v;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1