第一章绪论
1.1 MATLAB的简介
Matlab和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。Matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
Matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用Matlab来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使Matlab成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,Java的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的Matlab 爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
Matlab的特点:
(1)、此高级语言可用于技术计算
(2)、此开发环境可对代码、文件和数据进行管理
(3)、交互式工具可以按迭代的方式探查、设计及求解问题
(4)、数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等
(5)、二维和三维图形函数可用于可视化数据
(6)、各种工具可用于构建自定义的图形用户界面
(7)、各种函数可将基于Matlab的算法与外部应用程序和语言(如 C、C++、Fortran、Java、COM 以及 Microsoft Excel)集成
(8)、不支持大写输入,内核仅仅支持小写
1.2设计内容
(1)首先理论分析电力系统运行中短路的危害和发生短路时电气设备的状况及系统的状况,并建立发电机和变压器的数学模型。
(2)运用simulink建立简单的单机-无穷大系统进行仿真,对系统运行出现短路情况时的仿真结果进行详细的分析。
(3)建立带励磁系统的发电机系统,通过仿真结果分析带上励磁系统时电压和电流的变化情况。
第二章电力系统仿真
2.1电力系统故障分析的基本知识
短路是电力系统的严重故障。所谓短路,是指一切不正常的相与相之间或相与地(对于中性点接地的系统)发生系统通路的情况。
电力系统在运行中,相与相之间或相与地(或中性线)之间发生非正常连接(即短路)时流过的电流。其值可远远大于额定电流,并取决于短路点距电源的电气距离。例如,在发电机端发生短路时,流过发电机的短路电流最大瞬时值可达额定电流的10~15倍。大容量电力系统中,短路电流可达数万安。这会对电力系统的正常运行造成严重影响和后果。
供电网络中发生短路时,很大的短路电流会使电器设备过热或受电动力作用而遭到损坏,同时使网络内的电压大大降低,因而破坏了网络内用电设备的正常工作.为了消除或减轻短路的后果,就需要计算短路电流,以正确地选择电器设备、设计继电保护和选用限制短路电流的元件。
2.2 同步发电机发生短路的暂态过程分析
同步发电机在电力系统中处于重要的地位。用户与发电厂的距离越来越远,发电机三相突然短路的概率增大。由于同步发电机内部结构复杂,由多个具有电磁耦合关系的绕组构成。同步发电机突然短路的暂态过程所产生的冲击电流可能达到额定电流的十几倍,对电机本身和相关的电气设备都可能产生严重的影响 ,因此对同步发电机动态特性的研究历来是电力系统中的重要课题之一。而同步电机的突然三相短路,是电力系统的最严重的故障,它是人们最为关心、研究最多的过渡过程,虽然短路过程所经历的时间是极短的(通常约为0.1~0.3s),但对电枢短路电流和转子电流的分析计算,却有着非常重要的意义。
第三章基于MATLAB的单机-无穷大系统模型建立
3.1 系统模型的建立
系统模型如图3-1所示。
3.2
simulink模型建立主要包括以下元件:简化发电机、电压-电流测量元件、断路器、变压器、输电线路、负载、短路故障发生器等,搭建仿真模型如图3-2所示。
图3-2 单机-无穷大系统模型图
3.3 模块选择已及参数设定
(1)从电机元件库中选择简化的同步电机元件如图3-3,复制后粘贴在电路图中。
设置参数如下:
连接类型(connection type):[3-wire Y]
电机额定参数(nominal power,L-Lvolt and freq):[1000e6 315e3 50]
机械参数(mechanical):[56290 0 2]
图3-4
常数发生器元件图
内部电阻(Internal impedance ):[1.9845, 263.15e-3] 初始状态(Initial condition ):[ 0 0 0 0 0 0 0 0 ]
设置施于简化的同步电机上的功率。
该机械功率使用一个常数发生器来设置,如图3-4所示。
双击常数发生器元件,在参数对话框中将数值设为700e6,作为机械功率值。 电压幅值使用一个常数发生器来设置,如图3-4所示,将常数发生器数值改为156e3作为电压幅值。
(2)从测量元件库中选择三相电压-电流测量(3-phase V-I Measurements )元件,复制后粘贴在电路图中,如图3-5所示,将三相电压-电流测量元件名称改为:发电机电压-电流值。
双击三相电压-电流测量元件,在三相电压-电流测量元件参数对话框进行如下设置:
电压测量选项中包括3个选项,分别是不测量电压(no )、测量相电压
(phase-to-ground )和测量线电压(phase-to-phase )。电流测量选项中有测量和不测量选项,在本例中选择测量相电压和测量电流选项。
单击OK 按钮完成对电压-电流测量元件的参数设置。
(3)从线路元件库中选择三相电路短路故障发生器元件,复制后粘贴在电路图中,如图3-6所示。
图3-5 三相电压-电流测量元件图
图3-3简化同步电机模型图
图3-6 三相电路短路故障发生器
参数设置如下:
故障点电阻(Fault resistances Ron):0.001
故障点接地电阻(Ground resietances Rg):0.001
转换状态(Transition status):[ 1 0 ]
转换时间(Transition times):[0.2 0.3]
内部计时器的采样时间(Sample time of the Ts):0
缓冲电阻(Snubber resistance Rp):1e6
缓冲电容(Snubber Capacitance Cp):inf
测量(Measurements):选择不测量选项
单击OK按钮完成对三相电路短路故障发生器的设置。
(4)从线路元件库三相断路器元件,复制后粘贴在电路图中,如图3-7所示。
图3-7 三相断路器
三相断路器的参数设置如下:
初始状态(Initial status of breakers):
故障相选择(Switching of A、B、C):A、B、C三相都选择
转换时间(Transition time):[0.01]
内部计时器的采样时间(Sample time of the Ts):0
外部控制时间(Extarnal control of switching times):不选择
断路器电阻(Breakers resistance Ron):0.001
迟滞电阻(Snubbers resistance Rp):1e6
迟滞电容(snubbers capacitance Cp):inf
测量(Measurements):选择不测量选项
单击OK按钮完成对三相短路器的设置。
(5)从线路元件库中选择三相变压器元件,复制后粘贴在电路图中,如图3-8所示。
变压器参数设置如下:
额定功率和频率(Nominal power and frequency ):[250e6 50] 原边绕组接法(winding1 connaction ):Y
原边绕组参数(winding parancters ):[ 424.35e3 , 0.002 , 0.08 ] 副边绕组接法(winding2 connaction ):Delta(D11)
副边绕组参数(winding parancters ):[ 315e3 , 0.002 , 0.08] 磁阻(Magnetiration resistance Rm ):500 磁感(Magnetiration reactance Lm ):500 测量(Measurements ):选择不测量选项 单击OK 按钮完成对三相变压器的设置。
(6)从线路元件库中选择三相分布参数传输线元件,复制后粘贴在电路图中,如图3-9所示。
参数设置如下:
线路相数(Number of phase N ):3
用于电阻、电感和电容的频率(Frequency ):50
单位长度电阻(resistance per unit length ):[ 0.01273 0.3846] 单位长度电感(Inductance per unit length ):[ 0.9337e-3 4.1264e-3 ] 单位长度电容(Capacitance per unit length ):[ 12.74e-9 7.751e-9 ] 线路长度(Line Length ):300
测量(Meadurements ):选择不测量电气量 单击OK 按钮完成对三相分布参数传输线的设置。
(7)从线路元件库中选择三相串联RLC 负载元件,复制后粘贴在电路图中,如图3-10所示。
图3-8 三相变压器
图3-9 分布参数传输线图
图3-10 三相串联RLC负荷元件
三相串联RLC负载元件参数设置如下:
额定相电压(Nominal phase-phase voltage):500e3
额定频率(Nominal frequency):50
三相有功功率(Three-phase active power P):50e6
三相感性无功功率(Three-phase inductive reactive power Ql):0
三相容性无功功率(Three-phase capacitive reactive power Qc):0
单击OK按钮完成对三相串联RLC负载元件参数的设置
3.4 仿真参数设置
当电路图设计完成后,对其进行仿真,以达到观察系统稳定运行及发生短路时的状态变化情况。
在仿真的菜单选项中,选择仿真菜单,激活仿真参数命令,弹出仿真参数对话框。
根据暂态过程时间的估算,对仿真参数进行如下设置:
开始时间(Start time):0.0
停止时间(Stop time):0.5
求解程序类型(Type)选项:可变步长(Variable--step),
ode23tb(dtiff/TR-BDF2)
最大步长(Max step size)选项:自动(auto)
最小步长(Min step size)选项:自动(auto)
初始步长(Intial step size)选项:自动(auto)
相对容差(Relative tolerance)选项:1e-3
绝对容差(Absolute tolerance)选项:自动(auto)
3.5 仿真结果分析
将三相电路短路故障发生器的故障相选择中三相故障都选择,并选择故障相接地选项。
设置完电路图和仿真参数后,下面进行电路仿真。激活仿真按钮,查看仿真波
形。
(1)故障点的电流波形图
在发电机故障器中的测量选项中选择故障电压和电流选项,对故障点的电压和电流进行测量。其它两个故障器均选择不测量选项。
在万用表元件中选择故障点A 相电流作为测量电气量。激活仿真按钮,则故障点A 相电流波形图如图3-11所示。由图形可以得出以下结论:在稳态时,故障点A 相电流由于三相电路短路故障发生器处于断开状态,所以电流为0A 。在0.2S 时,三相电路短路故障发生器闭合,此时电路发生三相短路,故障点A 相电流发生变化,电流波形上移。在0.3s 时,三相电路短路故障发生器断开,相当于排除故障,此时,故障点的电压迅速变为0A 。
在万用表元件中选择故障点B 相电流作为测量电气量。激活仿真按钮,则故障点B 相电流波形图如图3-12所示。由图形可以得出以下结论:在稳态时,故障点B 相电流由于三相电路短路故障发生器处于断开状态,所以电流为0A 。在0.2S 时,三相电路短路故障发生器闭合,此时电路发生三相短路,故障点A 相电流发生变化,电流波形下降。在0.3s 时,三相电路短路故障发生器断开,相当于排除故障,此时,故障点的电压迅速变为0A 。
图3-11 故障点A 相电流波形图
图3-13 故障点C 相电流波形图
图3-14 故障点A 相、B 相、C 相电流波形图
在万用表元件中选择故障点C 相电流作为测量电气量。激活仿真按钮,则故障点C 相电流波形图如图3-13所示。由图形可以得出以下结论:在稳态时,故障点A 相电流由于三相电路短路故障发生器处于断开状态,所以电流为0A 。在0.2S 时,三相电路短路故障发生器闭合,此时电路发生三相短路,故障点C 相电流发生变化,电流波形上移。在0.3s 时,三相电路短路故障发生器断开,相当于排除故障,此时,故障点的电压迅速变为0A 。
在万用表元件中选择故障点A 相、B 相、C 相电流作为测量电气量。激活仿真按钮,则故障点A 相、B 相、C 相电流波形图如图3-14所示。
(
2
)故障点的电压波形图
图3-12 故障点B 相电流波形图
图3-15 故障点A 相、B 相和C 相电压波形图
在万用表元件中选择故障点A 相、B 相和C 相电压作为测量电气量。激活仿真按钮,则故障点A 相、B 相和C 相电压波形图如图3-15所示。由图形可以得出以下结论: 在稳态时,故障点三相电压由于三相短路故障发生器处于断开状态,其实际电压为发电机出口母线上的电压。在0.2s 时,三相短路故障发生器闭合,此时发生三相短路,故障点三相电压由于发生三相接地短路,因而各相电压为0V 。在0.3s 时,三相短路故障发生器打开,相当于排除故障,此时三相实际电压为母线电压,发生暂态波动。
(3)变压器端短路电流和短路电压波形
在万用表元件中选择变压器三相电流作为测量电气量,则得变压器电流波形如图3-16所示,由图形可得:在稳态时,变压器电流呈直线,在0.2s 时,发电机端发生三相短路,受到冲击电流的影响,变压器电流迅速上升,由于变压器存在磁感应,电流慢慢趋于零,在0.3s 时,三相短路故障发生器断开,相当于排除故障,此时,变压器电流恢复成直线。
在万用表元件中选择变压器三相电压作为测量电气量,则变压器电压波形如图3-17所示,由波形得出:在稳态时,变压器电压波形呈正玄变化,在0.2s 时,发生三
相短路,由于变压器存在磁势,电压不能突变为零,而是趋于减小,最后变为零。在0.3s 时,三相短路故障器断开,排除故障,此时变压器电压恢复正常的正玄变化。
(4) 线路末端发生短路
在万用表元件中选择故障点的故障电流作为测量电气量,则得出故障点短路电流波形如图3-18所示,由图得:在稳态时,故障点电流为0A ,在0.2s 时,发生三相接地短路,故障点有电流通过,此时电流很大,然后逐步下降,在0.3s 时三相短路故障发生器打开,排除故障,此时故障点电流立刻恢复为0A 。
图3-16 变压器三相电流波形图
图3-17 变压器三相电压波形图
图3-18 故障点短路电流波形图
在万用表元件中选择故障点电压作为测量电气量,则故障点电压波形如图3-19所示,由图可得:在稳态时,故障点的电压为线路上的电压,波形呈正玄变化,在0.2s 时发生短路,故障点电压迅速变为0V。在0.35s时,故障排除,但由波形可以看出电压无法恢复正常,系统受到破坏。
图3-19 故障点短路电压波形图
图4-1 带励磁系统的电力系统图
第四章 带励磁系统的电力系统分析
4.1 基于simulink 的基本模型建立
Simulink 模型建立包括以下元件:发电机、水轮机调节器、励磁系统、电机测量元件、断路器、变压器、负载、输电线路、短路故障器、无穷大电源等。如图4-1所示。
4.2 设计流程
(1)从电机元件库中选择基本的同步电机(Synchronous Machine Pu Standard )元件,复制后粘贴在电路图中,如图4-2所示。
发电机元件参数设置如下: 转子类型(
Rotor type ):凸极式
图4-2 发电机元件
图
4-3 电机测量元件及参数对话框
额定参数(Nominal power,volt and freq ):[ 186e6 10.5e3 50 1037 ] 定子参数(stator ):[ 2.907e-3 3.089e-4 3.216e-3 9.715e-4 ] 励磁绕组(field ):[ 5.9013e-4 3.07e-4 ]
阻尼绕组(Dampers ):[ 1.19e-2 4.9e-4 2.00e-2 1.036e-3 ] 机械特性参数(Mechanical ):[ 3.895e6 0 15 ]
初始状态(Initial conditions ):[ 0 0 0 0 0 0 0 0 61 ]
单击OK 按钮完成发电机元件参数的设置。
(2)从电机元件库中选择电机测量(Meachine Measurement )元件,复制后粘贴在电路图中,如图4-3所示。双击电机测量元件,在电机测量元件参数对话框中进行设置,。电机测量元件参数设置如下:
在对话框中选择定子电流(Stator currents ),转子电压(Stator voltage ),转速(Rotor Speed ),转速偏差(Rotor Speed deviation )和功率(Output active power ) 选项。
单击OK 完成对发电机测量元件参数设置。
(3)从电机元件库中选择励磁系统(Excitation system )元件,复制后粘贴在电路图中,如图4-4所示。
图4-4 发电机励磁系统及参数对话框
双击励磁系统元件,在励磁系统元件参数对话框中进行设置。 参数设置如下:
滤波器的时间常数(Low-pass filter time constant ):20e-3
增益和时间常数(Regulator gain and time constant ):[ 300 0.001 ] 励磁(Exciter ):[ 1 0 ]
瞬态增益减少(Transient gain reduction ):[ 0.0 0.0 ]
阻尼滤波器的增益和时间常数(Damping filter gian and time constant ):[ 0.01 0.011 ]
调节器的输出和增益(Regulator output limits and gain ): [ -11 11 0 ] 初始电压和励磁电压(Regulator values of terminal voltage and fidls voltage ):[ 1 1.28 ]
单击OK 完成对励磁系统元件参数设置
(4)从电机元件库中选择水轮机调节系统(HTG )元件,复制后粘贴在电路图中,如图4-5所示。
双击水轮机调节器,在其参数对话框中进行如下设置: 电机参数(Servo-motor ):[ 10 0.01 ]
导叶开度(Gate opening limits ): [ 0.01 0.9715 -0.1 0.1 ]
参数下降及调节(Permanent droop and regulator ):[ 0.05 1.163 0.105 0.01 ]
水轮机参数(Hydraulic turbine ):[ 0 2.67 ] 下降参数(Droop reference ):0 初始功率(Initial mechanical ):1
设置施于水轮机上的参考速度。该参考速度使用一个常数发生器来设置,如图4-6所示。
设置参考功率。参考功率值使用常数发生器来设置,如图4-6所示。
双击常数发生器元件对话框,如图4-6所示。将常数数值改为1(为标幺值),作为参考功率值。
图4-5 水轮机调节系统及参数对话框
图4-6
常数发生器元件图
(5)从测量元件库中选择三相电压—电流测量(3-phase VI Measurement )元件,复制后粘贴在电路图中,如图4-7所示。双击三相电压-电流测量元件,在三相电压-电流测量元件参数对话框中进行设置。
在三相电压-电流测量元件参数对话框设置参数如下:
电压测量(Voltage measurement )包括3个选项,分别是不测量电压(no ),测量相电压(phase-to-phase )和测量线电压(phase-to-ground ),选择测量线电压选项,用来测量发电机突然短路后三相电压的变化。电流测量(Current measurement )选择测量(yes )选项。
单击OK 按钮完成对三相电压-电流测量元件参数的设置。
(6)从线路元件库中选择三相电路短路故障发生器元件,复制后粘贴在电路图中,如图4-8所示。
参数设置如下:
故障点电阻(Fault resistances Ron ):0.001 故障点接地电阻(Ground resietances Rg ):0.001 转换状态(Transition status ):[ 1 0 ] 转换时间(Transition times ):[ 0.2 0.3 ] 内部计时器的采样时间(Sample time of the Ts ):0 缓冲电阻(Snubber resistance Rp ):1e6 缓冲电容(Snubber Capacitance Cp ):inf
测量(Measurements ):选择测量故障电压和电流选项 单击OK 按钮完成对三相电路短路故障发生器的设置。
图4-7 三相电压-电流测量元件图
图4-8 三相电路短路故障发生器
同样的方法设置另一三相电路短路故障发生器,作为无穷大短路故障,将参数对话框中的转换时间改为[ 0.6 0.7 ],其余的参数同上。
(7)从线路元件库三相断路器元件,复制后粘贴在电路图中,如图4-9所示。双击三相短路器元件,在三相短路器元件参数对话框中进行设置。三相短路器元件参数对话框包含以下选项:
三相断路器的参数设置如下:
初始状态(Initial status of breakers ):打开(open ) 故障相选择(Switching of A 、B 、C ): A 、B 、C 三相都选择 转换时间(Transition time ):[ 0.1 ]
内部计时器的采样时间(Sample time of the Ts ):0
外部控制时间(Extarnal control of switching times ):不选 断路器电阻(Breakers resistance Ron ):0.001 迟滞电阻(Snubbers resistance Rp ):1e6 迟滞电容(snubbers capacitance Cp ):inf 测量(Measurements ):选择不测量选项 单击OK 按钮完成对三相短路器的设置。 同样的方法设置另一三相断路器的参数。
(8) 从线路元件库中选择三相变压器元件,复制后粘贴在电路图中,如图4-10所示。
双击三相变压器元件,在变压器元件参数对话框中进行设置。变压器元件参数对话框包含以下选项:
变压器参数设置如下:
额定功率和频率(Nominal power and frequency ):[ 1e6 50 ]
图4-9 三相断路器
图4-10 三相变压器
原边绕组接法(winding1 connaction ):选择Dleta(D11)接法 原边绕组参数(winding parancters ):[ 10.5e3 0.002 0.08 ] 副边绕组接法(winding2 connaction ):选择Yg 接法
副边绕组参数(winding parancters ):[ 110e3 0.002 0.08 ] 磁阻(Magnetiration resistance Rm ):500 磁感(Magnetiration reactance Lm ):500 测量(Measurements ):选择不测量选项 单击OK 按钮完成对三相变压器的设置。
同样的方法设置另一三相变压器,参数设置如下:
额定功率和频率(Nominal power and frequency ):[ 250e3 50 ] 原边绕组接法(winding1 connaction ):选择Y 接法
原边绕组参数(winding parancters ):[ 10.5e3 0.002 0.08 ] 副边绕组接法(winding2 connaction ):选择Yn 接法
副边绕组参数(winding parancters ):[ 0.4e3 0.002 0.08 ] 磁阻(Magnetiration resistance Rm ):500 磁感(Magnetiration reactance Lm ):500 测量(Measurements ):选择不测量选项 单击OK 按钮完成对三相变压器的设置。
(9)从线路元件库中选择三相分布参数传输线元件,复制后粘贴在电路图中,如图4-11所示。
双击分布参数传输线元件,在分布参数传输线元件参数对话框中进行设置。
参数设置如下:
线路相数(Number of phase N ):3
用于电阻、电感和电容的频率(Frequency used for RLC per unit length ):50
单位长度电阻(resistance per unit length ):[ 0.01273 0.386 ] 单位长度电感(Inductance per unit length ):[ 0.9337e-3 4.1264e-3 ] 单位长度电容(Capacitance per unit length ):[ 12.74e-9 7.751e-9 ] 线路长度(Line Length ):3000
测量(Meadurements ):选择不测量电气量
图4-11 分布参数传输线图
单击OK按钮完成对三相分布参数传输线的设置。
(10)从线路元件库中选择三相串联RLC负载元件,复制后粘贴在电路图中,如图4-12所示。
双击三相串联RLC负载元件,在三相串联RLC负载元件参数对话框中进行设置。
图4-12 三相串联RLC负荷元件
三相串联RLC负载元件参数设置如下:
额定相电压(Nominal phase-phase voltage):10.5
额定频率(Nominal frequency):50
三相有功功率(Three-phase active power P):50e6
三相感性无功功率(Three-phase inductive reactive power Ql):0
三相容性无功功率(Three-phase capacitive reactive power Qc):0
单击OK按钮完成对三相串联RLC负载元件参数的设置
(11)从电源元件库中选择理想三相电源(3-phase Source)元件,复制后粘贴在电路图中
双击理想三相电源元件,在理想三相电源元件参数对话框中进行设置。
三相电源元件参数设置如下:
相电压有效值(Phase-to-Phase rms voltage):350e3
A相相角(phase angle of phase A):-30
频率(Frenquency):50
内部连接方式(Internal connection):选择Yg选项
三相电源电阻(Source resistance):0.276
三相电源电感(Source inductance):2.93e-3
单击OK按钮完成对理想三相电源元件参数的设置
(12)在指令窗口中键入如下命令:
》》simulink
单击回车键后,弹出仿真元件库对话框。
在sinks目录下选择示波器元件拖拽到电路图中。复制示波器元件,用于测量其它电气量。
(13)从电气测量仪器库中选择万用表元件和电压测量元件,复制后粘贴在电路图中。
双击万用表元件弹出万用表元件参数对话框,在万用表元件参数对话框中,显示有可测量电气量,选择要测量的电气量进行测量。
电源测量元件用于测量发电机A 相电压及连接RSM 用于励磁系统的反馈。 (14)从电力系统元件库中选择电力系统分析工具,复制后粘贴在电路图中。 (15)选择接地元件、节点等,进行合理放置。对电路图进行接线即可完成电路图的绘制。
4.3 仿真过程及其分析
设置完电路图和仿真参数后,下面进行电路仿真。 1.发电机端短路时电流和电压波形 (1)发电机A 相短路电压波形
发电机A 相电压波形图如图4-13所示,有波形可以得出以下结论:在稳态时,发电机电压呈正弦变化,在0.2s 时,三相短路故障发生器闭合,此时发生三相短路,发电机电压迅速变小,在0.3s 时,故障器断开,故障排除,此时发电机电压恢复正常运行,由于发电机带有励磁系统,能自动调节发电机的电压,将电压维持在一定的范围内。
(2)三相短路,故障点三相电压和电流 在万用表元件中选择故障点三相电压作为测量电气量,则得故障点的电压波形如图4-14所示,由波形得出以下结论:在稳态时,故障点电压为发电机端电压,呈正弦变化,在0.2s 时发生三相短路,故障点电压迅速变小,0.3s 时,故障器断开,排除故障,此时电压恢复,由于发电机带有励磁系统,能自动调节发电机的电压,将电压维持在一定的范围内。
图4-13 发电机A 相短路电压波形图
MATLAB的GUI 程序设计 Chapter 8: Design of MATLAB of GUI program GUI(Graphical User Interfaces):由各种图形对象组成的用户界面,在这种用户界面下,用户的命令和对程序的控制是通过“选择”各种图形对象来实现的。 基本图形对象分为控件对象和用户界面菜单对象,简称控件和菜单。 一. 控件对象及属性(Object and its attributes of controller)) 1. GUI控件对象类型(The mode of controller object) 控件对象是事件响应的图形界面对象。当某一事件发生时,应用程序会做出响应并执行某些预定的功能子程序(Callback). 控件对象及其功能:(表7—1) 2. 控件对象的描述(Description of controller object) MATLAB中的控件大致可分为两种,一种为动作控件,鼠标点击这些控件时会产生相应的响应。一种为静态控件,是一种不产生响应的控件,如文本框等。
每种控件都有一些可以设置的参数,用于表现控件的外形、功能及效果,既属性。属性由两部分组成:属性名和属性值,它们必须是成对出现的。 (1)按钮(Push Buttons):执行某种预定的功能或操作; (2)开关按钮(Toggle Button):产生一个动作并指示一个二进制状态(开或关),当鼠点击它时按钮将下陷,并执行callback(回调函数)中指定的内容,再次点击,按钮复原,并再次执行callback 中的内容; (3)单选框(Radio Button):单个的单选框用来在两种状态之间切换,多个单选框组成一个单选框组时,用户只能在一组状态中选择单一的状态,或称为单选项; (4)复选框(Check Boxes):单个的复选框用来在两种状态之间切换,多个复选框组成一个复选框组时,可使用户在一组状态中作组合式的选择,或称为多选项; (5)文本编辑器(Editable Texts):用来使用键盘输入字符串的值,可以对编辑框中的内容进行编辑、删除和替换等操作; (6)静态文本框(Static Texts):仅仅用于显示单行的说明文字; (7)滚动条(Slider):可输入指定范围的数量值;
MATLAB程序设计 用MATLAB语言编写的程序,称为M文件。M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文件(Function File)。 例3-1 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。 程序1:首先建立命令文件并以文件名f2c.m存盘。 clear; %清除工作空间中的变量 f=input('Input Fahrenheit temperature:'); c=5*(f-32)/9 然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为: Input Fahrenheit temperature:73 c =22.7778 程序2:首先建立函数文件f2c.m。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 clear; y=input('Input Fahrenheit temperature:'); x=f2c(y) 输出情况为: Input Fahrenheit temperature:70 c =21.1111 x =21.1111 3.1.2 M文件的建立与打开 M文件是一个文本文件,它可以用任何编辑程序来建立和编辑,而一般常用且最为方便的是使用MATLAB提供的文本编辑器。
1.建立新的M文件 为建立新的M文件,启动MATLAB文本编辑器有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择New菜单项,再选择M-file命令,屏幕上将出现MATLAB 文本编辑器窗口。 (2) 命令操作。在MATLAB命令窗口输入命令edit,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的New M-File命令按钮,启动MATLAB文本编辑器后,输入M文件的内容并存盘。 2.打开已有的M文件 打开已有的M文件,也有3种方法: (1) 菜单操作。从MATLAB主窗口的File菜单中选择Open命令,则屏幕出现Open对话框,在Open对话框中选中所需打开的M文件。在文档窗口可以对打开的M文件进行编辑修改,编辑完成后,将M文件存盘。 (2) 命令操作。在MATLAB命令窗口输入命令:edit 文件名,则打开指定的M文件。 (3) 命令按钮操作。单击MATLAB主窗口工具栏上的Open File命令按钮,再从弹出的对话框中选择所需打开的M文件。 3.2 程序控制结构 3.2.1 顺序结构 1.数据的输入 从键盘输入数据,则可以使用input函数来进行,该函数的调用格式为: A=input(提示信息,选项); 其中提示信息为一个字符串,用于提示用户输入什么样的数据。 如果在input函数调用时采用's'选项,则允许用户输入一个字符串。例如,想输入一个人的姓名,可采用命令: xm=input('What''s your name?','s'); 2.数据的输出 MATLAB提供的命令窗口输出函数主要有disp函数,其调用格式为
矩量法m atla b程序设计实例: Ha llen 方程求对称振子天线 一、条件与计算目标 已知: 对称振子天线长为L,半径为a ,且天线长度与波长得关系为,,设,半径a=0、0000001,因此波数为。 目标: 用H all en 方程算出半波振子、全波振子以及不同值得对应参数值。 求:(1)电流分布 (2)E 面方向图 (二维),H 面方向图(二维),半波振子空间方向性图(三维) 二、对称振子放置图 图1 半波振子得电流 分布 半波振子天线平行于z 轴放置,在x轴与y轴上得分量都为零,坐标选取方式有两种形式,一般选取图1得空间放置方 式。图1给出了天线得电流分布情况,由图可知,当天线很细时,电流分布近似正弦分布。 三、Ha llen 方程 得解题思路 ()()()()2 1 ' ' ' ' 12,cos sin sin 'z z i z z z z i z k z G z z dz c kz c kz E k z z dz j ωμ'++=-?? 对于中心馈电得偶极子,Hallen 方程为 ()22'1222 ('),'cos sin sin ,2L L i L L V i z G z z dz c kz c kz k z z j η + -- ++= <<+? 脉冲函数展开与点选配,得到 ()1121 ,''cos sin sin ,1,2,,2n n N z i n m m m m z n V I G z z dz c kz c kz k z m N j η +''=++= =???∑? 上式可以写成 矩阵形式为 四、结果与分析 (1)电流分布
一个不错的Matlab的gui界面设计实例 %非常漂亮的日历, function CalendarTable; % calendar 日历 % Example: % CalendarTable; S=datestr(now); [y,m,d]=datevec(S); % d is day % m is month % y is year DD={'Sun','Mon','Tue','Wed','Thu','Fri','Sat'}; close all figure; for k=1:7; uicontrol(gcf,'style','text',... 'unit','normalized','position',[0.02+k*0.1,0.55,0.08,0.06],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor','b',... 'String',DD(k),'fontsize',16,'fontname','times new roman'); end h=1; ss='b'; qq=eomday(y,m); for k=1:qq; n=datenum(y,m,k); [da,w] = weekday(n); if k==d; ss='r'; end uicontrol(gcf,'style','push',... 'unit','normalized','position',[0.02+da*0.1,0.55-h*0.08,0.08,0.06],... 'BackgroundColor',0.6*[1,1,1],'ForegroundColor',ss,... 'String',num2str(k)); ss='b'; if da==7; h=h+1;
1.编写程序:计算1/3+2/5+3/7+……+10/21 法一: s=0; for i=1:10 s=s+i/(2*i+1); end s s = 4.4096 法二: sum((1:10)./(3:2:21)) ans = 4.4096 2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。 s=0; for i=1:100 if mod(i,3)==0&&mod(i,7)==0 s=s+i; end,end s s = 210 3.画出y=n!的图(1<=n<=10),阶乘的函数自己编写,禁用MATLAB自带的阶乘函数。 x=1:10; for i=1:10 try y(i)=y(i-1)*i; catch y(i)=1; end,end plot(x,y)
12345678910 0.511.522.533.54x 10 6 4.一个数恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出2000以内的所有完数。 g=[]; for n=2:2000 s=0; for r=1:n-1 if mod(n,r)==0 s=s+r; end end if s==n g=[g n]; end end g g =6 28 496
5.编写一个函数,模拟numel函数的功能,函数中调用size函数。 function y=numelnumel(x) m=size(x); y=m(1)*m(2); numelnumel([1 2 3;4 5 6]) ans = 6 6. 编写一个函数,模拟length函数的功能,函数中调用size函数。 function y=lengthlength(x) m=size(x); y=max(m(1),m(2)); lengthlength([1 2 3;4 5 6]) ans = 3 7.求矩阵rand(5)的所有元素和及各行平均值,各列平均值。 s=rand(5); sum=sum(sum(s)) mean2=mean(s,2) mean1=mean(s) sum = 13.8469
MATLAB 程序设计方法及若干程序实例 樊双喜 (河南大学数学与 信息科学学院开封475004) 摘要本文通过对 MATLAB 程序设计中的若干典型问题做简要的分析和总结,并在此基础上着重讨论了有关算法设计、程序的调试与测试、算法与程序的优化以及循环控制等方面的问题.还通过对一些程序实例做具体解析,来方便读者进行编程训练并掌握一些有关MATLAB 程序设计方面的基本概念、基本方法以及某些问题的处理技巧等.此外,在文章的最后还给出了几个常用数学方法的算法程序, 供读者参考使用.希望能对初学者进行 MATLAB 编程训练提供一些可供参考的材料,并起到一定的指导和激励作用,进而为MATLAB 编程入门打下好的基础. 关键字算法设计;程序调试与测试;程序优化;循环控制 1 算法与程序 1.1 算法与程序的关系算法被称为程序的灵魂,因此在介绍程序之前应先了 解什么是算法.所谓算 法就是对特定问题求解步骤的一种描述.对于一个较复杂的计算或是数据处理的问题,通常是先设计出在理论上可行的算法,即程序的操作步骤,然后再按照算法逐步翻译成相应的程序语言,即计算机可识别的语言. 所谓程序设计,就是使用在计算机上可执行的程序代码来有效的描述用于解决特定问题算法的过程.简单来说,程序就是指令的集合.结构化程序设计由于采用了模块分化与功能分解,自顶向下,即分而治之的方法,因而可将一个较复杂的问题分解为若干子问题,逐步求精.算法是操作的过程,而程序结构和程序流程则是算法的具体体现. 1.2MATLAB 语言的特点 MATLAB 语言简洁紧凑,使用方便灵活,库函数极其丰富,其语法规则与科技人员的思维和书写习惯相近,便于操作.MATLAB 程序书写形式自由,利用其丰富
1、很简单,在界面上放三个单选按钮控制颜色(R、G、B),四个pushbutton (功能分别为绘制正弦、余弦、grid off、退出程序),可作为一个小小的入门。 程序为: %simpleGUI2.m-a simple use of Radiobutton and Pushbutton clear all; FigWin=figure('Position',[100,100,600,300],'Name','Uicontrol:Push Button & RadioButton',... 'NumberTitle','off'); AxesHandle=axes('Position',[0.4,0.15,0.5,0.8],'Box','on'); RadioNum=3; for i=1:RadioNum Radio(i)=0;%initial value=0 end Radio(1)=uicontrol(FigWin,...%父对象FigWin(一figure对象),备注③ 'Style','Radio',... 'Position',[50 255 100 30],... 'String','Draw in Red',... 'CallBack',... ['n=1;'... 'if get(Radio(1),''Value'')==1;'...%要使各radio button之间具有互斥性,要用if...else语句 'set(Radio([1:(n-1),(n+1):RadioNum]),''Value'',0);'...
'else;'...%要加上分号,一种规定?参备注① 'set(Radio(1),''Value'',1);'... 'end;'... 'ColorStr=''r'';'... 'set(FunHandle,''Color'',''red'')']);%曲线颜色根据radio button的选项实时变化,ColorStr是一个全局变量 Radio(2)=uicontrol(FigWin,... 'Style','Radio',... 'Position',[50 215 100 30],... 'String','Draw in Green',... 'CallBack',... ['n=2;'... 'if get(Radio(2),''Value'')==1;'... 'set(Radio([1:(n-1),(n+1):RadioNum]),''Value'',0);'... 'else;'... 'set(Radio(2),''Value'',1);'... 'end;'... 'ColorStr=''g'';'... 'set(FunHandle,''Color'',''green'')']); Radio(3)=uicontrol(FigWin,... 'Style','Radio',... 'Position',[50 175 100 30],...
MATLAB可视化设界面计(上) 一个可发布的应用程序通常都需要具备一个友好的图形界面(比如,我们开课时或给学生上课而使用课件时,我们一般就会用到可视化界面)。这样用户不需要知道应用程序究竟是怎样执行各种命令的, 而只需要了解可见界面组件的使用方法用户也不需要知道命令是如何执行, 只要通过与界面交互就可以使指定行为得以正确执行。MATLAB可视化界面的设计, 一般有两种方法, 一是直接通过编辑M脚本文件产生GUI(这个方法就是我们在前面学习过的如何编写、调用M文件), 二是通过MATLAB图形用户界面开发环境GUIDE(Graphical User Interface Development Environment)来形成相应文件。这里只讲述在GUIDE环境中利用控件实现可视化界面功能, 不探讨直接通过编辑脚本文件实现可视化界面的方法。 MATLAB软件GUIDE为用户提供了一个方便高效的集成环境, 所有GUI支持的用户控件都集成在这个环境中, 并提供界面外观、属性和行为响应方式的设置方法。GUIDE将用户保存设计好的GUI界面保存在一个FIG资源文件中, 同时自动生成包含GUI初始化和组件界面布局控制代码的M文件, 为实现回调函数提供了一个参考框架。 下面以一个具体实例来说明GUIDE的开发使用以下所讲解的关于各控件的使用, 我们以MATLAB7.0版本为调试环境, 如果版本的环境和版本略有不同,但基本思想和方法一致。为了方便大家学习,此处提供二个版本(即文字和视频,文字的即为下面的叙述,视频请点击此处。) 实例要完成的功能如下: 首先运行M文件后,出现一个主画面
matlab程序设计例题及答案 1.编写程序:计算1/3+2/5+3/7+……+10/21 法一: s=0; for i=1:10 s=s+i/(2*i+1); end ss = 法二: sum((1:10)./(3:2:21)) ans = 2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。 s=0; for i=1:100 if mod(i,3)==0&&mod(i,7)==0 s=s+i; end,end ss = 210 3.画出y=n!的图,阶乘的函数自己编写,禁用MATLAB 自带的阶乘函数。 x=1:10; for i=1:10 try y(i)=y(i-1)*i; catch y(i)=1; end,end plot(x,y) 10612345678910 4.一个数恰好等于它的因子之和,这个数就称为完数。
例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出20XX以内的所有完数。 g=; for n=2:20XX s=0; for r=1:n-1 if mod(n,r)==0 s=s+r; end end if s==n g=[g n]; end end g g =6 28 496 5.编写一个函数,模拟numel函数的功能,函数中调用size函数。 function y=numelnumel(x) m=size(x); y=m(1)*m(2); numelnumel([1 2 3;4 5 6]) ans = 6 6. 编写一个函数,模拟length函数的功能,函数中调用size函数。 function y=lengthlength(x) m=size(x); y=max(m(1),m(2)); lengthlength([1 2 3;4 5 6]) ans = 3
Matlab 的可视化界面设计 一个可发布的应用程序通常都需要具备一个友好的图形界面,这样用户不需要知道应用程序究竟是怎样执行各种命令的, 而只需要了解可见界面组件的使用方法就可以通过与界面交互使指定行为得以正确执行。 MATLAB可视化界面的设计, 一般有两种方法, 一是直接通过编辑M脚本文件产生GUI, 二是通过MATLAB图形用户界面开发环境GUIDE(Graphical User Interface Development Environment)来形成相应文件。 本文利用MATLAB的GUI程序设计一个简单实用的图像处理程序。该程序应具备图像处理的常用功能,以满足用户的使用。现设计程序有以下基本功能: 1)图像的读取和保存。 2)设计图形用户界面,让用户能够对图像进行缩放、旋转、剪裁,显示和对比变换前后的图像。 3)设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示所选像素点的数据值,以及图像轮廓图,并绘制直方图。 4)实现图像锐化。 5)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。 6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。 一、认识图形用户界面(GUI) 用MATLAB对图像进行处理是当前科技领域的一个重要的课题,它采用的是用一组有序的灰度或彩色数据元素构成图像,数组的每一个元素对应于图像的一个像素值。这样MATLAB就可以利用其强大的矩阵计算功能实现对图像的数字处理。本次设计的系统主要是利用MATLAB所提供的图形用户界面(GUI),实现一个可视的面向对象的操作界面。 1.1设计原则 由于要求不同,设计出来的界面也就千差万别。但是,自从人们开始设计图形界面以来,界面设计的评判标准却没有太大的变化。简单说来,一个好的界面
基于MATLAB的单色光的干涉和衍射实验 GUI 设 计 报 告
目录 一、概述 (3) 二、前期准备 (3) 2.1干涉原理及程序 (3) 2.2衍射原理及程序 (4) 三、设计阶段 (5) 3.1进入模块设计 (5) 3.2实验界面设计 (5) 3.3计算模块设计 (8) 3.4绘图模块设计 (8) 3.5清除模块设计 (8) 3.6提示模块设计 (8) 四、软件使用方法 (9) 五、感想 (15) 六、参考文献 (15)
一、概述 MATLAB是目前世界上最流行的、应用最广泛的工程计算和仿真软件,它将计算、可视化和编程等功能同时集于一个易于开发的环境。MATLAB主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程绘图和用户界面设计等。 其中,用户界面设计中,GUI开发环境是MATLAB7.3为设计图形用户界面提供了一个集成与开发环境,且广泛用于实验模拟软件开发中。 此次我所设计的是一个较简洁、清晰的关于单色光干涉与衍射实验的软件。其能完成特定条件下干涉条纹间距和衍射半角的计算,以及干涉条纹和衍射条纹的绘制。 二、前期准备 2.1干涉原理及程序 干涉原理图 程序如下: ym=5*flag_lambda*flag_D/flag_a/1000000; xs=ym; n=101; ys=linspace(-ym,ym,n); for i=1:n r1=sqrt((ys(i)-(flag_a/1000)/2).^2+(flag_D)^2); r2=sqrt((ys(i)+(flag_a/1000)/2).^2+(flag_D)^2); phi=2*pi*(r2-r1)/(flag_lambda/1000000000);