人工神经网络程序设计及柔性数据集成助推坚强智能电网_第1页
人工神经网络程序设计及柔性数据集成助推坚强智能电网_第2页
人工神经网络程序设计及柔性数据集成助推坚强智能电网_第3页
人工神经网络程序设计及柔性数据集成助推坚强智能电网_第4页
人工神经网络程序设计及柔性数据集成助推坚强智能电网_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告课程名称人工智能应用技术实验项目人工神经网络程序设计实验仪器WindowsXP、VisualC++学院信息管理学院专业信息安全班级/学号学生姓名实验日期20XX-5-10成绩指导教师北京信息科技大学信息管理学院(课程上机)实验报告实验课程名称:人工智能应用技术专业:信息安全班级:学号:姓名:

实验名称人工神经网络程序设计实验地点学院机房实验时间5/101—4节实验目的:掌握基本神经网络的常用学习规则掌握人工神经网络的训练过程实验内容:相关知识:基本神经网络(感知器,前馈网络)的常用学习规则实验环境:WindowsXP,Visualstudio主要内容:人工神经网络的程序设计与实现实验要求:完成神经网络学习程序的调试,课堂演示程序执行结果输出神经网络权值调整过程值,分析结果数据,绘制神经网络提交实验报告实验准备:掌握感知器学习算法初始化:将权值向量赋予随机值,t=0(迭代次数)连接权的修正:对每个输入样本xk及期望输出dk完成如下计算计算网络输出:y=f(S),其中S=∑wixi,f为激活函数计算输出层单元期望输出dk与实际输出y间的误差: ek=dk-y若ek为零,则说明当前样本输出正确,不必更新权值,否则更新权值: w(t+1)=w(t)+α×ek×xk t=t+10<α<1为学习率。对所有的输入样本重复步骤(2),直到所有的样本输出正确为止实验过程:#include<stdio.h>#include"stdafx.h"#defineMAX_ITERATIONS 1000#defineINPUT_NEURONS 2#defineNUM_WEIGHTS (INPUT_NEURONS+1)#defineALPHA (double)0.2doubleweights[NUM_WEIGHTS];typedefstruct{doublea;doubleb;doubleexpected;}training_data_t;#defineMAX_TESTS 4training_data_ttraining_set[MAX_TESTS]={{-1.0,-1.0,-1.0},{-1.0,1.0,1.0},{1.0,-1.0,1.0},{1.0,1.0,1.0}};doublecompute(inttest){doubleresult;/*Equation10.2*/result=((training_set[test].a*weights[0])+(training_set[test].b*weights[1])+(1.0*weights[2]));if(result>0.0)result=1.0;elseresult=-1.0;returnresult;}intmain(){inti,test;doubleoutput;intchange;/*Initializetheweightsfortheperceptron*/for(i=0;i<NUM_WEIGHTS;i++)weights[i]=0.0;/*Traintheperceptronwiththetrainingset*/change=1;while(change){change=0;for(test=0;test<MAX_TESTS;test++){/*Testontheperceptron*/output=compute(test);/*PerceptronLearningAlgorithm*/ doubledif=training_set[test].expected-output;if((int)training_set[test].expected!=(int)output){/*UseEquation10.3*/weights[0]+=ALPHA*training_set[test].expected*training_set[test].a;weights[1]+=ALPHA*training_set[test].expected*training_set[test].b;weights[2]+=ALPHA*training_set[test].expected;change=1;}}}/*CheckthestatusofthePerceptron*/for(i=0;i<MAX_TESTS;i++){printf("%gOR%g=%g\n",training_set[i].a,training_set[i].b,compute(i));}return0;}#include<stdio.h>#include<stdlib.h>#include"maths.c"#include"rand.h"#defineINPUT_NEURONS 35#defineHIDDEN_NEURONS 10#defineOUTPUT_NEURONS 10doubleinputs[INPUT_NEURONS+1];doublehidden[HIDDEN_NEURONS+1];doubleoutputs[OUTPUT_NEURONS];#defineRHO (double)0.1doublew_h_i[HIDDEN_NEURONS][INPUT_NEURONS+1];doublew_o_h[OUTPUT_NEURONS][HIDDEN_NEURONS+1];#defineRAND_WEIGHT (((double)rand()/(double)RAND_MAX)-0.5)#defineIMAGE_SIZE 35typedefstructtest_images_s{intimage[IMAGE_SIZE];intoutput[OUTPUT_NEURONS];}test_image_t;#defineMAX_TESTS 10test_image_ttests[MAX_TESTS]={{{0,1,1,1,0,//01,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,0,1,1,1,0},{1,0,0,0,0,0,0,0,0,0}},{{0,0,1,0,0,//10,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,1,0},{0,1,0,0,0,0,0,0,0,0}},{{0,1,1,1,0,//21,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,1,1,1,1,1},{0,0,1,0,0,0,0,0,0,0}},{{0,1,1,1,0,//31,0,0,0,1,0,0,0,0,1,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,1,1,1,0},{0,0,0,1,0,0,0,0,0,0}},{{0,0,0,1,0,//40,0,1,1,0,0,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0},{0,0,0,0,1,0,0,0,0,0}},{{1,1,1,1,1,//51,0,0,0,0,1,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,0,0,0,1,0,1,1,1,0},{0,0,0,0,0,1,0,0,0,0}},{{0,1,1,1,0,//61,0,0,0,0,1,0,0,0,0,1,1,1,1,0,1,0,0,0,1,1,0,0,0,1,0,1,1,1,0},{0,0,0,0,0,0,1,0,0,0}},{{1,1,1,1,1,//71,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0,0},{0,0,0,0,0,0,0,1,0,0}},{{0,1,1,1,0,//81,0,0,0,1,1,0,0,0,1,0,1,1,1,0,1,0,0,0,1,1,0,0,0,1,0,1,1,1,0},{0,0,0,0,0,0,0,0,1,0}},{{0,1,1,1,0,//91,0,0,0,1,1,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,0,0,1,0,0,1,1,0,0},{0,0,0,0,0,0,0,0,0,1}}};voidinit_network(void){inti,j;/*Settheinputbias*/inputs[INPUT_NEURONS]=1.0;/*Setthehiddenbias*/hidden[HIDDEN_NEURONS]=1.0;/*Initializetheinput->hiddenweights*/for(j=0;j<HIDDEN_NEURONS;j++){for(i=0;i<INPUT_NEURONS+1;i++){w_h_i[j][i]=RAND_WEIGHT;}}for(j=0;j<OUTPUT_NEURONS;j++){for(i=0;i<HIDDEN_NEURONS+1;i++){w_o_h[j][i]=RAND_WEIGHT;}}return;}voidfeed_forward(void){inti,j;/*Calculateoutputsofthehiddenlayer*/for(i=0;i<HIDDEN_NEURONS;i++){hidden[i]=0.0;for(j=0;j<INPUT_NEURONS+1;j++){hidden[i]+=(w_h_i[i][j]*inputs[j]);}hidden[i]=sigmoid(hidden[i]);}/*Calculateoutputsfortheoutputlayer*/for(i=0;i<OUTPUT_NEURONS;i++){outputs[i]=0.0;for(j=0;j<HIDDEN_NEURONS+1;j++){outputs[i]+=(w_o_h[i][j]*hidden[j]);}outputs[i]=sigmoid(outputs[i]);}}voidbackpropagate_error(inttest){intout,hid,inp;doubleerr_out[OUTPUT_NEURONS];doubleerr_hid[HIDDEN_NEURONS];/*Computetheerrorfortheoutputnodes(Equation10.6)*/for(out=0;out<OUTPUT_NEURONS;out++){err_out[out]=((double)tests[test].output[out]-outputs[out])*sigmoid_d(outputs[out]);}/*Computetheerrorforthehiddennodes(Equation10.7)*/for(hid=0;hid<HIDDEN_NEURONS;hid++){err_hid[hid]=0.0;/*Includeerrorcontributionforalloutputnodes*/for(out=0;out<OUTPUT_NEURONS;out++){err_hid[hid]+=err_out[out]*w_o_h[out][hid];}err_hid[hid]*=sigmoid_d(hidden[hid]);}/*Adjusttheweightsfromthehiddentooutputlayer(Equation10.9)*/for(out=0;out<OUTPUT_NEURONS;out++){for(hid=0;hid<HIDDEN_NEURONS;hid++){w_o_h[out][hid]+=RHO*err_out[out]*hidden[hid];}}/*Adjusttheweightsfromtheinputtohiddenlayer(Equation10.9)*/for(hid=0;hid<HIDDEN_NEURONS;hid++){for(inp=0;inp<INPUT_NEURONS+1;inp++){w_h_i[hid][inp]+=RHO*err_hid[hid]*inputs[inp];}}return;}doublecalculate_mse(inttest){doublemse=0.0;inti;for(i=0;i<OUTPUT_NEURONS;i++){mse+=sqr((tests[test].output[i]-outputs[i]));}return(mse/(double)i);}voidset_network_inputs(inttest,doublenoise_prob){inti;/*Fillthenetworkinputsvectorfromthetest*/for(i=0;i<INPUT_NEURONS;i++){inputs[i]=tests[test].image[i];/*Inthegivennoiseprobability,negatethecell*/if(RANDOM()<noise_prob){inputs[i]=(inputs[i])?0:1;}}return;}intclassifier(void){inti,best;doublemax;best=0;max=outputs[0];for(i=1;i<OUTPUT_NEURONS;i++){if(outputs[i]>max){max=outputs[i];best=i;}}returnbest;}intmain(void){doublemse,noise_prob;inttest,i,j;RANDINIT();init_network();do{/*Pickatestatrandom*/test=RANDMAX(MAX_TESTS);/*Grabinputimage(withnonoise)*/set_network_inputs(test,0.0);/*Feedthisdatasetforward*/feed_forward();/*Backpropagatetheerror*/backpropagate_error(test);/*CalculatethecurrentMSE*/mse=calculate_mse(test);}while(mse>0.001);/*Now,let'stestthenetworkwithincreasingamountsofnoise*/test=RANDMAX(MAX_TESTS);/*Startwith5%noiseprobability,endwith25%(perpixel)*/noise_prob=0.05;for(i=0;i<5;i++){set_network_inputs(test,noise_prob);feed_forward();for(j=0;j<INPUT_NEURONS;j++){if((j%5)==0)printf("\n");printf("%d",(int)inputs[j]);}printf("\nclassifiedas%d\n\n",classifier());noise_prob+=0.05;}return0;}实验总结:(实验结果及分析)通过人工神经程序设计的学习,我进一步了解了感知器和神经网络算法,包括期望值的调整等内容,同时更加熟练地使用c语言进行程序设计,对程序设计中遇到的各种问题渐渐地有了自己的认识和解决方案。说明:实验名称、实验目的、实验内容、实验要求由教师确定,实验前由教师事先填好,然后作为实验报告模版供学生使用;实验准备由学生在实验或上机之前填写,教师应该在实验前检查;实验过程由学生记录实验的过程,包括操作过程、遇到哪些问题以及如何解决等;实验总结由学生在实验后填写,总结本次实验的收获、未解决的问题以及体会和建议等;源程序、代码、具体语句等,若表格空间不足时可作为附录另外附页。柔性数据集成助推坚强智能电网摘要:坚强智能电网的建设存在着更为广泛、更为复杂的数据集成需求。本文以JATUIB企业信息集成产品为代表,提出标准化的“柔性数据集成”解决方案以助推坚强智能电网,使越来越复杂电网信息系统具有柔性,可以具有插件化的可持续发展和更新能力、创造能力。关键字:智能电网、柔性数据集成、CIM、IEC61970、IEC61968“坚强智能电网的数据集成”需求解读随着电力系统运行环境的日趋复杂与电力体制改革的不断前进,传统电力网络亟待进一步提升,实现向智能电网的转变。国家电网公司于2009年5月下旬首次公布了“智能电网”的发展计划,初步披露了建设时间表,智能电网在中国的发展将分三个阶段逐步推进,2020年可全面建成统一的“坚强智能电网”[1]。此外,国家电网公司阐释道,“积极发展智能电网已成为世界电力发展的新趋势。智能电网首先应当是一个坚强的电网。坚强是智能电网的基础,智能是坚强电网充分发挥作用的关键,两者相辅相成、协调统一;智能电网的目标是实现电网运行的可靠、安全、经济、高效、环境友好和使用安全。智能电网为电网的发展方向,中国的智能电网包含电力系统的发电、输电、变电、配电、用电和调度共六个环节,具有信息化、数字化、自动化、互动化的‘智能’技术特征。坚强智能电网的建设,依然存在更为广泛、更为复杂的数据集成需求。主要体现在以下方面:智能电网将面临大量数据流,要求更加实时化、复杂化、自动化、集成化以及智能化图表SEQ图表\*ARABIC1电网管理的PDCA支撑一强三优的管理战略目标“一强三优”的电网管理可以从以下三个方面建立有效的过程反馈机制:针对于客户和表计的客户服务的调度规划管理针对于线路和变电的输变配整体电网的调度和规划管理针对于作业人员和设备资产的工作和资产管理的调度规划管理自动化监控—>智能化分析->最优化决策三部曲形成的PDCA的反馈机制贯穿着不断优化、提升管理水平的全过程。在可以预见的未来,电力的功能系统将产生大量的数据流,变得更加实时化、更加复杂化、更加自动化、更加集成化以及更加智能化。智能电网的信息模式必然需要关注面向未来的集成架构和信息整合关于智能电网,IBM亚太区电力专家MartinHauske解释道,智能电网有三个特征[2]:首先它是数字化程度高的网络,内含各种设备、控制系统、应用系统等;其次,它基于统一的信息平台,能够自动整合和收集数据;另外,它基于商业智能分析系统之上,具有数据分析能力,可优化系统的运行和数据的管理。通俗地说,智能电网可以让管理者非常清楚地了解网络运行状况,智能管理电力网络。中国智能电网建设必须关注两大要素:创建开放的系统、创建共享的信息模式。而创建开放的系统、创建共享的信息模式,必然面临两大鸿沟:关键流程的业务协作核心数据的信息整合跨越这两个鸿沟必然需要面向未来的集成的信息体系架构规划和针对信息化现状的信息整合。当前的信息整合的主要技术方法是数据集成和功能集成信息技术。核心数据的集成需要更柔性的集成,而不是固化或刚性的集成智能电网是一个完整的信息架构和基础设施体系,实现对电力客户、电力资产、电力运营的持续监视,利用“随需应变”的信息提高电网公司的管理水平、工作效率、电网可靠性和服务水平。与传统的电网相比,智能电网进一步扩展对电网的监视范围和监视详细程度,整合各种管理信息和实时信息,为电网运行和管理人员提供更全面、完整和细致的电网状态视图,并加强对电力业务的分析和优化,改变过去那种基于有限的、时间滞后的信息进行电网管理的传统方式,帮助电网企业实现更精细化和智能化的运行和管理。坚强智能电网需要更柔性的集成,而不是固化或刚性的集成。通过柔性的集成,为“特高压长距离电能传送,实现能源共享”、“能源从生产、传送到最后使用的过程受到集中监控和管理”、“错峰避峰”、“提高供电可靠性”等需求提供有力的基础支撑。无论是电网的监视、业务管理、高级分析和优化,需首先重点攻克“三”类数据集成即电网模型、遥测遥信、电网图形数据集成。电网模型数据:主要包括电网设备数据、电网拓扑数据;需要充分利用电网模型数据资源,满足电网模型数据定义与管理、电网模型数据共享与维护、电网模型更新、电网拓扑分析等需求。遥侧遥信数据:主要包括历史数据、实时数据,如母线电压、线路电流、线路有功、主变电流、主变有功、主变无功、电容器电流、电容器无功、开关状态等;为了促进业务的有效开展,需要充分利用精准、实时、有效的电网遥测遥信数据资源,提高遥测遥信、电力负荷原始数据获取和整理的能力,提高原始数据的准确性,实现遥测遥信共享与维护、关联等集成需求。电网图形数据:主要包括站内接线图数据、全网图数据。在电网图形业务应用领域,通常存在“同一份图形要多处维护,经常需要重新绘制”、“调度图形在各系统中通常以控件方式显示,难以共享”、“基于电网图形的业务应用难以深入开展”等问题。需要通过电网图形信息集成,可充分利用电网图形资源,满足电网图形共享、电网图形管理与维护、电网图形展现、电网图形设备参数查看、电网图形实时与历史遥测遥信数据显示与刷新等集成需求。电网模型数据、遥测遥信数据、电网图形数据特点各异,在数据集成时需结合具体特点与实际应用需求区别对待:电网模型数据相对稳定;历史数据如遥测数据的数据量庞大;实时数据如遥信数据的产生变化频率最快,面向这类数据的应用通常有很高的实时性,响应速度要求最高各类数据不是相互独立的,数据间的关联性强:如电网拓扑数据反映了电网企业的拓扑连接关系;电网模型与遥测遥信数据之间存在关联如测点与量测的关联;电网模型与电网图形之间不是相互脱离的,需要图模一体的电网图形共享、信息展现等;此外,还存在来源不同、访问频率不同、单次访问的数量不同等差异。标准化的柔性数据集成——JATUIB的解决之道本文提出基于JATUIB企业信息集成产品的“标准化的柔性数据集成”解决之道,主要包括以下方面:标准化的柔性集成架构,是贴合电力业务、确保可扩展性的基础坚强智能电网的建设,面临着复杂的、快速多变的实时采集的海量信息、具有根据业务不断升级不断升级换代的辅助分析方法、具有面向市场不断变化的营销手段提高客户满意度和需求等,需要更具有柔性、面向未来的成熟信息体系结构,才能把以往建成的信息系统变成半年可以建成的满足快速的信息系统、才能把以往必须拆了全部重建的信息系统变成可以逐步分模块更新的信息系统。行业标准集成使企业信息系统具有柔性和可持续发展的神奇力量。电力领域非常注重信息标准化尤其是IEC标准的建设与应用,标准化一直是信息系统的努力方向,也是EMS/DTS发展的必然之路,“标准化”是贴合电力业务、确保可扩展性的一体化集成基础。IEC61850、61970、61968是国际电工组织发布的一系列电力行业集成标准,CIM模型是在这几个标准中贯穿所有标准的电力统一数据模型[3]。美国EPRI在智能电网的整体结构中采用了不同的标准结合来完成整体系统架构的搭建。为了实现这些未来的信息通讯集成,在现有的这些标准的结合上还需要进一步推进,下面是其中主要的一些推进方向:相关的标准IEC开发组描述CIM和IEC61850AdHocWG07IEC61968和61970公共信息模型CIM界定了整个电网,而IEC61850-7对象模型界定变电站内部的设备和功能。IEC将合并两个对象模型或在两者间定义一个标准的映射。这将允许数据在两个实现不同数据模型的系统之间进行交换,并且允许采用配置工具创建EMS和SCADA系统间的信息共享。说明:IEC61970标准用于满足电力企业“数据集成”的需求;IEC61968标准用于满足电力企业“功能与流程集成”的需求;IEC61970、IEC61968标准被国际接受,在国内得到广泛应用与重视IEC61970GID和61850ACSI和61968消息模型WG13、WG14IEC61850提供了变电站内部设备通讯的机制,IEC61970提供了调度高级应用之间的访问方法,IEC61968提供了业务应用系统间功能整合的访问操作信息的方法。然而,如何精确的集成61970、61968和61850的方法并没有标准化。IEC未来将标准化这些标准单元之间互操作的机制。OpenAMI和UtilityAMIUCAOpenAMI工作组智能化配网和客户服务是当期重要发展方向,而OpenAMI标准制定了智能表计和主站间通讯的标准CIM元数据应用7种武器,激活数据全生命周期的柔性应用图表SEQ图表\*ARABIC2JATUIB在CIM元数据应用的7种武器智能电网的数据集成构成主要涉及数据产生、数据维护、数据存储、数据组织、数据传输、数据应用六个方面,JATUIB分别提供了7种武器进行相应的支持:数据的标准化封装与遗留数据CIM标准化随着电网规模的不断扩展与建设,多系统数据接入的处理能力至关重要。JATUIB采用IEC61970GDA、TSDA、HSDA接口标准,从而支持强大的电网模型、历史与实时遥测遥信数据的有效传输与标准化访问,通过GID接口接入到集成平台中,达到即插即用的效果。JATUIB具备“千万级以上”数据良好接入的处理能力。数据质量提升通常存在部分电网模型数据缺失的现象,导致电网分析或相关业务功能无法有效开展。应急指挥、线损分析、需求侧分析等业务需要获得高质量的数据,需要多方面、多层次的有机关联;JATUIB提供数据质量提升功能(数据校验、数据补全、数据关联等),保证电网分析与应用所需数据的完整性和有效性:企业CIM模型和主数据管理在电力企业数据集成中需要采用统一的IEC61970标准与CIM模型来描述电力领域世界,使传输信息时各系统有共同的语义;支持基于IEC61970CIM的电网模型构建、拆分、精简、合并,全面支持企业元数据和数据的标准化;为了使数据的一致性与标准化的应用落到实处,需要支持CIMRDF/OWL/XMI,能使数据的一致性与标准应用落到实处,可用于统一模型,并用于支持元数据的导入或导出,使得“元数据扩展”比较方便。按业务视图重新组织CIM数据及其可视化其中可视化的元数据管理,按各种数据组织方式和自定义的数据组织方式来查看整合后的所有数据,使得元数据的查询比较方便如可浏览Schema信息、提供者类视图、提供者实体视图、自定义视图、PhysicalView、SVGView等,满足电网模型元数据的管理需求,以及不同层面的视图浏览业务需求。CIM数据联邦、路由与同步常规集成方式主要包括集中式、联邦式两种方式,针对不同

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论