|
时间: 2004-8-17 周二, 下午12:28
标题: 电力cad连载
作者:春洋
--------------------------------------------------------------------------------
电力cad连载(1)
第一章 绪论
1.1电力系统应用软件技术的发展
电力系统是我国较早应用计算机的部门之一,已有近30年的历史。在电网计算和工程设计、分析以及辅助设计、辅助试验、仿真、在线监控等方面都有很广泛的应用。对电网的分析计算是计算机应用较早和较成熟的领域,其中潮流、短路和稳定计算是电力系统经常要进行的三大基本分析计算项目。这些计算如用手工进行,即使是很小的电网也很困难。而计算机具有内存大、计算速度快、结果精确等优点,已经成为电力系统中有效的计算工具。
在电力系统长期应用计算机的过程中,开发了大量的电力系统分析程序,在实际生产中发挥了巨大的作用,很好的满足了用户的需求。由于软件技术发展水平的限制,这些程序多数是使用FORTRAN,BASIC等基于结构和过程的编程语言开发,在DOS环境下运行的;而且现有的电力系统分析程序大多数不包含数据库接口,不支持网络工作方式,落后于计算机应用的发展。另一方面,由于计算机硬件的限制,使得交互式的基于图形方式的用户界面很难实现,这些程序基本上都是采用文本进行交互,这就降低了程序的用户友好性,功能操作和结果显示都不直观,用户必须用很大的精力来熟悉和掌握这类软件的使用。尤其让人头痛的是,要花费大量的时间按照规定的格式来准备和填写计算所需要的数据文件,而且计算结果也是采用文本或列表的形式按照一定的顺序显示出来,密密麻麻一片,不利于用户分析,也不利于用户在以后需要的时候查找历史数据。随着经济的发展和电力需求的迅速增长,电力系统的规模越来越大,电网的结构也越来越复杂,计算所需要准备的数据也越来越多,电力系统计算分析的工作量也日趋庞大。即使对经验丰富的计算人员来说,从电力系统仿真计算生成的大量中间数据和结果数据中获取对系统完整的了解也并非易事。因此借助科学计算可视化(Visualization in Scientific Computing,ViSC)技术使用户界面图示化和对计算结果进行形象化描述是一种十分重要的辅助手段。
科学计算可视化[1],又称科学可视化(Scientific Visualization),是八十年代后期随着计算机技术的迅速发展而出现的一门新兴综合技术。它融合了计算机技术中的多个分支-图形学、图像处理、计算机辅助设计、人机界面研究等领域并和相关的应用科学领域相结合。它的主要目的是更加有效地处理和分析越来越多的科学和工程数据,将计算中所产生的数字信息转变成直观的图形或图像形式表示的信息,而不是以冗长的数据列表形式表现出来,使用户对计算的对象有形象而全面的了解,以利于深入洞察实验数据或计算结果,捕捉它们之间的内在关系,提高科学研究和工程设计的效率。
近年来,科学计算可视化已经成为流体工程、气象学、分子生物学、医学等数据密集学科的重要研究手段,并且不断向各个应用领域扩展。电力科学作为一门工程科学,也面临着这样的矛盾:数据的采集能力不断提高,数据量越来越大,同时传统的研究方法也需要改进,以加深研究者对结果的理解。电力系统是一个具有庞杂数据的大系统,它的数据一般是离散分布的、具有一定的随机性和模糊性,将可视化应用到电力系统,可以克服目前计算机应用中的一些“瓶颈”问题,从而推动电力系统工程的发展,提高计算机在电力工业的应用水平。在电力系统领域中,可视化技术可用于辅助电力系统的规划设计、电力系统分析计算等方面[1~5]。
1.2 图示化电力应用软件技术
随着计算机技术的迅猛发展以及Windows操作系统主导地位的确立,可视化技术,也就是GUI(Graphical User Interface)技术也得到了越来越广泛的应用。使用GUI技术,计算机程序通过图形来和用户交换数据及信息。可视化技术使软件更加容易使用,操作更直观,提高了工作效率。电力系统各种分析软件也同样朝着可视化的方向发展,如能量管理系统(EMS), 调度员仿真培训系统及其它模拟器和各种分析计算软件。图形系统是可视化的一个很重要的组成部分,用它绘制的图纸应该能被编辑,并且具有通用公开的存储格式。一个很常用的方法是自己设计一个绘图系统[6~38],利用点线的组合绘制各种电气元件如电源、断路器等等。这样做的好处是可以自如地的设计图元和图纸的各种数据结构,计算模块和图形系统的数据交换也很方便,缺点是功能有限,需要自己做烦琐的增加、删除、编辑甚至缩放和移动等功能。同时图形系统是一个代码庞大的软件,需要多人的协调开发,所以如何设计系统的软件结构及其数据结构和如何合理地进行代码划分是很重要的,有缺陷的设计会给平台的运行带来灾难性的后果。文献[6]~[22]的作者采用C或C++来开发绘图系统。文献[23]的作者采用Delphi作为开发工具,将电力系统的常用元件做成相应的控件来绘图。文献[24]~[29]的作者采用Visual Basic来开发软件配套的图形系统。文献[30]~[31]的作者采用Delphi来开发图形系统。采用自己设计图形系统,相应也会产生一个很大的问题,软件绘制的图纸不能被其它通用的绘图软件识别,基于灵活性和通用性考虑,这显然是不合适的。
另外一种方法,就是利用现在通用的各种CAD和CAM软件[39~45]如AutoCAD,或者是基于地图的信息管理系统如MapInfo,采用面向对象的方法,从这些通用软件所提供的各种基类中派生出绘制图形所需要的自定义类,用这些自定义类生成实例对象来绘制图纸。如:三相变压器图形是由基本的图形圆和直线所组成的,基本的类中没有三相变压器,但AutoCAD中有一个代表所有具有图形表现的数据库对象的基类,基类中包括图形的一些如颜色、可见性等等这些公共属性,我们就可以用面向对象的方法,继承基类中的公共属性,重载必要的函数,来完成自定义的功能。这样做的好处就可以利用成熟软件的强大的绘图功能,其普及性、完善性是非常明显的。文献[40]~[45],都是采用AutoCAD作为图形系统,对它进行定制,使它更加适合在电力系统的应用。采用这种方法,可以省去大量不必要的开发和维护工作,把精力集中在与电力系统相关图形功能和计算的开发上,从而开发出更强、更适用的应用程序,同时也可以降低程序员的劳动强度。在这种方法下,实现图形系统与计算分析系统的紧密结合、电气元件的图形实体与后台数据库表之间的联接就是一个必须解决的关键问题。
1.3电力应用软件与图形系统的连接方法
这些通用绘图软件只能作为可视化系统的一个绘制图形的工具,用来绘制图形、输出结果、给用户的操作提供一个图形界面,而深层次的功能如数据库的连接、数据的管理以及跟电力系统分析软件的数据交换没办法直接依靠它们来完成。一般可以采用下面的方法实现跟电力分析软件的连接。一种方法是使用这些通用软件来绘制所需要的专业图纸,把所得到的图形以一种可以跟其它的CAD系统及用户应用程序进行图形信息交换的格式存储,然后用面向对象的语言读取这种格式的文件并在与电力系统分析软件配套的图形显示系统中重新绘制出来,来实现跟电力分析软件的结合[40~42]。在AutoCAD中这种可以被其它的应用程序读取的文件叫做“图形交换文件”(Drawing Interchange File),应用程序也可以按照规定的格式生成DXF文件,AutoCAD可以接受该DXF文件并转换成图形。文献[40~42]都是采用高级语言读取AutoCAD的DXF文件,然后在高级语言编制的图形环境中重新绘制出来以方便应用程序的使用。采用这种方法难点在于对DXF文件的结构要很熟悉,而且要编制专门的图形编辑软件读取DXF文件,重新绘制图形。由于DXF文件中包含的信息数量极大,编写一个通过DXF机制与AutoCAD通信的程序,往往是比较困难的。
另外,也可用面向对象的方法,利用这些通用绘图软件“暴露”给用户使用的各种对象来绘制图形[43~46],并灵活使用图形文件中各种对象的属性、方法、事件来与数据库、应用程序进行数据交换以及实现图形和数据的一致性,从而满足我们的需要。采用这种方法,不需要对图形文件的格式要很深入的了解,图形文件的各种图形数据,可以通过各种属性来得到。如在AutoCAD的ActiveX对象模型中,要知道一条直线的起点和终点坐标,我们可以通过它的StartPoint、EndPoint属性来获得;而与数据库、应用程序的联系可以通过利用AutoCAD的事件来实现。这样我们不需要很了解图形文件的格式,应用程序就可以很容易获得图形文件的图形数据;而应用程序的数据也可以通过事件和图形的相应属性写入到图形文件中去。通过这种方式比较容易实现电力系统分析软件跟图形系统的连接。
基于以上讨论,在为郴州电力局开发的“地区电网短路计算、保护整定及档案管理程序的研究”项目中作了初步的尝试,项目采用Visual Basic作为开发语言,利用微软公司的ActiveX Automation技术,对AutoCAD 2000进行二次开发来作为图形系统。
1.4本文的主要内容及主要研究工作
本文针对目前电力系统分析软件中存在的图形处理与分析程序各自独立,数据交换不便,难以同步融合,关联操作的“瓶颈”制约问题,进行了广泛的调查及深入了解,对图形处理系统与应用分析程序的接口进行了重点探索和实践。
本文采用面向对象的ActiveX Automation的技术,在AutoCAD 2000中生成电气元件库,以前台的图形界面和后台的数据库管理为基础,通过AutoCAD内部事件和ADO技术,用户可以直接通过图形界面来管理数据库。根据数据库相应的表中存储的计算结果和利用面向对象的编程技术操纵AutoCAD的对象,将结果以图形和文本的方式在AutoCAD中直观的显示出来,以利于用户进行分析。本文实例所用的程序代码都是在Visual Basic 6.0环境开发。
本文所作的主要研究工作如下:
1. 在对现有电力应用分析软件全面调查研究的基础上,提出了对现有图形软件进行二次开发,实现不同平台图形系统与高级语言计算分析软件间跨系统的有机联接方案,有效解决了图形、数据各自为政的难题。
2. 用面向对象的ActiveX Automation技术,对AutoCAD进行定制,制作了常用电气元件的图元菜单和工具栏以及子图库。
3. 在对图形对象的属性和AutoCAD的事件研究的基础上,利用AutoCAD的事件和图元的句柄属性,通过图形化界面和消息传递实现了图形和计算数据的交互统一,为实现图示化电力应用软件奠定了基础。
4. 通过AutoCAD事件和快捷菜单实现对电力系统的分析计算在网络接线图上的可视化操作。
5. 利用AutoCAD的图元、文本对象,研究并开发了地区电网短路电流计算及继电保护整定程序中的短路电流分布图和保护装置配置图的自动绘制模块。 |
|