调度自动化 实验报告Word格式.docx
- 文档编号:16437549
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:12
- 大小:203.96KB
调度自动化 实验报告Word格式.docx
《调度自动化 实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《调度自动化 实验报告Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
out);
//打开文件
if(!
File1)
{
cout<
<
"
test.txt不能打开!
\n"
;
//判断文件能否打开
system("
pause"
);
return0;
}
File1<
3.1415926;
//向文件中写入.1415926
3.1415926ispivalue"
//向文件中写入字符串
File1.close();
//关闭文件
fstreamFile2;
File2.open("
in);
//打开文件
File2)//判断文件能否打开
}
doublepi;
File2>
>
pi;
//从文件中读入.1415926到变量pi
File2.close();
//关闭文件
cout<
return0;
}
程序运行结果:
基础实验二类与对象
一圆型游泳池如图所示,现在需在其周围建一圆型过道,并在其四周围上栅栏。
栅栏价格为35元/米,过道造价为20元/平方米。
过道宽度为3米,游泳池半径由键盘输入。
要求编程计算并输出过道和栅栏的造价。
定义CCircle类
Circle.h文件:
#pragmaonce
classCCircle
public:
CCircle(void);
~CCircle(void);
private:
floatpi;
floatPerimeter;
//栅栏周长
floatArea;
//过道面积
floatMoZL;
//栅栏造价
floatMoGD;
//过道造价
floatSideLength;
//边长
voidInPutSideLength(void);
voidCalculat(float_SideLength);
};
Circle.cpp文件
StdAfx.h"
Circle.h"
CCircle:
CCircle(void)
SideLength(0)
Perimeter(0)
Area(0)
pi(0)
MoZL(0)
MoGD(0)
{//初始化
SideLength=0;
Perimeter=0;
pi=3.1415926;
Area=0;
MoZL=0;
MoGD=0;
~CCircle(void)
voidCCircle:
InPutSideLength(void)//获得游泳池半径
请输入游泳池的边长SideLength="
endl;
cin>
SideLength;
Calculat(float_SideLength)
Perimeter=pi*2*(_SideLength+3);
//计算栅栏长度
Area=pi*(_SideLength+3)*(_SideLength+3)-pi*_SideLength*_SideLength;
//计算过道面积
MoGD=20*Area;
//计算过道造价
MoZL=35*Perimeter;
//计算栅栏造价
过道造价="
MoGD<
//在屏幕上输出计算结果
栅栏造价="
MoZL<
过道和栅栏造价计算.cpp文件:
//过道和栅栏造价计算.cpp:
CCirclemyCircle;
myCircle.InPutSideLength();
myCircle.Calculat(myCircle.SideLength);
当半径为5时结果为:
综合实验一电力系统潮流计算
程序部分代码如下:
PowerFlowDll.cpp中部分代码
POWERFLOW_APIstringPowerFlowCalculate(intRandomNumber)//传回随机数作为数据更新的依据
//修改为实验者真实信息
stringUsrInfo("
实验者姓名:
学号:
"
NRPowerFLow.cpp中部分代码:
boolCNRPowerFLow:
Init()
//添加实验代码
inti;
//完成对成员变量的初始化
SPowerPower0={0.0,0.0};
SBranchBranch0={0.0,0.0,0.0,0,0.0,0.0,0.0,0,0,Power0,Power0,Power0};
for(i=0;
i<
=20;
i++)
{
BranchVec.push_back(Branch0);
SBusVoltageBusVoltage0={1.0,2.0,3.0,4.0};
SBusBus0={1,BusVoltage0,Power0,Power0,Power0,0.0,0.0,0.0,0.0,0.0,0};
=14;
BusVec.push_back(Bus0);
CorVoltageVec.push_back(0.0);
ifstreamInfile("
\\EMSLab\\SystemParament\\IEEE14Para.txt"
//打开特定路径下的文件读入信息
if(!
Infile)
MessageBoxA(NULL,"
文件打开失败,请检查结果文件路径名是否正确!
"
信息提示"
MB_OK);
returnfalse;
Infile>
SysPara.BranchNum>
SysPara.BusNum>
SysPara.SlackBusNo>
SysPara.Epsilon;
//读入系统信息
doubleG=0.0,B=0.0;
for(i=1;
i++)//读入支路信息
Infile>
BranchVec[i].SerG>
BranchVec[i].SerB>
BranchVec[i].PIB>
BranchVec[i].Ratio>
BranchVec[i].StaBusNo>
BranchVec[i].EndBusNo;
G=BranchVec[i].SerG/(BranchVec[i].SerG*BranchVec[i].SerG+BranchVec[i].SerB*BranchVec[i].SerB);
B=0-BranchVec[i].SerB/(BranchVec[i].SerG*BranchVec[i].SerG+BranchVec[i].SerB*BranchVec[i].SerB);
BranchVec[i].SerG=G;
BranchVec[i].SerB=B;
i++)//读入节点信息
BusVec[i].No>
BusVec[i].BusVoltage.Amp>
BusVec[i].BusVoltage.Angle>
BusVec[i].GenePower.Act>
BusVec[i].GenePower.Rea>
BusVec[i].LoadPower.Act>
BusVec[i].LoadPower.Rea>
BusVec[i].GroundB>
BusVec[i].Vmax>
BusVec[i].Vmin>
BusVec[i].Qmax>
BusVec[i].Qmin>
BusVec[i].Type;
if(BusVec[i].Type==1)
{
BusVec[i].InjPower.Act=BusVec[i].GenePower.Act-BusVec[i].GenePower.Act;
BusVec[i].InjPower.Rea=BusVec[i].GenePower.Rea-BusVec[i].GenePower.Rea;
}
if(BusVec[i].Type==2)
BusVec[i].InjPower.Rea=0;
if(BusVec[i].Type==3)
BusVec[i].InjPower.Act=BusVec[i].GenePower.Act;
BusVec[i].InjPower.Rea=BusVec[i].GenePower.Rea;
Infile.close();
returntrue;
//赋电压初值
voidCNRPowerFLow:
InitVoltage()
inti;
CorVoltageVec[i]=BusVec[i].BusVoltage.Amp*cos(BusVec[i].BusVoltage.Angle);
//形成节点导纳矩阵
FormYMatrix()//把节点导纳矩阵输出到一个文件中
inti,j;
intStaBusNo,EndBusNo;
vector<
vector<
SAdimPara>
>
YMatrixVec(15);
//初始化
YMatrixVec[i].resize(15);
SAdimParaAdimParaTest={0.0,0.0};
14;
for(j=1;
j<
j++)
YMatrixVec[i][j]=AdimParaTest;
for(i=i;
YMatrixVec[i][i].BValue+=BusVec[i].GroundB;
StaBusNo=BranchVec[i].StaBusNo;
EndBusNo=BranchVec[i].EndBusNo;
if(BranchVec[i].Ratio!
=1)//变压器支路
BranchVec[i].SerG=BranchVec[i].SerG/BranchVec[i].Ratio;
BranchVec[i].SerB=BranchVec[i].SerB/BranchVec[i].Ratio;
BranchVec[i].UnbSB=BranchVec[i].SerB*(1-BranchVec[i].Ratio)/BranchVec[i].Ratio/BranchVec[i].Ratio;
BranchVec[i].UnbEB=BranchVec[i].SerB*(BranchVec[i].Ratio-1)/BranchVec[i].Ratio;
YMatrixVec[StaBusNo][StaBusNo].GValue+=BranchVec[i].SerG;
YMatrixVec[EndBusNo][EndBusNo].GValue+=BranchVec[i].SerG;
YMatrixVec[StaBusNo][StaBusNo].BValue+=BranchVec[i].SerB;
YMatrixVec[EndBusNo][EndBusNo].BValue+=BranchVec[i].SerB;
YMatrixVec[StaBusNo][StaBusNo].BValue+=BranchVec[i].UnbSB;
YMatrixVec[EndBusNo][EndBusNo].BValue+=BranchVec[i].UnbEB;
if(BranchVec[i].Ratio==1)//线路支路
YMatrixVec[StaBusNo][StaBusNo].BValue+=BranchVec[i].PIB;
YMatrixVec[EndBusNo][EndBusNo].BValue+=BranchVec[i].PIB;
YMatrixVec[StaBusNo][EndBusNo].GValue-=BranchVec[i].SerG;
YMatrixVec[EndBusNo][StaBusNo].GValue-=BranchVec[i].SerG;
YMatrixVec[StaBusNo][EndBusNo].BValue-=BranchVec[i].SerB;
YMatrixVec[EndBusNo][StaBusNo].BValue-=BranchVec[i].SerB;
ofstreamOutFile("
\\\\.txt"
app);
//文件输出
OutFile<
节点导纳矩阵"
OutFile<
i++)
OutFile<
YMatrixVec[i][j].GValue<
+j"
YMatrixVec[i][j].BValue<
OutFile.close();
最后运行结果如下
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 调度自动化 实验报告 调度 自动化 实验 报告