课 程 设 计 任 务 书(4)

2019-06-02 13:02

3设计过程

3.1 Matlab

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB不仅仅可以实现计算潮流分布,还可以模拟仿真各式各样的数值系统,工程。这里将借助MATLAB来完成用直角牛顿-拉夫逊法计算电力系统潮流分布。 与常数的运算

常数与矩阵的运算即是同该矩阵的每一元素进行计算。但需注意进行数除时,常数通常只能做除量。 基本函数运算中,矩阵的函数运算是矩阵预算中最实用的部分,常用的主要有以下几个:

det(a) 求矩阵a的行列式 eig(a) 求矩阵a的特征值 inv(a)或a^(-1) 求矩阵a的逆矩阵 rank(a) 求矩阵a的秩

trace(a) 求矩阵a的迹(对角线元素之和) 我们进行工程计算时常常遇到矩阵对应元素之间的运算。这种运算不同于前面讲的数学运算,为有所区别,我们称之为数组运算。 基本数学运算

数组的加、减与矩阵的加、减运算完全相同。而乘除法运算有相当大的区别,数组的乘除法是指两同维数组对应元素之间的乘除法,它们的运算符为“.*”和“./”或“.\\。”前面讲过常数与矩阵的除法运算中常数只能做除数。在数组运算中有了“对应关系”的规定,数组与常数之间的除法运算没有任何限制。 另外,矩阵的数组运算中还有幂运算(运算符.^)、指数运算(exp)、对数运算(log)、和开方运算(sqrt)、等,有了“对应元素”的规定,数组的运算实质上就是针对数组内部的每个元素进行的。矩阵的幂运算与数组的幂运算有很大的区别。

逻辑关系运算

逻辑运算是MATLAB中数组运算所特有的一种运算形式,也是几乎所有的高级语言普遍适用的一种运算。 Matlab中的一些命令

1)一般MATLAB命令格式为 [输出参数1,输出参数2,??]=(命令名)(输入参数1,输入参数2,??) 输出参数用方括号,输入参数用圆括号如果输出参数只有一个可不使用括号。

2)可用↑、↓键来重现已输入的数据或命令。用←、→键来移动光标进行修改。

3)所有MATLAB命令都用小写字母。大写字母和小写字母分别表示不同的变量。

4)常用数有特定的名字,如pi(=3.141596) 、Inf(=∞)、NaN则表示不定型求得的结果(如0/0)。

5)矩阵的输入要一行一行的进行,每行各元素用空格或(,)分开,每行用(;)分开。

6)MATLAB书写格式为A=[1 2 3 ;4 5 6 ;7 8 9] 在MATLAB中运行如下程序可得到A矩阵 a=[1 2 3;4 5 6;7 8 9] a = 1 2 3 4 5 6 7 8 9 3.2 潮流计算流程图

在上一节,我们对MATLAB的基本指令有了初步的了解,我们就可以画出程序编程框图,按照程序编程框图,我们可以通过MATLAB软件进行编程,实现我们所求的节点导纳矩阵。

程序编程框图如下:

启动 输入原始数形成节点导纳矩分解各节点初始电压的实部和虚部 迭代次数K=0 求PQ节点的?Pi(k) ,?Qi(k),求PV节点的?Pi(k),?Ui(k) 置节点号i=0 是 雅克比矩阵是否形成,i>n 否 求得雅克比矩阵个元素?Hij(k)?Nij(k)?Jij(k)?Lij(k)?Rij(k)?Sij(k) 把雅克比矩阵单位增大节点号i=i+1 求解修正方程,得?ei(k),?fi(k) 回带各电压新值,K=K+1 求解最大修正量|?ei(k)|max,|?fi(k)|max 否 是 是否收敛 计算输出电压大小及相角,节电功率及支路损耗 停止

3.3 潮流计算源程序图及结果

%本程序 的功能是用牛顿——拉夫逊法进行潮流计算

% B1矩阵:1、支路首端号;2、末端号;3、支路阻抗;4、支路对地电纳 % 5、支路的变比;6、支路首端处于K侧为1,1侧为0不含变压器;

% 7、支路末段对地电纳

% B2矩阵:1、该节点发电机功率;2、该节点负荷功率;3、节点电压初始值

% 4、PV节点电压V的给定值;5、节点所接的无功补偿设备的容量

% 6、节点分类标号:1为平衡节点(应为1号节点);2为PQ节点; % 3为PV节点;

clear;

n=5;%input('请输入节点数:n='); nl=4;%input('请输入支路数:nl=');

isb=1;%input('请输入平衡母线节点号:isb='); pr=0.000001;%input('请输入误差精度:pr=');

B1=[1 2 0.0194+0.0592i 0 1 0 0.067i;

2 3 0.04699+0.198i 0 1 0 0.022i;

1 5 0.054+0.223i 0 1 0 0.0246i;

2 4 0.0581+0.1763i 0 1 0 0.0187i]

B2=[0 0 1.06 1.06 0 1; 0 0.217+0.121i 1.045 1.045 0 3; 0 0.749+0.19i 1.01 1.01 0 3; 0 0.658-0.039i 1 0 0 2; 0 0.076+0.016i 1 0 0 2] ;%input('请输入各节点参数形成的矩阵: B2=');

Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);sida=zeros(1,n);S1=zeros(nl);

% % %--------------------------------------------------- for i=1:nl %支路数

if B1(i,6)==0 %左节点处于1侧

p=B1(i,1);q=B1(i,2);

else %左节点处于K侧 p=B1(i,2);q=B1(i,1); end

Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5)); %非对角元 Y(q,p)=Y(p,q); %非对角元

Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,7); %对角元K侧 Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4); %对角元1侧 end

%求导纳矩阵

disp('导纳矩阵 Y=');

disp(Y)

%---------------------------------------------------------- G=real(Y);B=imag(Y); %分解出导纳阵的实部和虚部 for i=1:n e(i)=real(B2(i,3)); f(i)=imag(B2(i,3)); V(i)=B2(i,4); end

for i=1:n

%给定各节点初始电压的实部和虚部

%PV节点电压给定模值

%给定各节点注入功率

S(i)=B2(i,1)-B2(i,2); %i节点注入功率SG-SL B(i,i)=B(i,i)+B2(i,5); %i节点无功补偿量 end

%===================================================================

P=real(S);Q=imag(S); %分解出各节点注入的有功和无功功率

ICT1=0;IT2=1;N0=2*n;N=N0+1;a=0; %迭代次数ICT1、a;不满足收敛要求的节点数IT2;

% N0=2*n 雅可比矩阵的阶数;N=N0+1扩展列

while IT2~=0 %继续运行 IT2=0;a=a+1; %下一次迭代 for i=1:n

if i~=isb %非平衡节点

C(i)=0;D(i)=0; for j1=1:n

C(i)=C(i)+G(i,j1)*e(j1)-B(i,j1)*f(j1); %Σ(Gij*ej-Bij*fj)


课 程 设 计 任 务 书(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年新版人教版八年级上英语单词默写表doc

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: