当前位置:文档之家› 第二次上机 顺序

第二次上机 顺序

第二次上机 顺序
第二次上机 顺序

内容三、顺序程序设计

一、实验目的

1)掌握使用指令编程及调试的方法;

2)掌握指令对状态标志位的影响及其测试方法;

3)学会运用顺序程序解决实际问题的方法。

二、实验设备

PC机一台

三、实验内容及步骤

1.

(1)题目计算X+Y=Z,将结果Z存入某存贮单元。

本实验程序是2个16位,即32位运算,利用累加器AX,先求低16位和,并存入低地址存贮单元,后求高16位和,再存入高地址存贮单元。由于低位和可能向高位有进位,因而高位相加语句须用ADC指令,则低位相加有进位时CF=l,高位字相加时,同时加上CF中的1。

参考程序如下:

STACK SEGMENT

DW 64 DUP(?)

STACK ENDS

DATA SEGMENT

XL DW ? ;请在此处给X低位赋值

XH DW ? ;请在此处给X高位赋值

YL DW ? ;请在此处给Y低位赋值

YH DW ? ;请在此处给Y高位赋值

ZL DW ?

ZH DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

MOV DS,AX

MOV AX,XL

ADD AX,YL

MOV ZL,AX

MOV AX,XH

ADC AX,YH

MOV ZH,AX

INT 03H

CODE ENDS

END START

(2)实验步骤

1)输入实验程序并检查无误,经汇编、连接后生成EXE文件。

2)用DEBUG的U命令查看MOV AX,XXXX(DATA))语句,即得到数据段基址DS:XXXX,用E命令E XXXX:0000给XL,XH,YL,YH赋值存入十六进制数A0 65 15 00和9E B7 21 00。

3)用G命令运行以上程序。

4)用D XXXX:0008 显示计算结果:3E 1D 37 00

5) 反复试几组数,考查程序的正确性。

2.写出计算y=a*b+c-18的程序,其中a、b、c分别为3个带符号的8位二进制数。

写出上机过程,观察现象,记录结果

CC EQU 18

STACK SEGMENT STACK

DB 256 DUP(?)

TOP LABEL WORD

STACK ENDS

DATA SEGMENT

DAT1 DB ?

DAT2 DB ?

DAT3 DB ?

DATY DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STACK

START: MOV AX, DATA

MOV DS, AX

MOV AX,STACK

MOV SS,AX

MOV SP,OFFSET TOP

MOV AL,DAT1

MOV BL,DAT2

IMUL BL

MOV BX,AX

MOV AL,DAT3

CBW

ADD AX,BX

SUB AX,CC

MOV DATY,AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

内容四、分支程序设计

一、实验目的

1)学习分支程序的设计与调试方法;

2)掌握分支程序的指令和基本结构。

二、实验设备

PC机一台

三、实验内容及步骤

1.求某数X的绝对值,并送回原处

程序参考课本

写出上机过程,观察现象及记录结果

TACK SEGMENT STACK

DW 256 DUP(?)

TOP LABEL WORD

STACK ENDS

DA TA SEGMENT

XADR DW 3456H,8192H

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START:MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV SP,OFFSET TOP

MOV AX,XADR

AND AX,AX

JNS DONE

NEG AX

MOV XADR,AX

DONE: MOV AH,4CH

INT 21H

CODE ENDS

END START

2.写出将一位十六进制数转换成对应的ASXII码的程序(只考虑大写字母)。

程序参考课本

写出上机过程,观察现象及记录结果

STACK SEGMENT STACK

DW 256 DUP(?)

TOP LABEL WORD

STACK ENDS

DATA SEGMENT

DAT DB ?

DATY DB ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START:MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV SP,OFFSET TOP

MOV AL,DAT

CMP AL,09

JBE D1

CMP AL,15

JA G1

ADD AL,07

MOV DATY,AL

D1: ADD AL,30H

MOV DATY,AL

DONE: MOV AH,4CH

INT 21H

G1: MOV AL,0FFH

JMP SHORT DONE

CODE ENDS

END START

计算方法上机实验报告

. / 《计算方法》上机实验报告 班级:XXXXXX 小组成员:XXXXXXX XXXXXXX XXXXXXX XXXXXXX 任课教师:XXX 二〇一八年五月二十五日

前言 通过进行多次的上机实验,我们结合课本上的内容以及老师对我们的指导,能够较为熟练地掌握Newton 迭代法、Jacobi 迭代法、Gauss-Seidel 迭代法、Newton 插值法、Lagrange 插值法和Gauss 求积公式等六种算法的原理和使用方法,并参考课本例题进行了MATLAB 程序的编写。 以下为本次上机实验报告,按照实验内容共分为六部分。 实验一: 一、实验名称及题目: Newton 迭代法 例2.7(P38):应用Newton 迭代法求在附近的数 值解,并使其满足. 二、解题思路: 设'x 是0)(=x f 的根,选取0x 作为'x 初始近似值,过点())(,00x f x 做曲线)(x f y =的切线L ,L 的方程为))((')(000x x x f x f y -+=,求出L 与x 轴交

点的横坐标) (') (0001x f x f x x - =,称1x 为'x 的一次近似值,过点))(,(11x f x 做曲线)(x f y =的切线,求该切线与x 轴的横坐标) (') (1112x f x f x x - =称2x 为'x 的二次近似值,重复以上过程,得'x 的近似值序列{}n x ,把) (') (1n n n n x f x f x x - =+称为'x 的1+n 次近似值,这种求解方法就是牛顿迭代法。 三、Matlab 程序代码: function newton_iteration(x0,tol) syms z %定义自变量 format long %定义精度 f=z*z*z-z-1; f1=diff(f);%求导 y=subs(f,z,x0); y1=subs(f1,z,x0);%向函数中代值 x1=x0-y/y1; k=1; while abs(x1-x0)>=tol x0=x1; y=subs(f,z,x0); y1=subs(f1,z,x0); x1=x0-y/y1;k=k+1; end x=double(x1) K 四、运行结果:

电力系统计算程序设计(包含源程序)

电力系统计算程序设计(包含matlab源程序)

广西大学电气工程学院 2007年1月 第一章原始数据 电力系统原始数据是电力系统计算的基础。电力系统每个计算程序都要求输入一定的原始数据,这些数据可以反映电力网络结构、电力系统正常运行条件、电力系统各元件参数和特性曲线。不同的计算程序需要不用的原始数据。 第一节电力网络的描述 电力网络是由输电线路、电力变压器、电容器和电抗器等元件组成。这些元件一般用集中参数的电阻、电抗和电容表示。为了表示电力网络中各元件是怎样互相连接的,通常要对网络节点进行编号。电力网络的结构和参数由电力网络中各支路的特性来描述。 1.1.1 线路参数 在电力系统程序设计中,线路参数一般采用线路的Π型数学模型,即线路用节点间的阻抗和节点对地容性电纳来表示,由于线路的对地电导很小,一般可忽略不计。其等价回路如下: r+jx -jb/2 对于线路参数的数据文件格式一般可写为: 线路参数(序号,节点i,节点j,r,x,b/2) 1.1.2 变压器参数

在电力系统程序设计中,变压器参数一般采用Π型等值变压器模型,这是一种可等值地体现变压器电压变换功能的模型。在多电压级网络计算中采用这种变压器模型后,就可不必进行参数和变量的归算。双绕组变压器的等值回路如下: k Z T k:1 Z T (a)接入理想变压器后的等值电路(b) 等值电路以导纳表示 (c) 等值电路以导纳表示 三绕组变压器的等值回路如下: 综合所述,三绕组变压器的等值电路可以用两个双绕组变压器的等值电

路来表示。因此,对于变压器参数的数据文件格式一般可写为:变压器参数(序号,节点i,节点j,r,x,k0) 其中,k0表示变压器变比。 1.1.3对地支路参数 对地支路参数一般以导纳形式表示,其等价回路如下: i g-jb 对地支路参数的数据文件格式一般可写为: 接地支路参数(序号,节点i,g i,b i) 第二节电力系统运行条件数据 电力系统运行条件数据包括发电机(含调相机)所连接的节点号、有功与无功功率;负荷所连接的节点号、有功与无功功率;PV节点与给定电压值;平衡节点的节点号与给定电压值。 1.2.1节点功率参数 电力系统中有流入流出功率的称为功率节点,有流入功率的称发电节点,一般为各发电站、枢纽变电站等节点;有流出功率的称负荷节点。对于电力系统稳态计算来说,功率节点都用有功功率P和无功功率Q来简单表示。其等价回路如下: Q G P G P L Q L 节点功率参数的数据文件格式一般可写为:

用Matlab计算潮流计算

用Matlab计算潮流计算-电力系统分析

《电力系统潮流上机》课程设计报告 院系:电气工程学院 班级:电088班_______ 学号:0812002221 学生姓名:刘东昇________ 指导教师:张新松________ 设计周数:两周_________ 日期:2010年12月25日 一、课程设计的目的与要求

目的:培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识 要求:基本要求: 1.编写潮流计算程序; 2.在计算机上调试通过; 3.运行程序并计算出正确结果; 4.写出课程设计报告 二、设计步骤: 1.根据给定的参数或工程具体要求(如图),收集和查阅资料;学习相关软件(软件自选:本设计选择Matlab进行设计)。 Alt ;' T = r、二戶土旳「亠 2.在给定的电力网络上画出等值电路图 3.运用计算机进行潮流计算。 4.编写设计说明书。 三、设计原理 1.牛顿-拉夫逊原理

牛顿迭代法是取X0之后,在这个基础上,找到比x0更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,一般为额定电压,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成新的节点电压初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。 牛顿一拉夫逊迭代法的一般步骤: (1)形成各节点导纳矩阵丫。 (2)设个节点电压的初始值U和相角初始值e还有迭代次数初值为0。 (3)计算各个节点的功率不平衡量。

西安交通大学计算方法B上机报告

计算方法上机报告

姓名: 学号: 班级:能动上课班级:

题目及求解: 一、对以下和式计算: ∑ ∞ ? ?? ??+-+-+-+=0681581482184161n n n n S n ,要求: ① 若只需保留11个有效数字,该如何进行计算; ② 若要保留30个有效数字,则又将如何进行计算; 1 算法思想 (1)根据精度要求估计所加的项数,可以使用后验误差估计,通项为: 1421114 16818485861681 n n n a n n n n n ε??= ---<< ?+++++??; (2)为了保证计算结果的准确性,写程序时,从后向前计算; (3)使用Matlab 时,可以使用以下函数控制位数: digits(位数)或vpa(变量,精度为数) 2 算法结构 ;0=s ?? ? ??+-+-+-+= 681581482184161n n n n t n ; for 0,1,2,,n i =??? if 10m t -≤ end; for ,1,2,,0n i i i =--??? ;s s t =+ 3 Matlab 源程序 clear; %清除工作空间变量 clc; %清除命令窗口命令 m=input('请输入有效数字的位数m='); %输入有效数字的位数 s=0;

for n=0:50 t=(1/16^n)*(4/(8*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6)); if t<=10^(-m) %判断通项与精度的关系break; end end; fprintf('需要将n值加到n=%d\n',n-1); %需要将n值加到的数值 for i=n-1:-1:0 t=(1/16^i)*(4/(8*i+1)-2/(8*i+4)-1/(8*i+5)-1/(8*i+6)); s=s+t; %求和运算 end s=vpa(s,m) %控制s的精度 4 结果与分析 若保留11位有效数字,则n=7,此时求解得: s =3.1415926536; 若保留30位有效数字时,则n=22, 此时求解得: s =3.8。 通过上面的实验结果可以看出,通过从后往前计算,这种算法很好的保证了计算结果要求保留的准确数字位数的要求。 二、某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。已探测到一组等分点位置的深度数据(单位:米)如下表所示:

潮流计算的计算机算法

第四章潮流计算的计算机算法 第一节概述 潮流计算是电力系统最基本、最常用的计算。根据系统给定的运行条件、网络接线及元件参数,通过潮流计算可以确定各母线的电压(幅值及相角),各元件中流过的功率、整个系统的功率损耗等。潮流计算是实现电力系统安全经济发供电的必要手段和重要工作环节。因此潮流计算在电力系统的规划设计、生产运行、调度管理及科学研究中都有着广泛的应用。 电力系统潮流计算分为离线潮流计算和在线潮流计算。前者主要用于系统规划设计和安排系统的运行方式,后者则用于正在运行系统的经常监视及实时控制。本章主要讨论离线潮流计算问题,它的基本算法同样适用于在线潮流计算。 潮流计算在数学上是多元非线性方程组的求解问题,求解的方法有很多种。自从五十年代计算机应用于电力系统以来,当时求解潮流的方法是以节点导纳矩阵为基础的逐次代入法(导纳法),后来为解决导纳法的收敛性较差的问题,出现了以阻抗矩阵为基础的逐次代入法(阻抗法)。到六十年代,针对阻抗法占用计算机内存大的问题又出现了分块阻抗法及牛顿-拉夫逊(Newton-Raphson)法。Newton —Raphson法是数学上解非线形方程式的有效方法,有较好的收敛性。将N-R法用于潮流计算是以导纳矩阵为基础的,由于利用了导纳矩阵的对称性、稀疏性及节点编号顺序优化等技巧,使N-R法在收敛性、占用内存、计算速度方面的优点都超过了阻抗法,成为六十年代末期以后普遍采用的方法。同时国内外广泛研究了诸如非线形规划法、直流法、交流法等各种不同的潮流计算方法。七十年代以来,又涌现出了更新的潮流计算方法。其中有1974年由B、Stott、O、Alsac 提出的快速分解法以及1978年由岩本伸一等提出的保留非线性的高 129

潮流上机课程设计-华电

课程设计报告 ( 2011—2012年度第一学期) 名称:电力系统潮流上机 院系:电气与电子工程学院班级: 学号: 学生姓名: 指导教师: 设计周数:两周 成绩: 日期:2011年12月19日

一、课程设计的目的与要求 培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识 二、设计正文(详细内容见附录) 1.手算 2.计算机计算 3.思考题 三、课程设计总结或结论 潮流计算是研究电力系统稳态运行的一种基本计算,最初求解电力系统潮流时大多使用手算,但随着电力系统结构的日趋复杂,计算量也越来越大。 复杂电力系统潮流计算中,由于节点数量巨大,所形成的修正方程已经无法通过手算方式解决,尤其是需要迭代次数较多时,手算所需要的时间太长,计算机潮流计算无疑为解决这一问题提供了极大的便利。计算机潮流计算可以迅速解决复杂网络的潮流计算问题,这是由于无论系统的复杂程度如何,其节点与支路的类型是固定的,所以只需要输入节点与支路的数据,就可以解决任何一个复杂网络的潮流计算问题。即只需要一次编程,就可以基本上解决所有复杂网络的计算。 需要注意的是,在使用牛顿—拉弗逊发计算潮流时,对于初值要选择比较接近它们的精确解,否则迭代过程可能不收敛。 潮流计算C语言程序编程过程中需要注意的是,C语言无法实现复数运算,需要将得到的值的实部与虚部分开储存并计算。这个过程复杂并且容易出错,编写程序是需要注意。另外需要注意的一点是:C语言数组的编号是从零开始的,在程序编写过程中应注意下标的对应。 通过这一次的电力系统潮流计算编程,我不仅对C语言的编程有了更深刻的理解,也对《电力系统分析》这门课程进行了查漏补缺和巩固,对电力系统的运行也有了更加深入的了解,受益匪浅。 四、参考文献 1.《电力系统计算:电子数字计算机的应用》,西安交通大学等合编。北京:水利电力出版社; 2.《现代电力系统分析》,王锡凡主编,科学出版社; 3.《电力系统稳态分析》,陈珩,中国电力出版社,2007年,第三版;

计算方法上机实验报告

《计算方法》上机实验报告 班级:XXXXXX 小组成员:XXXXXXX XXXXXXX XXXXXXX XXXXXXX 任课教师:XXX 二〇一八年五月二十五日

前言 通过进行多次的上机实验,我们结合课本上的内容以及老师对我们的指导,能够较为熟练地掌握Newton 迭代法、Jacobi 迭代法、Gauss-Seidel 迭代法、Newton 插值法、Lagrange 插值法和Gauss 求积公式等六种算法的原理和使用方法,并参考课本例题进行了MATLAB 程序的编写。 以下为本次上机实验报告,按照实验内容共分为六部分。 实验一: 一、实验名称及题目: Newton 迭代法 例2.7(P38):应用Newton 迭代法求 在 附近的数值解 ,并使其满足 . 二、解题思路: 设'x 是0)(=x f 的根,选取0x 作为'x 初始近似值,过点())(,00x f x 做曲线)(x f y =的切线L ,L 的方程为))((')(000x x x f x f y -+=,求出L 与x 轴交点的横坐标) (') (0001x f x f x x - =,称1x 为'x 的一次近似值,过点))(,(11x f x 做曲线)(x f y =的切线,求该切线与x 轴的横坐标) (') (1112x f x f x x - =称2x 为'x

的二次近似值,重复以上过程,得'x 的近似值序列{}n x ,把 ) (') (1n n n n x f x f x x - =+称为'x 的1+n 次近似值,这种求解方法就是牛顿迭代法。 三、Matlab 程序代码: function newton_iteration(x0,tol) syms z %定义自变量 format long %定义精度 f=z*z*z-z-1; f1=diff(f);%求导 y=subs(f,z,x0); y1=subs(f1,z,x0);%向函数中代值 x1=x0-y/y1; k=1; while abs(x1-x0)>=tol x0=x1; y=subs(f,z,x0); y1=subs(f1,z,x0); x1=x0-y/y1;k=k+1; end x=double(x1) K 四、运行结果: 实验二:

用matlab电力系统潮流计算

题目:潮流计算与matlab 教学单位电气信息学院姓名 学号 年级 专业电气工程及其自动化指导教师 职称副教授

摘要 电力系统稳态分析包括潮流计算和静态安全分析。本文主要运用的事潮流计算,潮流计算是电力网络设计与运行中最基本的运算,对电力网络的各种设计方案及各种运行方式进行潮流计算,可以得到各种电网各节点的电压,并求得网络的潮流及网络中的各元件的电力损耗,进而求得电能损耗。本位就是运用潮流计算具体分析,并有MATLAB仿真。 关键词:电力系统潮流计算 MATLAB Abstract Electric power system steady flow calculation and analysis of the static safety analysis. This paper, by means of the calculation, flow calculation is the trend of the power network design and operation of the most basic operations of electric power network, various design scheme and the operation ways to tide computation, can get all kinds of each node of the power grid voltage and seek the trend of the network and the network of the components of the power loss, and getting electric power. The standard is to use the power flow calculation and analysis, the specific have MATLAB simulation. Key words: Power system; Flow calculation; MATLAB simulation

电力系统潮流计算实验报告

1. 手算过程 已知: 节点1:PQ 节点, s(1)= -0.5000-j0.3500 节点2:PV 节点, p(2)=0.4000 v(2)=1.0500 节点3:平衡节点,U(3)=1.0000∠0.0000 网络的连接图: 0.0500+j0.2000 1 0.0500+j0.2000 2 3 1)计算节点导纳矩阵 由2000.00500.012j Z += ? 71.418.112j y -=; 2000.00500.013j Z += ? 71.418.113j y -=; ∴导纳矩阵中的各元素: 42.936.271.418.171.418.1131211j j j y y Y -=-+-=+=; 71.418.11212j y Y +-=-=; 71.418.11313j y Y +-=-=; =21Y 71.418.11212j y Y +-=-=; 71.418.12122j y Y -==; 002323j y Y +=-=; =31Y 71.418.11313j y Y +-=-=; =32Y 002323j y Y +=-=; 71.418.13133j y Y -==; ∴形成导纳矩阵B Y : ?? ?? ? ?????-++-+-+-+-+--=71.418.10071.418.10071.418.171.418.171.418.171.418.142.936.2j j j j j j j j j Y B 2)计算各PQ 、PV 节点功率的不平衡量,及PV 节点电压的不平衡量: 取:000.0000.1)0(1)0(1)0(1j jf e U +=+= 000.0000.1)0(2) 0(2)0(2j jf e U +=+= 节点3是平衡节点,保持000.0000.1333j jf e U +=+=为定值。 ()()[] ∑==++-=n j j j ij j ij i j ij j ij i i e B f G f f B e G e P 1 )0()0()0()0()0()0() 0(;

顺序结构实验报告

程序设计基础 实验报告 实验编号 1905B000201 实验名称顺序结构 实验地点软件技术实验室(2) 班级19软嵌2班 学号 姓名

一、实验目的: 1、掌握编程环境的使用 2、掌握基本数据类型、变量的定义和赋值; 3、掌握输入输出语句 4、理解顺序结构的使用 二、实验内容: 问题1: 源代码: #include void main() { int num1,num2,sum,min,mul,yushu; float shang; printf("Enter num1:"); scanf("%d",&num1); printf("Enter num2:"); scanf("%d",&num2); sum=num1+num2; min=num1-num2; mul=num1*num2; shang= (float)num1/num2; yushu=num1%num2; printf("%d+%d=%d\n",num1,num2,sum); printf("%d-%d=%d\n",num1,num2,min);

printf("%d*%d=%d\n",num1,num2,mul); printf("%d/%d=%.2f\n",num1,num2,shang); printf("%d%%%d=%d\n",num1,num2,yushu); return 0; } 输入:5 3 结果: 问题2: 源代码: #include int main() { int time1, time2,m,n; printf("Enter time1:"); scanf( "%d" ,&time1); printf("Enter time2:"); scanf("%d",&time2); m=(time2-time1)/100;

潮流上机课程设计报告华电

华址电力*孑 《电力系统潮流上机》课程设计报告 院系 班级: 学号: 学生姓名: 指导教师: 设计周数 成绩: 日期:年月日

q 「十?-课程课程设计报告 、课程设计的目的与要求 培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识 、设计正文(详细内容见附录) 1.手算:要求应用牛顿-拉夫逊法或P-Q分解法手算求解,要求精度为0.001MW 节点1为平衡节点,电压U, 1.0 0,节点2为PQ节点,负荷功率S20.8 j0.6,节点3 是PV 节点,P3 04U3 1.1,两条支路分别为Z13 0.01 j0.04,Z12 0.05 j0.2,对地支路y30j 0.33。

? 十?-课程课程设计报告 2?计算机计算:编写潮流计算程序,要求如下: 2.1据给定的潮流计算任务书整理潮流计算的基础数据:节点的分类,线路模型,等值变压器 模型,电压等级的 归算,标幺值的计算; 2.2基础数据的计算机存储:节点数据,支路数据(包括变压器) ; 2.3用牛顿-拉夫逊法计算; 2.4根据所选潮流计算方法画流程图,划分出功能模块,有数据输入模块,导纳阵形成模块, 解线性方程组模 块,计算不平衡功率模块,形成雅可比矩阵模块,解修正方程模块,计算 线路潮流,网损,PV 节点无功功率和平衡节点功率,数据输出模块; 2.5据上述模块编制程序并上机调试程序,得出潮流计算结果; 2.6源程序及其程序中的符号说明集、程序流图 简单系统如下图所示,支路数据如下: 乙2 0.1 j0.41,乙3 j0.3, z 14 0.12 j0.5, z 24 0.08 j0.40 y io,2 y 20,1 j 0.01528, y 10,4 y 40,1 j 0.0192, y 20,4 y 40,2 j 0.01413 k 1.1 节点数据如下: S 1 0.30 j0.18,S 2 0.55 j0.13, S 3 0.5,U 3 1.10,U 4 1.05 0o Z 13 Z 13 y 40,1 y 20,4 1) 节点导纳阵 #in elude #in elude #in elude #i nclude "LF.h" y 10,4 Z 14 k(k 丄 y 20,1 Z 12 Z 13 S 4 Z 24 S 2 y 40,2

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

基于MATLAB的潮流计算源程序代码(优.选)

%*************************电力系统直角坐标系下的牛顿拉夫逊法潮流计算********** clear clc load E:\data\IEEE014_Node.txt Node=IEEE014_Node; weishu=size(Node); nnum=weishu(1,1); %节点总数 load E:\data\IEEE014_Branch.txt branch=IEEE014_Branch; bwei=size(branch); bnum=bwei(1,1); %支路总数 Y=(zeros(nnum)); Sj=100; %********************************节点导纳矩阵******************************* for m=1:bnum; s=branch(m,1); %首节点 e=branch(m,2); %末节点 R=branch(m,3); %支路电阻 X=branch(m,4); %支路电抗 B=branch(m,5); %支路对地电纳 k=branch(m,6); if k==0 %无变压器支路情形 Y(s,e)=-1/(R+j*X); %互导纳 Y(e,s)=Y(s,e); end if k~=0 %有变压器支路情形 Y(s,e)=-(1/((R+j*X)*k)); Y(e,s)=Y(s,e); Y(s,s)=-(1-k)/((R+j*X)*k^2); Y(e,e)=-(k-1)/((R+j*X)*k); %对地导纳 end Y(s,s)=Y(s,s)-j*B/2; Y(e,e)=Y(e,e)-j*B/2; %自导纳的计算情形 end for t=1:nnum; Y(t,t)=-sum(Y(t,:))+Node(t,12)+j*Node(t,13); %求支路自导纳 end G=real(Y); %电导 B=imag(Y); %电纳 %******************节点分类************************************* * pq=0; pv=0; blancenode=0; pqnode=zeros(1,nnum); pvnode=zeros(1,nnum); for m=1:nnum; if Node(m,2)==3 blancenode=m; %平衡节点编号 else if Node(m,2)==0 pq=pq+1; pqnode(1,pq)=m; %PQ 节点编号 else if Node(m,2)==2 pv=pv+1; pvnode(1,pv)=m; %PV 节点编号 end end end end %*****************************设置电压初值********************************** Uoriginal=zeros(1,nnum); %对各节点电压矩阵初始化 for n=1:nnum Uoriginal(1,n)=Node(n,9); %对各点电压赋初值 if Node(n,9)==0;

潮流上机课程设计报告

如果恰巧看到这篇的话,给你们几个忠告。首先要说的是:课设老师是sb,课设老师是sb,课设老师是sb,重说三;其次,要给他看程序的话,一定要早一点,不然你自己写的也成抄袭的了,亲身经历你们懂的;顺带,这sb看变量名认程序的,自己尽量把变量名都改了。恩,基本就是这些了。

课程设计报告 ( 2015—2016年度第二学期) 名称:电力系统潮流上机 院系:电气与电子工程学院班级: 学号: 学生姓名: 指导教师:毛安家 设计周数:两周 成绩: 日期:年月日

一、课程设计的目的与要求 培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识 二、设计正文(详细内容见附录) 1. 手算 节点1为平衡节点,电压1 1.050U =∠?,节点2为PQ 节点,负荷功率20.80.5S j =+,节点3是PV 节点,330.4, 1.05P U ==,两条支路分别为04.001.013j Z +=,2.005.012j Z +=,对地支路300.3y j =。(要求应用牛顿-拉夫逊法或P-Q 分解法手算求解,要求迭代两次。) (手算具体过程见附录) 2. 计算机计算 编写潮流计算程序,要求如下: 2.1据给定的潮流计算任务书整理潮流计算的基础数据:节点的分类,线路模型,等值变压器 模型,电压等级的归算,标幺值的计算; 2.2基础数据的计算机存储:节点数据,支路数据(包括变压器); 2.3用牛顿-拉夫逊法计算; 2.4根据所选潮流计算方法画流程图,划分出功能模块,有数据输入模块,导纳阵形成模块, 解线性方程组模块,计算不平衡功率模块,形成雅可比矩阵模块,解修正方程模块,计算线路潮流。 (1)、每次迭代的各节点电压幅值、相位或者实部、虚部 (2)、收敛的迭代次数 (3)、收敛后各节点电压幅值、相位,各支路的,,ij ji ij S S S ? (4)、收敛后PV 节点的注入Q (5)、收敛后平衡节点的注入功率S 2.5据上述模块编制程序并上机调试程序,得出潮流计算结果; 2.6源程序及其程序中的符号说明集、程序流图 简单系统如下图所示,支路数据如下: 支路14,27,39为变压器支路,参数为 100.1,058.0114==K X ,050.1,063.0227==K X 100.1,059.0339==K X 其余支路为线路支路,参数为 075.02/,072.0019.07878=+=B j Z , 105.02/,101.0012.08989=+=B j Z 153.02/,161.0032.05757=+=B j Z

顺序表的应用数据结构实验报告记录

顺序表的应用数据结构实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

大学数据结构实验报告 课程名称数据结构实验第(三)次实验实验名称顺序表的应用 学生姓名于歌专业班级学号 实验成绩指导老师(签名)日期2018年9月30日一、实验目的 1.学会定义线性表的顺序存储类型,实现C程序的基本结构,对线性表的一些基本操作和具体的函数定义。 2.掌握顺序表的基本操作,实现顺序表的插入、删除、查找以及求并集等运算。 3.掌握对多函数程序的输入、编辑、调试和运行过程。 二、实验要求 1.预习C语言中结构体的定义与基本操作方法。 2.对顺序表的每个基本操作用单独的函数实现。 3.编写完整程序完成下面的实验内容并上机运行。 4.整理并上交实验报告。 三、实验内容: 1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1)根据指定学生个数,逐个输入学生信息 (2)逐个显示学生表中所有学生的相关信息 (3)根据姓名进行查找,返回此学生的学号和成绩 (4)根据指定的位置可返回相应的学生信息(学号,姓名,成绩) (5)给定一个学生信息,插入到表中指定的位置 (6)删除指定位置的学生记录 (7)统计表中学生个数 四、实验设计 1.定义一个包含学生信息(学号,姓名,成绩)的顺序表,使其具有如下功能: (1)根据指定学生个数,逐个输入学生信息 for(count=0; count

计算方法实验报告格式

计算方法实验报告格式 小组名称: 组长姓名(班号): 小组成员姓名(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一个完整的实验,应包括数据准备、理论基础、实验内容及方法,最终对实验结果进行分析,以达到对理论知识的感性认识,进一步加深对相关算法的理解,数值实验以实验报告形式完成,实验报告格式如下: 一、实验名称 实验者可根据报告形式需要适当写出. 二、实验目的及要求 首先要求做实验者明确,为什么要做某个实验,实验目的是什么,做完该实验应达到什么结果,在实验过程中的注意事项,实验方法对结果的影响也可以以实验目的的形式列出. 三、算法描述(实验原理与基础理论) 数值实验本身就是为了加深对基础理论及方法的理解而设置的,所以要求将实验涉及到的理论基础,算法原理详尽列出. 四、实验内容 实验内容主要包括实验的实施方案、步骤、实验数据准备、实验的算法以及可能用到的仪器设备. 五、程序流程图 画出程序实现过程的流程图,以便更好的对程序执行的过程有清楚的认识,在程序调试过程中更容易发现问题. 六、实验结果 实验结果应包括实验的原始数据、中间结果及实验的最终结果,复杂的结果可以用表格

形式列出,较为简单的结果可以与实验结果分析合并出现. 七、实验结果分析 实验结果分析包括对对算法的理解与分析、改进与建议. 数值实验报告范例 为了更好地做好数值实验并写出规范的数值实验报告,下面给出一简单范例供读者参考. 数值实验报告 小组名称: 小组成员(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一、实验名称 误差传播与算法稳定性. 二、实验目的 1.理解数值计算稳定性的概念. 2.了解数值计算方法的必要性. 3.体会数值计算的收敛性与收敛速度. 三、实验内容 计算dx x x I n n ? += 1 10 ,1,2,,10n = . 四、算法描述 由 dx x x I n n ? += 1 10 ,知 dx x x I n n ?+=--101110,则

潮流计算的计算机算法

高等电力系统分析 (潮流计算的计算机算法)PQ分解法潮流计算(IEEE14)

目录 一、MATLAB源程序 二、对支路参数(B1)、节点参数(B2)的说明 三、带入数据,运行结果

一、MATLAB源程序 clear close all n=input('请输入节点数:n='); n1=input('请输入支路数:n1='); isb=input('请输入平衡节点号:isb='); pr=input('请输入误差精度:pr='); B1=input('请输入支路参数:B1='); B2=input('请输入节点参数:B2='); n2=input('请输入PQ节点个数:n2='); Y=zeros(n); for i=1:n1 p=B1(i,1); q=B1(i,2); Y(p,q)=Y(p,q)-1/(B1(i,3)+B1(i,4)*1j); %非对角元 Y(q,p)=Y(p,q); Y(p,p)=Y(p,p)+1/(B1(i,3)+B1(i,4)*1j)+B1(i,6)*1j; %对角元 Y(q,q)=Y(q,q)+1/(B1(i,3)+B1(i,4)*1j)+B1(i,6)*1j; end disp('导纳矩阵Y='); disp(Y) %--------------------------------------------- %---------------下面是求P,Q,V,O矩阵--------------- V=zeros(1,n);O=zeros(1,n);P=zeros(1,n);Q=zeros(1,n); G=real(Y);B=imag(Y); for i=1:n P(i)=B2(i,3); Q(i)=B2(i,4); V(i)=B2(i,5); O(i)=B2(i,6); end B3=B(1:n-1,1:n-1); %不含平衡节点,由节点导纳虚部构成 B4=B(1:n2,1:n2); %所有PQ节点 %---------------------------------------------- %---------------下面是求ΔP,ΔQ矩阵--------------- DX=0;ICT=1;Mp=1;Mq=1; while ICT~=0 m1=1;m2=1; for i=1:n

潮流计算代码c

《电力系统潮流上机》课程设计报告 院系:电气与电子工程学院 班级:电气1405 学号: 1141180505 学生姓名: 指导教师:孙英云 设计周数:两周 成绩: 日期:2017年7月5日

一、课程设计的目的与要求 培养学生的电力系统潮流计算机编程能力,掌握计算机潮流计算的相关知识 二、设计正文 1.掌握计算机潮流计算的原理: a)复习电力系统分析基础中潮流的计算机算法一章,重点掌握节点分类、潮流算法介 绍 b)详细阅读牛拉法部分,掌握潮流方程(极坐标、直角坐标)的写法,掌握雅可比矩 阵的公式及排列顺序和潮流方程、变量顺序的关系,掌握迭代法收敛条件及迭代法 的基本原理 c)设计程序框图,划分功能模块、并对每个模块的输入输出量进行细化。 2.编写计算机潮流计算程序 a)学习了解IEEE标准格式数据,学习掌握C/C++读取数据的方法 b)设计计算机数据存储母线、支路数据的结构,并将所读取的数据存放于所设计的结 构当中 c)学习节点排序、节点导纳阵计算方法,编写节点导纳阵生成模块 d)编写潮流方程不平衡量计算模块 e)编写雅可比矩阵生成子模块 f)利用给定的pfMatrix类,编写修正量计算模块 g)实现潮流计算主程序,并利用IEEE标准节点数据进行校验,要求能够输出计算结 果、支路潮流等必要信息 3.思考题 1.潮流计算的方法有哪些?各有何特点? 答:潮流计算分为简单电力网络的手算和复杂电力网络的机算两大类,其中机算又有高斯-赛德尔法、牛顿-拉夫逊法和P-Q分解法。 各方法特点如下所示: 手算求解潮流一般只用于简单的网络中,计算量大,对于多节点的网络用手算一般难以解决问题。但是通过手算可以对物理概念的理解,还可以在运用计算机计算前由手算的形式求取某些原始数据。

数据结构实验报告

南京工程学院实验报告 操作的函数程序清单,分别用顺序表和链表结构完成,并在首页上表明团队名称、成员及个人的工作(函数),未来的成绩评定时将包含这一部分的团队成绩及个人的工作成绩。 一、实验目的 1.熟悉上机环境,进一步掌握语言的结构特点。 2.掌握线性表的顺序存储结构的定义及实现。 3.掌握线性表的链式存储结构——单链表的定义及实现。 4.掌握线性表在顺序存储结构即顺序表中的各种基本操作。 5.掌握线性表在链式存储结构——单链表中的各种基本操作。 二、实验内容 1.顺序线性表的建立、插入及删除。 2.链式线性表的建立、插入及删除。 三、实验步骤 1.建立含n个数据元素的顺序表并输出该表中各元素的值及顺序表的长度。 2.利用前面的实验先建立一个顺序表L={21,23,14,5,56,17,31},然后在第i个位置插入元素68。 3.建立一个带头结点的单链表,结点的值域为整型数据。要求将用户输入的数据按尾插入法来建立相应单链表。 四、程序主要语句及作用(main函数程序清单) 程序1的主要代码(附简要注释) #include #define MAXSIZE 1024 typedef int elemtype; typedef struct{ elemtype vec[MAXSIZE]; int len; }sequenlist; elemtype geti(sequenlist s, int i); elemtype deli(sequenlist *s,int i); elemtype insi(sequenlist *s,int i,int b); int main(int argc, char *argv[]){ int i,n,x; sequenlist a; printf("输入n(n>3):"); scanf("%d",&n);

计算方法B上机报告

计算方法B 上机报告 第1题 某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。已探测到一组等分点位置的深度数据(单位:米)如下表所示: (1)请用合适的曲线拟合所测数据点; (2)估算所需光缆长度的近似值,并作出铺设河底光缆的曲线图; 问题分析和算法思想: 本题的主要目的是对21个测量数据进行拟合,同时对拟合曲线进行线积分即可得到河底光缆长度的近似值,可以用的插值方法很多:多项式插值、Lagrange 插值、Newton 插值、三次样条插值等。由于数值点较多时,采用高次多项式插值将产生很大的误差,用拉格朗日插值多项式会出现龙格现象。故为了将所有的数据点都用上,且题中光缆为柔性,可光滑铺设于水底,鉴于此特性,采用三次样条插值的方法较为合适。 计算光缆长度近似值,只需将每两点之间的距离算出,然后依次相加,所得的折线长度,即为光缆长度的近似值。 光缆长度计算公式: 19 1 k k k l +===∑? ? ? 算法结构: 三次样条算法结构见《计算方法教程》P110。 源程序: clear;clc; x=0:20;

y=[9.01 8.96 7.96 7.97 8.02 9.05 10.13 11.18 12.26 13.28 13.32 12.61 11.29 10.22 9.15 7.90 7.95 8.86 9.81 10.80 10.93]; d=y; plot(x,y,'k.','markersize',15) hold on %%%计算二阶差商 for k=1:2 for i=21:-1:(k+1) d(i)=(d(i)-d(i-1))/(x(i)-x(i-k)); end end %%%假定d的边界条件,采用自然三次样条 for i=2:20 d(i)=6*d(i+1); end d(1)=0; d(21)=0; %%%追赶法求解带状矩阵的m值 a=0.5*ones(1,21); b=2*ones(1,21); c=0.5*ones(1,21); a(1)=0;c(21)=0; u=ones(1,21); u(1)=b(1); r=c; yy(1)=d(1); %%%追的过程 for k=2:21 l(k)=a(k)/u(k-1); u(k)=b(k)-l(k)*r(k-1); yy(k)=d(k)-l(k)*yy(k-1); end %%%赶的过程 m(21)=yy(21)/u(21); for k=20:-1:1 m(k)=(yy(k)-r(k)*m(k+1))/u(k); end %%%利用插值点画出拟合曲线 k=1; nn=100; xx=linspace(0,20,nn); l=0; for j=1:nn for i=2:20 if xx(j)<=x(i) k=i;

相关主题
文本预览
相关文档 最新文档