Download presentation
Presentation is loading. Please wait.
1
MATLAB/Simulink 电力系统建模与仿真
主讲教师:王 珺 办公室:电气学院C301
2
电力系统常用仿真软件简介 现代电力系统是集发电、输电、配电和用电为一体的复杂非线性网络系统。对其物理本质的研究涉及到短至1μs到长至1h的动态过程。 为了保证实际运行的电力系统的安全稳定性,不便采用在线物理试验的方法对电力系统的动态行为进行研究。目前主要利用电力系统仿真软件离线计算的方法对电力系统及装置的动态行为进行仿真研究。 根据需要研究的动态过程的作用时间长短,电力系统暂态过程分为机电暂态过程和电磁暂态过程两大类。 根据仿真研究的对象,分为输电网和配电网仿真。 根据对元件描述的精细程度,分为集总元件仿真和分布参数电磁场仿真。
3
电力系统常用仿真软件简介 机电暂态仿真工具:PSS/E 、 PSASP 、BPA 、Simpow、Eurostag、PowerWorld Simulator、POWERTECH DSA、CYME、NEPLAN、ETMSP 电磁暂态仿真工具:EMTP/ATP、PSCAD/EMTDC 、EmtpE 混合仿真工具:MATLAB/SimPowerSystems、DIgSILENT、NETOMAC 电磁场仿真工具:ANSOFT、ANSYS、CDEGS 电力电子仿真工具: PLECS、PSIM 配电网仿真工具:ETAP 、PSS/ADEPT、EDSA/DesignBase、 PSS/SINCAL 不同软件仿真的适用范围并无严格定义,通常情况下同样的问题可以选用多种不同的软件进行分析研究, 但选取适合的软件工具能够减少不必要的工作量。 红色标注了使用频率高的软件。
4
MATLAB简介 数值计算和符号计算功能:矩阵运算、多项式和有理分式运算、优化处理等。
Matlab语言:Matlab除了命令行的交互式操作以外,还可以以程序方式工作。 图形功能:利用Matlab的图形命令可以绘制二维、三维乃至四维图形,并可进行图形和坐标的标识、色彩精细控制等等。 应用工具箱:数百个内部函数、功能性工具箱和学科性工具箱。 功能性工具箱主要用来扩充其符号计算功能,学科性工具箱专业性比较强,如控制系统工具箱、信号处理工具箱、神经网络工具箱、最优化工具箱、金融工具箱等,用户可以直接利用这些工具箱进行相关领域的科学研究。
5
MATLAB简介 MATLAB的安装
6
MATLAB简介 MATLAB的运行 菜单 工具栏 工作空间窗口 当前目录窗口 命令提示符 命令窗口 历史命令窗口 开始按钮
7
MATLAB简介 File菜单,其功能如下: New 建立新文件 Open M-File 打开M-文件
Save Workspace As 将工作区存为 Run M-File 运行 M-文件 Print 打印 Exit Matlab 退出 Matlab Edit菜单:主要用于复制、粘贴等操作,与一般的w}na}}s程序类似,在此不做详细介绍。 Debug菜单:用于设置程序的调试。 Desktop菜单:用于设置主窗口中需要打开的窗口。 Windows菜单:列出当前所有打开窗口。 Help菜单:用于选择打开不同的帮助窗日。
8
MATLAB简介 命令窗口是进行各种Matlab操作的最主要窗口,可键入各种送给Matlab运作的指令、函数、表达式,并显示除图形外的所有运算结果。 三个常用命令: clc :清除指令窗中显示内容(clear console) exit 或 quit:退出Matlab clear:清除Matlab工作空间中保存的所有变量 历史命令窗口 当前工作目录窗口 工作空间管理窗口
9
MATLAB计算基础 变量是任何程序设计语言的基本元素之一。
Matlab 并不要求对所使用的变量进行事先声明,也不需要指定变量类型,Matlab 会自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型。 在赋值过程中,如果变量已经存在,Matlab 会用新值代替旧值,并以新的变量类型代替旧的变量类型。 赋值符: = Matlab中变量的命名规则是: (1)变量名必须是不含空格的单个词; (2)变量名区分大小写; (3)变量名最多不超过31个字符; (4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点符号.
10
MATLAB计算基础 MATLAB中预定义变量 ans: 分配最新计算表达式的值,这个表达式并没有给定一个名字 eps:返回机器精度
realmax:返回计算机能处理的最大浮点数 realmin:返回计算机能处理的最小的非零浮点数 pi : inf :定义为1/0 。当出现被零除时,matlab就返回inf,并不中断执行而继续计算 NaN :定义为“Not a Number”,这个非数值要么是0/0类型,要么是inf/inf i或j:虚数单位
11
MATLAB计算基础 算术运算符号 关系运算符号 关系运算符 说明 = = 等于 ~= 不等于 < 小于 > 大于 <=
+ 加法运算,适用于两个数或两个同阶矩阵相加. - 减法运算 * 乘法运算 / 除法运算 ^ 乘幂运算 \ 反斜杠表示左除 关系运算符 说明 = = 等于 ~= 不等于 < 小于 > 大于 <= 小于等于 >= 大于等于
12
MATLAB计算基础 数学运算函数 Matlab由包括许多标准函数,每个函数都完成某一特定功能的代码组成。
Matlab也允许用户编写自己所需的函数,其扩展名为.m,其中必须以关键字function开头。
13
MATLAB计算基础 Matlab语言最基本的赋值语句结构为: 变量名列表=表达式
% 后面所有文字为注释; 多个语句可在同一行,用逗号或分号分开。 表达式太长可以用续行符号… 例:>>x=20 >>y=6^2*(4+6) >>u=x+y; 行向量的创建 例:>> a = [ ] a =
14
MATLAB计算基础 希望得到元素从0到20,步距为2的一个向量,只需键入以下命令即可 >> t = [0:2:20] t =
列向量的创建 例:>>b= [4; 3; 2; 1] b = 4 3 2 1 向量的点乘 例:>>c=[ ]; d= [ ]; e=c.*d e =
15
MATLAB计算基础 矩阵的创建 输入矩阵时每一行元素有分号或者回车键分隔。
提取矩阵的部分元素: 冒号运算符(:) A(:) A的所有元素 A(:,:) 二维矩阵A的所有元素 A(:,k) A的第 k 列, A(k,:) A的第 k 行 A(k:m) A的第 k 到第 m 个元素 A(:,k:m) A的第 k 到第 m 列组成的子矩阵
16
MATLAB矩阵操作 例:>>A=[1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9
>>A(5,:)=[5,4,3]
17
MATLAB矩阵操作 矩阵的转置与共轭转置 ’ 共轭转置 .’ 转置,矩阵元素不取共轭(点与单引号之间不能有空格!)
’ 共轭转置 .’ 转置,矩阵元素不取共轭(点与单引号之间不能有空格!) 例:>> A=[1 2;2i 3i]; >> B=A' >> C=A.' 查看矩阵的大小:size size(A) 列出矩阵 A 的行数和列数 size(A,1) 返回矩阵 A 的行数 size(A,2) 返回矩阵 A 的列数 例:>> A=[1 2 3; 4 5 6] >> size(A) >> size(A,1) >> size(A,2) length(x) 返回向量 X 的长度 length(A) 等价于 max(size(A))
18
MATLAB矩阵操作 矩阵的加减:对应分量进行运算 要求参与加减运算的矩阵具有 相同的维数
>> C=A+B; D=A-B; 矩阵的普通乘法 要求参与运算的矩阵满足线性代数中矩阵相乘的原则 例:>> A=[1 2 3; 4 5 6]; B=[2 1; 3 4]; >> C=A*B 矩阵的除法:/(右除)、\ (左除) 若 A 可逆方阵,则 B/A <==> A 的逆右乘 B <==> B*inv(A) A\B <==> A 的逆左乘 B <==> inv(A)*B
19
MATLAB矩阵操作 矩阵除法可以理解为 X=A\B <==> A*X=B(当 A 和 B 行数相等时即可进行左除)
X=B/A <==> X*A=B(当 A 和 B 列数相等时即可进行右除) 当A为方阵,其结果与inv(A)*B基本一致; 当A不为方阵,除法将分三种情况自动检测:若为超定方程组(既无解)除法将给出最小二乘意义上的近似解,即使向量AX-B的长度最小;若为不定方程组(即无穷多解),除法将给出一个具有最多零元素的特解(不是通解);若为唯一解,除法将给出这个解。
20
MATLAB矩阵操作 常见矩阵生成函数 zeros(m,n) 生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n)
ones(m,n) 生成一个 m 行 n 列的元素全为 1 的矩阵, m=n 时可写为 ones(n) eye(m,n) 生成一个主对角线全为 1 的 m 行 n 列矩阵, m=n 时可简写为 eye(n),即为 n 维单位矩阵 diag(X) 若 X 是矩阵,则 diag(X) 为 X 的主对角线向量 若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵 tril(A) 提取一个矩阵的下三角部分 triu(A) 提取一个矩阵的上三角部分 rand(m,n) 产生 0~1 间均匀分布的随机矩阵 m=n 时简写为 rand(n) randn(m,n) 产生均值为0,方差为1的标准正态分布随机矩阵 m=n 时简写为 randn(n)
21
MATLAB矩阵操作 常见矩阵生成函数 det(A) 求方阵A的行列式 inv (A) 求方阵A的逆 eig(A) 求特征值、特征向量
trace(A) 求方阵A的迹 rank(A) 求矩阵A的秩 norm(A) 求矩阵A的2范数
22
MATLAB程序设计基础 顺序语句:依次顺序执行的各条语句,不需要任何特殊的流程控制 例:t=0:0.1:4*pi; %定义变量t
y=sin(t); %计算t的正弦 plot(t,y); %绘制y的图形 条件语句:程序判定所给条件是否满足,根据判定的结果(真或假)来执行不同的操作。 if,else,elseif语句 (1)if 逻辑表达式 执行语句 end (2)if 逻辑表达式 (3) if 逻辑表达式1 执行语句 执行语句1 else elseif 逻辑表达式2 执行语句 执行语句2 end …
23
MATLAB程序设计基础 switch语句 该语句用于条件较多而且较单一的情况,相当于一个数控的多路开关
case 值1 语句1 case 值2 语句2 …. otherwise 语句3 end 例
24
MATLAB程序设计基础 循环语句:一般用于有规律的重复计算 for循环语句基本格式 for 循环变量=起始值:步长:终止值 循环体 end
例:>>for ii=1:10 x(ii)=sin(ii*pi/10); >>x = 或者采用下面的程序 >>ii=1:10; x=sin(ii*pi/10); 优点:代码执行效率高
25
MATLAB程序设计基础 while循环语句基本格式 while 表达式 循环体 end
若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。 例 While循环和for循环的区别在于,while循环结构的循环体被执行的次数不是确定的,而for结构中循环体的执行次数是确定的。步长缺省值为1,可以在正实数或负实数范围内任意指定。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。 循环结构可以嵌套使用。
26
MATLAB程序设计基础 MATLAB程序的基本组成结构 %注释说明
清除命令:清除workspace中的变量和图形(clear,close) 定义变量:包括全局变量的声明及参数值的设定 逐行执行命令:指MATLAB提供的运算指令或工具箱提供的专用命令 控制循环 : 包含for, if then, switch, while等语句 … … … end 绘图命令:将运算结果绘制出来 当然更复杂程序还需要调用子程序,或与Simulink以及其他应用程序结合起来。
27
MATLAB程序设计基础 MATLAB的程序类型有三种,一种是在命令窗口下执行的脚本M文件;另外一种是可以存取的M文件,也即程序文件;最后一种是函数(function)文件。 脚本M文件:在命令窗口中输入并执行,它所用的变量都要在工作空间中获取,不需要输入输出参数的调用,退出MATLAB后就释放了。 程序M文件:以.m格式进行存取,包含一连串的MATLAB指令和必要的注解。 需要在工作空间中创建并获取变量,也就是说处理的数据为命令窗口中的数据,没有输入参数,也不会返回参数。 程序运行时只需在工作空间中键入其文件名即可。
28
MATLAB程序设计基础 函数文件:与在命令窗口中输入命令一样,函数接受输入参数,然后执行并输出结果。具有标准的基本结构。
函数定义格式:函数定义行(关键字function) function[out1,out2,..] = filename(in1,in2,..) 输入和输出(返回)的参数个数分别由nargin和nargout两个MATLAB保留的变量来给出。 函数体内使用的除返回和输入变量这些在function语句中直接引用的变量以外的所有变量都是局部变量,即在该函数返回之后,这些变量会自动在MATLAB的工作空间中清除掉。如果希望这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。
29
MATLAB的绘图功能 基本的绘图命令 plot(y);
以y的值作为纵坐标,横坐标从1开始自动赋值为相量[ ……]或其转置向量,向量的方向和长度与参数y相同。 例:>>y=[ ];plot(y);
30
MATLAB的绘图功能 plot(x,y); x为横坐标向量,y为纵坐标向量
例:>>t=0:0.1:4*pi; y=sin(t); plot(t,y); x和y必须具有相同的行数或列数。 例:>>t=0:0.1:4*pi; y=[sin(t); sqrt(t)]; plot(t,y);
31
MATLAB的绘图功能 plot(x1,y1,x2,y2,…)
x1,y1给出的数据分别为x,y轴坐标值,option1为选项参数,以逐点连折线的方式绘制1个二维图形;同时类似地绘制第二个二维图形。 例:>>t1=0:0.1:4*pi; t2=0:0.1:2*pi; plot(t1,sin(t1),t2,cos(t2));
32
MATLAB的绘图功能 图形修饰及文本标注 plot(x1,y1,option1,x2,y2,option2,…)
33
MATLAB的绘图功能 例:>>x=0:0.1:2*pi; plot(x,sin(x),'--r',x,cos(x),':bx'); title('Figure Title'); %给出图名 xlable('X asis');%X轴的标注 ylable('Y asis');%Y轴的标注
34
MATLAB的绘图功能 图形控制命令 Subplot(n,m,k); %分割图形显示窗口 m:上下分割个数,n:左右分割个数,k:子图编号
axis([xmin xmax ymin ymax]); 设定轴的范围 grid on; %在所画出的图形坐标中加入栅格 grid off; %除去图形坐标中的栅格 hold on; %把当前图形保持在屏幕上不变,同时允许在这个坐标内绘制另外一个图形。 hold off; %使新图覆盖旧的图形 特殊坐标图形命令 polar(theta,rho,option); %绘制极坐标曲线 semilogx:绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。 semilogy:绘制以y轴为对数坐标(以10为底),x轴为线性坐标的半对数坐标图形。 loglog(x,y,option); %绘制两个轴均为对数标度的图形。
35
MATLAB的绘图功能 例: 图形的子图示例 >> x=0:0.1*pi:2*pi;
例: 图形的子图示例 >> x=0:0.1*pi:2*pi; >> subplot(2,2,1); >> plot(x,sin(x),'-*'); >> title('sin(x)'); >> subplot(2,2,2); >> plot(x,cos(x),'-o'); >> title('cos(x)'); >> subplot(2,2,3); >> plot(x,sin(x).*cos(x),'-x'); >> title('sin(x)*cos(x)'); >> subplot(2,2,4); >> plot(x,sin(x)+cos(x),'-h'); >> title('sin(x)+cos(x)') ;
36
绘图三维图形 plot3(x,y,z): x,y,z为相同维数的向量,绘出这些向量表示的点的曲线。 plot3(x,y,z,s) s为定义线型的字符串。 例: 绘制三维螺旋线 >> x=0:pi/50:10*pi; >> y=sin(x); >> z=cos(x); >> plot3(x,y,z);
Similar presentations